залипает RTT внутри обработчика прерывания, плата ARDUINO DUE
- Войдите на сайт для отправки комментариев
Пнд, 29/06/2015 - 12:05
void setup() { int prescaler = 0x8000; //предделитель на 32768 (один тик в секунду) RTT->RTT_MR = (prescaler | RTT_MR_RTTRST | RTT_MR_ALMIEN); RTT->RTT_AR = 0x2; // alarm на третьей секунде // NVIC_DisableIRQ(RTT_IRQn); // NVIC_ClearPendingIRQ(RTT_IRQn); // NVIC_SetPriority(RTT_IRQn, 0); NVIC_EnableIRQ(RTT_IRQn); // разрешить прерывания от RTT Serial.begin(115200); } void RTT_Handler() { //тут будет обработчик если этот сраный таймер заработает } void loop() { int a = RTT->RTT_VR; Serial.println(a); delay(100); }
Вижу что таймер тикает, входит в прерывание на третьей секунде и висит.
У сообщества есть идеи почему висит?
Вижу что таймер тикает, входит в прерывание на третьей секунде и висит.
в обработчике пишем
и в терминале видим ровно первую половинку от этого слова
Вот от того и ваша проблема ,что неправильно смотрите.
сам подведу итог
заработало вот так
добавить в loop() и RTT_Handler()
на 240 странице сказано
If the counter value matches the alarm, the bit ALMS in RTT_SR is set.
Reading the RTT_SR status register resets the RTTINC and ALMS fields.
не знаю как связано чтение регистра состояния таймера с залипоном, но факт работоспособности "налице"(с)
будем считать тему закрытой