есть устройство на Atmega128 c A и без A работает хорошо - но хочется расширится по оперативке - хочу перейти на Atmega1281
и при одном и томже коде (основная программа работает и там и там только таймер0 - разные регистры поправлены для 1281 ) - поведение устройств в момент резета по wdt (приложенный код) - а точнее рестарта после него очень разное
Mega128 - все хорошо сброс - рестарт.
Mega1281 - похоже сбрасывается, но не стартует - при SUT0,1 = 0 либо какая постоянная перезагрузка
sut1=1 - просто тупо все стоит, но после сброса питания в любом случае все работает
кварц менял взял с платы на 128 припаял на 1281 - без изменения
даже если после кривой перезагрузки - читать (т.е. сбрасиывать на момент чтения) программатором то читать читает а не рестартует - остается либо в моргании либо в тупняке - только сброс питания помогает
Если прошить бутлоадер и потом загрузить программу - то после сброса по wdt - получаем бутлоадер - как будто нет ничего в основной памяти
помогает опять только передергивание питания.....
Нешто никто 1281 через wdt не сбрасывал?
начало программы
Код
{
uint16_t i;
//this done mcu not to reset via wdt - after bootloader reset
wdt_disable();
сброс
Код
//writing eeprom and reload mode
if(run_programm==4) //eprom write then load finished
{
new_prog_eeprom();
wdt_enable(WDTO_120MS);
while(1)//endless loop for wdt - to reset chip after download
{
;//empty body for reload on watch dog
}
}
в чем косяк не ясно....
проект в AvrStudio 4.18 +gcc WinAVR-20100110
Сообщение отредактировал GYUR22 - Jul 20 2011, 13:10