タイマー0 / CTCモード / コンペアマッチA時にOC0Aピンをトグルする

pp.476-477

今度はCTCモードにして、コンペアマッチ時に出力をトグルする。 CTCモードであるため、コンペアマッチした次のタイミングでカウント値が0に戻る。

ここでは、内部クロックを1024分周し、コンペア値を2にした。
パルス幅: (2+1) * 1/(8 MHz/1024) = 384 us
周波数: 1/(384 us * 2) ≒ 1.3 kHz

f:id:ti-nspire:20200716132632p:plain:w500

    SBI DDRD, PD6                        ; PD6 (OC0A)のIOをOUTにする。

    LDI R20, 2                           ; コンペア値Aを設定。
    OUT OCR0A, R20

    LDI R20, (1 << COM0A0) | (1 << WGM01); コンペアマッチA時にOC0A (PD6)をトグル。CTCモード。
    OUT TCCR0A, R20

    LDI R20, (1 << CS02) | (1 << CS00)   ; 内部クロックを1024分周してカウント。
    OUT TCCR0B, R20