Страница 81 из 400
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 15:35:14
ЮТ
nopal писал(а):Debug - Start debbuging. (или Ctrl+shift+alt+f5). и потом каждый шаг - f11.
Вот тут
Желтая стрелочка начинает ходить вверх вниз и всё....

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 15:56:47
DX168B
Она так будет ходить 255 раз.
Отмечаем следующую строку после цикла задержки и жмём на Toggle Breakpoint.
На против этой строки появится жирная красная точка. Потом запускаем программу клавишей F5.
Программа быстро обработает задержку и остановится на отмеченной строке. Дальше можно продолжить отладку клавишей F11
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 16:00:34
ЮТ

Все равно ходит вверх и вниз...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 16:04:03
nopal
ЮТ писал(а):
Все равно ходит вверх и вниз...
Покажи код начиная от метки cycle и до этого места.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 16:05:12
ЮТ
Код: Выделить всё
;**********************************************************
Delay:
ldi Temp1,0
ldi Temp2,0
Cycle:
dec Temp1
brne Cycle
dec Temp2
brne Cycle
dec time
brne Cycle
ret
;**********************************************************
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 16:08:39
DX168B
А так?

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 16:12:33
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, и увидишь что выйдет из цикла. А так смотри алгоритм всей программы.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 16:17:03
ЮТ

всё равно скачет...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 16:44:19
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.
Симулятор отработает эту задержку и встанет на паузу на отмеченной строке, как только дойдёт до неё. Дальше можно продолжить вручную отрабатывать. Как дойдём до задержки, так снова запустим в реальном времени, чтобы быстро отработать эту задержку.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 16:48:11
ChipKiller
DX168B писал(а):Млин, ну как ещё объяснить?
...
DX168B каждое хорошее дело наказуемо

... если человек не находит времени, чтобы почитать пару страниц о работе с отладчиком, то "учить" его - занятие сомнительное ИМХО...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 16:50:19
ЮТ
Проскочил он это. А дальше что делать?
DX168B, Спасибо.
ChipKiller, Рано или поздно такие люди как ты всегда появляются и начинают язвить...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 16:52:22
ChipKiller
Рано или поздно такие люди как ты всегда появляются и начинают язвить...
... если этого иногда не делать - форум превращается в ФЛУДИЛЬНЮ.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 16:54:06
ЮТ
И всё же, как сделать так чтобы после проигрывания мелодии на ноге был 0?

Просто изучать что либо сейчас некогда, нужно сделать дедушке звонок. А тут учеба ещё, ЕГЭ и прочее

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 16:54:56
DX168B
ChipKiller писал(а):DX168B писал(а):Млин, ну как ещё объяснить?
...
DX168B каждое хорошее дело наказуемо

... если человек не находит времени, чтобы почитать пару страниц о работе с отладчиком, то "учить" его - занятие сомнительное ИМХО...
Бывает и такое.
ЗЫ: Я сам, без литературы разобрался со студией. Просто раньше имел дело со средами разработки программ. Да и сама студия до боли простая. Только однажды задал вопрос, как поменять частоту МК в отладчике, так как не мог нигде найти.
ЮТ
Добавь строчку в конце проигрывания:
Например:
Код: Выделить всё
cbi PORTB, 0 ;Установка лог. 0 на ноге PB0
cbi PORTB, 1 ;Установка лог. 0 на ноге PB1
cbi PORTB, 2 ;Установка лог. 0 на ноге PB2
cbi PORTB, 3 ;Установка лог. 0 на ноге PB3
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 17:10:12
ЮТ
Ок, завтра поколдую. Сегодня уже спать все легли...
Спасибо
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс мар 27, 2011 20:45:41
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
;----------------------------------------------------------------
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пн мар 28, 2011 09:38:29
ЮТ
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пн мар 28, 2011 12:36:47
DX168B
Не понял. Какое питание? В чём дело?
Программа симулируется в Студии и без МК. Что, отлаживал программу через программатор?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пн мар 28, 2011 12:40:54
ЮТ
Прошил, подключил +5В а не +3,3. Сначала то от программатора питал...
Теперь нормально всё вроде бы. Спасибо

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пн мар 28, 2011 12:51:50
DX168B
Строчку добавил? Которую я дал? Или питанием всё решилось?
ЗЫ: Советую начать изучать МК, дело полезное и в хозяйстве пригодится.
