Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ЮТ
Вымогатель припоя
Сообщения: 623
Зарегистрирован: Чт июн 11, 2009 07:25:24
Откуда: СПб

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ЮТ »

nopal писал(а):Debug - Start debbuging. (или Ctrl+shift+alt+f5). и потом каждый шаг - f11.


Вот тут

Код: Выделить всё

dec Temp1
brne Cycle


Желтая стрелочка начинает ходить вверх вниз и всё.... :dont_know:
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение DX168B »

Она так будет ходить 255 раз. :)))
Отмечаем следующую строку после цикла задержки и жмём на Toggle Breakpoint.
На против этой строки появится жирная красная точка. Потом запускаем программу клавишей F5.
Программа быстро обработает задержку и остановится на отмеченной строке. Дальше можно продолжить отладку клавишей F11
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
ЮТ
Вымогатель припоя
Сообщения: 623
Зарегистрирован: Чт июн 11, 2009 07:25:24
Откуда: СПб

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ЮТ »

:( Все равно ходит вверх и вниз...
nopal
Родился
Сообщения: 12
Зарегистрирован: Пн мар 08, 2010 14:16:51

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение nopal »

ЮТ писал(а)::( Все равно ходит вверх и вниз...

Покажи код начиная от метки cycle и до этого места.
Аватара пользователя
ЮТ
Вымогатель припоя
Сообщения: 623
Зарегистрирован: Чт июн 11, 2009 07:25:24
Откуда: СПб

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ЮТ »

Код: Выделить всё

;**********************************************************
Delay:
ldi Temp1,0
ldi Temp2,0

Cycle:
dec Temp1
brne Cycle

dec Temp2
brne Cycle

dec time
brne Cycle
ret
;**********************************************************
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение DX168B »

А так?

Изображение
I am DX168B and this is my favourite forum on internet!
nopal
Родился
Сообщения: 12
Зарегистрирован: Пн мар 08, 2010 14:16:51

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение nopal »

ЮТ писал(а):

Код: Выделить всё

;**********************************************************
Delay:
ldi Temp1,0
ldi Temp2,0

Cycle:
dec Temp1
brne Cycle

dec Temp2
brne Cycle

dec time
brne Cycle
ret
;**********************************************************


если в time будет значение 0, то крутиться будет достаточно долго. Все зависит от значения которое попало в него.
судя по всему у тебя там 0. Для проверки добавь команду
ldi time,1
перед cycle, и увидишь что выйдет из цикла. А так смотри алгоритм всей программы.
Аватара пользователя
ЮТ
Вымогатель припоя
Сообщения: 623
Зарегистрирован: Чт июн 11, 2009 07:25:24
Откуда: СПб

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ЮТ »

:( всё равно скачет...
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение DX168B »

Млин, ну как ещё объяснить?
В AVR Studio есть несколько режимов отладки кода.
1. Вручную.(Ctrl+Shift+Alt+F5)...(F11...) - То есть запускаем отладку и делаем каждый шаг вручную клавишей F11.
2. Autostep - это когда сам симулятор выполняет шаги, но медленно, так, чтобы программист видел. Запускается при запущенной отладке сочетанием клавиш Alt+F5.
3. Запуск программы в реальном времени. То есть мы не видим, как она выполняется, но можем остановить её точками останова(Breakpoint). После остановки мы можем продолжить отладку вручную. Запускается этот режим при запущеной отладке клавишей F5.
Что нам надо:
Запускаем отладку, сочетанием клавиш Ctrl+Shift+Alt+F5 или так, как ты её запускаешь. Без разницы. Далее прыгаем по нашей программе вручную (F11) чтобы видеть, как выполняется программа. Как дойдём до задержки, то отметим следующую, после всего цикла задержки, строку. На эту строку ставим точку останова, клавишей F9.(Просто кликаем на начало этой строчки, установив на неё курсор редактора и нажимаем F9) Напротив строчки появится жирная красная точка. После этого запускаем симуляцию в реальном времени, клавишей F5.
Симулятор отработает эту задержку и встанет на паузу на отмеченной строке, как только дойдёт до неё. Дальше можно продолжить вручную отрабатывать. Как дойдём до задержки, так снова запустим в реальном времени, чтобы быстро отработать эту задержку.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ChipKiller »

DX168B писал(а):Млин, ну как ещё объяснить?
... DX168B каждое хорошее дело наказуемо :) ... если человек не находит времени, чтобы почитать пару страниц о работе с отладчиком, то "учить" его - занятие сомнительное ИМХО...
Аватара пользователя
ЮТ
Вымогатель припоя
Сообщения: 623
Зарегистрирован: Чт июн 11, 2009 07:25:24
Откуда: СПб

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ЮТ »

Проскочил он это. А дальше что делать? :(
DX168B, Спасибо.
ChipKiller, Рано или поздно такие люди как ты всегда появляются и начинают язвить...
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ChipKiller »

Рано или поздно такие люди как ты всегда появляются и начинают язвить...
... если этого иногда не делать - форум превращается в ФЛУДИЛЬНЮ.
Аватара пользователя
ЮТ
Вымогатель припоя
Сообщения: 623
Зарегистрирован: Чт июн 11, 2009 07:25:24
Откуда: СПб

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ЮТ »

И всё же, как сделать так чтобы после проигрывания мелодии на ноге был 0? :dont_know:
Просто изучать что либо сейчас некогда, нужно сделать дедушке звонок. А тут учеба ещё, ЕГЭ и прочее :kill:
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение DX168B »

ChipKiller писал(а):
DX168B писал(а):Млин, ну как ещё объяснить?
... DX168B каждое хорошее дело наказуемо :) ... если человек не находит времени, чтобы почитать пару страниц о работе с отладчиком, то "учить" его - занятие сомнительное ИМХО...

Бывает и такое. :)))

