![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
![]()
Добрый день!
Я не очень сильна в ассемблере, но такой эффект поразил даже меня. Написана простренькая программа сигнализации, а сверху предоставлены ключи, которые запускают ту или иную подрограмму. А сигнализация тикает себе в мэйне и на ключи не срабатывает. ноль реакции... Я уже даже начинаю сомневаться, может я ключами неправильно пользуюсь. Не могли бы посмотреть и проконсультировать? Код:
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
![]() |
![]() |
![]() |
#2 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]()
А у меня срабатывают.
Как проверяете, в эмуляторе, на железе? По замечаниям, у вас вроде reti в конце процедур а не прерываний. Криминала в данном случае нет, но лучше заменить на ret. Добавлено, по мелочам: 1. стек неправильно настроен: Код:
процедуры задержки, здесь опечатка: Код:
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru Последний раз редактировалось Ulex; 19.05.2011 в 14:27. |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
![]()
Спасибо))
Я проверяю на эмуляторе (потому как железа боюсь как огня, мне пытались подсунуть плату с лампочками, я еле открестилась, мне с эмулятором проще) Сейчас я перекомпилирую. А у меня наивный вопрос - я просто боюсь, что я что-то не то делаю: чтобы сработала подпрограмма открытия двери OpenLock мы должны поставить "черный кубик" в 3-ю ячейку порта В (так как PB2), да? Просто в этом случае у меня ничего не происходит....
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
![]() |
![]() |
![]() |
#4 | |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]() Цитата:
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 29.12.2008
Сообщений: 1,598
|
![]()
А как вы используете команды rcall, reti, rjmp для mega128?
|
![]() |
![]() |
![]() |
#6 | |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]() Цитата:
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
- УДАЛИТЬ -
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 19.05.2011 в 15:55. |
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 29.12.2008
Сообщений: 1,598
|
![]()
Из всех отличий нас интересует размер памяти программ. Если объём памяти меньше или равен 8 кбайт-ам, то используется rjmp, rcall и.т.д и занимает 2 байта. Если же объём памяти больше 8 кбайт, то используют команды jmp, call и.т.д которые занимаю 4 байта. К примеру команда rjmp состоит - 4 старшие бита код команды, остальные 12 бит адрес, куда переходим. Вот и получается, что выполняя команду компилятор обращается не к той ячейки памяти, ну а дальше вы сами понимаете.
Да и использовать мегу под такой код неведомая роскошь. Последний раз редактировалось С.М.С; 19.05.2011 в 16:12. |
![]() |
![]() |
![]() |
#9 | |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]() Цитата:
RJMP k - Relative Jump - PC< PC + k + 1 JMP k - Jump- PC< k
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
|
![]() |
![]() |
![]() |
#10 | |
Участник клуба
Регистрация: 29.12.2008
Сообщений: 1,598
|
![]() Цитата:
Пересмотрел задержку. В принципе в данном случае и rjmp покатит, хотя это извращение. Последний раз редактировалось С.М.С; 19.05.2011 в 16:37. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
AVR ATmega 128: почему не происходит переход? | Blondy | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 06.05.2011 01:28 |
надо программу на Atmega | sers88 | Помощь студентам | 6 | 26.09.2010 16:28 |
сигнализация работы от ups | alenkov | Общие вопросы Delphi | 1 | 16.09.2010 01:26 |
Atmega AT90CAN128 Требуется программист | Simok | Фриланс | 3 | 31.03.2010 12:29 |
Сигнализация в Листе | valerij | Microsoft Office Excel | 3 | 02.04.2009 02:57 |