Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; //запуск или сброс WDT в режиме WatchDog с периодом 1000 мс при тактировании от ACLK=32768Гц
А вот так сбрасывать неправильно
WDTCTL |= WDTPW+WDTCNTCL;
потому что это команда чтение-модификация-запись, а "пароли" для чтения и записи в регистр WDTCTL разные. Точнее пароль одинаковый, но при чтении из WDTCTL в старшем байте читается 0x69, а при записи же в старшем байте управляющего слова нужно использовать пароль 0x5A. В результате получается, что читается слово 0x6900 накладывается маска 0x5A08 и записывается в WDTCTL уже 0x7B08. Что и приводит с выполнению PUC.
Также рекомендую обратить внимание на рекомендацию по останову WDT при смене источника тактирования.
Составить ответ | Вернуться на конференцию
Ответы