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

 
 
> Watchdog, Что не правильно?
Timofey
сообщение Nov 21 2006, 11:15
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 119
Регистрация: 3-07-06
Пользователь №: 18 528



Добрый день.
Вобщем такая проблема. конфигурирую Watchdog Timer. В основной программе искуственно вызываю зависание (ухожу в бесконечный цикл, но срабатывания не происходит. Что не так?

Код
//Собественно сама функция конфигурирования
void CnfWDT (void) {
  AT91C_BASE_WDTC->WDTC_WDMR=((unsigned int) 0x00A <<  0) |
                             ((unsigned int) 0x1 << 13)   |
                             ((unsigned int) 0x0 << 12)   |
                              ((unsigned int) (0x0 << 14) |
                             ((unsigned int) 0x00A << 16) |
                             ((unsigned int) 0x0 << 15);

  
}



main
{

CnfWDT();
//плюс тут же конфигурирую другое оборудование

while (1)
{

//тут у меня выполняется программа, которая адекватно работает, связь с компом идет, все нормально
//И в её середине я делаю искуственное зависание. По пришествии события с компа ухожу в бесконечный цикл
   while (1){здесь я просто сделал что переменная равна сама себе и больше ничвго нету};
//Но вот именно тут контроллер виснет наглухо, пока питанием не моргнешь

//и где то в конце ставлю строку
AT91C_BASE_WDTC->WDTC_WDCR=((unsigned int) 0x1 <<  0) | ((unsigned int) 0xA5 << 24);
}

}

Бесконечный цикл в мэйне выполняется за 100 мксек (примерно), вобщем когда происходит событие и я ухожу в еще один бесконечный цикл, где я не сбрасываю таймер, то у меня контроллер зависает ... Почему? Правильно ли сконфигурировано? Или мне нужно организовывать прерывание и смотреть там, что достиг конца таймера? то бишь нуля ....
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 07:18
Рейтинг@Mail.ru


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