Timer0で外部パルスをカウントする

p.309
f:id:ti-nspire:20200430123205p:plain:h200 f:id:ti-nspire:20200430123406j:plain:h200

; スタックポインタの初期化マクロ
.MACRO INITSTACK
    LDI R20, HIGH(RAMEND)
    OUT SPH, R20
    LDI R20, LOW(RAMEND)
    OUT SPL, R20
.ENDMACRO

    ; スタックポインタを初期化して、(しなくてもよい)
    INITSTACK

    ; PD4 (T0)のIOをINにして、(INがデフォルトなので省略可)
    CBI DDRD, 4

    ; ポートBのIOを全部OUTにして、
    LDI R20, 0xFF
    OUT DDRB, R20
    
    ; falling edgeでTimer0をインクリメントする設定にして、
    LDI R20, 1 << CS02 | 1 << CS01
    OUT TCCR0B, R20

AGAIN:
    ; カウント値を読み出して、それをポートB7:0に出力する。
    IN R20, TCNT0
    OUT PORTB, R20

    ; を繰り返す。
    RJMP AGAIN