ADコンバーター / 変換が完了したら割り込む / Cで記述する

p.438
前回と同じことをCで記述する。

#include <avr/io.h>
#include <avr/interrupt.h>

ISR(ADC_vect){
    PORTD = ADCL; // AD変換が完了したらAD変換値を読み出す。
    PORTB = ADCH;
    ADCSRA |= (1 << ADSC); // 変換開始ビットをセットし直す。
}
int main(){
    DDRB = 0xFF;
    DDRD = 0xFF;
    ADMUX |= (1 << REFS0);
    ADCSRA |= 0b111 | (1 << ADIE) | (1 << ADEN) | (1 << ADSC); // ADIE (割り込みイネーブルビット)をセットする。
    sei();

    while(1);    
    return 0;
}