Господа электронщики. Помогите. Столкнулся с такой проблемой. Написал программу для ATMega16 для вывода на LCD экран 2 слов с интервалом небольшим. Программу написал в CodeVisionAVR. Она прекрасно работает в VMLAB. Но стоит собрать и запустить эту схему в Proteus 7.4. Ничего не выходит. На LCD ни одного символа. Причем постоянно в процессе работы вылетают предупреждения:
“Watchdog setup sequence is timed out. Do nothing” и “Timer expired – processor will be reset” Они идут одно за одним. Проверял эту же схему в Proteus 7.2 SP6 все работает нормально. Но в 7.2 не работают прерывания Atmega 16.
Может, кто-то с этой проблемой сталкивался. Заранее спасибо. Прилагаю к вопросу архив. Там код программы в CodeVisionAVR, VMLAB и проект Proteus 7.4
При написании программы пользовался генератором начального кода. И там сторожевой таймер был отключен. Сделал, как вы сказали. В протеусе кликнул правой кнопкой по контроллеру, выбрал configure diagnostigs, далее watchdog timer module и выбрал disable. Это привело к тому, что предупреждения исчезли. Но на экране по-прежнему ничего. Какие то появления и пропадания нулей на порте А видно. Какие то мелькания.
Я добавил в вашу прогу отключение вочдога WDT в ATmega16 WDT - в ATmega32 ATmega16 включается в программе установкой Bit 3 – WDE в регистре WDTCR и может быть отключен программой специальной последовательностью команд (стр. 43 в ДШ ATmega16) в CVAVR вот так:
Уважаемый avr123.nm.ru, все-таки не подскажите почему в свойствах МК в Proteus 7.4 SP3 включение или отключение WDT ни к чему не приводит, и в том и другом случае висит одинокое предупреждение: PC=0x0026 Watchdog setup seqence is time out. Do nothing.? И включить таймер можно только в коде программы. Спасибо!
Просто в АТМЕГА16 нет фьюза отключения WDT и включить и отключить его можно только програмно. Таюлица фьюзов в разных АВР есть в низу странички - http://avr123.nm.ru/02.htm
Но сам WDT в ATmega16 не включается при старте. PROTEUS глючит похоже.
Последний раз редактировалось avr123.nm.ru 05 янв 2009, 21:44, всего редактировалось 2 раз(а).
To avr123.nm.ru Я что-то не понимаю. В Вашем проекте http://slil.ru/26509442 WDT у меня не работает при включении фьюза WDTON. Но и нет больше предупреждения PC=0x0026 Watchdog setup sequence is time out. Do nothing. Но самое интересное, что Ваша Tiny13 выглядит по другому и меню свойств у нее другое. Вы, наверное, старые проекты запускаете под Proteus 7.4 SP3. Я только что проверил: в старых у меня тоже фьюз WDTON работает.
Прошу прощение, нужно уточнить. Что Вы имеете ввиду "останавливается на паузах как раз каздые 500 мсек". Вы о WDT? Не подскажете, я в Datasheet не нахожу информацию с каким периодом должен происходить RESET при WDTON Programmed? Я так понимаю - по умолчанию 16 mS?
Хотя я проверил в старом проекте, действительно 0.5S. Но почему не 16 mS. Ведь по умолчанию WDTCR настроен на 16 mS?