Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: watchdog
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
thorium
процессор атмега128. при попытке перезагрузке из основной программы по ватчдогу(активирован фузами), типа:
WDTCR = (1<<WDCE)|(1<<WDE);
WDTCR = (1<<WDP0)|(1<<WDP1)|(1<<WDP2)|(1<<WDE);
while(1);
перезагрузка происходит, но фузами включен еще бутлодер. и выполнение должно по идее передаться на него, но этого не происходит. пробшлема номер раз! по кнопке ресета перезагрузка переходит в бутлодер.

при такой же перезагрузке из из бутлодера переходи происходит так же, видимо, на нулевой адрес, однако программа не работает, но при этом не запускается и бутлодер. проблема номер два!

при переходе из бутлодера типа:
MCUCR = 0x01; // Enable interrupt vector select
MCUCR = 0x00; // Move interrupt vector to flash
asm("jmp 0x0000");
ПОСЛЕ ПЕРЕПРОШИВКИ не программа запускается, но прерывания не включаются. проблема три!
в этом же случае, но после ресета по кнопке все равботает.

кто может что посоветовать? первое сообщение проигнорировали!
defunct
Сформулируйте вопрос точнее.

Если запрограммирован Fuse "Boot reset vector", то при любом сбросе (PowerOn, Reset, Wdt) управление будет передано в секцию загрузчика, заданную фузами BOOTSZ.

Загрузчик первым делом должен запретить прерывания и переопределить таблицу векторов прерываний в BOOT секцию. Перед выходом из загрузчика надо опять же запретить все прерывания и переопределить таблицу прерываний в область основной программы, также по возможности отключить всю используемую загрузчиком периферию, после чего делать JMP 0x00.

Цитата
при попытке перезагрузке из основной программы по ватчдогу(активирован фузами), типа:
WDTCR = (1<<WDCE)|(1<<WDE);
WDTCR = (1<<WDP0)|(1<<WDP1)|(1<<WDP2)|(1<<WDE);

Он у вас не фузами активирован.
Фуз отвечающий за работу WDT называется WDTON.

Цитата
кто может что посоветовать?

Внимательно курить ДШ, и привести в порядок bootloader. Проблема на мой взгляд здесь с бутлоадером.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.