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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

OKF, почитал статью.
получается, что у меня голимый быдлокод. я открывающую фигурную скобку всегда делаю в новой строке.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Интересно...
Что ж тогда ОКF до нас то снизошёл в споре?
8)
Исключительно академический подход без всяких вариантов на попытки - во истину "шаг влево, шаг вправо - одно БЫДЛО"...
Как то не слишком вежливо звучит...
:twisted:
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25123
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

Сообщение КРАМ »

[uquote="Starichok51",url="/forum/viewtopic.php?p=4662154#p4662154"]OKF, почитал статью.
получается, что у меня голимый быдлокод. я открывающую фигурную скобку всегда делаю в новой строке.[/uquote]
Старичок, успокойтесь... Я тоже.
Это шутливая статья, как и вся Лурка. Просто стеб.
[uquote="AlexS4",url="/forum/viewtopic.php?p=4662141#p4662141"]и чесно говоря осознанный отказ от таймеров, точнее от прерываний по таймерам (таймеры то обычно есть в msc чипе)
не является для меня однозначным признаком быдлокодирования[/uquote]
А это и не является быдлокодированием. Это является исключением. И потому его не стоит пропагандировать как правило. Мы же обсуждали не вообще отказ от таймера, а отказ от СИСТЕМНОГО таймера в СЛУЧАЕ разного рода опросов кнопок, светодиодов и т.п. шняги.
А так и я синтезировал радиоимпульс (синусоидальный импульс) линейным кодом в примитивном МК. Иначе я бы не смог получить столько отсчетов сигнала.
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6646
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

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

Сообщение AlexS4 »

Ассемблер (ASM) для AVR в вопросах и ответах
я открывающую фигурную скобку всегда делаю в новой строке.
Старичок, успокойтесь... Я тоже.
:facepalm: чурменя :))

wc ~/data/devel/pan2/x213.asm
1529 3567 31967 ~/data/devel/pan2/x213.asm
grep -ce'\{' ~/data/devel/pan2/x213.asm
0

еще можно обсудить { на новой строке в питоне например :)))
AQ29
Нашел транзистор. Понюхал.
Сообщения: 198
Зарегистрирован: Сб июл 30, 2011 21:00:24

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

Сообщение AQ29 »

[uquote="Adrift",url="/forum/viewtopic.php?p=4661737#p4661737"]У вас основной цикл тормозится на 60ms, а если третье сравнение проваливается, то прыгаем в начало и ждем еще минимум 60ms. Если такое происходит раз в секунду, то 12% производительности потеряно, причем это верно как для 16 MHz AVR, так и для 1GHz ARM. Смысл писать такое на ассме, если интерпретатор бейсика работает быстрее ? ) И что будет вызываться в основном цикле помимо опроса кнопок заранее не известно, далеко не факт, что с паузой 160ms оно будет работать, потому один раз пишется нормальная функция опроса кнопок, которая работает практически всегда.[/uquote]
Я бы не стал считать проценты производительности, а исходил из решаемой задачи.
Скажем, какой-нибудь прибор-измеритель, основной цикл – 10 мс и чётко определён, а выводить информацию на табло надо раз в секунду, чтобы цифры не мелькали. Будет цикл 10 мс или 160 мс – без разницы.
Если всё же пауза будет недопустимой, то можно сделать с прерыванием по таймеру, я ведь не против. Немного будет посложнее, но это мелочь.
Можно ввести три переменные в SRAM для отсчётов и байт, в котором номер отсчёта. Тоже всё просто.
Последнее время пришлось много заниматься проверкой разных подпрограмм на макетной плате. При отладке на макетке кнопки без всяких таймеров очень удобны, никаких проблем с отлаживаемой программой, а подключить кнопки к программе – несколько минут.
Так что для некоторых задач такое решение - «на грани абсурда», для других задач – то, что надо.
В этом плане для меня ваша единая нормальная функция опроса кнопок сильно сомнительна.
[uquote="Adrift",url="/forum/viewtopic.php?p=4661737#p4661737"][uquote="AQ29",url="/forum/viewtopic.php?p=4661724#p4661724"]Если всё же надо быстро выскочить из программы, есть ведь задержки с флагом. При установке флага можно выскочить из программы, наверно, тоже где-то за 1 мкс.[/uquote]
Все можно, только теперь ваша программа уже не будет такой простой )[/uquote]

Что ж там сложного?
Будет что-нибудь вроде такого:

Delay_T 30 ms
BRTC L_0
RET
L_0:
…….. ‘Продолжение программы

