Pagalba reikalingi bandymai ADC

R

rajashekar333

Guest
Sveiki, Kaip išbandyti Flash 6 bitų ADC.Howmany metodai yra tam, kad test.Can nors padėti ar pasiūlyti kokių nors ADV nuorodos material.Thanks in -

 
Jei naudojate C, čia yra pavyzdys / D bandymo programą

/ *
ADC ir Serial UART bandymo programą
Data: 7-21-05
Autorius: Evan Dudzik

Ši programa yra PIC pavyzdys sąsajos su dviejų dalių aparatūros per:
Analoginis skaitmeninis keitiklis ir UART, taip pat naudojant pertraukinėja.

Programa nuolat nuskaito ADC vertę, ir kai ji pasikeičia, rezultatus ji per serijos.
Produkcija gali būti arba vienas simbolis (0-255)
ar koduojama ASCII dešimtainis lengvai peržiūrėti terminalo,
tiesiog komentuodamas tinkamus linija pagrindinės funkcijos.

Kaip paprastą testą, programa taip pat Echos gavo simbolių atgal į stovyklą.
Šiuo būdu jūs galite tipo terminalo programą patikrinti nuosekliojo ryšio.
* /

# Include <system.h>
# Pragma DUOMENŲ 0x2007, 0x3F50 / / _INTRC_IO & _WDT_OFF & _LVP_OFF

/ / Svarbu bitai SFR's ADC, UART, ir nutraukti.
lakiųjų bitų go@ADCON0.GO;
lakiųjų bitų gie@INTCON.GIE;
lakiųjų bitų rcie@PIE1.RCIE;
lakiųjų bitų peie@INTCON.PEIE;
lakiųjų bitų rcif@PIR1.RCIF;
lakiųjų bitų trmt@TXSTA.TRMT;

char data_in;
bitų newdata;

/ / Nutraukti paslaugų įprastinių
negaliojančiu nutraukti (tuščia)
(
if (rcif) / / UART gavimas Nutraukti
(
data_in = rcreg;
newdata = 1;
rcreg = 0;
)
)
/ / Funkcija: skaityti vieną reikšmę iš ADC
/ / Grąžina: svarbiausias baitas rezultatas
inline char adc_read ()
(
go = 1;
o (go);
grįžti adresh;
)

/ / Funkcija: siunčia vieną baitą su įrangos serijos UART.
inline void sendbyte (char b)
(
txreg = b;
while (! trmt) ();
)

/ / Funkcija: Siunčia dešimtainiais simboliais kaip ASCII
negaliojančiu senddecimal (char b)
(
char temp, temp2;
TEMP = b;
temp2 = temp/100;
sendbyte ('<');
sendbyte (temp2 '0 ');
temp = temp% 100;
temp2 = temp/10;
sendbyte (temp2 '0 ');
temp = temp% 10;
sendbyte (temp '0 ');
sendbyte ('>');
)

void main ()
(
//*********************//
/ / Nustatyti I / O ports / /
//*********************//
portb = 00000000b;
trisb = 11111111b / / 0 = Output, 1 = Input
Porta = 00000000b;
trisa = 11111111b / / 0 = Output, 1 = Input

//***************//
/ / Konfigūruoti ADC / /
//***************//

osccon = 01110000b / / vidaus generatorius @ 8MHz
cmcon = 00000111b / / komparatoriai išjungti
Ansel = 00000001b / / AN0 dėl (RA0)
adcon1 = 00000000b / / kairįjį kraštą, fosc / 2 laikrodis, VDD ir Vss Nuoroda įtampų
adcon0 = 00000001b / / rinkinys AN0, ADC veiklos

//*****************//
/ / Konfigūruoti USART / /
//*****************//

spbrg = 51 / / 9600 bodų @ 8MHz
txsta = 00100100b / / full duplex asinchroninis
rcsta = 10010000b / / full duplex asinchroninis
rcie = 1; / įjungti / RX nutraukti
peie = 1; / / įjungti periferinių pertraukinėja (reikalingos RX)
GIE = 1 / / pasaulio Pertraukties

char adcval, temp;

o (1)
(
TEMP = adc_read ();
if (temp! = adcval)
(
adcval = temp;
sendbyte (adcval);
/ / Senddecimal (adcval) / / naudoti vietoj aiškiau produkcijos HyperTerminal
)
if (newdata) (newdata = 0; sendbyte (data_in);)
delay_ms (5);
)
)

 
danymic: FFT
statinis: kodas tankis histograma
priemonė: MATLAB ar LabVIEW

 
Ačiū visiems.Aš ne naudojant "C" su test.Can kas exlain apie FFT bandymų metodu.
FFT bandymo metodas yra rasti SINAD.can galiu naudoti tą patį bandymo INL ir DNL.

 

Welcome to EDABoard.com

Sponsor

Back
Top