Цитата(Палыч @ Jan 24 2013, 19:59)

Да, должен быть работоспособен... Тогда, вариант один - между двумя обращениями к регистру WDTCR проходит более 4 тактов: либо транслятор так "криво" код генерит, либо мешают разрешенные прерывания. Кстати, макросы, которые советует alexeyv, и время обращения к WDTCR выдерживают правильное и от прерываний во время своего выполнения защищены.
Лазил по документам Atmel, советуют перед последовательностью присвоений WDTCR=0x1F; WDTCR=0x0F; запретить оптимизацию кода, иначе компилятор может две команды в одну слепить.
Однако, пока ничего не получилось, не заводится WDT. Работает только вариант включения WDT через Fusebits WDTON=0. Тут все работает на ура, собачий таймер стартует по включению питания
экран моргает как бешеный. Но меня этот режим не устраивает, мне надо включать таймер, только в том случае, если регистратор запущен на длительный режим сбора данных.
В остальное время услуги собаки не требуются.
У меня в CodeVision библиотеки wdt.h нет. Можно её где-то скачать?
Цитата
И желательно включать Watchdog во Fuse-битах (включается нулем)
Эта фраза не понятна, в Fusebits можно выбрать разные режимы безопасности, но во всех режимах
можно включить WDT командой или последовательностью команд.
Может помимо WDTON и MC103 есть еще какой-то Fusebits, влияющий на работу WD-таймера, который я не заметил?