Например TDA7294

Форум РадиоКот • Просмотр темы - Ассемблер (ASM) для AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вс июн 29, 2025 20:17:09

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7952 ]     ... , , , 90, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 11, 2011 03:35:50 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пт апр 02, 2010 01:48:44
Сообщений: 83
Откуда: Москва
Рейтинг сообщения: 0
:shock: уфф.. устал лопатить инфу, скажу честно, весь раздел форума не читал(а ведь это 1800 постов) :shock: ну да ладно ближе к делу: почитав обучалку об AVR но никак не могу понять последовательность написания кода и компиляции! батник создал, заголовочный файл так же создал, а дальше не внюхиваю никак :))
цитата из обучалки:
Ну вот, с заголовочными файлами разобрались.
Ниже можно писать текст программы. Напишем что-нибудь вроде:

ldi R16,5 ;загрузка констант в регистры
ldi R17,7
and R16,R17 ;логическое «И» двух регистров
nop

где написать текст в блокноте или в ассемблере :oops: ???
дальше:(из обучалки)

Сохраняем файл. Окно можно не закрывать. Лезем в папку tutorial и запускаем compile.bat. Файл компилируется.
Не забывайте сохранять файл перед каждой компиляцией!

куда его нужно сохранить и в каком расширении??? :write:

в принципе пока вопросов нету, коты, будьте добры пожуйте за меня :hunger: ,


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 11, 2011 09:14:29 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22
Сообщений: 2401
Откуда: Россия, Волгоград
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Скачай AVRStudio (но не v.5 а что-нибуть 4.хх) и забудь про батники, сохранение файлов, ломание головы что-куда сохранять.

PS если бы прочитал тему, хотя бы, то узнал что в обучалке куча косяков и в принципе не верный подход к программированию на асме.

_________________
Чем дальше, тем больше становлюсь занудой...
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 11, 2011 10:48:08 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6010
Откуда: Minsk
Рейтинг сообщения: 0
groi писал(а):
где написать текст в блокноте или в ассемблере :oops: ???


Как по мне, так лучше нет старого доброго MultiEdit, но это касается только удобства набора. Он обеспечивает вертикальное выделение ( колонки ), сравнение двух файлов и т.д. Сохраняем с расширением .asm . Затем компилируем - AVR Studio версия не ниже 4.18 - и никаких проблем. Дальше включаем голову :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 11, 2011 22:18:48 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пт апр 02, 2010 01:48:44
Сообщений: 83
Откуда: Москва
Рейтинг сообщения: 0
мдаа, про косяки в обучалке я не спорю, дядя Серёжа зло посмеялся над школьниками :)) спасибо за советы, будем включать голову :write:


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 12, 2011 02:16:57 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Я сразу так и сделал в своё время. Сразу скачал AVR Studio 4 и не стал "париться" с батниками, блокнотом и TAVRASMом. :))) Написал, нажал "Build" и прошивка готова. :) Тем более, по умолчанию, кнопка сборки под носом, выше окна редактора. Ниже окна редактора - окно вывода результатов. Если есть косякС, щёлкнул 2 раза на строчку с красным кружком и курсор показывает строку с ошибкой. :) Сбоку дерево папок проекта. Очень полезна виртуальная папка "Labels" В большой программе легко отыскать любую метку или подпрограмму. Если проект состоит из нескольких файлов с исходниками, то под окном редактора они открываются, как вкладки, что позволяет быстро переключаться между файлами исходников.
Фич, полезностей и удобностей намного больше, чем у простого блокнота с батниками и консольным компилятором. Да к тому же эта среда простая в обращении и более дружелюбна к ассемблеру в отличии от Eclipse, AVR Studio 5, IAR и прочих Сишных мощных сред.

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 12, 2011 07:49:33 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19692
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
DX168B писал(а):
Написал, нажал "Build" и прошивка готова.

Нажал "Program", и прошивка уже в контроллере.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
В сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 12, 2011 11:06:51 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19692
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
DX168B писал(а):
Наверное всё-таки надо будет отслеживать порядок последовательностей.

Получилось :)
Сделал две ветки обработки направления вращения с обязательным проходом через все состояния. Т.е. пока энкодер неподвижен (11) опрашиваем порты и ждём 01, либо 10 (00 на данный момент эквивалентно 11). Далее (когда считалось 01 или 10) ждём 00, далее ждём 10 или 01 соответственно, ну и наконец ждём 11. Всё, энкодер переместился на 1 положение. Теперь можно делать что-то и в начало, опрашивать порты в ожидании 01 или 10. Возможно не самый компактный и изящный вариант. Зато работает без всяких кондёров :))

Теперь другая задача: сделать ограничение (насыщение) регистра (а ещё лучше сразу регистровой пары). Т.е. вращаем ручку в одну сторону — увеличиваем счётчик, в другую — уменьшаем, и необходимо избежать переходов 0 —» FFh (в общем случае 0 —» 0xFFFFh) и FFh —» 0 (0xABCDh —» 0xABCЕh, где ABCD — верхний порог).

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 12, 2011 14:31:32 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Может так?
Код:
ENC_RQ:
......  ;Опрашиваем энкодер и уходим в одну из веток.
........
;----------
INC_00:
cpi r16, 0xFF
breq ENC_RQ
inc r16
rjmp ENC_RQ
;----------
DEC_00:
cpi r16, 0x00
breq ENC_RQ
dec r16
rjmp ENC_RQ

