Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Proteus и atMega16
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
KisaLove
День добрый всем!
Имеется Proteus 6.7 SP3 (и 6.5 был) и ATMEGA16.
Подсовываю код
Код
    .equ PORTC=0x15
    .equ PORTD=0x12
    .equ DDRC=0x14
    .equ DDRD=0x11
    ser r26
    out DDRC, r26
    out DDRD, r26
    andi r26, 0b00000001
    out PORTD, r26  
    out PORTC, r26  
_0x4:
   in r26, PORTD
   rol r26
   out PORTC, r26
   out PORTD, r26
   JMP  _0x4

Не работает выходы PD6 и PD7. То есть при инициализации (out DDRD, r26) загораются все порты синеньким, а PD6 и PD7 так и остаются серым. При занесении в них единички (при наступлении сего события), они становятся синими, а не красными. Если подсунуть модель ATMEGA8 - все работает. С остальными портами вопросов нет - отрабатывают. Если сделать перебор по всем портам вообще (PORTA-PORTD) - то после занесения данных в PORTB на выходе PD6 и PD7 появляется отклик (непонятный, но уже голова расскалывается выяснять логику появления) от записи в PB6 и PB7.

Разбор полетов начался с того, что не заработала программа по работе с LCD. Ну и начал копать sad.gif
Просто очень понравилась программа, а вот нарвался на такие грабли sad.gif Помогите пожалуйста...
otrog
Интересно - В AVR Studio 4 работает glare.gif .
А если закомментировать "
Код
   in r26, PORTD
"?
KisaLove
Цитата(otrog @ May 15 2006, 15:35) *
Интересно - В AVR Studio 4 работает glare.gif .
А если закомментировать "
Код
   in r26, PORTD
"?


Да и закоментаренной тоже самое (это осталось с тех времен, когда я еще перемешивал с Си и функция delay_us портила r26). Необычности даже начинаются с команды out DDRD, r26 (на скриншоте видны серые квадратики напротив этих двух пинов). Можно было бы плюнуть на все и мега8 для души хватило бы сполна, но LCD припаян именно к меге16 и нестандартно (часть ног на PORTD часть на PORTC - конструктор et-kit-mega16) Пришлось стандартный lcd.h из CVAVR переписать, и в VMLAB нормально пашет, и в живую тоже. А вот в протеус даже такой мелкий код глючит sad.gif обидно sad.gif VMLAB хорош конечно, но схему рисовать мне нравится в proteus.
Пользуясь случаем говорю пасипа [BANNED]! очень помог smile.gif
otrog
Так дело в PC6 PC7? Если так - то скорее всего включилось тактирование от внешнего низкочастотного кварца
Цитата
When the AS2 bit in ASSR is set (one) to enable asynchronous
clocking of Timer/Counter2
KisaLove
Цитата(otrog @ May 15 2006, 16:29) *
Так дело в PC6 PC7? Если так - то скорее всего включилось тактирование от внешнего низкочастотного кварца
Цитата
When the AS2 bit in ASSR is set (one) to enable asynchronous
clocking of Timer/Counter2



Может быть sad.gif (я поначалу даже обрадовался, что усе так открылось), но просмотр регистра ASSR во впремя работы дал нолики во всех разрядах sad.gif пробовал в свойства кристала (в proteus) в поле "TOSC Frequency" и значение по умолчанию забивать (32768Hz) и пустым оставлять (тогда ставится "<default>"). И в коде принудительно еще раз нулями регистр заполнять...
Все равно эффект тот-же. Эх, как бы побороть то sad.gif((
KisaLove
не, наверное это с TOSC не связано, хотя ОООЧЕНЬ похоже. Вообщем попробовал с mega8 с PORTB (там где на PB6-7 висят TOSC1-2) - эффекта такого нет. Все в порядке. На mega16 состояние выходов PC6-7 полностью зависит от состояния PB6-7. Пробовал сейчас логику уяснить - не поддается описанию. Это надо видеть ?(
bodja74
Не терзайте себя сомнениями smile.gifsmile.gifsmile.gif
Это один из клюков модели меги16.
По жизни у нее действительно один из портов C работает на вход,это лечится отключением фуза JTAGEN
(отладка через JTAG)
KisaLove
Цитата(bodja74 @ May 15 2006, 20:49) *
Не терзайте себя сомнениями smile.gifsmile.gifsmile.gif
Это один из клюков модели меги16.
По жизни у нее действительно один из портов C работает на вход,это лечится отключением фуза JTAGEN
(отладка через JTAG)

О! Спасибо!
А есть возможность отключить этот глюк в proteus? а то на макетной плате похоже он уже сразу был отключен, так как LCD подключенный к этим "выходам" работал замечательно.
ЗЫ Хм, поглядел на распальцовку чипа - для JTAG другие порты задействованы и с ними нет проблем sad.gif
Так что вопрос остался sad.gif Но ведь кто-то же использует mega16 в протеусе sad.gif
Оффтопик - а может есть что-то еще похожее на proteus по удобству?
KisaLove
Цитата([banned] @ May 16 2006, 12:16) *
Цитата("KisaLove")

Пробовал сейчас логику уяснить - не поддается описанию. Это надо видеть ?(

дак приложи архив с файлами .dsn и .hex или .asm - подивимся.

Воть smile.gif Посмотрите пожалуйста....
bodja74
Цитата
у ней всего ОДИН порт С. и 4 вывода в нем отведены под включенный по умолчанию JTAG.

чтобы его выключить нужно сдлеать JTAGEN "1" - "установить".


Спасибо за уточнение.

Цитата
О! Спасибо!
А есть возможность отключить этот глюк в proteus?

Я перепробовал уже разные варианты,эффект нулевой.
Делал немного по хитрому.Подключал другие порты в протеусе,в проге присваивал имена портам,а уже для железа переименовывал.
У модели мега16 есть еще такиме глюки,
1 нет прерывания от SPI.
2 экспрессом проезжает sleep
3 с прерыванием от USART сильнейшие тормоза.
KisaLove
Цитата(bodja74 @ May 16 2006, 15:11) *
Цитата

О! Спасибо!
А есть возможность отключить этот глюк в proteus?

Я перепробовал уже разные варианты,эффект нулевой.
Делал немного по хитрому.Подключал другие порты в протеусе,в проге присваивал имена портам,а уже для железа переименовывал.

Да. похоже и меня это ждет smile.gif благо так много вводов/выводов мене не надоть smile.gif а под LCD всего два нужны (эти глючные, которые нигде не буду использовать кроме как в драйвере LCD - повешу как ты рекомендовал). Пасипа!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.