Например TDA7294

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





Текущее время: Чт мар 28, 2024 11:22:03

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7597 ]     ... , , , 364, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт янв 05, 2021 00:28:11 
Первый раз сказал Мяу!
Аватар пользователя

Карма: 1
Рейтинг сообщений: 4
Зарегистрирован: Вс окт 18, 2020 19:01:52
Сообщений: 31
Откуда: Харьковская область
Рейтинг сообщения: 0
BOB51 писал(а):
Тем более, что у АВРок косвенное чтение памяти имеется.

Знаю, я его и использовал. Спасибо за советы, разобрался сам. Ошибка была не в коде, он рабочий. Допустил детскую ошибку при прошивке.

_________________
Это Спарта! В смысле, ассемблер. Все ручками.


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

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14018
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Прекрасно!
А теперь попробуйте используя только один байт буферного регистра вывести на индикацию вот такую трассу (или картинку при достаточной скорости смены информации):
Изображение
стрелочки показывают последовательность обхода светящейся точкой поля матрицы.
(направление обхода может быть и обратным).
8)
Подсказка - смотреть специфику адресации MAX7219.
:wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт янв 05, 2021 22:29:08 
Первый раз сказал Мяу!
Аватар пользователя

Карма: 1
Рейтинг сообщений: 4
Зарегистрирован: Вс окт 18, 2020 19:01:52
Сообщений: 31
Откуда: Харьковская область
Рейтинг сообщения: 0
Не совсем понятно
BOB51 писал(а):
один байт буферного регистра

Что имеется ввиду?
А вообще, для комфортной работы понядобится два РОН. Если совсем изаратиться и одного может хватить. Больше ведь никаких требований к алгоритму не вадвинуто. Самое тупое решение - через LDI кидаем в РОН нужное значение и засылаем его в SPDR.

_________________
Это Спарта! В смысле, ассемблер. Все ручками.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср янв 06, 2021 11:47:51 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14018
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
В данном случае имеется ввиду чисто программный синтез картинки - без "заготовки в ПЗУ".
Продвижка точки только алгоритмом программы при использовании одного байта временного хранения данных, а не матрицы 8*8.
ессно и счетчики и подпрограмма вывода будут присутствовать - но то и для обычного алгоритма применяется.
8)


Вернуться наверх
 
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср янв 06, 2021 14:35:28 
Первый раз сказал Мяу!
Аватар пользователя

Карма: 1
Рейтинг сообщений: 4
Зарегистрирован: Вс окт 18, 2020 19:01:52
Сообщений: 31
Откуда: Харьковская область
Рейтинг сообщения: 0
И чего там военного? Начинаем с правого верхнего угла. Кидаем в РОН, пусть будет R16, 0b00000001. В счётчик тоже ложим единицу.
Прогоняем отправку 0b00000001 восемь раз. Счётчик одновременно служит номером строки.
Когда достигли 8 - цикл со сдвигом R16 влево, декриментом счётчика и отправкой данных.
Когда достигли 1 - цикл аналогичный первому, без изменения R16.
Когда достигли 8 - цикл со сдвигом R16 вправо, декриментом счётчика и отправкой данных.
Мы вернулись в правый верхний угол.
Перед отправкой данных вызываем подпрограмму очистки дисплея.

_________________
Это Спарта! В смысле, ассемблер. Все ручками.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср янв 06, 2021 15:44:19 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14018
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Вот и возврат к вопросу правильно выбранных координат.
Поскольку возможно получить две трактовки привязки строк и колонок - надо перед публикацией оговаривать что принимаем за строку, а что за колонку.
8)
Колонка - вертикальный ряд (аналогия позиции знакоместа и соответственно адресу ОЗУ MAX7219), а строка - горизонталь (аналогия позициям сегментов в знакоместе).
Почему так удобнее - смотрим вариант "беглой строчки" - перемещение вертикальной колонки, привязанной к адресу ячейки ОЗУ MAX7219 гораздо удобнее выполняется в буфере видеопамяти.
При том, что можно как угодно привязку делать. Это уже подбор более оптимального варианта на вкусы разработчика.
:wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср янв 06, 2021 16:19:56 
Первый раз сказал Мяу!
Аватар пользователя