Не совсем изящный метод, скорее даже очевидный, но работать должен. :)
Правда с одним регистром. А вот с парой тоже интересно, как сделать...

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 12, 2011 15:32:41 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6010
Откуда: Minsk
Рейтинг сообщения: 0
DX168B писал(а):
Правда с одним регистром. А вот с парой тоже интересно, как сделать...


Элементарно, Ватсон !

Код:
   adiw   ZL,1
   brcc   IncZL
   sbiw   ZL,1
IncZL:   ...

   sbiw   ZL,1
   brcc   DecZL
   adiw   ZL,1
DecZL:   ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 12, 2011 15:36:25 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
О... Точно. :) Не доходило просто, как изящно проверить порог переполнения. :)

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 13, 2011 13:05:08 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19692
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Jack_A писал(а):
Элементарно, Ватсон !

Вообще, я почему-то не захотел использовать 4 старшие решистровые пары :) Ну и всё оказалось действительно элементарно: сначала сравниваем старший байт с порогом, потом (только если совпало) — младший. Если совпало в обоих случаях, пропускаем инкремент/декремент.

Кстати, по поводу икремента обобщённой регистровой пары. Как сделать это изящно (кроме команды 'adiw')? На ум приходит только сложить младший байт с регистром, в котором находится "1" (аналог команды inc, только с флагом С), а затем сложить с переносом старший байт с регистром, в котором находится "0" (т.е. по сути просто прибавить флаг переноса). Ну да ладно, это вроде уже не так давно обсуждали.

Теперь усложняю задачу с энкодером и порогами: прибавлять/вычитать не единицу, а 1/10/100 в зависимости от скорости вращения энкодера, причём с сохранением ограничения (порогов) :shock: Чую, без таймеров не обойтись. Пошёл курить даташит.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Последний раз редактировалось Gudd-Head Пн июн 13, 2011 13:19:06, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 13, 2011 13:15:25 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Мне кажется, что изящнее метода нет, чем adiw \ sbiw
Может и есть, но пока я не видел ничего подобного, чтобы одной строчкой можно было прибавить \ отнять восьмибитную константу к \ с 16-битному(го) значению(я) (рег. паре)

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 13, 2011 13:21:08 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19692
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
DX168B писал(а):
Мне кажется, что изящнее метода нет, чем adiw \ sbiw

Про одну строчку никто и не говорил, adiw / sbiw всё равно выполняется за 2 такта.
З.Ы.: см. мой пред. пост, я его подредактировал :))

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 13, 2011 14:23:49 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
У меня бы мозги взорвались сделать такое. :))) Я же ещё котёнок в МК. :oops:
Лучше я свой кодовый замок доделаю и термометр на DS18B20. :)
У меня готовится к выходу четвёртая версия замка. :)))

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 13, 2011 15:21:23 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6010
Откуда: Minsk
Рейтинг сообщения: 0
DX168B писал(а):
У меня готовится к выходу четвёртая версия замка. :)))


Взломщики в панике :wink:


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 13, 2011 15:23:18 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19692
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
DX168B писал(а):
Лучше я свой кодовый замок доделаю и термометр на DS18B20.

Я тоже где-то с год назад сделал термометр на 18В20. Правда, самый элементарный: только для положительных температур и без проверки CRC.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 13, 2011 18:04:07 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Цитата:
Взломщики в панике...

Конечно в панике будут, когда код длинной до 20 знаков + четыре дополнительные клавиши A, B, C и D к цифрам. :))) :)))

Дерьмометырь:
У меня он будет и отрицательную мерить, и CRC считать, но я не буду использовать серийники датчиков.

И кстати, у меня вопрос. Имеем три числа в диапазоне от 0 до 9 в трёх разных регистрах.
Как их собрать в один регистр. То есть к примеру три числа: 1, 3 и 8 в трёх разных регистрах.
Надо их собрать в один регистр, чтобы получилось в нём число 138
Пример на ассемблере можно не выкладывать, меня больше интересуют действия над этими регистрами (числами)

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 13, 2011 18:05:59 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19692
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
DX168B писал(а):
То есть к примеру три числа: 1, 3 и 8 в трёх разных регистрах.

1*100 + 3*10 + 8 = 138 :)

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 13, 2011 18:08:03 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Млин, точно... Я уже 20 минут себе мозг ломал, а всё проще оказалось. Разделить число на остатки смог, а собрать - что-то не додумался. Спасибо. :beer:

Эхх... Пора мне учебник по математике открыть и всё вспомнить. :)

_________________
I am DX168B and this is my favourite forum on internet!


Последний раз редактировалось DX168B Пн июн 13, 2011 18:10:45, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 13, 2011 19:28:54 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Сделал так:
Код:
; Вход - 3 ячейки ОЗУ, выход - temp0
lds            dx2,         mem_ml
ldi            dx1,         100
rcall         MUL_8
sts            mem_ml,         dx2
lds            dx2,         mem_ml+1
ldi            dx1,         10
rcall         MUL_8
sts            mem_ml+1,      dx2
lds            temp0,         mem_ml
lds            dx1,         mem_ml+1
add            temp0,         dx1
lds            dx1,         mem_ml+2
add            temp0,         dx1



;----------
MUL_8:   
clr            dx3
ldi            count,         8
lsr            dx1
MUL_81:   
brcc         MUL_82
add          dx3,         dx1
MUL_82:
ror            dx3
ror            dx2
dec            count   
brne         MUL_81
ret

Очень извратно, но работает. Позже подумаю об оптимизации.

_________________
I am DX168B and this is my favourite forum on internet!


Последний раз редактировалось DX168B Пн июн 13, 2011 20:50:30, всего редактировалось 2 раз(а).

Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7952 ]     ... , , , 90, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: kotneko и гости: 18


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y