• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PIC16F84Aから16F628Aの変換について)

PIC16F84Aから16F628Aの変換について

このQ&Aのポイント
  • PIC16F84Aから16F628Aへの変換方法について相談があります。
  • 以前問題なく動作していたプログラムを16F628Aで動かそうとしていますが、サブルーチンから抜け出せない問題が発生しています。
  • 割込みは正常に動作しているため、どこに問題があるのかが分からないです。

質問者が選んだベストアンサー

  • ベストアンサー
  • ore100
  • ベストアンサー率54% (34/62)
回答No.1

SFRの中でEEPROM関係のレジスタのバンクが違いますが、 EEPROMは使っていますか? シュミレーションはやってみましたでしょうか。 16f628を使い始めた頃、これで随分と助けられたものですから、 あまり、一言にはならなかったみたいですね。

seve
質問者

お礼

早々のお答え有難うございます。 EEPROMは使用しておりません。 シュミレーションは「あっち・こっち」LED出力してチエックしましたが その結果「ループ」の中から抜け出せないようなのが分かりました。 16F84Aでは問題なくループから抜けて、次の入力待ちになります。 不思議で仕方ありません。 お答え有難うございました。

seve
質問者

補足

汎用RAMの先頭アドレスが違っていたのを直さないの原因でした。 有難うございました。

その他の回答 (1)

  • kaoaru
  • ベストアンサー率33% (42/127)
回答No.2

ソースの「丸投げ」はいけませんね! 少なくとも、「シミュレータ」があるわけですから、「何のためのシミュレータ?」ってことになります。 >LOOP1    NOP           DECFSZ 0CH,1           GOTO LOOP1 このような組み方はあまり望ましくありません。ループは必ずぬけられるようにしておかなければ、あなたのように悩まされることになります。 この内容で「シミュレータ」をつかってつきとめることができないのならば、どのようなプログラムもデバッギングできません。 仮にループが100回だろうと1000回だろうとわからなければ1つづつステップして調べていけば必ず原因がわかります。 ソフトウェアでカウンタがゼロになるチェックが甘すぎるのと、ソフトウエェアでダミーループに頼りすぎているプログラミンであるにもかかわらず「割込み」を使用しているので余計に混乱しているのではないでしょうか? 16F84Aで正常に動いたから・・・でほとんどプログラミング内容の検証はしてない・・・ということが大元の原因であることは想像つきますんで。 いい機会ですので、1つづつステップ実行でよく動作を確認されてください。「他人にデバッグさせる」」ようなマネはしないように!

関連するQ&A