タイマー0 / Fast PWMモード / Waveform Generationモード7
pp.522-524
今度はWaveform Generationモード7を試してみる。TOP値をOCR0A
で指定する。したがってWaveform Generator Aは使えなくなる。
; スタックポインタの初期化マクロ .MACRO INITSTACK LDI R20, HIGH(RAMEND) OUT SPH, R20 LDI R20, LOW(RAMEND) OUT SPL, R20 .ENDMACRO INITSTACK ; PD5 (OC0B)からPWM波を出力する。 LDI R20, (1 << PD5) OUT DDRD, R20 ; Waveform Generator Bをnon invertingモードにする(コンペアマッチでクリア、BOTTOMでセット)。 LDI R20, (1 << COM0B1) | (1 << WGM01) | (1 << WGM00) OUT TCCR0A, R20 ; TOP値をセットする。 LDI R20, 99 OUT OCR0A, R20 ; コンペア値Bをセットする。 LDI R20, 24 OUT OCR0B, R20 ; 8 MHzを8分周してカウントする。だから1カウントが1 us。 ; Waveform Generationモードを7にする。 LDI R20, (1 << CS01) | (1 << WGM02) OUT TCCR0B, R20