07-注:LPC1788-ウォッチドッグ

アウトライン

ウォッチドッグタイマの使用は、マイクロコントローラがエラー状態に入った後、一定時間内でリセットされます。ウォッチドッグを有効にすると、
ユーザプログラムは、所定の時間内に「犬を養う」(またはリロード)しない場合は、ウォッチドッグ・イベントを生成します。ウォッチドッグイベント
(そうするように構成されている場合)チップリセットが生じ。

プロパティ

プロパティ
プログラム可能なタイムアウト期間内にないリロード場合、リセットがオンチップで生成されます。
必要最小限のタイムアウト期間と最大タイムアウト期間の間に窓任意リロード動作は、二つのタイムアウト期間であり、発生します
これは、プログラム可能です。
オプションのアラーム割り込みは、プログラム可能なウォッチドッグ・タイムアウト前の時点で発生することができます。
プログラム可能なプリスケーラは、内部タイマー24で固定します。
ウォッチドッグタイムアウト期間は、ウォッチドッグタイマの4倍の数の所望のタイミングを選択することができる:1024ウォッチドッグタイマ
億67上のウォッチドッグクロック(T WDCLK×2 24×4)〜(T WDCLK 256×4回)。
「安全な」、ウォッチドッグ操作。ウォッチドッグが有効にすると、請求ウォッチドッグリセットまたはハードウェアリセット禁止。
ウォッチドッグ発振器は専用チップ内の信頼性の高いクロック・ソースを提供し、ウォッチドッグ・タイマ・クロックのソースが実行されています
閉じることができません。
ウォッチドッグが有効になっている場合は、エラーフィードシーケンスが即時ウォッチドッグリセットにつながります。
リロード値のみが到達するまでの時間を「アラーム割り込み」の後に変更することができるように、、ウォッチドッグリロード値を保護するために選択することができます。
兆候のウォッチドッグリセット。

説明

図4は、ウォッチドッグ固定プリスケーラを含み、24ビットカウンタを分割します。カウンタはクロックさのカウントをデクリメント
ナンバー。カウンタは、最小値が0xFFで減少し始めます。値が0xFF未満の場合、0xFFのシステムは、メーターをロードします
デバイスの数。したがって、両方の最小ウォッチドッグインターバル(T WDCLKが256×4回)、最大ウォッチドッグインターバル(T WDCLK×2 24×4)、
これは、(T WDCLK×4)倍です。ウォッチドッグは、以下の方法に従って使用する必要があります。
登録WDTCウォッチドッグタイマに設定された負荷値を固定し、
動作モードレジスタWDMODに設定ウォッチドッグタイマ;
所望のウィンドウ演算の場合、WDWINDOWウィンドウウォッチドッグ時間値内に設けられたレジスタと
アラームは割り込みが必要な場合は、ウォッチドッグ・警報設定値は、割り込みレジスタWDWARNINT。
ウォッチドッグを有効にするには、レジスタ0x55のと0xAAを順番に書き込むことによってWDFEED。
ウォッチドッグ・イベントを防ぐためにそれはウォッチドッグカウンタでゼロに到達する前に、ウォッチドッグが再び供給されなければなりません。もし
ウォッチドッグ・ウィンドウ値が設定されている、犬はまた再びウォッチドッグカウンタ値の後に通過しなければならないフィード。
ウォッチドッグタイムアウトを判断するためのフラグ(WDTOF)を確認することができる ウォッチドッグリセット条件が発生した場合にセット。WDTOFフラグはソフトウェアでクリアする必要があります。

DOGウォッチドッグ・レジスタ(WDFEED - 0x4000の0008)
これは0xAAを登録ライティング、そしてWDTCは0x55ウォッチドッグタイマのリロードの値を書き込みます。設定した場合
優れたウォッチドッグ・オーバーフローモードを設定し、オペレーティングウォッチドッグが実行を開始します。WDMODのWDENビットの後、
彼らはまた、有効なフィード・シーケンスを完了する必要があり、その後、ウォッチドッグリセットを生成します。
ウォッチドッグの前に実際に始めました。ウォッチドッグは、 犬のエラーを無視します
ウォッチドッグ起動後、書き込み後の次の操作がWDFEEDに0xAAを登録する場合
登録には0x55を書くよりWDFEEDが、任意のレジスタのウォッチドッグへのアクセス、それは/即時リセットが発生します
中断。フィードシーケンスでは、ウォッチドッグ・レジスタ後のPCLKサイクルのうちの第2のリセット間違ったアクセスを生成します。
フィードのシーケンス処理では割り込みを無効にする必要があります。中断は、供給シーケンス中に発生した場合、それはサスペンションのバーを生成します
件。
/*  关中断 */
LPC_WDT->FEED = 0xAA;  /*  喂狗 [1] */
LPC_WDT->FEED = 0x55;
/*  开中断 */
4
 