Карма: 1
Рейтинг сообщений: 4
Зарегистрирован: Вс окт 18, 2020 19:01:52
Сообщений: 31
Откуда: Харьковская область
Рейтинг сообщения: 0
Если у вас одиночный модуль, тогда да, его можно вертеть как угодно. А если линейка из четырёх модулей, тут уже всё зафиксировано. А если трудно запомнить, что адрес это столбец, а отправляемый байт строка - не надо и начинать писать программы.

_________________
Это Спарта! В смысле, ассемблер. Все ручками.


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

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14018
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Как раз для нескольких модулей более выгодно "классическое" распределение точек (принятое в MAX7219) - по вертикали "сегментные", а по горизонтали "позиционные".
Строкой принято называть развертку по горизонтали.
Или развертку пакета из энного числа байт позиционного ("сегментного") кода в результате которого на дисплее отображается строка символов.
Хотя... терминология без схемы - штука весьма вредная (общепринятой обязательной не существует).
Посему и требуется вместе с прожкой выкладывать точную привязку и собственную, принятую для конкретной программы систему обозначений.
Иначе алгоритмы обработки у каждого из занимающихся одним и тем же вопросом будут кардинально отличаться (и в то же время быть справедливы для каждой из конкретных схем).
8)
А вот чего там на самом деле, когда матрицы в едином блоке на общей платке смонтированы - это надо конкретную платку смотреть и проверять.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн янв 11, 2021 15:54:43 
Родился

Карма: -5
Рейтинг сообщений: 4
Зарегистрирован: Сб фев 25, 2017 07:26:17
Сообщений: 17
Рейтинг сообщения: 0
Понимаю что не в тему но в лом искать подходящую, что-то они все закрытые.
Видно АВР совсем не в моде нынче..
Надо стало быстрое деление константы 32767 на переменную 16 бит.
Придумал вот такую делилку.
Она проста, понятна, легко может быть приспособлена под любую разрядность
Для сравнения, делилка 16\16 из АВР аппноты тратит 260 тактов


DivU_TempHL_BT: ; TempH:L делимое (потом здесь будет удвоенный остаток)-
ldi Cnt, 1 ; -Buff:Temp делитель, R1:R0 округленный результат
mov One, Cnt
clr R1 clr R0
mov R2, One ; начальное значение маски для записи единиц в результат-
clr R3 clr Zero ; -она же будет счетчиком в цикле деления
cpi Temp, 128
cpc Buff, Zero
brsh shl
cpi Temp, 32 ; чтоб не повиснуть при делении на 0 :
cpc Buff, Zero
brsh swdv
ldi Temp, 32
swdv:
mov Buff, Temp ; для ускорения работы, если делитель <128-
clr Temp ; -можно сдвинуть делитель влево сразу на 8 бит
mov R3, One ; -и маску тоже
clr R2
shl:
sbrc Buff, 6
rjmp dv
lsl Temp rol Buff ; сделать делитель близким к делимому
lsl R2 rol R3 ; при этом приготовить маску
rjmp shl
dv:
cp Temp_L, Temp ; в цикле, сравнить делимое и делитель
cpc Temp_H, Buff
brlo shr
sub Temp_L, Temp ; если можно то вычесть
sbc Temp_H, Buff
or R1, R3 ; и маской внести единицу в результат
or R0, R2
shr:
lsr R3 ror R2 ; в любом случае, сдвинуть 1 в маске вправо
brcs edv ; (пока она совсем не обнулится, тогда выйти из цикла)
lsr Buff ror Temp ; и сдвинуть вправо делитель
rjmp dv
edv:
lsl Temp_L rol Temp_H ; удвоить остаток
cp Temp, Temp_L ; сравнить его с делителем
cpc Buff, Temp_H
adc R0, Zero ; округлить
adc R1, Zero
ret ; 185 тактов макс. время, мин. время 31 тактов


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн мар 08, 2021 09:44:22 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Добрый день. Решил всё-таки освоить ассемблер для AVR. И как следовало ожидать - грабли полезли отовсюду. Простые инструкции проходят. Но даже присвоить литеральный псевдоним регистру - нет. Да многе чего. Компилятор просто пишет "не знаю что это такое" и падает. Вот сделал сложение двух 32-разрядных чисел, получилось. Инкремент 8-разрядных тоже работает. Я создаю файл с расширением S, а в файле на C/C++ функцию со спецификаторами доступа, либо напрямую с помощью ассемблерных вставок. В протеусе скомпоновал "испытательный стенд" из двух 7-сегментных индикаторов на ТМ1637 и контроллера ATtiny84.
На github.com(ссылка) есть библиотека которую мне хотелось бы местами использовать. Как говорится в релизе
"ТРЕБОВАНИЯ И ЗАВИСИМОСТИ:"
"Данная реализация написана на языке ассемблера "AVRASM2". Соответственно, она предназначена для разработки программных прошивок (firmware) на языке ассемблер, для микроконтроллеров Atmel AVR (8-bit)."
ссылка на библиотеку
Но, что-то идет не так.
main.cpp
add32.S
Этот работает. Вставляется так:
extern "C" {
extern uint32_t add32(uint32_t arg1, uint32_t arg2);// сложение двух uint32_t чисел
}
В файле...
uint32_t n = add32(222222,333333);
tm1637_1::output(n);// = 555555
НО шаг вправо, шаг влево - сплошные грабли. То - не то, это - не это. Извините за глупый вопрос - куда копать?


