- ベストアンサー
PIC初心者の質問:プログラムでエラーが出る
- PIC初心者が作成したプログラムでエラーが出ています。エラーの原因や解決方法を教えてください。
- 質問者はPIC16F84Aを使用して、ポートAの入力に応じてポートBのLEDが点灯するプログラムを作成しました。しかし、MPLAB IDE v8.63でデバッグするとエラーが発生します。
- エラーメッセージは「Symbol not previously defined (CLOSE)」や「Symbol not previously defined (TIMER3)」です。どこが間違っているのか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
PICのことはほとんどわからないのですが・・・ 確かにエラーなしでうまくいきそうなソースに見えます。 もしかして、飛び先のラベルの前にスペースが入っていたり、半角スペースの代わりに全角スペースを使ってしまっていたりしないでしょうか http://mycomputer.cqpub.co.jp/pic004/2009/05/picmplab-ide-42.html http://www006.upp.so-net.ne.jp/picbegin/proj1/p1step70.html
その他の回答 (1)
全然詳しくないですが、見たところ 該当エラーが出るラベルの書き方が、エラーが出てない箇所と比べる 「ラベル名の後が改行されてない」 点が気になります。 「ラベルの後ろは改行すること」のような文法上の規則がありませんか? というか、「理由は後からついてくる」ので、理屈抜きにやってみるのが早道で現実的です。 debug all との関連はわかりませんが、ラベル判定方法が違ってくるのかも知れません。 TIMER1 以下サブルーチンのラベルは全て同様ですが、まだそこまで届いてないから ひっかからないだけで、上のエラーを修正すれば次はひっかかってくるでしょう。 あと本質問には関係ないですが、サブルーチン LOOP1 内3行目が LOOP1 とだけですが GOTO か何か抜けてませんか。
お礼
umamimiさま。 当方の愚問にコメント有難うございます。 「ラベルの後ろは改行」という法則はないようです。 色々とやってみましたが、どうしても改善されません。 何か基本的な所で引っかかってるような気がします。 >あと本質問には関係ないですが、サブルーチン LOOP1 内3行目が LOOP1 とだけですが GOTO か何か抜けてませんか 全くその通りでした(汗、、、) 有難うございました。
お礼
遅くなりましてすみませんでした。 私もそのことは気をつけて再度入力し直したのですが 結果は同じでした。 もっと簡単な数行だけのプログラムでも何故か 「goto 文」で引っかかってしまいます。 参考URLありがとうございます。 また質問させていただきますので、その節はよろしくお願いします。
補足
遅くなりましたが原因がわかりました。 教えていただいたURLの中でテキストエディタの紹介が ありました。 TERA PADというソフトで読み直しましたら 余計なスペースが見つかりました。 ありがとうございました。