H8/3052Fでインプットキャプチャ

ITU.TSTR.BIT.STR0 = 0; /* ITUタイマー停止 */
ITU.TSNC.BIT.SYNC0 = 0; /* ITUの同期停止 */
ITU.TMDR.BIT.PWM0 = 0; /* ITUのPWM機能停止 */
ITU.TOCR.BYTE = 0xff; /* 外部トリガ禁止 */
ITU0.TCR.BYTE = 0x83; /*タイマーコントロール。分周比の設定(クロック/8で動作) */
ITU0.TIOR.BYTE = 0xff; /* 両エッジ(立ち上がり、立ち下がり)で割り込みを発生させる */
ITU0.TIER.BIT.IMIEA = 1; /* 割り込み制御(許可/禁止) */
ITU0.TSR.BYTE = 0x00; /* フラグの初期化 */
ITU0.TCNT = 0x00;
ITU0.GRA = 0;
ITU.TSTR.BIT.STR0 = 1; /* ITUスタート */

今日は、研究室でH8/3052Fでインプットキャプチャによる割り込みをやった。とあるネットのプログラムを参考に、自分なりの理解をするためにコメントを付けてみた。やっぱり、3664のタイマーAとかVとかWよりも、3053等に搭載されているITUの方が自分としては使いやすい気がする。上記のプログラムは、特定ポートにおいて、立ち上がり(0Vが5V)になったら割り込みを発生させ、また5Vが0Vになっても割り込みを発生させる両エッジでのインプットキャプチャして割り込みを行うプログラム。H8/3664Fのhtermでは手こずってたけど、HEWがあるので割り込み処理の記述がしやすい。応用例は、通信関係とかそんな感じ。ちなみに、端子開放状態だと訳の分からないタイミングで割り込みが入る(開放しているから当たり前)。ちゃんと、抵抗を10kオームなり使ってプルダウンしておくこと。

今日は体調が悪かったので、インプットキャプチャをやって家に帰って爆睡してさっき起きた。
学校内で(学生はうちの学校の人だけど、学校は違った)バイオハザード的な事件が起きてゾンビが襲ってくるというありがちな展開の夢を見た。で、武器を持って生き残りを集めたのはお約束。結果的に勝ったような気がする。