1
/ *無効化は、* /中断します
2
LPC_WDT - > FEED  =  0xAAを ;   / * DOG [1] * /
3
LPC_WDT - > FEED  =  0x55を ;
4
/ *オープン割り込み* /

WDT割り込み

NVICのウォッチドッグ割り込みチャネル16占有は、割り込みイネーブルレジスタは割り込みイネーブルISER NIVCチャネルを制御するために使用されます。
ISER0 [0] = 1の場合、チャネル16の割り込み、すなわち、ウォッチドッグ割り込みがイネーブルされ、有効になっています。
IPR割り込みプライオリティレジスタは割り込みNIVCチャネルの優先順位を設定するために使用されます。IPR5 [7:3]は、好ましいチャネル16を設定するために使用され
まず、ウォッチドッグ割り込みが優先事項であること
WDT割り込みフラグはゼロにハードウェアリセットにより、ソフトウェアによってクリアすることはできません。
したがって、WDT割り込みが発生した場合、唯一の方法を中断WDTを無効にして返すことができます。

使用例


マイクロコントローラ内のウォッチドッグタイマの使用は、リセットする時間の合理的な期間内にエラー状態に入ります。
ウォッチドッグは、 ユーザプログラムが所定の時間内(すなわち、ウォッチドッグ・タイマ・リロード・タイマ値)は、犬ではない場合、有効になっています
これは、ウォッチドッグ・イベントを作成します。ウォッチドッグイベントは、(準備ができて、あらかじめ設定ならば)デバイスリセットを引き起こします。

図4は、ウォッチドッグタイマプリスケーラを含み、24ビットのカウンタ(カウント)を分割します。
ゲートキーパー ドッグタイマ間隔の最小タイミング(T WDCLKが256×4回) 、 最大タイミング間隔(TWDCLK×2 24×4) 、 2
4 TWDCLK×の倍数は誰

どのように使用するには:
  ウォッチドッグ・タイマ一定のリロード値が登録WDTC。
WDMODウォッチドッグタイマレジスタの動作モードを設定します。
必要なウィンドウタイプの操作した場合、ウォッチドッグ時間値WDWINDOWウィンドウレジスタに設定する必要があります。
必要に応じて、レジスタWDWARNINTウォッチドッグアラームを生成するために提供されなければならないアラーム割り込み
割り込み値。
順次書き込みは0x55と0xAAをWDFEEDによりウォッチドッグレジスタを開始します。
再すべきウォッチドッグタイマに0に減少する前に、ウォッチドッグ・イベントを避けるために - 犬‖を養います。として
プログラムはウィンドウ値を使用して設定されている場合は、ウォッチドッグカウンタがこの値を超えた後に、それがあるべき
再び - 犬‖を養います。

ウォッチドッグ・タイマは、ウォッチドッグリセット時にイベントが発生したときにつながるように設定し、カウンタがゼロの場合、ウォッチドッグイベントされている場合
事態が発生した場合、それはCPUのリセットが発生しますし、外部リセットベクタテーブルから(プログラムカウンタとスタックポインタをロード
同じ条件)。システムは、ウォッチドッグタイムアウトフラグ(WDTOF)をチェックすることにより、ウォッチドッグによってリセットすることができるかどうかを決定します。
WDTOFフラグはソフトウェアでクリアする必要があります。
ウォッチドッグタイマは、アラーム割り込みを発生するように設定されている場合は、ときカウンタレジスタの値WDWARNINTとして
値が一致するように定義されている場合は、割り込みを生成します。
ウォッチドッグ・モード・レジスタ(WDMOD-0x4000の0000)
ビット及びRESETの組み合わせによりウォッチドッグWDENビットの動作を制御するレジスタWDMOD。それはそれを注意すべきです、
WDMODは、任意の変更を有効にする前に、犬は登録する必要がありますフィード。