Delay_T – задержка с флагом Т. При установке бита Т (регистр SREG) программа быстро выскочит из Delay_T. Встроенной такой функции пока нет (так-то есть), но появится, нередко бывает нужна.
[uquote="КРАМ",url="/forum/viewtopic.php?p=4661735#p4661735"]Таймер найдется всегда. Если он вообще есть в МК. На крайняк это может быть 100 Гц сети заведенные на внешнее прерывание. Делать плавающий опрос - это очень плохая идея. Как правило, клавиатуры/кнопки сопровождают светодиоды, которые тоже традиционно мультиплексированы. Опрос традиционно общий.
Вы пытаетесь доморощенное частное решение пропагандировать как верное. Еще раз повторю - это смешно.[/uquote]
Таймер может быть занят. Один ШИМ-ом, другой подсчётом каких-нибудь внешних импульсов.
Была как-то задача – формирование сложного электрического сигнала. МК постоянно занят, отвлекаться нельзя, все прерывания запрещены. Есть только небольшое окно для обработки флагов прерываний, взаимодействия с внешней средой. Здесь прерывания не прокатят. Правда, это был периферийный МК, кнопок у него не было.
[uquote="КРАМ",url="/forum/viewtopic.php?p=4661735#p4661735"]Вопрос с помехами даже не буду комментировать. Ваши фантазии - они только ваши фантазии.[/uquote]
Прочитал ваш пост про преобразователь с регулярными помехами, сбивающими электронику. Первой мыслью было: наймите на работу грамотного электронщика, он сделает источник питания, который не будет сбивать МК.
Вспомнил ситуацию. Разработал по заказу небольшой импульсный источник. Заказчик сделал такой же заказ ещё у другого исполнителя, наверно, для сравнения. Потом сообщают, у того источник получился гораздо меньше, вот, мол, как надо работать.
Стали испытывать. Оказалось, у того источника были такие помехи, что невозможно измерить напряжение на выходе, электронный мультиметр сбивался. Наверно, тяжёлый режим трансформатора плюс непрерывный режим.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25123
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

Сообщение КРАМ »

[uquote="AQ29",url="/forum/viewtopic.php?p=4662376#p4662376"]Первой мыслью было: наймите на работу грамотного электронщика, он сделает источник питания, который не будет сбивать МК.[/uquote]
:))) :))) :)))
Наглость - вторая натура.
А кто вам сказал, что помехи создает СВОЙ источник? Свой источник сделать под собственные требования - не велика задача. Проблема в тех, которые в этой же сети включены и находятся в оборудовании за охулиард денег. Так что дело не в источнике, а в схемотехнике собственно целевого низковольтного устройства с учетом наличия внешних мощных помех.
Просто пример из моего опыта.
Наша контора разработала (ваш покорный слуга разработал единолично) и выпускает устройство под названием "деактиватор акустомагнитных этикеток". В нем электроника устройства выполняющая не только заявленную в названии функцию, но и детектирование наличия этикеток, размещена прямо в катушке деактивации с импульсным переменным магнитным полем созданным 8,5 килоампервитками этой катушки.
И ничего, работает как часы. :tea:
ЗЫ. К слову. Пара кнопок на лицевой панели имеются. Догадайтесь какой у них алгоритм? :music:
Adrift
Вымогатель припоя
Сообщения: 539
Зарегистрирован: Вт окт 01, 2024 15:22:33

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

Сообщение Adrift »

AQ29, давайте таки переберемся в тему про кнопки, чтобы никто не нудил, я там ответил )
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

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

Сообщение shonty »

[uquote="shonty",url="/forum/viewtopic.php?p=4659251#p4659251"]
BOB51 писал(а):Есть еще для нескольких МК, но те пока не проверялись в проектах.
AT90S2313 ?[/uquote]
[uquote="BOB51",url="/forum/viewtopic.php?p=4659280#p4659280"]Нет - ATtiny2313...
AT90S2313 это вроде из самых старых... Такой даже в "пробниках" не было...[/uquote]
Таки вдохновила меня AT90S2313 спаять стендик..
Да и проектик уже к концу подходит.. да уже бы и закончил))
Осталось чуть-чуть. и вдруг обнаруживаю, что в AT90S2313 нет mul :facepalm: :shock: :)) :))

Думаю теперь)) почитать что-нибудь по теме.. или сложение в цикле замутить :)) Нужно то всего в одном месте на 60 умножить..

Всем :beer:

Добавлено after 9 minutes 26 seconds:
PS ""mpy8u" - 8x8 Bit Unsigned Multiplication" конечно жёсткая по коду :facepalm:
Через цикл сложения сделаю.. Всё равно потом ещё задержку вставлять перед переходом..
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Список доступных команд обычно в даташите прилагается.
Не у всех одинаков - надо порой посматривать туда.
Касательно умножения... Хорошо, когда степень двойки... А на 60...
Может чего другого в соответствии с задачей придумать можно?...
Или уж сложение со сдвигами...
:roll:
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

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

