Всем здрасте!
Продолжаю разбираться с таймерами..
Сейчас делаю такое простейшее задание - секундомер.
То бишь через каждую секунду наступает прерывание и светодиод на STK500 моргает.
Написал такую программу
Код
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
//----------------------------------
ISR (TIMER1_COMPA_vect)
{
PORTA = 0x00;
_delay_ms(500);
PORTA = 0xff;
}
//----------------------------------
int main (void)
{
DDRA = 0xff;
TIMSK = (1<<OCIE1A);
TCCR1B = (1<<CS12)|(1<<WGM13);
OCR1A = 15624;
sei();
for(;;)
{
asm("nop");
asm("nop");
}
}
Но она работает не так как я хотел)). Наступает одно прерывание и все.. Дальше никаких действий не происходит..
МК - Атмега16, пишу в АВР Студио.
Подскажите, что не так?
Сори, нашел ошибку.. Прошу прощения
Сообщение отредактировал dvs85 - May 19 2008, 04:17