■ PIC12F1822などのデバイスでADCを使うとき基準電圧に内部生成電圧リファレンス(FVR)を使う例
PIC12F1822やPIC16F15xxシリーズなどのデバイスではADコンバータの基準電圧に、Vddの他、内部生成定電圧リファレンス(FVR)を指定することができます。 FVRは3段階で指定できます。指定はFVRCONで行います。4.096V、2.048V、1.024Vから選択できます。下記にプログラムサンプル例を示します。
下記のプログラム例ではRA2に印加された電圧の値を取り込みます。FVRを基準電圧として結果を変数adc_rdに格納し、そのint型の値を文字列型に変換してUART通信でその値を出力するプログラムです。間隔は200ms毎としています。 クロックは内部発振8MHzを使っています。
void init(){ OSCCON = 0b01110010; //for 8MHz intosc APFCON.TXCKSEL = 0; //TX=RA0 APFCON.RXDTSEL = 0; //RX=RA1
ADC_Init();
ANSELA = 0b00000100; //RA2 = Analog input TRISA = 0b00000110; FVRCON = 0b10000001; //11=4.096; 10=2.048; 01=1.024V ADCON0 = 0b00001001; ADCON1 = 0b10010011; //RA2 = Analog input Uart1_init(9600);
delay_ms(100);
}
void main() {
unsigned int adc_rd; char txt[7];
init();
while(1){ adc_rd = ADC_Get_Sample(2); inttostr(adc_rd,txt); UART1_Write_Text(txt); delay_ms(200); }
}
|