PIC16F1933のタイマー2で1秒を数えたいのですが
PR2とT2CONの値はどうすればいいでしょうか。
コンパイラXC8
このサイトにたどり着きましたが
T2CON=00000011
PR2=192
で大丈夫でしょうか。
この場合何回タイマー2の割り込みが発生すれば1秒でしょうか
できれば計算上は極力1秒に近づけたいです。
http://jh7ubc.web.fc2.com/pic/PIC16F883_Frequenc …
TMR2の初期値は、256-(200000-(256*781))=192
12.8MHzの高精度クロック入力です。
No.2ベストアンサー
- 回答日時:
PR2を192にするというのはどこから出た値でしょうか。
そのサイトではPR2は0のまま、TMR2の初期値で誤差を調整しているようですが。
PR2を設定するなら250などの10進で切りの良い値にすれば誤差を出さずに1秒の整数分の1の割り込み周期にできると思います。
プリスケーラー1:64、ポストスケーラー1:10、PR2が250とかでよいのではないでしょうか。
12.8M/4/64/250/10=20
から、20回の割り込みで正しく1秒になると思います。
No.1
- 回答日時:
整数の割り算ではどうやってもぴったりにできない場合は、閏年のようなことで調整するしかないんじゃないですか?
そのサイトにあるTMR2関係のくだりのところに、200000/256=781.25回ですとの記述がありますよね。ってことは毎秒0.25回の端数があるので、4秒ごとに割り込みが1回余分にかかる(1/781秒進む)わけです。であれば、3秒間は普通に割り込みを781回数えたら1秒とするが、次の1秒だけは782回で1秒とすれば、端数が打ち消せることになります。
4秒ごとに一瞬だけ周期がズレますけど、端数が累積して気付いたときにはとんでもなくズレてた…なんてことは防げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スーパーのレジで並んでいたら...
-
割り込み処理について
-
特殊なパターンの人見知りに悩...
-
PICのI2C通信を行っているとき...
-
Macターミナルで実行中のプログ...
-
バックグラウンドのプロセスの...
-
緯度、経度の 10進法と 60進法...
-
VBSの処理中一旦処理を止めて再...
-
コンソールアプリケーションの...
-
ソケットとそれに基づくストリ...
-
VBAの配列サイズとメモリに関して
-
【MFC】イベントの無効化について
-
TCP/IP通信時のサーバーからの受信
-
ADOでアクセスのレコードに...
-
explorer.exeが異様にメモリを食う
-
プロダクションコードとは?
-
C# シリアル通信でデータ受信...
-
【C言語】再帰が時間がかかる...
-
SQLの速度をあげるには・・・
-
ファイルマッピング関数で失敗
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
電車で待機列の割り込みについ...
-
スーパーのレジで並んでいたら...
-
USJでの割り込み
-
pic 複数の割り込み関数 切り分...
-
一定時間操作がなかったら、と...
-
Amazonfireタブレットにわから...
-
【組込み】割り込み中のstatic...
-
VB6でSendKeyを利用したTab移動...
-
CPU負荷率の安全な上限と計...
-
マイコンSH-2の割り込みを用い...
-
Excelでタイマーの一時停止する...
-
割り込み中に例外異常
-
CPUの処理量を減らすコーデ...
-
このレジの並び方は間違ってま...
-
PICのPIN変化割り込みに...
-
STATUSのZフラグについて
-
駅のトイレでナイチンに邪魔さ...
-
電車乗車時、並んでいるのに割...
-
PICマイコンでエンコーダパルス...
-
割り込み処理のシミュレート
おすすめ情報