roboforum.ru

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

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

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Проблема с прерыванием 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. такая ситуация сбивает счетчик таймера.
mdave
 
Сообщения: 8
Зарегистрирован: 27 окт 2012, 09:21
Откуда: Астана
прог. языки: C#, php, Perl, java

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

Сообщение Vovan » 05 дек 2012, 14:47

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

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

Сообщение Vovan » 05 дек 2012, 18:55

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

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

Сообщение Madf » 06 дек 2012, 11:31

протеус - ещё та пакость, как показала практика и статистика мумукания пользователей, лучше собрать реальную схему и на ней смотреть. Большинство проблем как раз в самом протеусе, чем реально ошибка в железе или софте.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23