図4は、ウォッチドッグタイマプリスケーラを含み、24ビットのカウンタ(カウント)を分割します。ダウンカウンタ 最小値が0xFFであります

ウィンドウウォッチドッグリセットにつながります:
間違ったフィード・シーケンスがすぐにウォッチドッグリセットが発生します場合は、ウォッチドッグは、有効になっている場合。
プログラム可能なタイムアウト期間、内部リセットチップでオーバーライドされない場合。
ウィンドウウォッチドッグの動作モード:

ウィンドウウォッチドッグ割り込みをトリガ:
(プログラミングによる)ウォッチドッグ・タイムアウト時間の前に選択的にアラーム割り込みを発生させます。

犬を養うために正しい方法
レジスタが0xAAと0x55のに書き込まれたWDFEED値はWDTCをリロードしますウォッチドッグタイマを有効にします
経由した場合 WDMODまでは、これが開始ウォッチドッグを実行し、ウォッチドッグを登録します

WDWINDOW-ウィンドウウォッチドッグタイマレジスタ(WDWINDOW-0x4000の0018)
WDWINDOW WDTVレジスタは、犬の過程で許容される最大値を決定します。値はWDTVに達しない場合
この最大に先立ち、有効なフィード・シーケンスを完了した、ウォッチドッグ・イベントが発生します。
最大可能WDTV値にリセットされ、従って、このウィンドウの影響を受けないWDWINDOW。

  ウォッチドッグタイマ割り込みアラームレジスタ(WDWARNINT-0x4000の0014)
WDWARNINTレジスタは、ウォッチドッグのカウント値が、ウォッチドッグタイマ割り込みを発生させる決定します。場合は、ウォッチドッグタイマカウンタ
場合は、設定値のWDWARNINTの試合の価値、意志WDCLK後の次のクロック周期で
割り込みを生成します。

ウォッチドッグタイマコンスタントレジスタ(WDTCベース+ -x04)
WDTCレジスタは、ウォッチドッグ・タイマのタイムアウト値を決定します。フィードシーケンスが生成されるたびに、WDTC定数は次のようになります
ウォッチドッグタイマはリロードされます。リセットしたら、それは$ 00の00FFを事前にロードされます。もしは0xFF未満の書き込み
値は、システムがWDTCレジスタ0000の00FFを頂戴いたします。従って最小タイムアウト間隔は、256×4×TWDCLKあります。
WDMOD WDPROTECTビット1を登録した場合は、ウォッチドッグカウンタはWDWARNIN未満であります
WDWINDOWを変更しようとする前にWDTCの値はWDTOFをリードすると、ウォッチドッグリセットフラグが設定されています。

WDTC -----------------------------------------ウィンドウのタイムアウト値 - 初期インストールの値
セグメントDOG、ウォッチドッグリセット
WDWINDOW  後に犬を可能------------------------------ウィンドウ最小、
セグメントDOG、ウォッチドッグ・タイムアウト値のリロード
割り込みを起動した後WDWARNIN --------------------------------ウィンドウの警告値、
セグメントDOG、ウォッチドッグリセット
$ 00の00FF -----------------------------------タイムアウトウォッチドッグトリガ リセットを

DOG時エラーまたはエラー方法、ウィンドウウォッチドッグ原因になります リセットを
WDTVウォッチドッグタイマ値。ウォッチドッグ・タイマ・レジスタは、現在から読み出される 値。
現在のカウント値を読み出すことにより、ウォッチドッグは、それが犬のタイミングか否かが判断されます


WWDT_Init(WDT_TIMEOUT); /*  初始化 WDT */
WWDT_Enable(ENABLE);
WWDT_SetMode(WWDT_RESET_MODE, ENABLE);
WWDT_Start(WDT_TIMEOUT);
WWDT_Feed(); /*  喂狗 */
5
 
1
WWDT_InitWDT_TIMEOUT); / * * / WDTを初期化します
2
WWDT_EnableENABLE)。
3
WWDT_SetModeWWDT_RESET_MODEENABLE)。
4
WWDT_StartWDT_TIMEOUT)。
5
WWDT_Feed(); / * * DOG /























おすすめ

転載: www.cnblogs.com/bog-box/p/LPC1788-WDG.html