1分間のカウント

E

emkay

Guest
親愛なるすべて。 1分間カウントされる...私はreer以前に私がpiclistコードジェネレータからの分を遅らせる使用する割り込みを使用してpic16f628aでTMR1を使用して、カウンタを持っているか。ここで1分間の遅延のためのコードを[コード]、遅延= 60秒、クロック周波数= 4 MHzの、実際の遅延時間= 60秒=6000万サイクル;エラー= 0%cblockのD1 D2 D3 ENDC Delay1minute、59999994サイクルはMOVLW 0x23のにMOVWF D1 MOVLW 0xCBにMOVWF D2 movlwは0x83のにMOVWF D3 Delay1minute_0 decfszのD1、F後藤2ドルdecfsz d2は、F後藤2ドルdecfsz D3、F後藤Delay1minute_0、1ドルをgoto文2サイクル、復帰[/コード]どのように行う(呼び出しを含む)4サイクルそれは事前にTMR1感謝のために使用できるように、私はこのコードを変更
 
TMR1のレジスタを見つけ、より良いまだC言語を使用して、トラブルの多くが保存されます。
 
こんにちは!最大プリスケーラは8(クロック分周)であるため、4MHzでTMR1とPICのメインオシレータを使用すると、60代は数えることは不可能です。の4MHzとプリスケーラ= 8、TMR1でオーバーフローは以下のとおり、毎524288当社またはaproximattelyごとに0,5秒れます。65536 × 1/fosc/4 Xプリスケーラ65536 × 1US × 8 = 524288私はTMR1の外部で32768Hzのに使う場合発振器、あなたは、毎15秒オーバーフローする(32768 HzのXTALと)TMR1の設定、割り込みを行うと、変数をインクリメントすることができます16秒カウントを(244.141私たちのステップ)を得ることができる。そのような変数が4に達すると、あなたの60秒のタイミングを(そしてこの後に変数を消去する)必要があります。もう一つのアイデアがTMR1入力を供給する低周波数のクロックを使用している、1000Hzを言うことができます。時TMR1 reachs6万この方法は60秒を得る。
 
[引用= rkodaira]あなたがTMR1の外部発振器で32768を使用する場合は、あなたが16秒カウント(244.141のステップ私達を)得ることができる。[/引用]私は疑問を持って....何は、プリスケーラの値(y)でしょう?ここで、我々は、15秒= Y *(4/fosc)* 256 FOSC = 32768Hzの場合....これは、y = 480を与えるている!!
 
サラム、uは任意のアプリケーションのための正確な遅延rkodairaは言ったが、uがクロック使用4MHzのクリスタルのと/ 8プリスケーラを行う場合はその後、uはエラーごとに時間を差し引くことができるとして何が必要な場合。これはこれは私はuを助けてきたウル何を求めるとすることであることを願っています
 

Welcome to EDABoard.com

Sponsor

Back
Top