初めてのRX220マイコン
48ピンのRX220マイコンでちょいと工作中。
ツールはE1エミュレータにHEWを利用。
初めてのチップを使う時、あれやこれやら慣れるまでが
たいへん。
で、プログラムの肝をメモ。 (RX210でも同じようなことが)
●I/Oイニシャルでの注意点
・クロックやらの重要レジスタを触る時は
プロテクトレジスタ:PRCRの操作が必須。
SYSTEM.PRCR.WORD=0xA503; // プロテクト一時解除
・ポートの機能を切り替える(単純入出力から周辺内蔵I/O端子が
使えるように)ときは、PFSレジスタ書き込み許可をオンにしな
いといけない。
MPC.PWPR.BIT.B0WI=0; // B0WIを0にしてから
MPC.PWPR.BIT.PFSWE=1; // PFS変更可に
・タイマーやシリアル、A/Dを使うときはモジュールストップ
を解除しなければならない。
SYSTEM.MSTPCRA.BIT.MSTPA9=0; // MTU0
SYSTEM.MSTPCRA.BIT.MSTPA17=0; // A/D
SYSTEM.MSTPCRB.BIT.MSTPB26=0; // SCI5
SYSTEM.MSTPCRB.BIT.MSTPB30=0; // SCI1
これらをしておかないと、周辺I/Oのイニシャルができません。
RX210マイコンでも同様。
タイマーやらA/Dが動かないな~っという時は、これらを
思い出してください。
※追記
例えばMTU0で1mSタイマー割込みを得て、確認のために
500Hz方形波をポートに出したい時。(クロックは16MHzで)
こんな具合に書きます。
(フォントで文字ずれが出ますが)
// タイマー0, 1ms割込み
MTU0.TCR.BYTE = b01000010;
// |||||+++-------- TPSC 1/16 1MHz
// |||++----------- CKEG ↑エッジ
// +++------------- CCLR TGRBコンペアマッチ
MTU0.TIORH.BYTE = b00110000;
// ++++------- MTIOC0B トグル
MTU0.TGRB = 1000-1; // 1kHz PA1には500Hz出力
MTU.TSTR.BIT.CST0 = 1; // タイマー0開始
MPC.PA1PFS.BYTE = 0x01; // PA1:MTIOC0B ★1
PORTA.PMR.BIT.B1 = 1; // PA1周辺機能 ★2
MTU0.TIER.BIT.TGIEB = 1; // TGRB割込み許可
IPR(MTU0, TGIB0) = 0x0F; // プライオリティ ★3
IEN(MTU0, TGIB0) = 1; // 割り込み ★4
PA1に500Hz方形波を出すにはMTU0をイニシャルするだけ
ではだめで、★1、2の処理が必要です。
また、タイマー割込みも、★3、4のように割込みレジスタを
操作しなくちゃなりません。
慣れるまでは、なかなか言うことをきいてくれないマイコンチップです。
| 固定リンク
「電子回路工作」カテゴリの記事
- トラ技2024年10月号に「加熱完了報知回路」(2024.09.08)
- 穴を残しておきたいのでハンダしたくない(2024.09.04)
- ひさしぶりのバージョンアップ:チャートレコーダ(2024.07.02)
- 磁石にくっつく電線(2024.06.11)
- AVRマイコンAT90S1200を使ったデジタル時計(2024.06.02)
コメント