#define F_CPU 4000000l
#include
#include
#include
unsigned char i;
unsigned char temp, direction;
void wait1 (void)
{
TCNT1 = 0;
while (TCNT1 < 3906){};
}
void segchar (unsigned char seg)
{
switch (seg)
{
case 1: PORTD = 0b11111001; break;
case 2: PORTD = 0b10100100; break;
case 3: PORTD = 0b10110000; break;
case 4: PORTD = 0b10011001; break;
case 5: PORTD = 0b10010010; break;
case 6: PORTD = 0b10000010; break;
case 7: PORTD = 0b11111000; break;
case 8: PORTD = 0b10000000; break;
case 9: PORTD = 0b10010000; break;
case 0: PORTD = 0b11000000; break;
}
}
ISR (TIMER1_COMPA_vect)
{
for (i=0;i<10;i++)
{
segchar(i);
wait1();
}
}
int main(void)
{
DDRC = 0x00;
PORTC |= (1 << PC0); // Подключаем внутренний подтягивающий резистор
DDRD = 0xFF;
PORTD = 0x00;
TCCR1B = (1 << CS12)|(1 << CS10)|(1 << WGM12); //предделитель clk/1024, режим таймера СТС
OCR1A = 3906; // Выбор коэффициента деления
TIMSK |= (1 << OCIE1A); // Разрешение прерывания по совпадению
temp = 0; // Присвоение начального значения
sei(); // Разрешение прерываний
while(1)
{
}
}