Вложения:
Комментарий к файлу: Тренеровочно-испытательный стенд в протеусе
Test-1.gif [120.15 KiB]
Скачиваний: 206
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн мар 08, 2021 09:48:15 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 18778
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Эммм... А зачем в СИ-шный код вставлять сложение двух регистров на АСМе?
Может, глобально задача совсем другая?

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


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

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14018
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Есть два разных варианта:
"чистый ассемблер" - avrasm2
и
ассемблерные вставки в рамках Си
подход соответственно будет также различным.
Если с "чистым вариантом" особо проблем нету, то с ассемблерными вставками только СИшники помочь могут...
:roll:


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

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Gudd-Head, Задача - научиться. А там, как звезды покажут. В жизни всякое может пригодиться. Самообразование понимаете.


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

Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 18778
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Тогда учитесь на чистом АСМе. К чему эти СИшные вставки?

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


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

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14018
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Хорошая идея... только чуток посложнее...
8)


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

Карма: -8
Рейтинг сообщений: 49
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 615
Рейтинг сообщения: 0
Здравствуйте, я где-то видел (а теперь не нахожу) пример масштабирования диапазонов. Например, есть некая величина, изменяющаяся от 0А до 8С. Как её растянуть до диапазона байта? Какова там математика? Может кто-нибудь тоже встречал? Подскажите, пж, где искать.

_________________
Я всё-всё узнAю и стану профессором.


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

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
Например, есть некая величина, изменяющаяся от 0А до 8С. Как её растянуть до диапазона байта? Какова там математика?

Очевидно же, что нужно умножать на 256 / 0x8C = ~1.83. Если под дробную часть выделить 7 бит, т.е. 128 будет равно 1, то 1.83 превращается в 1.83 * 128 = 234, что удобно, т.к. есть аппаратное умножение 8x8:
(234 * 0x0A) >> 7 = 18
(234 * 0x8C) >> 7 = 255


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн апр 05, 2021 08:36:17 
Вымогатель припоя

Карма: -8
Рейтинг сообщений: 49
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 615
Рейтинг сообщения: 0
Понял, спасибо.
О, немного не так. 0А должно было стать нулём. Запутался.

_________________
Я всё-всё узнAю и стану профессором.


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

Карма: 64
Рейтинг сообщений: 964
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4210
Откуда: Ижевск
Рейтинг сообщения: 0
Как вариант
X=[(CODE-10)*502+128]/256


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн апр 05, 2021 08:49:20 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2057
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18024
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
между 8C и 0A лежит 130 чисел. если диапазон 0-255 приводить к этому количеству, то коэффициент будет не 1,8 а 1,97, т.е. почти 2.
следовательно, из кода надо отнять 10 и результат умножить на 2 - примерно то и выйдет, что надо.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

скушно, бабоньки!


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

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


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

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


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

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


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