Привет, кисы. Что-то фигня какая то - все работает, пока не начинаю использваоть прерывания по переполнению таймера. При возникновении прерывания мега просто рестартится, без видимых причин. Ктот видел такое?)
ATMega32, 16 MHz (менялось)
ATMega32 рестартится ...
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
Re: ATMega32 рестартится ...
BCluster писал(а):... При возникновении прерывания мега просто рестартится, без видимых причин. Ктот видел такое?)
..
Наверняка таблица векторов прерываний неправильно составлена - у меги 32 между адресами векторов по два слова а не по одному.
- BCluster
- Собутыльник Кота
- Сообщения: 2512
- Зарегистрирован: Пн апр 06, 2009 19:33:29
- Откуда: Молдова, Кишинев
- Контактная информация:
Код: Выделить всё
#include <mega32>
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// шото тут делать надо...
}
void main(void)
{
TCCR0=0x04;
TCNT0=0x00;
OCR0=0x00;
TIMSK=0x01; // если не включаь прерывания рестарта нет
#asm("sei") // если не включать прерывания рестарта нет
while (1)
{
// чтото тут
};
}Было что-то подобное, когда параметры стека не задал
Код: Выделить всё
; установка параметров стека
ldi tmp1,low(ramend) ;
ldi tmp2,high(ramend) ;
out spl,tmp1 ;
out sph,tmp2 ;