dポイントプレゼントキャンペーン実施中!

PIC16F819のプログラムをC言語で行っています。
PORTAは全てアナログ入力、PORTBは全てディジタル出力に設定しています。
試しにRB0に接続してある振動モータを動かそうと思い、RB0をHighにするだけのプログラムを作ったのですが動作しません。
A/D変換などは二の次で、単純にRB0から5V出力されるプログラムを組みたいだけなんですが、どうすればいいのでしょうか?ぜひご教授よろしくお願いします。

---抜粋---
/***Sample code to set up the A2D module********/
void init_a2d(void){
ADCON0=0x00;
ADCON1=0x00;
ADON=1;
}

/***Return an 8 bit result**********************/
unsigned char read_a2d(unsigned char channel){
channel&=0x07;
ADCON0&=0xC5;
ADCON0|=(channel<<3);
ADCON0|=0x04;
while(ADCON0&0x04)continue;
return(ADRESH);
}

/***Main関数*************************************/
void main(void){
 TRISB=0x00;
RB0=1;
}

A 回答 (1件)

Cコンパイラの仕様がわからないのですが、STATUS REGISTERのRP1:RP0(レジスタバンク)は、


TRISB=0x00;
RB0=1;
と書いただけで自動的に設定されるのでしょうか?
TRISBはBank1,RBはBank0ですがその切替ができてないのでは?

この回答への補足

早速のご回答ありがとうございます。
C言語の場合アセンブラと異なって、好きなレジスタに好きなデータを直接書き込めるので、この様な処理は必要ないと思います。
ちなみにコンパイラは PICC Compilerです。

補足日時:2005/11/25 18:27
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!