日々の記録

ほどよく書いてきます。

マイコンメモ

2013年01月05日 12時21分25秒 | その他雑記
AVRマイコンでレジスタ周りの設定をいろいろ調べたことについてのメモ。
マイコンはATTiny2313
赤外線リモコン用の点滅サイクル生成をTimer0を使って行いたい。

38kHz Duty1/3の信号を出すために、Timer0を使う。
・OCR0Aで38kHzを決める
・OCR0BでDuty1/3を決める
・出力はOC0B(PD5)

ただ、疑問点があって、Atmel StudioのマイコンシミュレータはOCR0Bの設定をしてもTimer0が1回回ってきてからやっとOCR0Bレジスタが更新されるような感じ。


DDRD = 0xF3; // ポートDを1111 0011 #2,3だけ入力設定
PORTD = 0x0C; // 0000 1100 #2,3だけ内部プルアップ設定

TCCR0A = 0x23; // 0011 0011 高速PWMモード (cpmB=OC0B)
TCCR0B = 0b00001001; // 0000 1010 1/8 ,Top=OC0A

TCNT0 = 0; // タイマ0の初期値

OCR0A=122; // 周期 1kHz
OCR0B=96;

ref:http://www9.plala.or.jp/fsson/NewHP_elc/AVR/Avr_Tmr0PWM.html
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする