Maple Mini ウォッチドッグタイマー
Maple-mini でウォッチドッグタイマーを使う際のメモ
#include<libmaple/iwdg.h>
void iwdg_init(iwdg_prescaler prescaler, uint16 reload)
void iwdg_feed(void)
Arduino環境でavrとは異なるので、調べるのに手間取りました。
日本語の資料が少なかったので、メモ。
ウオッチドッグタイマーは勿論存在して、動きました。
iwdt 独立型ウォッチタイマーとなっていますが、私のようなホビー用途では、単にウォッチドッグタイマーと言えばこれのことです。
基本的にはMaple IDEと同じなので、
http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/0.0.12/libmaple/api/iwdg.html
使い方はこれのままです。
以上が本題です。
そしてこれを使うことになった理由ですが、MAX7219とSerial2系統を同時に使っていると、コンフリクトしてメインループが止まってしまう事があったためです。
(でもタイマー割り込みの呼び出しルーチンは生きていました。)
根本的な解決にはならないのですが、リセットで急場はしのげるのでウォッチドッグタイマーへ逃げることにしました。
#include<libmaple/iwdg.h>
void iwdg_init(iwdg_prescaler prescaler, uint16 reload)
void iwdg_feed(void)
Arduino環境でavrとは異なるので、調べるのに手間取りました。
日本語の資料が少なかったので、メモ。
ウオッチドッグタイマーは勿論存在して、動きました。
iwdt 独立型ウォッチタイマーとなっていますが、私のようなホビー用途では、単にウォッチドッグタイマーと言えばこれのことです。
基本的にはMaple IDEと同じなので、
http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/0.0.12/libmaple/api/iwdg.html
使い方はこれのままです。
以上が本題です。
そしてこれを使うことになった理由ですが、MAX7219とSerial2系統を同時に使っていると、コンフリクトしてメインループが止まってしまう事があったためです。
(でもタイマー割り込みの呼び出しルーチンは生きていました。)
根本的な解決にはならないのですが、リセットで急場はしのげるのでウォッチドッグタイマーへ逃げることにしました。