Цитата(SpiritDance @ Mar 16 2007, 13:22)

А другие какие нибудь прерывания работают?
Работают внешние прерывания IRQ0, IRQ1, IRQ2 (источники 16, 17, 18 соответственно). Правда, не в моей программе, а в другой, которую я взял как образец. Настройки для AIC там аналогичные.
Цитата
Пока из помарок увидел только
AIC_SVR4 = (unsigned int)(&TC0_IRQ);
Зачем & ? можно вполне без него обойтись
Честно говоря, я не большой специалист в программировании на С. Если имя функции является указателем на ее место в памяти - тогда да, Вы правы.
Цитата
адрес то прерывания точно тот?
Да, тот. Источник прерывания №4 - это 0-вой канал таймера. Неоднократно всё уже сверял с даташитом.
Цитата
В обработчике статусный регистр почему не читаете? как определяете что break не проходит? Я бы на вашем месте светодиод после выхода из бесконечного цикла зажег.
Какой Вы имеете в виду статусный регистр - регистр таймера TC_SR0 или регистр контроллера прерываний AIC_ ISR? Если первый - то в этом нет смысла, т. к. в данном случае я знаю, что прерывание может произойти только по событию TC_CV=RC0. Если второе - зачем мне знать номер источника, вызвавшего прерывание, если я уже и так оказался в обработчике нужного прерывания? Может, я неверно рассуждаю, но, по крайней мере, в даташите я ничего не нашел про обязательное чтение статусного регистра.
Насчет break все просто - если я пытаюсь выйти из цикла по условию tmp=0xCCAAABBB (запись этого числа должна происходить в обработчике прерывания), то просто происходит сброс контроллера по сторожевому таймеру. tmp объявлена как глобальная переменная, т. е., по идее, видна и из обработчика прерывания, и из основной программы... да и компилятор бы ругался, если с этим что не так...
В общем, не знаю где копать...