No.3ベストアンサー
- 回答日時:
>AVRマイコン活用ブックというのを見ているのですけど、うまくいきません。
というかいきなりTCNT1とか TIFRとかTCCR1Aとか出てきて何のことかと思ってしまいます。説明が悪い本ならほかの本も検討してみるべきでしょう。
>ATmega168の周波数は20MHzで
これは間違いないですか?
外部クロックで20MHz供給される回路が付いているんですね?
「わかるマイコン電子工作AVRマイコン活用ブック」の特製マイコンボード(LED Game for AVR)だと20Mhzでは有りません。マイコンボード名を明かして貰えると問題がないか判断できますが。
>調べてたらTCNT1は16ビットタイマで数え終わるとオーバーフローしてFFFF から0000に戻るということやTCCR1Bはプリスケーラ値を決める。プリスケーラ値は分周で8と64と256と1024の間隔で分周が出来る、 TCCR1B=2なら8ずつ分周するのですかね。0っだたら分周せず、1だったらクロックのまま、3だったら64ずつといった感じですか、というか TCNT1は勝手に数え始めているんですか?
クロックを供給したら(TCCR1B=2)数え始めます。
分周の1/1024とタイマの1/65536で最大クロック8Mhzなら=8000000/1024/65536で最大約8秒まで。クロック20Mhzなら最大約3秒まで数えられますね。
とうとう出来ました。16bitTimerも動かせて、1秒計ることができました。プログラムは
#include <avr/io.h>
#include <stdio.h>
int main(void)
{
TCCR1A = 0;
TCCR1B = 3;
DDRC = 0xff;
DDRB = 0x00;
while(1)
{
while(TCNT1 < 16000);
TCNT1 = 0;
PORTC ^= 0x01;
}
}
です。1秒ごとに点滅するプログラムです。
今回協力いただいて本当にありがとうございました。
No.4
- 回答日時:
動きましたか。
良かったですね。ただ、この方法だと2つ、3つと複数のRCサーボ制御は困難です。
PWMとか割り込みを覚えてくださいね。
とりあえず一個動かすことが目標だったんで今は成功の余韻に浸っております(笑)
また制御が出来ませんという日が来るかもしれませんがそのときはどうかよろしくお願いします。
No.2
- 回答日時:
書籍を紹介したはずですが、購入されましたか?
>TCNT1やTCCR1Aを使うのだろうというのはわかったんですが、どこにどう組み込めばいいのかがわかりませんのでそこらへんを教えてほしいです。
例が載っていたはずですが、それを読まれての質問でしょうか?
>16 bit timerで1秒を計る
たぶん直接1秒毎の割り込みは無理だと思います。それ以下のタイミング(たとえば10ms)で割り込みを発生させて1秒分カウントさせるしかないでしょう。
所で、5/12の「スイッチでサーボ制御」#6のソース提示はしてもらえるんでしょうか?
AVRマイコン活用ブックというのを見ているのですけど、うまくいきません。というかいきなりTCNT1とかTIFRとかTCCR1Aとか出てきて何のことかと思ってしまいます。調べてたらTCNT1は16ビットタイマで数え終わるとオーバーフローしてFFFFから0000に戻るということやTCCR1Bはプリスケーラ値を決める。プリスケーラ値は分周で8と64と256と1024の間隔で分周が出来る、TCCR1B=2なら8ずつ分周するのですかね。0っだたら分周せず、1だったらクロックのまま、3だったら64ずつといった感じですか、というかTCNT1は勝手に数え始めているんですか?
No.1
- 回答日時:
組み込まれていればタイマーではなくリアルタイムクロック(RTC)を使うのが普通ですが、ATMega168ではRTCはオプションのようなのでそれはさておき。
1秒分のクロックを計測した時点で割り込みが発生するようにして割り込みハンドラで明滅を実施する、というのが基本方針になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# win10で、正確な待ち時間の作り方 6 2023/02/14 18:28
- Excel(エクセル) excelvbaでスライドショーを作りたい 2 2023/04/20 14:32
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) VS codeを使って、ラズパイ Picoを動かせる簡単な方法 1 2023/04/27 13:49
- ノートパソコン 現在、fu....さんWindows11proを使用しているのですがエクセルの起動が少し遅く色々試し 7 2023/04/01 10:30
- 工学 エミッタ設置増幅回路で下記の要件を満たす増幅器を設計せよ。 要件は必要要件であり、例えば、少なくとも 1 2022/12/16 10:15
- CPU・メモリ・マザーボード メモリの増設について 6 2022/12/28 06:41
- Excel(エクセル) エクセル終了が遅くなった 7 2022/04/19 12:11
- 英語 下のサイトページと同じ質問なのですが、1人目と2人目の英語圏の回答者さんが違う答えを出しているような 4 2023/05/31 06:09
- モニター・ディスプレイ パソコンの画面の一番下に、一定の間隔で点線が出たり消えたりする 1 2022/07/09 10:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
H8マイコンでのカウントタイマ...
-
シリアル通信のデータ受信につ...
-
0xffffとは?
-
verilog 符号付加減算(最上位...
-
ビットシフトってどんな時使うの?
-
エクセルVBAのIf,Then 構...
-
符号無し整数xを右にnビット回転
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
delph5 ボタンの色を変更するに...
-
8ビットのデータの、先頭ビット...
-
コンピュータ言語とプログラミ...
-
アセンブラのリンカのダウンロ...
-
シーケンス制御についての質問...
-
エンディアンについて。
-
ビットの反転?
-
情報科学の飽和演算、ラップア...
-
03分22秒36のような時間の単位...
-
ビットの取り出し方法
-
ラズパイのgpuの演算部分のみを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PICでパルス数をカウントし、カ...
-
PICでパルス数をカウントする方法
-
C言語によるウェイト
-
Nios II 5.1IDEでの7セグメント...
-
PICでスピードメーターを作...
-
PICの入出力切り替えの時間がプ...
-
組み込みマイコンの誤動作について
-
RTCの通信方法(I2C、S...
-
入力回数のカウントをする方法
-
PICマイコンを使った分解能1μs...
-
SHマイコンについて
-
Z80CPUを用いてステッピングモ...
-
H8マイコンでのカウントタイマ...
-
arduinoで信号間の時間を計測し...
-
16 bit timerで1秒を計る
-
C言語による赤外線受信
-
エクセルVBAのIf,Then 構...
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
ライン数とステップ数の違いは?
おすすめ情報