ADC modul
Az alábbi modullal a PIC beepitett A/D átalakítóját tudjuk használni. Csak olyan PIC-eknél használható amelyek tartalmazzák ezt a periferiát. Pl. 12f875, 16f87x.
Szükséges definiciók a főprogramban
xtal_freq EQU 4000000 ; oscillátor frekvencia core_freq EQU xtal_freq/4 ; Az MCU magjának frekvenciája.Opcionális definiciók a főprogramban
#define DEBUG ; Ha definiálva van, akkor forditási időben ; információkat kapunk. #define AD_WITH_ANSEL ; A ANSEL regiszterrel ellatot PIC-ekhez definiálni ; kell (pl. PIC12F875)Makrók
Név Paraméter Leirás AD_INIT clksource, justify, portconfig Inicializálja az ADC modult.
pl: AD_INIT AD_Fosc8, AD_JUST_LEFT, 00000000bclksource Órajel forrás kiválasztása. Lehetséges értékek:
AD_Fosc2 - Fosc/2
AD_Fosc4 - Fosc/4 (nem minden PIC-nél választható)
AD_Fosc8 - Fosc/8
AD_Fosc16 - Fosc/16 (nem minden PIC-nél választható)
AD_Fosc32 - Fosc/32
AD_Fosc64 - Fosc/64 (nem minden PIC-nél választható)
AD_Frc - RC oszcillátorjustify Eredmény igazítása. Lehetséges értékek:
AD_JUST_LEFT - balra igazitva az ADRESH:ADRESL regiszterpárban
AD_JUST_RIGHT - jobbra igazitva az ADRESH:ADRESL regiszterpárban
portconfig bit 0-3 : PCFG0-PCFG3 az ADCON1 regiszterből vagy ANS0-ANS3 az ANSEL regiszterből
bit 6 : VCFG az ADCON0 -ból, ha létezikAD_STARTCONV Egy konverziót indít. A csatorna számát a W-ben várja. Lehetséges értékek: AD_CH0 ... AD_CH7. Példa:
movlw AD_CH0
AD_STARTCONVAD_ENDCONV Egy konverziót eredményét várja meg. A konverzió után az eredmény a ADRESH:ADRESL-ben lesz. AD_GET channel Egy konverziót indít a channel csatornával. Példa:
AD_GET AD_CH0channel A csatorna számát adhatjuk meg AD_CH0 ... AD_CH7 között.