19 |
FM-7 ROM吸出し器の改版(5) |
Arduinoのアクセス法の改善
ArduinoのリファレンスにはdigitalRead()、digitalWrite()という1ピンの入出力しかなく、パラレル入出力が無かったため、過去記事のようなアクセス法を取っていました。検索したところ、ここでパラレル入出力が見つかったため、アクセス法を切り替えることにします。そのためポートアサインを以下のように変更します。


図260.2のピンク色のアサイン表が示すように、アドレスはPORTF, PORTK、データはPORTF、制御信号はパラレルの必要は無いですが、PORTCにアサインし直しました。
上記サイトには、
DDRとPORTレジスタは読み書き両方が可能です。PINレジスタは読み取り専用です。
以下はレジスタを表す変数の名前のリストです。
DDRD: ポートD方向レジスタ
PORTD: ポートDデータレジスタ
PIND: ポートD入力レジスタ(読み取り専用)
とのことですが、実際には
DDRD: ポートD方向レジスタ
PORTD: ポートD出力レジスタ
PIND: ポートD入力レジスタ
となっているようです。DDRにより入出力をビット毎に切り替えられ、0が入力、1が出力となっています。 これがあまり表に出てきていない理由は移植性からのようです。digitalRead()のほうが移植性が高いとのことですが、8回シフトして8bitデータとして使うのは馬鹿げています。
Leave a Comment