So-net無料ブログ作成
検索選択

CTC の PWM 動いた! [AVR]

最初はチンプンカンプンだっがけど tccr0a と tccr0b のビットを
表を見ながら設定すればよいことがわかった。
com0a1,com0a0 のビットを 01にする必要があったのが
わからずにハマってしまったが動いたので感無量。

.include "m168def.inc"
                                
.org 	0x0000		JMP	RESET 	;各種リセット

reset:		ldi r16, low(ramend)
			out spl, r16
			ldi r16, high(ramend)
			out sph, r16

			ldi r16, 0xff
			out ddrd, r16

main:		cli

			; set tccr0a
			; standard port, CTC mode
			ldi r16, 0<<com0a1 | 1<<com0a0 | 1<<wgm01 | 0<<wgm00

			out tccr0a, r16

			; set tccr0b
			; CTC mode, prescaler(010)=clk/1
			ldi r16, 0<<wgm02 | 0<<cs02 | 1<<cs01 | 0<<cs00
			out tccr0b, r16
			
			ldi r16, 0x00
			out tcnt0 ,r16	; counter init val = 0
			
			ldi r16, 0x30	; top value
			out ocr0a, r16

			sei

main01:
			rjmp main01

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この記事のトラックバックURL: