忍者ブログ
趣味+メモ用のブログです。 GNU/Linux関連、OSS関連情報、調査事項になるでしょうが、何を書くか分かりません。
[62] [61] [60] [59] [58] [56] [55] [54] [53] [52] [51]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

AVRタイマーの続きです。


■ ATTiny2313のタイマーのクロック設定
タイマーカウンタレジスタを増加(減少)するには、内部クロックもしくは外部クロックを使用する。
内部クロックを使用する場合、Nクロック(Nは1/8/64/256/1024を選択可能)で、カウンタレジスタ増加(減少)をするように設定できる。
(下記は、クロック設定)
No. CS02 CS01 CS00 説明
1 0 0 0 タイマー起動なし
2 0 0 1 内部クロックと同期してカウンタレジスタアップ(ダウン)
3 0 1 0 内部クロックの1/8でカウンタレジスタアップ(ダウン)
4 0 1 1 内部クロックの1/64でカウンタレジスタアップ(ダウン)
5 1 0 0 内部クロックの1/256でカウンタレジスタアップ(ダウン)
6 1 0 1 内部クロックの1/1024でカウンタレジスタアップ(ダウン)
7 1 1 0 T0ピンへのクロックで、立ち下がり時にカウンタレジスタアップ(ダウン)
8 1 1 1 T0ピンへのクロックで、立ち上がり時にカウンタレジスタアップ(ダウン)

■ ATTiny2313のタイマーのモード
ATTiny2313では、以下の3x2モードがある。
(下記は、Timer0のレジスター値)
No. WGM02 WGM00 WGM01 モード 説明
1 0 0 0 標準動作(TOPは0xFF) カウンタレジスタ(TCNT0)が+1づつ増えていく。
TCNT0がTOP(0xFF)を超えると、0x00になり、カウンタ溢れ(TOV0)に1を設定する。
オーバーフロー割り込みフラグ(TCNT0)を有効な場合、TCNT0が0xFF->0x00になるタイミングで、TOV0は0になる。
割り込みを一定周期で得たい場合、使用できる。
2 0 1 0 比較一致(CTC)動作(TOPはOCR0A) カウンタレジスタ(TCNT0)が+1づつ増えていく。
TCNT0が、比較レジスタ(OCR0A)と一致した場合、TCNT0が0x00となり、比較一致となる。
動的にOCR0Aを変更することも可能。
タイマーの分解能を微調整したい場合、使用できる。
3 0 1 1 高速PWM動作
(TOPは0xFF)
カウンタ増加動作は、標準と同様。
カウンタレジスタ(TCNT0)が+1づつ増えていく。
TCNT0がTOP(0xFF)を超えると、0x00になる。
TOPが、0xFFであろうと、OCR0Aであろうと、上記動作に変わりはない。
4 1 1 1 高速PWM動作
(TOPはOCR0A)
5 0 0 1 位相基準PWM動作
(TOPは0xFF)
TCNT0は0から、0xFFまでは+1づつ増えていく。
その後、0xFFから、0まで、−1づつ減っていく。
TOPが、0xFFであろうと、OCR0Aであろうと、上記動作に変わりはない。
6 1 0 1 位相基準PWM動作
(TOPはOCR0A)
※ 詳しいくはATTiny2313のデータシートのタイマ/カウンタ0を参照。

■ 参考サイト
・AVR本家のデータシート
 http://www.atmel.com/dyn/products/product_docs.asp?category_id=163&family_id=607&subfamily_id=791&part_id=4661
・AVR.jp
 http://www.avr.jp/
 (個人での非商用利用に限りデータシートを利用可能なサイト)
 (個人で非営利ならリンクダメではないとのことなのでリンクさせてもらいました)
・始める電子回路
 http://www9.plala.or.jp/fsson/NewHP_elc/AVR/Avr_100timrMemo.html






PR


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
フリーエリア
最新コメント
最新トラックバック
プロフィール
HN:
一乗寺 又兵衛
性別:
男性
職業:
コンパイル
趣味:
コンパイル
バーコード
ブログ内検索