超音波浮揚の実験3 of 3 / 一往成功した

参考:
makezine.com
f:id:ti-nspire:20200327045012p:plain:h315

// ヒューズのCKDIV8ビットは解除しておく。
// クロックは内蔵9.6 MHzを使う。
#include <avr/io.h>
#include <avr/interrupt.h>

ISR(TIM0_COMPA_vect){
    PORTB ^= 0b11; // コンペアマッチするたびにPB1:0をトグルする。
}

int main(){
    DDRB  = 0b11; // PB1:0からパルスを出力することにする。
    PORTB = 0b01; // 最初にPB1とPB0とのロジックを互い違いにしておく(だから0b10でもよい)。

    TCCR0A = 1 << WGM01;  // CTCモード
    TCCR0B = 1 << CS00;   // クロックを分周せずにカウント
    OCR0A  = 114;         // コンペア値A (この値を調整して周波数を40 kHzにする)
    TIMSK0 = 1 << OCIE0A; // コンペアマッチA割り込みを有効化
    sei();

    while(1);
    return 0;
}

ultra /ʌ́ltrə/