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, 00000000b
clksource Ó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átor
justify 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étezik
AD_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_STARTCONV
AD_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_CH0
channel A csatorna számát adhatjuk meg AD_CH0 ... AD_CH7 között.