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

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

Добавлено: Вт дек 27, 2011 08:50:20
Engineer_Keen
Так я ж говорю, крайний случай :) Ну и через макросы так перепрыгивать конечно не стоит, можно и промахнуться :kill:

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

Добавлено: Вт дек 27, 2011 11:23:11
Gudd-Head
Мне фантазии не хватает придумывать названия меткам :))

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

Добавлено: Вт дек 27, 2011 11:58:18
ploop
Я тупо по названиям подпрограмм:

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

print:
  pr01:
  pr02:
  pr03 ...
ret

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

Добавлено: Вт дек 27, 2011 12:19:02
Engineer_Keen
Аналогично.
Первая часть по названию подпрограммы, вторая или число или по функциональному назначению (_LOOP, _WAIT, _RET, _POS, _NEG и т.д.)

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

Добавлено: Вт дек 27, 2011 13:11:47
GP1
:))
+1
внутри п/п пара букаф+цифирьки

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

Добавлено: Вт дек 27, 2011 20:39:53
dave_elektrik
dave_elektrik писал(а): brne PC +2, иногда встречал +4 или +7.
В какой системе счисления написаны цифры (+2, +4, или +7)?
Вопрос о правильности оформления.
Как будет правильней? -
PC+0x0007 или
РС+7

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

Добавлено: Вт дек 27, 2011 21:06:52
ploop
А без разницы. Хоть +7, хоть +0x07, можно и +0b00000111
Всё это константы.

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

Добавлено: Вт дек 27, 2011 21:07:44
GP1
здесь цифирки написаны в 10-й системе, но в принципе абсолютно без разницы.
главное правильно вычислить число шагов

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

Добавлено: Вт дек 27, 2011 22:12:22
vitalik_1984
GP1 писал(а):здесь цифирки написаны в 10-й системе, но в принципе абсолютно без разницы.
главное правильно вычислить число шагов
кручу верчу запутать хочу :) всё равно микроконтроллер только один вид представления понимает! там где единицы и нолики, но для нашего с вами удобства компилятор переводит всё в правильную форму представления.

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

Добавлено: Вт дек 27, 2011 22:23:26
pyzhman
Думаю, что из нашей неправильной формы, десятичной, он переводит в правильную, свою. :)

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

Добавлено: Ср дек 28, 2011 16:08:26
ciph
Можно вклиниться со своей проблемой? Хочу сам написать программу для вольтметра на asm. Мограть светодиодиками по вращению переменного резистора получилось, а вот как вывести на индикаторы-проблема. Есть ли у кого пример исходника на asm?

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

Добавлено: Ср дек 28, 2011 16:19:48
GP1
вечером дома гляну.

зы посмотри атмеловский апноут avr204 я им пользуюсь для подготовки данных для индикатора.

зыы п/п вызывается из прерывания таймера (5мс) может отображать до 8 разрядов.

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

Добавлено: Вс янв 01, 2012 22:27:37
nickallass
Здравствуйте. С Новым Годом :beer:
Пытаюсь освоить микроконтроллеры и написать свою первую программу для Atmega16. Основная часть программы вроде заработала нормально и в отладчике и в Протеусе, но суть не в этом. А вот 16-ти битный таймер и прерывания никак победить не могу :( Таймер в моём случае предполагается использовать для формирования прерывания раз в секунду, по которому микроконтроллер должен начинать выполнять программу с начала. Решил для этой цели использовать прерывание по переполнению таймера-счетчика 1(TIMER1 OVF). Проблема заключается в том, что в отладчике при переполнении таймера микроконтроллер переходит не к обработке прерывания по метке "TIMER1_OVF:", а перескакивает на строчку "ldi r16,0b11111111" в программе, т.е. получается замкнутый цикл :cry: Подскажите пожалуйста что я делаю не так?
Для написания и отладки программы использую AVR Studio 5. Ниже сам код программы. Не обращайте внимание на значение коэффициент деления и регистра TCNT1, выставил так чтобы в отладчике долго не ждать :)

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

.cseg
.org 0

;Векторы прерываний
rjmp RESET                    
rjmp INT_0                     
rjmp INT_1
rjmp TIMER2_COMP
rjmp TIMER2_OVF
rjmp TIMER1_CAPT
rjmp TIMER1_COMPA
rjmp TIMER1_COMPB
rjmp TIMER1_OVF
;-------------------------

INT_0:
INT_1:
TIMER2_COMP:
TIMER2_OVF:
TIMER1_CAPT:
TIMER1_COMPA:
TIMER1_COMPB:
reti

RESET:
ldi r16,0b00000100     ;разрешение прерывания по переполнению 
out TIMSK,r16            ;счетчика (TOIE1=1)

ldi r16,0b00000001     ;коэф. деления 1
out TCCR1B,r16         ;

ldi r16,0b11111111     ;записываем число, с которого таймер
out TCNT1H,r16          ;начинает отсчет
ldi r16,0b11001101     ;
out TCNT1L,r16          ;

sei

S: rjmp S                 ; бесконечный цикл

TIMER1_OVF:  
rjmp RESET

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

Добавлено: Вс янв 01, 2012 23:06:02
BVS
таблица прерываний не верная

rjmp на jmp поменяйте

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

Добавлено: Вс янв 01, 2012 23:41:39
nickallass
BVS писал(а):таблица прерываний не верная

rjmp на jmp поменяйте
Спасибо огромное, заработало :))

Получается, что в статье Таймеры и каунтеры. Бегущий огонек v2.0, которая в обучалке, тоже ошибка :?

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

Добавлено: Вс янв 01, 2012 23:59:01
BVS
nickallass писал(а):
BVS писал(а):таблица прерываний не верная

rjmp на jmp поменяйте
Спасибо огромное, заработало :))

Получается, что в статье Таймеры и каунтеры. Бегущий огонек v2.0, которая в обучалке, тоже ошибка :?
нет там ошибки!!!
там таблица at90s2313
МК АВР у которых больше 8 кБайт флеша таблица разбита на два слова 4 байта под JMP
удостоверьтесь в документации к вашему МК

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

Добавлено: Пн янв 02, 2012 12:07:40
ciph
GP1 писал(а):вечером дома гляну...
Спасибо, бум разбираться...

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

Добавлено: Вс янв 15, 2012 16:00:42
ciph
Подскажите, как инициализировать 2 и больше каналов ацп?

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

Добавлено: Вс янв 15, 2012 16:06:24
Мастер Ломастер
ciph писал(а):Подскажите, как инициализировать 2 и больше каналов ацп?
работа с разными каналами ведется по очереди: сначала с одним, затем с другим. настройка всех каналов совершенно идентична

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

Добавлено: Вс янв 15, 2012 16:28:19
ciph
хм, допустим инициализируем ацп, выставляем биты на 1-й канал. Вызывается прерывание, данные с 1-го канала очучаются в ADCL, ADCH и выводятся на индикатор. Как быть со вторым каналом, что бы данные попали уже на другой индикатор? делаю вольтамперметр, вот и заморачиваюсь