マイクロテクニカ製品サポートFAQ
[一覧] [1つ前に戻る] [マニュアル及び各種ダウンロードページへ]
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);
}

}
オリジナル - FAQみたいです - 猫でいいです