ЗЫ: Я сам, без литературы разобрался со студией. Просто раньше имел дело со средами разработки программ. Да и сама студия до боли простая. Только однажды задал вопрос, как поменять частоту МК в отладчике, так как не мог нигде найти. :)
ЮТ
Добавь строчку в конце проигрывания:

Код: Выделить всё

cbi ПОРТ, НОМЕР НОГИ

Например:

Код: Выделить всё

cbi PORTB, 0 ;Установка лог. 0 на ноге PB0
cbi PORTB, 1 ;Установка лог. 0 на ноге PB1
cbi PORTB, 2 ;Установка лог. 0 на ноге PB2
cbi PORTB, 3 ;Установка лог. 0 на ноге PB3
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
ЮТ
Вымогатель припоя
Сообщения: 623
Зарегистрирован: Чт июн 11, 2009 07:25:24
Откуда: СПб

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ЮТ »

Ок, завтра поколдую. Сегодня уже спать все легли...
Спасибо
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение DX168B »

Решил побаловаться со стеком. :)))
Типа, возврат из подпрограммы совсем в другое выбранное место.
Спецов прошу не бить меня, пример приведён для новичков.
После выполнения подпрограммы PROG, мы возвращаемся уже не в LOOP, а опять в MAIN столько раз, сколько указано в регистре r17.

Код: Выделить всё

;----------
.cseg
.org        0x0000
;----------
            ldi         r16,            RamEnd
            out         SP,             r16
            ldi         r17,            0x04
;----------
MAIN:       nop
            nop
            nop
            nop
            rcall       PROG
;----------
LOOP:       rjmp        LOOP
;----------
PROG:       dec         r17
            brne        WH_END
            ret
WH_END:     pop         r16
            pop         r16
            ldi         r16,            Low(MAIN)
            push        r16
            ldi         r16,            High(MAIN)
            push        r16
            ret
;----------
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
ЮТ
Вымогатель припоя
Сообщения: 623
Зарегистрирован: Чт июн 11, 2009 07:25:24
Откуда: СПб

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ЮТ »

Подключил нормально питание, неужто в этом было дело? :? :cry: :(
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение DX168B »

Не понял. Какое питание? В чём дело?
Программа симулируется в Студии и без МК. Что, отлаживал программу через программатор?
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
ЮТ
Вымогатель припоя
Сообщения: 623
Зарегистрирован: Чт июн 11, 2009 07:25:24
Откуда: СПб

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ЮТ »

Прошил, подключил +5В а не +3,3. Сначала то от программатора питал...
Теперь нормально всё вроде бы. Спасибо :beer:
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение DX168B »

Строчку добавил? Которую я дал? Или питанием всё решилось?

ЗЫ: Советую начать изучать МК, дело полезное и в хозяйстве пригодится. :)
Последний раз редактировалось DX168B Пн мар 28, 2011 12:53:05, всего редактировалось 1 раз.
I am DX168B and this is my favourite forum on internet!
Ответить

Вернуться в «AVR»