ぱおぱお さんが書きました:質問②
オシロで測定すると1,060sで60msecほどずれがあります。
タイマーとはこういうものなのですか?
それともCの記述の仕方、または周期の計算がおかしいのでしょうか?
クロック:4MHz
プリスケール:256
(1÷(4MHz÷4(何クロックで1回タイマーが動くか)))×256(プリスケール)×256(タイマーの最大値+1)×16(ソフトウェアでの分周) = 1.048576秒
となるので、こういうものでしょう。
試していませんが、1,000,000÷(256×16)=244.140625なので、
割り込み処理にTMR0に(256-244=)12を加える処理を追加すると、ぴったりにはならないが改善するかもしれません。
ぴったりにするには、クロック周波数と分周比を工夫します。
クロック周波数の工夫?の仕方がわからなかったので
プリスケールを16、分周を245にして誤差を少なくする方法にしてみました。
ぱおぱお さんが書きました:質問③
1秒点灯2秒消灯などもひとつのタイマーでできるのでしょうか?
どう記述すればいいのでしょうか?
例えば変数stateを用意して0で初期化し、1秒ごとに
stateが0 → stateを1に、点灯
stateが1 → stateを2に、消灯
stateが2 → stateを0に、消灯
のようにすればできると思います。[/quote]
実現(記述)できるかはわかりませんがイメージはわかりました。
挑戦してみます。ありがとうございます。