реклама на сайте
подробности

 
 
> как работает TC на at91rm9200, прерывание не сбрасывается
boryx
сообщение May 25 2006, 06:55
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 25-05-06
Пользователь №: 17 428



столкнулся с проблемой.

конфигурю регистры для любого таймера скажем для TC5

at91_tc5_write(AT91_TC_CCR, AT91_TC_CLKEN);//enable timer
at91_tc5_write(AT91_TC_CMR,
AT91_TC_TIMER_CLOCK5| //slow clock ~32kHz
AT91_TC_WAVE| //wave mode
AT91_TC_WAVESEL_UP_AUTO); //triger on RC

at91_tc5_write(AT91_TC_RC, 0x1000);
at91_tc5_write(AT91_TC_CCR, AT91_TC_SWTRG); //restart timer
at91_tc5_write(AT91_TC_IER, AT91_TC_CPCS);//enable interrupt

теперь по даташиту счетчик должен считать, и когда дойдет до 0х1000 должно сработать прерывание.

на практике прекращается загрузка сисетмы и прерыване запускается все время, захватывая все ресурсы
я так понимаю, что флажок не сбрасывается. Или я что-то не так делаю???

какие будут соображения
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sapID
сообщение May 26 2006, 04:38
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 24
Регистрация: 21-10-04
Из: Пермь, РФ
Пользователь №: 934



Еще в прерывании стоит считать регистр статуса таймера
Код от Atmel для SAM7 (в rm9200, вроде, также):

//* Acknowledge interrupt status
dummy = AT91C_BASE_TC1->TC_SR;
//* Suppress warning variable "dummy" was set but never used
dummy = dummy;
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 21:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01353 секунд с 7
ELECTRONIX ©2004-2016