avr-libc
2.0.0
Standard C library for AVR-GCC
|
AVR Libc Home Page |
AVR Libc Development Pages |
||||
Main Page |
User Manual |
Library Reference |
FAQ |
Example Projects |
マクロ | |
#define | wdt_reset() __asm__ __volatile__ ("wdr") |
#define | WDTO_15MS 0 |
#define | WDTO_30MS 1 |
#define | WDTO_60MS 2 |
#define | WDTO_120MS 3 |
#define | WDTO_250MS 4 |
#define | WDTO_500MS 5 |
#define | WDTO_1S 6 |
#define | WDTO_2S 7 |
#define | WDTO_4S 8 |
#define | WDTO_8S 9 |
関数 | |
static __inline__ | __attribute__ ((__always_inline__)) void wdt_enable(const uint8_t value) |
このヘッダファイルは、多くのAVRデバイス内のウォッチドッグタイマーを操作するインラインマクロのインタフェースを宣言しています。ウォッチドックタイマーの設定が、クラッシュしたアプリケーションにより誤って変更されるのを防ぐため、設定を変更するためには特別は手順が必要になります。このヘッダファイルに含まれるマクロは、値を変更する前に必要な手順を自動的に処理します。操作中は、割込みが無効になります。
新しいデバイス(ATmega88以降の割込み生成をオプションで有効にできるAVR)では、ウォッチドッグタイマーが(電源投入の状態と関係なく)システムリセット後も有効であり、最も速いプリスケーラ値(約15ms)であることに注意してください。そのため、プログラムの起動時にウォッチドッグを早期にオフにする必要があり、データシートでは次の手順を推奨しています。
mcusr_mirror
にMCUSRの値を保存するのは、アプリケーションが後でリセット源を調べたいときのみです。特に、ウォッチドッグを無効にする前に、ウォッチドッグリセットフラグをクリアすることをデータシートで要求されています。
#define wdt_reset | ( | ) | __asm__ __volatile__ ("wdr") |
ウォッチドッグタイマーのリセット。 ウォッチドッグタイマーが有効の時、タイマーの期限前にこの操作が呼び出されなければいけません。さもないと、ウォッチドッグによりデバイスがリセットされます。
#define WDTO_120MS 3 |
WDTO_15MS
を参照
#define WDTO_15MS 0 |
ウォッチドッグタイムアウトのためのシンボリック定数。ウォッチドッグタイマーは、フリーランのRC発振器に基づくため、時間は概算になり、供給電源が5Vのときの値です。そのため、低い電圧では時間が増加します。新しいデバイス(例えば ATmega128、 ATmega8)ではわずかな変化ですが、古いデバイスにでは、Vcc = 3V 動作時の時間は3倍くらい長くなります。
設定できるタイムアウト値は次の通りです。15 ms、 30 ms、 60 ms、 120 ms、 250 ms、 500 ms、 1 s、 2 s (いくつかのデバイスでは、4s と 8s も可能)。シンボリック定数は、接頭辞が WDTO_
で、その後に時間が続きます。
約500 msのウォッチドッグタイマを選択する例:
#define WDTO_1S 6 |
WDTO_15MS
を参照
#define WDTO_250MS 4 |
WDTO_15MS
を参照
#define WDTO_2S 7 |
WDTO_15MS
を参照
#define WDTO_30MS 1 |
WDTO_15MS
を参照
#define WDTO_4S 8 |
WDTO_15MS
を参照。 注意:つぎのデバイスでのみ使用できます。ATtiny2313, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATmega48, ATmega88, ATmega168, ATmega48P, ATmega88P, ATmega168P, ATmega328P, ATmega164P, ATmega324P, ATmega644P, ATmega644, ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega8HVA, ATmega16HVA, ATmega32HVB, ATmega406, ATmega1284P, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, AT90PWM161, AT90USB82, AT90USB162, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATtiny48, ATtiny88.
#define WDTO_500MS 5 |
WDTO_15MS
を参照
#define WDTO_60MS 2 |
WDTO_15MS
を参照
#define WDTO_8S 9 |
WDTO_15MS
を参照。 注意:つぎのデバイスでのみ使用できます。 ATtiny2313, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATmega48, ATmega48A, ATmega48PA, ATmega88, ATmega168, ATmega48P, ATmega88P, ATmega168P, ATmega328P, ATmega164P, ATmega324P, ATmega644P, ATmega644, ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega8HVA, ATmega16HVA, ATmega32HVB, ATmega406, ATmega1284P, ATmega2564RFR2, ATmega256RFR2, ATmega1284RFR2, ATmega128RFR2, ATmega644RFR2, ATmega64RFR2 AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, AT90PWM161, AT90USB82, AT90USB162, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATtiny48, ATtiny88, ATxmega16a4u, ATxmega32a4u, ATxmega16c4, ATxmega32c4, ATxmega128c3, ATxmega192c3, ATxmega256c3.
|
static |
タイムアウト
の期限を設定し、ウォッチドッグタイマを有効にします。(WDP0
からWDP2
ビットを結合しWDTCR
レジスタへ書き込みます。WDTCSR
レジスタを持つデバイスには、WDP0
からWDP3
ビットを結合して使用します。)
WDTO_15MS
などのシンボリック定数を参照ください。