• 締切済み

PICのプログラムについて質問です

使用するPICは16F84Aで、MPLAB IDEv8.88を使ってこのようなプログラムを作りました。 #include"pic.h" static void pic_init(); static void Delay_ms(unsigned char ms); static void Delay_1ms(); void main(){ pic_init(); while(1) { RB0 = 1 ; Delay_ms(250); Delay_ms(250); Delay_ms(250); RB0 = 0 ; Delay_ms(250); Delay_ms(250); Delay_ms(250); } static void pic_init() { // GPIO = 0b00000000; TRISA = 0xFF ; TRISB = 0x00 } static void Delay_ms(unsigned char ms) { unsigned char c; for (c=ms ; c>0 ; c--) { Delay_1ms(); } } static void Delay_1ms() { unsigned int cnt; unsigned int i; cnt = 76; for (i=0 ; i<cnt ; i++) { NOP(); } } ポートB0の出力を0から1にするプログラムなのですが、実行すると Error [314] C:\Users\moriwaki\Desktop\PIC program\step_test2.c; 52.24 ";" expected Error [254] C:\Users\moriwaki\Desktop\PIC program\step_test2.c; 77.0 undefined variable: "pic_init" ********** Build failed! ********** というエラーが出ます。このようなエラーが出る原因を教えて頂けないでしょうか。お願いします。

みんなの回答

  • qhtsige
  • ベストアンサー率45% (9/20)
回答No.4

";" expected とありますので TRISB = 0x00 に”;” が必要なのではないですか。 当方PICは使ったこと無いですが、常識的に判断。

回答No.3

pic_init() の実体が有らぬところにある。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

> ********** Build failed! ********** ですから、「実行」のエラーではなく「ビルド(コンパイル)」のエラーですね。 ソースコードが間違って、コンパイルができない、ということです。 まずは、エラーメッセージが示す箇所に間違いがないか確認しましょう。 質問に載せているのは、step_test2.cの一部ですよね? 52行目とか77行目とか無いですから。 何が原因か、エラーメッセージに書いてあります > ";" expected 「;」を期待してる、けど無い、ということです。 単純な入力ミスの場合が多いです。 > undefined variable: "pic_init" pic_initという変数は未定義、ということです。 本当に定義されていないこともありますが、名前の有効範囲違いとかもあります。 「static void pic_init();」とあるので、これがエラー発生箇所では無効になっているようです。 ただ、複数エラーがある場合、最初のエラーが原因でうしろの整合性が取れなくなっていることがあります。 この場合、最初のエラーを直せば後のエラーも消えます。 とりあえずは、順番にやってみましょう

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

かっこが....

関連するQ&A