ATMega32 рестартится ...

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

Привет, кисы. Что-то фигня какая то - все работает, пока не начинаю использваоть прерывания по переполнению таймера. При возникновении прерывания мега просто рестартится, без видимых причин. Ктот видел такое?)
ATMega32, 16 MHz (менялось)
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

неа, нету wdr, выключен он. Плюс еще раз - без прерываний все работат
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

В симуляторе нормально работает? И, да, код в студию.
Контактная информация:
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

BCluster писал(а):... При возникновении прерывания мега просто рестартится, без видимых причин. Ктот видел такое?)
..
Наверняка таблица векторов прерываний неправильно составлена - у меги 32 между адресами векторов по два слова а не по одному.
Реклама
Эиком - электронные компоненты и радиодетали
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

Код: Выделить всё

#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)
      {
// чтото тут

      };
}
Контактная информация:
Реклама
Родился
Аватара пользователя
Сообщения: 8
Зарегистрирован: Чт дек 03, 2009 17:36:55
Откуда: Барнаул

Сообщение KraMax »

Было что-то подобное, когда параметры стека не задал

Код: Выделить всё

; установка параметров стека

	ldi		tmp1,low(ramend)	;
	ldi		tmp2,high(ramend)	;
	out		spl,tmp1			; 
	out   	sph,tmp2			;

Реклама
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

[quote="BCluster"][/quote]
Умеет ли компилятор, который ты применяешь, делать ассемблерный листинг? Если да, то выкладывай его, если нет - то хекс выкладывай, глянем на таблицу прерываний. Еще неплохо бы все-же код обработчика прерываний полностью посмотреть.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»