Страница 81 из 400

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

Добавлено: Вс мар 27, 2011 15:35:14
ЮТ
nopal писал(а):Debug - Start debbuging. (или Ctrl+shift+alt+f5). и потом каждый шаг - f11.
Вот тут

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

dec Temp1
brne Cycle
Желтая стрелочка начинает ходить вверх вниз и всё.... :dont_know:

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? :dont_know:
Просто изучать что либо сейчас некогда, нужно сделать дедушке звонок. А тут учеба ещё, ЕГЭ и прочее :kill:

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

Добавлено: Вс мар 27, 2011 16:54:56
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

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
ЮТ
Подключил нормально питание, неужто в этом было дело? :? :cry: :(

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

Добавлено: Пн мар 28, 2011 12:36:47
DX168B
Не понял. Какое питание? В чём дело?
Программа симулируется в Студии и без МК. Что, отлаживал программу через программатор?

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

Добавлено: Пн мар 28, 2011 12:40:54
ЮТ
Прошил, подключил +5В а не +3,3. Сначала то от программатора питал...
Теперь нормально всё вроде бы. Спасибо :beer:

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

Добавлено: Пн мар 28, 2011 12:51:50
DX168B
Строчку добавил? Которую я дал? Или питанием всё решилось?

ЗЫ: Советую начать изучать МК, дело полезное и в хозяйстве пригодится. :)