TOPへ戻る
★20080815 ATROS ATtyny2313で動かしてみる |
ATtiny2313でも、ATROSって動くのかな?と言う疑問から、移植してみました。
と言っても、数行変えただけであっさり動きました(^_^)
変更箇所は以下の3箇所で、__AVR_ATtiny2313__ の部分の追加です。
atros.c
#if defined (__AVR_ATmega163__)
#define enable_interrupts_INT_TIMER0 sbi(TIMSK, TOIE0); // Timer0割込み許可ビットinterrupt enable bit
#define disable_interrupts_INT_TIMER0 cbi(TIMSK, TOIE0); // Timer0割込み許可ビットinterrupt disable bit
#elif defined (__AVR_ATmega168__)
#define enable_interrupts_INT_TIMER0 sbi(TIMSK0, TOIE0); // Timer0割込み許可ビットinterrupt enable bit
#define disable_interrupts_INT_TIMER0 cbi(TIMSK0, TOIE0); // Timer0割込み許可ビットinterrupt disable bit
#elif defined (__AVR_ATtiny2313__)
#define enable_interrupts_INT_TIMER0 sbi(TIMSK, TOIE0); // Timer0割込み許可ビットinterrupt enable bit
#define disable_interrupts_INT_TIMER0 cbi(TIMSK, TOIE0); // Timer0割込み許可ビットinterrupt disable bit
#endif
///////// System Global Variables ////////////
static int Current_Task;
volatile static int Timer_Flag;
static int TCB[2*task_number+2];
// initialize timer 0;
#if defined (__AVR_ATmega163__)
outp( p,TCCR0 );
#elif defined (__AVR_ATmega168__)
outp( p,TCCR0B );
#elif defined (__AVR_ATtiny2313__)
outp( p,TCCR0B );
#endif
ソースファイル |
機能 |
備考 |
led_tsk.c |
led タスク |
|
sio_tsk.c |
lcd タスク |
|
アプリケーションとして、上記2つのプログラムを使用しました。
led タスクは、LEDを点滅させて、SIO タスクは、SIOに文字を出力させます。
コンパイラは、WinAVR-20071221 を使いました。
某所で話題になった、volatile static int Timer_Flag; は、直しておきました。
サイズは、以下の様です。
Size after:
AVR Memory Usage
----------------
Device: attiny2313
Program: 1032 bytes (50.4% Full)
(.text + .data + .bootloader)
Data: 79 bytes (61.7% Full)
(.data + .bss + .noinit)
ソースファイルのダウンロード
みにくくてすみません!・・・ほとんど見えないじゃん(^^;
TOPへ戻る