• 締切済み

PICのプログラミングについて

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; }

みんなの回答

  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.1

Cコンパイラの仕様がわからないのですが、STATUS REGISTERのRP1:RP0(レジスタバンク)は、 TRISB=0x00; RB0=1; と書いただけで自動的に設定されるのでしょうか? TRISBはBank1,RBはBank0ですがその切替ができてないのでは?

appleuser
質問者

補足

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

関連するQ&A