Сообщение shonty »

BOB51 писал(а):А на 60... Может чего другого в соответствии с задачей придумать можно?...
Или уж сложение со сдвигами...
Да не..))
Дольше здесь писал, чем код. 8 строк всего))
Понимаю, что не спортивно :))
Спойлер

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

	ldi R16, 59
	clr R17
	mov MAIN_COUNT_L, R23
	clr MAIN_COUNT_H
	
	add MAIN_COUNT_L,R23
	adc MAIN_COUNT_H,R17
	dec R16
	brne PC-3
Аватара пользователя
ДядяВован
Мучитель микросхем
Сообщения: 482
Зарегистрирован: Вс окт 25, 2020 22:13:25
Откуда: Смоленск

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

Сообщение ДядяВован »

Если скорость не важна, то и нормально.
Если надо быстро, то сдвигом умножить на 64, потом четыре раза вычесть.
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

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

Сообщение shonty »

Ещё задержку примерно в 0,7 секунд после цикла поставил.. там переход в другое меню, так что норм))
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

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

Сообщение ILYAUL »

Всем привет! Вопросик, как учесть часовой пояс , без переводов DEC->BIN->DEC
Аватара пользователя
ДядяВован
Мучитель микросхем
Сообщения: 482
Зарегистрирован: Вс окт 25, 2020 22:13:25
Откуда: Смоленск

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

Сообщение ДядяВован »

Вычитанием или сложением.
AQ29
Нашел транзистор. Понюхал.
Сообщения: 198
Зарегистрирован: Сб июл 30, 2011 21:00:24

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

Сообщение AQ29 »

[uquote="ДядяВован",url="/forum/viewtopic.php?p=4665074#p4665074"]Если надо быстро, то сдвигом умножить на 64, потом четыре раза вычесть.[/uquote]
Умножить на 64 – это 5 раз сдвигать, многовато. Лучше, наверно, приписать младший байт и сдвинуть вправо пару раз.
Аватара пользователя
ДядяВован
Мучитель микросхем
Сообщения: 482
Зарегистрирован: Вс окт 25, 2020 22:13:25
Откуда: Смоленск

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

Сообщение ДядяВован »

Можно и так.
kuber
Открыл глаза
Сообщения: 58
Зарегистрирован: Пн янв 08, 2007 18:23:08

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

Сообщение kuber »

Приветствую Всех.
Вопрос к знатокам по ассемблеру "gavrasm"
строка по тексту

.DB "test"
.DB "TEST"

На выходе компиляции только заглавные буквы (русские ,латинские)
Из за того что нету строчных букв на выходе компиляции приходится переводить свои проекты на "IAR ASSembler".
Новые свои проекты уже в "IAR ASSembler".

Мне удобнее программировать на этом "gavrasm" ассемблере.

Как и где указать "gavrasm" компилятору что не надо переводить всё в заглавные буквы?.
И возможно ли это вообще?
Аватара пользователя
ДядяВован
Мучитель микросхем
Сообщения: 482
Зарегистрирован: Вс окт 25, 2020 22:13:25
Откуда: Смоленск

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

Сообщение ДядяВован »

Этот баг появился с очередным обновлением, в младших версиях всё было нормально с буквами.
Не лечится.
Писал автору, но он не ответил. Хотя ранее я с ним переписывался по какой-то другой ошибке. Может быть его не стало, достаточно пожилой человек...
Долго пользовался этим компилятором, но с появлением ошибки заглавных букв пришлось уйти на другой.

Добавлено after 11 minutes 15 seconds:
kuber писал(а):Новые свои проекты уже в "IAR ASSembler"
Я перешёл на AVRA
kuber
Открыл глаза
Сообщения: 58
Зарегистрирован: Пн янв 08, 2007 18:23:08

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

Сообщение kuber »

Спасибо за ответ "ДядяВован"
Не зря перешел на "IAR ASSembler"
В "gavrasm" мне было на много удобней.
AVRA - чем то не зашло, уже и не помню.
Ещо раз Спасибо за ответ.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

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

Сообщение Jack_A »

[uquote="kuber",url="/forum/viewtopic.php?p=4775731#p4775731"]Вопрос к знатокам по ассемблеру "gavrasm"[/uquote]
СпойлерСтранно - уже более четверти века занимаюсь АВРами, а о таковом не слышал. Тем более странно, что первые 4 буквы названия - это первые 4 буквы моей фамилии :) Может, это я его разработал, а потом по-старчески забыл? :( Нет, это на Линухе - не моё. Жаль :)
Изображение
Ответить

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