Minikombajn Pomiarowy  20
 All Files Functions Variables Macros
Macros | Functions | Variables
Analizator.c File Reference

Plik podprogramu analizatora. More...

#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include "ADC.h"
#include "Keyboard.h"
#include "lcd132x64.h"
#include "Grafika.h"

Macros

#define USE_ANALIZATOR_MODULE
#define Np   1024

Functions

static uint16_t reverse (uint16_t n, uint8_t v)
 Funkcja odwracajaca lewo-prawostronnie bity.
uint8_t log2_u32 (uint32_t n)
 Funkcja liczaca logarytm o podstawie 2 dla liczb 32-bitowych.
uint8_t log2_u16 (uint16_t n)
 Funkcja liczaca logarytm o podstawie 2 dla liczb 16-bitowych.
void FFT2N (int16_t *xwsk, int16_t *tmp_w)
 Funkcja liczaca 512-punktowe Real-FFT.
void Analizator (void)
 Funkcja liczaca 128-punktowe Real-FFT.

Variables

int16_t kan1_in [512]
int16_t kan2_in [512]
uint8_t kan1_lcd [128]
 Bufor przechowujacy probki danych kanalu 1 do wyswietlenia na lcd.
const uint8_t Gain_tab[10] PROGMEM
 Tablica dzielnikow dla wyboru podstawy czasu.
static uint8_t Vdiv = 0
static uint8_t Sdiv = 7
uint16_t Xpos = 0
uint8_t Ypos = 0
uint8_t Zoom = 1
uint16_t Cursor = 70

Detailed Description

Plik podprogramu analizatora.

Author
Arkadiusz Hudzikowski
Version
1.5
Date
16.01.2013

Macro Definition Documentation

#define Np   1024

liczba probek wejsciowych FFT

#define USE_ANALIZATOR_MODULE

Uzyj tego podprogramu

Function Documentation

void Analizator ( void  )

Funkcja liczaca 128-punktowe Real-FFT.

Rzeczywista szybka transformata Fouriera. Sygnal zostaje rozdzielony na probki parzyste, ktore traktowane sa jako rzeczywiste i nieparzyste, ktore zostaja zapisane do czesci urojonej. Nastepnie zostaje obliczona zespolona transformata Fouriera oraz zostaja rozdzielone widma wejsciowych probek parzystych i nieparzystych. Na koncu nastepuje synteza tych widm tworzac jedno 128 punktowe.

Parameters
*xwskinout: wskaznik do bufora 256 wejsciowych probek 16-bitowych, 128 probek wyjsciowych bufor wykorzystuje dodatkowo 128 probek pomocniczych, calkowita dlugosc bufora wynosi 384 probki 16-bitowe
Returns
none Funkcja glowna podprogramu analizatora
none
void FFT2N ( int16_t *  xwsk,
int16_t *  tmp_w 
)

Funkcja liczaca 512-punktowe Real-FFT.

Rzeczywista szybka transformata Fouriera. Sygnal zostaje rozdzielony na probki parzyste, ktore traktowane sa jako rzeczywiste i nieparzyste, ktore zostaja zapisane do czesci urojonej. Nastepnie zostaje obliczona zespolona transformata Fouriera oraz zostaja rozdzielone widma wejsciowych probek parzystych i nieparzystych. Na koncu nastepuje synteza tych widm tworzac jedno 512 punktowe.

Parameters
*xwskinout: wskaznik do bufora 1024 wejsciowych probek 16-bitowych, 512 probek wyjsciowych
*tmp_w: adres bufora pomocniczego 64 probek 16-bitowych
Returns
none
uint8_t log2_u16 ( uint16_t  n)

Funkcja liczaca logarytm o podstawie 2 dla liczb 16-bitowych.

Wartosc wyjsciowa wyrazona jest wzorem: 4*log2(n). Wartosci wynikowe pomiedzy wielokrotnosciami 4 sa podawane z przyblizeniem.

Parameters
n: zmienna wejsciowa
Returns
uint8_t : wartosc wyjsciowa (logarytm)
uint8_t log2_u32 ( uint32_t  n)

Funkcja liczaca logarytm o podstawie 2 dla liczb 32-bitowych.

Wartosc wyjsciowa wyrazona jest wzorem: 4*log2(n). Wartosci wynikowe pomiedzy wielokrotnosciami 4 sa podawane z przyblizeniem.

Parameters
n: zmienna wejsciowa
Returns
uint8_t : wartosc wyjsciowa (logarytm)
static uint16_t reverse ( uint16_t  n,
uint8_t  v 
)
inlinestatic

Funkcja odwracajaca lewo-prawostronnie bity.

Parameters
n: zmienna wejsciowa
v: liczba bitow do odwrocenia z zakresu 1-15
Returns
uint16_t : wartosc wyjsciowa (odwrocona)

Variable Documentation

uint16_t Cursor = 70

kursor czestotliwosci

int16_t kan1_in[512]

Bufor kanalu 1

uint8_t kan1_lcd ( )

Bufor przechowujacy probki danych kanalu 1 do wyswietlenia na lcd.

Bufor oscylogramu 1

int16_t kan2_in[512]

Bufor kanalu 2

const int16_t sin_tab [640] PROGMEM

Tablica dzielnikow dla wyboru podstawy czasu.

Tablica dzielnikow dla wyboru podstawy czasu.

Tablica funkcji sin [0, 2.5PI].

Napisy menu ustawień

Napisy z predkosciami UART hektoPredkosci UART (Wojciech Meler)

uint8_t Sdiv = 7
static

podstawa czasu

uint8_t Vdiv = 0
static

wzmocnienie

uint16_t Xpos = 0

przesuwanie w poziomie

uint8_t Ypos = 0

przesuwanie w pionie

uint8_t Zoom = 1

zoom sygnalu (do implementacji)