2024.1.24
前へ
次へ
ホームページトップへ戻る


PICBASICコンパイラ

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第132回]



●コマンドの動作確認(4)/RD(2)PIC18F4550のレジスタアドレス

前回は/RDコマンドについて説明しました。
/RDコマンドでPICBASICプログラムで使った変数名を指定することでその変数名に割り当てられたPIC18F4550のデータメモリ(データレジスタ)の現在の値を読んで表示することができます。
また/RDコマンドでPIC18F4550のSFR(Special Function Register)の名前を指定することでそのレジスタの値を読んで表示することができます。
/RDコマンドでは上記の機能のほか、Rxx(xxは16進数の00〜FF)を指定することでその値で示されるレジスタアドレスの値を読んで表示することができます。
前回はそのように説明をしました。

今回はそのレジスタアドレスについての説明です。
下はPIC18F4550のSFR(Special Function Register)のレジスタマップです。


[出典]Microchip Technology Inc.「PIC18F2455/2550/4455/4550DataSheet

PIC18F4550の特殊機能レジスタがアドレスF60〜FFFに割り付けられています。
/RDコマンドでは各レジスタ名を指定する代わりにR+16進数2桁を指定することでもその値を読み出すことができます。
その場合には実際のアドレスF60〜FFFの下位2桁を指定することになります。

次はデータメモリ(データレジスタ)です。
下はPIC18F4550のデータメモリ(データレジスタ)マップです。


[出典]Microchip Technology Inc.「PIC18F2455/2550/4455/4550DataSheet

PIC18F4550がアクセスできるメモリアドレスは000〜FFFですがそのうちの800〜F5Fは使われていません。
F60〜FFFは上で説明したSFRです。
ユーザープログラムでデータ用として使用できるメモリ空間は000〜7FFです。
このうち/RDでアクセスできるのは000〜05Fの範囲です。
/RDではSFRと同様にR+下位2桁(00〜5F)が指定可能です。
R60〜RFFを指定すると060〜0FFではなくてSFR(F60〜FFF)が指定されたことになります。

前回も書いたことですがBASICコンパイラを使う普通のユーザーにとってPICのレジスタアドレスはおそらくどうでもよいことだと思います。
しかしPICBASICコンパイラを開発している私自身のためには整理しておくべきことがらです。
そもそも/RDコマンドそのものが一般ユーザー用のコマンドというより開発者用というべきコマンドです。
時折書いておりますように当記事は私自身の備忘録も兼ねておりますので読者様にとってはどーでもよいと思われることでも書き記す場合があります。
その場合でも余りにそっけないメモになってしまっては「なんのことだか全然わからんぞ」とお叱りを受けてしまいますから簡単な説明をつけるようにしております。
限られた時間の中での説明ですから懇切丁寧にというところまではなかなかできません。
そのあたりはお許しいただきますようお願いいたします。

PICBASICコンパイラ[第132回]
2024.1.24 upload

前へ
次へ
ホームページトップへ戻る