roboforum.ru

Технический форум по робототехнике.

Проблема с прерыванием atmega8

Проблема с прерыванием atmega8

mdave » 06 ноя 2012, 14:20

Добрый день!
бьюсь над непонятной штукой! :o есть простой код c прерыванием
Код: Выделить всёРазвернуть
...
unsigned int int1A = 0;
...
ISR(INT1_vect)
{
int1A++;
}
void INTinit()
{
   MCUCR = (1<<ISC10) | (1<<ISC11) | (1<<ISC01) | (1<<ISC00);
   GICR = (1<<INT1) | (1<<INT0); //| (0<<INTF1) | (0<<INTF0)
}
int main(void)
{
   INTinit();
   DDRD=0b11110011;
   PORTD=0x00;
   sei();
//int1A=0x00; если указать то все нормально.
   lcd_init();
   ...
   while(1){
         ...
         lcd_goto(2,6);
         lcd_itostr(int1A);
         _delay_ms(100);
        }
}


при запуске MK (в Proteus 7) int1A=1 то есть срабатывает прерывание при инициализации, физически там нет возрастающего сигнала...

Кто нибудь сталкивался с такой проблемой?

PS. пытаюсь реализовать нечто подобное 1-write. такая ситуация сбивает счетчик таймера.

Re: Проблема с прерыванием atmega8

Vovan » 05 дек 2012, 14:47

Proteus 7.8 SP2 - внешние прерывания НЕ РАБОТАЮТ. В версиях ниже 7.2, 6.9, 6.7 - нормально работают с той же программой (буквавбукву) на ассемблере. Странно что другие прерывания в 7.8 - нормально. Правда проверил не все естесно...
Возможно ентот Прот. ориентирован на использование "мастеров" в компиляторах для си и прочих, не знаю... Но асм является родным для него! :x

Re: Проблема с прерыванием atmega8

Vovan » 05 дек 2012, 18:55

Потратил много времени, проверил в железе: всё нормально работает и внешние и АЦП и таймеры и усарт с тем же хексом из прота 7.8... В нём самом внешние палюбэ не пашут. Остальное не проверял и не стану... Вывод: лажа Протеуса 7.8 - его на свалку :sorry: Написать им, что ль? Да ну на... чёт влом :crazy: ...

Re: Проблема с прерыванием atmega8

Madf » 06 дек 2012, 11:31

протеус - ещё та пакость, как показала практика и статистика мумукания пользователей, лучше собрать реальную схему и на ней смотреть. Большинство проблем как раз в самом протеусе, чем реально ошибка в железе или софте.


cron
Rambler\'s Top100 Mail.ru counter