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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

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

Сообщение Jack_A »

avreal писал(а): Они у меня практически только как источник XML-файлов с описанием контроллеров живут.
Кстати, Саша, может присоветуешь что-нить вумное. У меня на одном компе сто'ит Студия 3.56 и 4.1ХХ , живут мирно, только когда в 3. отлаживаю, она таблицы I/O не видит, приходится открывать еще одно окно Memory и там по адресам разбираться. Конечно, это мелочь, но так привык к комфортной работе, что уже думать головой - напрягает :-) Впрочем, за давностью уже не упомню : то ли вдобавок к 3. ставил 4-ку, то ли была заинсталена 4-ка, а 3-ю пренес простым копированием папки. Наверное, путь к таблицам I/O где-то в реестре прописан ?
Переставлять что-то не очень хочется - "не чапай лiха, пакуль сядзiць цiха "

PS А чего ты аватарку себе не замастыришь :-) Мой кот Мурик меня достойно представляет :-)
Реклама
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

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

Сообщение Arlleex »

.org OVF0addr
rjmp timer_0
delay_20000us:
sei ; I=1 (SREG)
ldi r16, 0b1 ; Разрешили прерывание по переполнению
out TIMSK, r16

ldi r16, 0b10110010 ; Заносим в TCNT0 178
out TCNT0, r16

ldi r16, 0b100 ; TCCR0 предделитель 256
out TCCR0, r16 ; Поехали!!!

A:
rjmp A ; Бесконечный цикл, дожидаемся флага TOV0

ret
timer_0:
ldi r16, 0b000 ; Остановим таймер
out TCCR0, r16

ldi r16, 0b0 ; Запретили прерывание по переполнению
out TIMSK, r16

reti
Почему после возврата из прерывания не выполняется ret в подпрограмме delay_20000us?
Не умеешь - не берись, но не взявшись не научишься...
Реклама
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

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

Сообщение Arlleex »

ведь после возврата из прерывания, должна выполняться команда, следующая за той, в ходе выполнения последней возникло то самое прерывание...
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

Stalker46 писал(а):ведь после возврата из прерывания, должна выполняться команда, следующая за той, в ходе выполнения последней возникло то самое прерывание...
Ёпт, он не перескакивает команду, а выполняет следущую. Насколько я понял, он опять прыгает обратно в цикл. Ведь по идее прерывание обрабатывается так, что ты его даже не замечаешь. На то оно и прерывание :)
В данном примере надо организовать цикл на ожидание того самого флага (SBIC или SBIS), а не "тупой" rjmp. Или уходить в ещё одно прерывание :))
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

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

Сообщение Arlleex »

ууу, как геморно придется делать:)
Не умеешь - не берись, но не взявшись не научишься...
Реклама
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

Stalker46 писал(а):ууу, как геморно придется делать:)
Что гемморного?

Проверка:
Пропустить, если флаг "..." не установлен
Возврат
Прыжок на "Проверка"
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

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

Сообщение avreal »

Jack_A писал(а):У меня на одном компе сто'ит Студия 3.56 и 4.1ХХ , живут мирно, только когда в 3. отлаживаю, она таблицы I/O не видит,
... Наверное, путь к таблицам I/O где-то в реестре прописан ?
Вот чего не знаю, того не знаю. Я эти xml-файлы описаний чипов открываю текстовым редактором (с поддержкой сворачивания веток xml) и сверяю с документаций сигнатуру контроллера, фьюзы, ..., ну понятно, что меня там может интересовать. А саму студию так, иногда прогнать короткий вычислительный код, такты посчитать. Периферию не смотрю.
Jack_A писал(а):Переставлять что-то не очень хочется - "не чапай лiха, пакуль сядзiць цiха "
«Что характерно»™, у англичан поговорка фактически та же — «don't trouble troubles until troubles troubles you»
Jack_A писал(а):Мой кот Мурик меня достойно представляет :-)
О! Меня ж пока не пнуть...
Знакомьтесь, Гита.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
sergeys
Поставщик валерьянки для Кота
Сообщения: 1946
Зарегистрирован: Сб сен 11, 2010 13:45:01
Откуда: Екатеринбург

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

Сообщение sergeys »

Привет!

У меня вопрос по Ассемблеру (как не странно, но в этой теме)

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

.include "D:\AVR\AVR STUDIO 3.21\AvrAssembler\Appnotes\2313def.inc"  ; точка есть
 
.def Temp=R16           ; точка есть
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20

.cseg                                 ; точка есть
.org 0

ldi Temp, 0b11111111                ; точки нет? 
 out DDRB, Temp
вот почему где-то точка есть а где-то ее нет?
Ко мне можно на "ты", так даже лучше!
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

sergeys писал(а):вот почему где-то точка есть а где-то ее нет?
Потому что где-то директива компилятору, а где-то команда МК.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
sergeys
Поставщик валерьянки для Кота
Сообщения: 1946
Зарегистрирован: Сб сен 11, 2010 13:45:01
Откуда: Екатеринбург

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

Сообщение sergeys »

ага, то есть перед операторами точку не ставить, а ставить только перед вот этими самыми строчками директив?
Ко мне можно на "ты", так даже лучше!
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

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

Сообщение Arlleex »

Где то видел док файл, там было описание команд ассемблера для AVR и не только .
А так же описание всех директив.
А еще - смотрите структуру программы и все поймете.
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

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

Сообщение Jack_A »

Stalker46 писал(а):Где то видел док файл, там было описание команд ассемблера для AVR и не только .
А также описание всех директив.
Далеко ходить не надо - все это есть в 4-й Студии.
Аватара пользователя
sergeys
Поставщик валерьянки для Кота
Сообщения: 1946
Зарегистрирован: Сб сен 11, 2010 13:45:01
Откуда: Екатеринбург

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

Сообщение sergeys »

Jack_A писал(а):
Stalker46 писал(а):Где то видел док файл, там было описание команд ассемблера для AVR и не только .
А также описание всех директив.
Далеко ходить не надо - все это есть в 4-й Студии.
а где там? в хелпе?
Ко мне можно на "ты", так даже лучше!
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

sergeys писал(а):а где там? в хелпе?
Слепые, что ли? :)
Help - AVR Tools User Guide - AVR Assembler - User's Guide - Directives
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
stima
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Сб ноя 13, 2010 16:16:45

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

Сообщение stima »

Есть ли команда "Пропустить если не равно", по аналогии с командой cpse? Или возможно ее реализовать например таким образом cpse temp, (1|2|3|4). И как она вообще реализуется.
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

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

Сообщение Meteor »

В чем проблема то? Ставите после команды которую надо пропустить метку и пишете
brne metka;
rcall command; Это надо пропустить по условию
metka:
nop
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

1) сравнивать CPSE с инвертированным значением
2) связка СР + BRNE
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
stima
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Сб ноя 13, 2010 16:16:45

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

Сообщение stima »

Столкнулся с таким. От компьютера к компьютеру меняется начальній адресс регистра ZL. С чем єто связано и какой адресс необходимо указівать при прошивке?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

stima писал(а):От компьютера к компьютеру меняется начальній адресс регистра ZL. С чем єто связано и какой адресс необходимо указівать при прошивке?
Что есть "начальній адресс регистра ZL"?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
stima
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Сб ноя 13, 2010 16:16:45

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

Сообщение stima »

при инициализации ldi zl.low(matrix*2) если посмотреть регистр r30 то он разный для разных компьютеров.
Ответить

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