まだ、よく思い出せないAVRですが・・・とりあえず、タイマーを使った時間待ちを作ってみました。
これで、1秒間だけLEDを点灯することができます。
#include <avr\io.h> // LEDを一秒間点灯する
void wait(long t) // 10ms待つ
{
while(t-- > 0)
{
TCNT0=0;
while( TCNT0<78 );
}
}
int main( void )
{
TCCR0B = 0x05; //プリスケーラ1024分周
TCNT0 = 0; //タイマークリア
DDRC |= 0x10; // PC4を出力に設定
PORTC |= 0x10; // PC4をHに設定
wait( 100 ); // 1秒待つ
PORTC &= ~0x10; // PC4をLに設定
}
この 78 と言う数値は以下の式で算出しました。
1 (秒)÷ 8,000,000(クロックHz) × 1,024(分周) × 定数 = 0.001(秒)
となる 定数 を逆算すると、大体 78 となります。