- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PICマイコンをアセンブラでAD変換をした時に、、)
PICマイコンをアセンブラでAD変換の結果を出力する方法
このQ&Aのポイント
- PICマイコンの16f88を用いてアセンブラでAD変換の勉強をしています。AD変換した結果をPORTBに出力させるプログラムを作成しましたが、ADRESLのデータを正しく読み込むことができませんでした。
- プログラムを書き変えることでADRESLレジスタの中身を出力できるようになりました。バンクの切り替え前にWレジスタをX_Lレジスタに書き込むことと、バンクの切り替え後にWレジスタをX_Lレジスタに書き込むことで結果が同じになります。
- この方法でプログラムを書き換えると、PORTBにつないだLEDが正しく点灯するようになりました。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> 結果が同じになると思うのですが、、、。 書き込み先と読み込み元が別の場所を指していますので, 結果は同じとなりません. ※以下, RP1は0と仮定 上段のプログラムではRP0をセットしたままMOVしてますので, Bank1のGPR(H'A0~H'FF)のどこかに保存されています. RP0をクリアするとBank0のGPR(H'20~H'7F)がアクセス可能となります. PIC16F88のRAM構成(Register File Map)については データシートの2.2.1章(参考URLのp.15)にて図解されています. X_LをH'70~H'7Fの範囲に確保すれば全バンクから参照可能です.
お礼
回答していただいてありがとう御座います。確かにおっしゃる通りですね。SFRのバンクはいつも気にしていましたが、GPRのバンクは気にしたことがありませんでした。本当に助かりました。また何かあったらよろしくお願いします。