40in 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Разбираюсь с отладочной платой AT91SAM7S61-IAR. Возникла проблема с прерываниями от PIT таймера. Делаю примерно следующее: ... //* Open the interrupt on the AIC AT91F_AIC_ConfigureIt ( pAic, AT91C_ID_SYS, SOFT_INTERRUPT_LEVEL, AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED, aic_software_interrupt); AT91F_AIC_EnableIt (pAic, AT91C_ID_SYS); ... AT91F_PITInit (AT91C_BASE_PITC, PIT_CONST, MCKMHz); AT91F_PITEnableInt (AT91C_BASE_PITC); ... Прерывания генерятся только после AT91F_AIC_Trig (AT91C_BASE_AIC, AT91C_ID_SYS) ; PIT таймер работает. При просмотре сотояния регистров соответствующие флаги pend. int. установлены. Прерывания от других периферийных устройств приходят. В чем я неправ? P.S. Использую IAR 4.30. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xoms 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Т.е мои ответы не дали результата. Я до них дошёл следующим образом. Останавливался на брейкпойнте где-нибудь в программе и у меня был открыт дамп памяти (адреса как раз регистров таймера). Толкал программу дальше и прерывания появлялись, так я нащупал те регистры которые надо читать ,что бы не было такого глюка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
40in 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Да результат отрицательный ... Причем не повлияло никак на RTT и на PIT. Не может быть каких-нибудь глюков связанных с IARом? Я нашел пример для Keil - там делается все то же самое.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xoms 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба У меня прерывание сконфигурировано так AT91F_AIC_ConfigureIt ( pAic, AT91C_ID_SYS, SOFT_INTERRUPT_LEVEL, AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE, aic_software_interrupt); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
40in 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Решение оказалось очень простым: в самом начале main втавил строку AT91C_BASE_AIC->AIC_EOICR = 0x0 :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pat 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Решение оказалось очень простым: в самом начале main втавил строку AT91C_BASE_AIC->AIC_EOICR = 0x0 :) <{POST_SNAPBACK}> В догонку, нечто подобное я описывал тут http://forum.electronix.ru/index.php?showtopic=8187 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
40in 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Я уже видел это сообщение. Поправил файл. Но окончательно все заработало (вроде :) ) тока после добавления а main строки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться