2013年7月20日土曜日

AVR(Tiny2313)で手っ取り早い周期割り込み

AVRマイコンのTiny2313で手っ取り早く周期割り込みを動かす例。
8bitのTIMER0のオーバーフロー割り込みを使う。

下記でクロック周波数/1024/256のインターバルで割り込みが来る。

8MHzで動かしているなら32.768msec周期で割り込みが来る。
さらに長い周期が必要なら割り込みハンドラでカウンター数えるのかな。
プリスケーラーは他の分周比も選べるので、もっと短い周期の設定可能。

#include <avr/interrupt.h>
ISR(TIMER0_OVF_vect)
{
        /* some process. */;
}

main()
{
        TCCR0B = _BV(CS02) | _BV(CS00); /* 1/1024 pre-scale */
        TCNT0 = 0;
        TIMSK = _BV(TOIE0);
}

0 件のコメント:

コメントを投稿