※ ChatGPTを利用し、要約された質問です(原文:PIC16F819)
PIC16F819 ADコンバータの動作しない原因を教えてください
このQ&Aのポイント
PIC16F819のADコンバータを使用しています。RA0からアナログ信号を入力して、PORTBのそれぞれのピンから1bitずつ(計8bit)のデジタル信号を出力させるためのプログラムを書いてみましたが、まったく動作しません。
特にPORTBを全てHighにした場合、なぜかRB6とRB7からの出力を確認することができませんでした。
動作しない原因がまったく分からないので困っています。原因が分かる方がおられましたらご教授お願いします。
PIC16F819のADコンバータを使用しています。
RA0からアナログ信号を入力して、PORTBのそれぞれのピンから1bitずつ(計8bit)のデジタル信号を出力させるためのプログラムを書いてみましたが、まったく動作しません。レジスタの設定なども変えてみましたが動作しませんでした。特にPORTBを全てHighにした場合、なぜかRB6とRB7からの出力を確認することができませんでした。
動作しない原因がまったく分からないので困っています。原因が分かる方がおられましたらご教授お願いします。
#include <pic.h>
__CONFIG(DEBUGEN&WDTDIS&LVPDIS&HS&PWRTEN);
void init_a2d(void){
ADCON0=0x40;
ADCON1=0x40;
ADON=1;
}
unsigned char read_a2d(unsigned char channel){
channel&=0x07;
ADCON0&=0xC5; ADCON0|=(channel<<3);
GODONE=1;
while(GODONE)continue;
return(ADRESH);
}
void main(void){
unsigned char x1;
init_a2d(); //initialise the A2D module
GIE=0; // we don't want interrupts
TRISB=0x00; // PORTB will be used in output mode
PORTB=0x00;
x1=read_a2d(1); // sample the analog value on RA0
PORTB=x1;
}