d71 0 23 апреля, 2007 Опубликовано 23 апреля, 2007 · Жалоба :unsure: странная ситуация, мега128, питание 3.5 в, avreal32 и пушу и читаю память фузы: Fuses OSCCAL = 9E, 9E, 98, 9A BODLEVEL = 0 BODEN = 0 SUT = 2 CKSEL = 1 BLB1 = 3 BLB0 = 3 OCDEN = 1 JTAGEN = 0 CKOPT = 1 EESAVE = 1 BOOTSZ = 0 BOOTRST = 1 M103C = 0 WDTON = 1 программа: #include <iom128.h> #include <inavr.h> void main (void){ DDRF=0xff; PORTF=0xff; DDRB=0xff; PORTB=0xff; DDRA=0xff; PORTA=0xff; DDRC=0xff; PORTC=0xff; DDRE=0xff; PORTE=0xff; DDRD=0xff; PORTD=0xff; DDRG=0xff; PORTG=0xff; } в эмуляторе (протэус) единички стоят на ногах на плате на ногах ничего... --- подскажите что-нибудь. а то голову сломал :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=GM= 0 23 апреля, 2007 Опубликовано 23 апреля, 2007 · Жалоба :unsure: странная ситуация, мега128, питание 3.5 в, avreal32 и пушу и читаю память в эмуляторе (протэус) единички стоят на ногах на плате на ногах ничего... --- подскажите что-нибудь. а то голову сломал :( А если поставить PORTA=0x00, будут нули? И поставьте оператор while(1); в конце main на всякий случай, а то непонятно, что ваша программа делает после выполнения последнего оператора PORTG=0xff; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 23 апреля, 2007 Опубликовано 23 апреля, 2007 · Жалоба Потому , небось и не работает, что нету этого while(1); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 23 апреля, 2007 Опубликовано 23 апреля, 2007 · Жалоба Потому , небось и не работает, что нету этого while(1); С какой стати??? После выполнения кода МК сам обнуляет порты??? 2 d71: на плате на ногах ничего... Ничего не может быть :) . Чего то быть должно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Sam_ 0 23 апреля, 2007 Опубликовано 23 апреля, 2007 · Жалоба m103c наверное надо в 1 установить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor26 0 24 апреля, 2007 Опубликовано 24 апреля, 2007 · Жалоба m103c наверное надо в 1 установить тем самым включить совместимость с Мега103. Зачем??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость =AVR= 24 апреля, 2007 Опубликовано 24 апреля, 2007 · Жалоба Установка М103С в единицу ОТКЛЮЧАЕТ режим совместимости с М103, а не включает его. Фузы в AVR считаются "прошитыми", когда в них ноль, а не единица Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amper25 0 24 апреля, 2007 Опубликовано 24 апреля, 2007 · Жалоба Нет, с фьюс битами все правильно. Действительно на всякий случай надо поставить while(1); в конце проги. Кроме того, советую внимательно просмотреть - а что именно заливается в MCU. А то можно лить не тот файл который компилиш. Было знаете несколько раз. И еще если пользуешся IAR-ом то посмотри во что компилируется проект( Debug или Release.) Для записи необходим Release. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor26 0 24 апреля, 2007 Опубликовано 24 апреля, 2007 · Жалоба Установка М103С в единицу ОТКЛЮЧАЕТ режим совместимости с М103, а не включает его. Фузы в AVR считаются "прошитыми", когда в них ноль, а не единица Сорри. Ошибся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladimirYU 0 24 апреля, 2007 Опубликовано 24 апреля, 2007 · Жалоба После while(1) не забудь _WDR(), в 128 приходилось на кривой WDT налетать, у Атмела все может быть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость =AVR= 24 апреля, 2007 Опубликовано 24 апреля, 2007 · Жалоба А можно поподробней и с фактами про "на кривой WDT налетать" и про "у Атмела все может быть"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladimirYU 0 24 апреля, 2007 Опубликовано 24 апреля, 2007 · Жалоба Два года назад, попались кристаллы, которые не реагировали на WDT. Т.е. его ни как было не запретить пришлось везде _WDT() вставлять. Не смертельно, но все же. Те же самые меги64 вели себя, согласно DS. Покупал микросхемы в ЭФО СПб. Тему обсуждал и Игорем Кривченко ( менеджер по Атмелу ЭФО), Атмел ничего не ответил. Сейчас похожая история с AT90PWM3, здесь эту тему уже поднимал не только я. Атмел опять молчит. Коллеги проверили мой код, вроде все чисто. Кристалл то удобный для приводческих приложений, но похоже тот ревижен, который достался еще сырой. Но это ИМХО. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость =AVR= 24 апреля, 2007 Опубликовано 24 апреля, 2007 · Жалоба Атмел обычно не стесняется действительно встречающуюся кривизну ранних ревизий описывать в Errata, которая теперь включается в оперативно обновляемые даташиты. А 99% нареканий на "неотключаемый" WDT происходят от читания ДШ по диагонали и уверенности в том, что для отключения WD достаточно просто не прошивать фуз WDTON Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Old1 0 24 апреля, 2007 Опубликовано 24 апреля, 2007 · Жалоба :unsure: странная ситуация, мега128, питание 3.5 в, avreal32 и пушу и читаю память фузы: Fuses ... BODLEVEL = 0 BODEN = 0 ... ... на плате на ногах ничего... --- подскажите что-нибудь. а то голову сломал :( При таких фузах (BOD включен и уровень срабатывания 4В) и таком питании мега судя по всему находится в ресете... Если Вам нужен BOD то перепрошейте BODLEVEL в 1, ну или совсем BOD отключите... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Sam_ 0 24 апреля, 2007 Опубликовано 24 апреля, 2007 · Жалоба если оставить m103=0, то и в компиляторе надо устанавливать m103, а не m128. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться