Цитата(Hz! @ May 4 2007, 12:53)

А вы разрешаете калие-либо другие прерывания?
Не может получиться так, что у вас постоянно вызывается прерывание от какой-ть другой переферии?
Или WDT?
WDT - отключен в конфиге...
по программе используется для профилактики сброс вачдога...
>Какие заголочные файлы включены?
//#include "iom161.h"
#include <avr/io.h>
#include <compat/ina90.h>
...
#include <avr/interrupt.h>
//#include <avr/signal.h>
>Очень похоже что не правильно описаны обработчики прерываний, или не все.
я нашел по ходу ошибку
в ASM файле было
;PORTA var 0x1b
;PINA var 0x19
;DDRA var 0x1a
;PORTC var 0x15
;PINC var 0x13
стало
#define PORTA 0x1B
#define PINA 0x19
#define DDRA 0x1A
#define PORTC 0x15
#define PINC 0x13
но ведь это не правильно...
;PORTA var 0x1b - это же заявляется адресс для PORTA
а #define PORTA 0x1B это было сделано временно...
так вот - еще вопросик...
как правильно в GCC в ASM файле корректно написать это?
(имеюю ввиду - аналог написанному в IAR - PORTA var 0x1b )
я подозреваю что проблемма именно тут а не в прерыванеии...
хотя и там может тоже...
>покажите код 'delay_ms' - тоже возможны ошибки.
void delay_ms(unsigned int t)
{ __watchdog_reset();
while(t--){
DelayUS(250);
DelayUS(250);
DelayUS(250);
// CLRWDT();
DelayUS(250);
}
__watchdog_reset();
}
>При компиляции точно нет ни одного предупреждения?
точно - При компиляции нет ни одного предупреждения...