送信できたんだけど・・・「movfw」??
2011-06-19
シリアル通信の送信側完成・・・と結果は爽快なんですが、またしても紆余曲折有りまくりでした
シリアル通信用のポートの初期設定として、TX側も「入力」にする必要があることを、事前にどこかのサイトで知っていたにも関わらず、結局この「罠」にもはまっていたのですが、それよりも「movfw」の怪
レジスタファイルとWレジの間のやり取りでは、「movf」と「movwf」を使いますが、丁度シリアル送信でTXREGに送信データを書き込む部分の命令を書き違え、「movfw」とあり得ない命令を書いていたんです・・・。これ、エラーにもならずすんなりアセンブルできるんで、なかなか原因究明に至らず、結局デバッガ(PC上)で始末
随分と無駄な時間を費やしてしまいました。その上、またもPICが焼けない病が顕在化し、PC裏のコネクタを接続し直したら何とか元通り。接触不良だったのかなぁ
まぁ、それでも元気よくPCのターミナルに文字列が出力されたときには、少々ホッとしました。途中、All Asianを覗いて、ロシアの記念局+グアムとQSO、夕方から東欧を「冷やかし呼び」したり・・・。そうそう、KX-1大活躍でもありました。15mbも流石にSSNにつられてコンディションが上がってきていますね。ひょろひょろLWでも、まぁステルス君程度の範囲なら何とかなりそうです。
後は遠隔君・・・カップラの完成を待つばかり・・・なんですが、今日の調子じゃぁまだまだかかりそうです

シリアル通信用のポートの初期設定として、TX側も「入力」にする必要があることを、事前にどこかのサイトで知っていたにも関わらず、結局この「罠」にもはまっていたのですが、それよりも「movfw」の怪

レジスタファイルとWレジの間のやり取りでは、「movf」と「movwf」を使いますが、丁度シリアル送信でTXREGに送信データを書き込む部分の命令を書き違え、「movfw」とあり得ない命令を書いていたんです・・・。これ、エラーにもならずすんなりアセンブルできるんで、なかなか原因究明に至らず、結局デバッガ(PC上)で始末


まぁ、それでも元気よくPCのターミナルに文字列が出力されたときには、少々ホッとしました。途中、All Asianを覗いて、ロシアの記念局+グアムとQSO、夕方から東欧を「冷やかし呼び」したり・・・。そうそう、KX-1大活躍でもありました。15mbも流石にSSNにつられてコンディションが上がってきていますね。ひょろひょろLWでも、まぁステルス君程度の範囲なら何とかなりそうです。
後は遠隔君・・・カップラの完成を待つばかり・・・なんですが、今日の調子じゃぁまだまだかかりそうです

- 関連記事
-
- PICkit3で焼けた(^^)v
- PICkit3をGet!
- 送信できたんだけど・・・「movfw」??
- 受信できたぞ!!
- でけた~♪PIC実験基板!!
コメントの投稿
No title
随分と古い記事にコメントして申し訳ないですが、
MOVF f, d
がPIC1Xの命令ですが、
MOVFW f
はある種のマクロとして働き、
MOVF f, 0
にアセンブルされます。
このことについてはMPLABのヘルプの中の「12-Bit/14-Bit Instruction Width Pseudo-Instructions」に載っています。どうやらこの書き方は推奨されていないようですね。MOVFWのほうがわかりやすいんですけどね
MOVF f, d
がPIC1Xの命令ですが、
MOVFW f
はある種のマクロとして働き、
MOVF f, 0
にアセンブルされます。
このことについてはMPLABのヘルプの中の「12-Bit/14-Bit Instruction Width Pseudo-Instructions」に載っています。どうやらこの書き方は推奨されていないようですね。MOVFWのほうがわかりやすいんですけどね
コメントありがとうございます。
cocoaさん、拙い記事を読んで下さり、ありがとうございます。
去年のGW前にblogの引っ越しをしてから、初めてコメントを頂きました。
確かに、ご指摘の通り、マクロのような扱いですね・・・本当にちょっと紛らわしいです(^^;
結局、エディタに予約語としてPIC16系の命令セットを入れて太字表示するようにし、「movfw」だけは外すという芸当で「自己回避」しています。
去年のGW前にblogの引っ越しをしてから、初めてコメントを頂きました。
確かに、ご指摘の通り、マクロのような扱いですね・・・本当にちょっと紛らわしいです(^^;
結局、エディタに予約語としてPIC16系の命令セットを入れて太字表示するようにし、「movfw」だけは外すという芸当で「自己回避」しています。