AKI H8-3069ネット対応マイコンでWDTインターバルタイマ割り込みを使う方法の記事を昨日書きました。
日付が変わったので、今日は全プログラムを惜しげもなく(笑)公開します。
ヤフー検索しても出ていないので、ここだけの記事だと思います。(WDTでインターバルタイマ割り込みを使う人が私だけなのかも…)
フォルダ
Cドライブ直下に3069_2という作業フォルダを作って、ram3068.xとramcrt0.Sを付属のCDからコピーしています。
o,coff,motファイルはmakeを.実行すると出来るファイルです。
プログラム
.h8300h _wait: _permit_irq: _prohibit_irq:
|
ccrを操作しなくても動いたのでh8s.sは必要なさそうですが一応載せておきます。
typedef union { /* WDT TCSR Byte Read Address*/ #define RSTCSR (*(volatile unsigned char *)0xffff8f)
|
led.cに入れても良かったのですが煩雑になりそうなので分けました。
#include <h8/reg3067.h> #define IRQ0 12 /* IRQ0割り込みベクタ番号 */ //============================================================ void initWatchdogTimerINT(int intervalIndex) void startWatchdogTimer(void) void irq0(void){ unsigned int c; void wdtINT(void){ int main(void){ int_regist(IRQ0, irq0); if(int_regist(IRQ0, irq0)!=0){ if(int_regist(WOVI, wdtINT)!=0){ printf("TCSR=%0x\n", TCSR); return 0;
|
メインプログラムです。
irq0割り込みとP60でLEDを点滅させている部分は無くてもOKです。
TARGET = led.mot CFLAGS = -O -mh -mint32 LDSCRIPT = ram3068.x all : $(TARGET)
write: clean :
|
ASM=h8s.sの行は無くてもOKです。
実行手順
コマンドプロンプトを起動して、C:\3069_2に移動
makeとmake writeを実行
TeraTeamを起動してH8マイコンをリセット
H8/OSのプロンプトが表示されるので「exec ffde40」を実行
WDTインターバルタイマ割り込みが掛かる度にCがインクリメントされているのがわかります。
以上でWDTインターバルタイマ割り込みの記事は終わりです。
WDTインターバルタイマをAM2302(温湿度センサー)の読み込みに利用しようと思っていたのですが16ビットタイマの方がCPUクロックを分周無しで使えそうなので次回からは16ビットタイマを使ってみます。
以上、ご利用下さい。(。・ω・)ノ゙