ATMEGA16設定でWDT

W

Wafeeq

Guest
こんにちはすべて、私はATMEGA16でウォッチドッグタイマを使用したい。私は、その作業手順を知りたい、どのようにそれを設定することも私を助けてください。私は1MHz内部クリスタルを使用しています。
 
あなたはどちらのコンパイラを使用していますか?アレックス
 
ウォッチドッグタイマがあなたはタイマーを使用してタブ内のウォッチドッグのクロックプリスケーラ(分周比)を設定することができcodewizardは1 MHzで動作する独立したチップ上の発振器からクロック駆動され、それが最後のタブでは、コードを取得[コード]のような/ /ウォッチドッグタイマの初期化/ /ウォッチドッグタイマプリスケーラ:OSC/32kの#pragma OPTSIZE-WDTCR = 0×19; WDTCR = 0x09の、#ifdefを_OPTIMIZE_SIZE_の#pragma OPTSIZE +#endifの[/CODE]次に、呼び出す必要が #のasm( "WDR")を独自に作成したコードからのデータシートの33ページにある表があります定期的にウォッチをリセットするには http://www.atmel.com/atmel/acrobat/doc2466.pdf [ / URL]周係数アレックスに応じてタイムアウト時間を説明
 
WDTの主な機能は、ISであることをコントローラのハングアップ、または停止は、WDTは、私がいることは、#ASMを使用する( "WDR")しかし、このINSTUCATIONは何を意味FOR EVERの再起動マイクロコントローラをWDT USEコントローラがリセットされるとき
 
それは叫びに相当しますので、まず第一には、大文字を使用していない...はいドッグの目的は、コード実行(リーザMCU)何か問題が発生した場合は、いくつかの点で立ち往生コード実行を再開することです。通常の操作では、#のasm( "WDR")リセット、ウォッチドッグカウンタと再起動回数、タイムアウト前にウォッチドッグタイマをリセットします。アレックス
 
申し訳ありませんが:)を叫ぶために、私の考えでは、iはWDTを使用するための最良の方法は、任意のタイマの割り込みオーバーフローでそれを使用します(0または1)とWDTより短い時間にタイマーを調整することであると(割り込みで#asmを考えるをリセットウォッチドッグカウンタに "WDR")は、大規模なコードの中であなたは永遠に#のasm( "WDR")する必要があるため、
 
何かは、アプリケーションのメインループと、特定の行のコードstucksに間違っているどこで、どのようにあなたはケースを克服するのだろうか?あなたはまだタイマー割り込みを取得するには、ウォッチドッグ·リセットを実行し、その後、このような状況から抜け出すために、任意の機会がないまま、同じstucked行に戻ります。アレックス
 
あなたの意見でWDTを使用する最善の方法は何ですか?外部WDTを使用するのが最善ですが、私が思うに、私たちが必要とシステムがこの袋に入れて再起動されないようにシステムがハングアップするが、この場合のWDTリセットはそれがうまくいかない場合
 
私はドッグを必要な重要な設計を行っていないが、私は適切な考慮する唯一の場所はメインループではなく、割り込み内である。ループの実行時間が厳しいとは、max予想実行時間に応じて、ウォッチドッグを設定できるように計算する必要があり、この実行時間枠を超えている場合、MCUはウォッチドッグによってリセットされます。アレックス
 

Welcome to EDABoard.com

Sponsor

Back
Top