|
Proteus и atMega16, Не симулирует простой код |
|
|
|
May 15 2006, 09:59
|

Участник

Группа: Участник
Сообщений: 19
Регистрация: 5-05-06
Пользователь №: 16 807

|
День добрый всем! Имеется 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. Ну и начал копать  Просто очень понравилась программа, а вот нарвался на такие грабли  Помогите пожалуйста...
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
(1 - 11)
|
May 15 2006, 11:35
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Интересно - В AVR Studio 4 работает  . А если закомментировать " Код in r26, PORTD "?
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
May 15 2006, 11:55
|

Участник

Группа: Участник
Сообщений: 19
Регистрация: 5-05-06
Пользователь №: 16 807

|
Цитата(otrog @ May 15 2006, 15:35)  Интересно - В AVR Studio 4 работает  . А если закомментировать " Код in r26, PORTD "? Да и закоментаренной тоже самое (это осталось с тех времен, когда я еще перемешивал с Си и функция delay_us портила r26). Необычности даже начинаются с команды out DDRD, r26 (на скриншоте видны серые квадратики напротив этих двух пинов). Можно было бы плюнуть на все и мега8 для души хватило бы сполна, но LCD припаян именно к меге16 и нестандартно (часть ног на PORTD часть на PORTC - конструктор et-kit-mega16) Пришлось стандартный lcd.h из CVAVR переписать, и в VMLAB нормально пашет, и в живую тоже. А вот в протеус даже такой мелкий код глючит  обидно  VMLAB хорош конечно, но схему рисовать мне нравится в proteus. Пользуясь случаем говорю пасипа [BANNED]! очень помог
Сообщение отредактировал IgorKossak - Nov 17 2008, 20:07
|
|
|
|
|
May 15 2006, 12:29
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Так дело в PC6 PC7? Если так - то скорее всего включилось тактирование от внешнего низкочастотного кварца Цитата When the AS2 bit in ASSR is set (one) to enable asynchronous clocking of Timer/Counter2
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
May 15 2006, 13:15
|

Участник

Группа: Участник
Сообщений: 19
Регистрация: 5-05-06
Пользователь №: 16 807

|
Цитата(otrog @ May 15 2006, 16:29)  Так дело в PC6 PC7? Если так - то скорее всего включилось тактирование от внешнего низкочастотного кварца Цитата When the AS2 bit in ASSR is set (one) to enable asynchronous clocking of Timer/Counter2 Может быть  (я поначалу даже обрадовался, что усе так открылось), но просмотр регистра ASSR во впремя работы дал нолики во всех разрядах  пробовал в свойства кристала (в proteus) в поле "TOSC Frequency" и значение по умолчанию забивать (32768Hz) и пустым оставлять (тогда ставится "<default>"). И в коде принудительно еще раз нулями регистр заполнять... Все равно эффект тот-же. Эх, как бы побороть то  ((
|
|
|
|
|
May 16 2006, 06:59
|

Участник

Группа: Участник
Сообщений: 19
Регистрация: 5-05-06
Пользователь №: 16 807

|
Цитата(bodja74 @ May 15 2006, 20:49)  Не терзайте себя сомнениями    Это один из клюков модели меги16. По жизни у нее действительно один из портов C работает на вход,это лечится отключением фуза JTAGEN (отладка через JTAG) О! Спасибо! А есть возможность отключить этот глюк в proteus? а то на макетной плате похоже он уже сразу был отключен, так как LCD подключенный к этим "выходам" работал замечательно. ЗЫ Хм, поглядел на распальцовку чипа - для JTAG другие порты задействованы и с ними нет проблем  Так что вопрос остался  Но ведь кто-то же использует mega16 в протеусе  Оффтопик - а может есть что-то еще похожее на proteus по удобству?
|
|
|
|
|
May 16 2006, 08:58
|

Участник

Группа: Участник
Сообщений: 19
Регистрация: 5-05-06
Пользователь №: 16 807

|
Цитата([banned] @ May 16 2006, 12:16)  Цитата("KisaLove") Пробовал сейчас логику уяснить - не поддается описанию. Это надо видеть ?( дак приложи архив с файлами .dsn и .hex или .asm - подивимся. Воть  Посмотрите пожалуйста....
|
|
|
|
|
May 16 2006, 11:11
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата у ней всего ОДИН порт С. и 4 вывода в нем отведены под включенный по умолчанию JTAG.
чтобы его выключить нужно сдлеать JTAGEN "1" - "установить". Спасибо за уточнение. Цитата О! Спасибо! А есть возможность отключить этот глюк в proteus? Я перепробовал уже разные варианты,эффект нулевой. Делал немного по хитрому.Подключал другие порты в протеусе,в проге присваивал имена портам,а уже для железа переименовывал. У модели мега16 есть еще такиме глюки, 1 нет прерывания от SPI. 2 экспрессом проезжает sleep 3 с прерыванием от USART сильнейшие тормоза.
|
|
|
|
|
May 16 2006, 11:36
|

Участник

Группа: Участник
Сообщений: 19
Регистрация: 5-05-06
Пользователь №: 16 807

|
Цитата(bodja74 @ May 16 2006, 15:11)  Цитата О! Спасибо! А есть возможность отключить этот глюк в proteus?
Я перепробовал уже разные варианты,эффект нулевой. Делал немного по хитрому.Подключал другие порты в протеусе,в проге присваивал имена портам,а уже для железа переименовывал. Да. похоже и меня это ждет  благо так много вводов/выводов мене не надоть  а под LCD всего два нужны (эти глючные, которые нигде не буду использовать кроме как в драйвере LCD - повешу как ты рекомендовал). Пасипа!
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|