MKdemiurg 1 24 декабря, 2012 Опубликовано 24 декабря, 2012 · Жалоба СОбственно сабж! Как это реализовать на atmega168A. Вот такой код #pragma optsize- #asm("wdr") WDTCSR=0x1A; WDTCSR=0x42; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif // Global enable interrupts #asm("sei") sleep_enable(); UDR0='!'; while (!( UCSR0A & (1<<UDRE)) ) while (1) { UDR0=cnt; while ( !( UCSR0A & (1<<UDRE)) ); cnt++; powerdown(); }; Упорно сбрасывается! А надо только чтобы выводил контроллер из слипа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 9 24 декабря, 2012 Опубликовано 24 декабря, 2012 · Жалоба Стесняюсь спросить: обработчик прерывания от WDT в программе имеется ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 24 декабря, 2012 Опубликовано 24 декабря, 2012 · Жалоба Я на меге 8 делал, там WDT только сбрасывать умеет, так пришлось стартовый код "пообкусювать", чтобы он переменные не затирал. В 168 не знаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MKdemiurg 1 24 декабря, 2012 Опубликовано 24 декабря, 2012 (изменено) · Жалоба Стесняюсь спросить: обработчик прерывания от WDT в программе имеется ? Ээ..Естесственно! --- Туплю! Действительно! Грохнул часть кода с прерыванием при бездумном копировании! ДА вы провидец! :) Спасибо! Изменено 24 декабря, 2012 пользователем MKdemiurg Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arttab 0 26 декабря, 2012 Опубликовано 26 декабря, 2012 · Жалоба случаем не включен ли фуз WD? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться