Например TDA7294

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





Текущее время: Пт июл 18, 2025 08:36:56

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 392, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2024 23:59:16 
Мучитель микросхем
Аватар пользователя

Карма: 10
Рейтинг сообщений: 155
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 469
Рейтинг сообщения: 0
shonty, да подожди... то конкурс на поиск одного бита завершился... А свап битов в слове - еще нет.

_________________
Белая и Пушистая


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

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 09, 2024 10:31:35 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 38
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Gudd-Head писал(а):
Свап битов в слове мало чем отличается от свапа битов в байте
при работе со словом добавляются некоторые инструкции.., так что может в этом и есть отличие :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 09, 2024 10:47:23 
Мучитель микросхем
Аватар пользователя

Карма: 10
Рейтинг сообщений: 155
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 469
Рейтинг сообщения: 0
Ну один код, циклом, у нас есть, 7 слов.
Gudd-Head, вы так и не показали свой код с XORами.

Добавлено after 1 minute 11 seconds:
Кстати, проверку на единичный бит N and (N-1) я не знала. Кинула в копилку подсознания.

_________________
Белая и Пушистая


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 09, 2024 11:02:10 
Мучитель микросхем

Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 423
Рейтинг сообщения: 2
Кстати, проверку на единичный бит N and (N-1) я не знала. Кинула в копилку подсознания.

Есть такая функция подсчета единичных битов, когда-то она у меня была, сейчас использую std::has_single_bit().
Код:
uint32_t countSetBits(uint32_t val)
{
   uint32_t cnt = 0;

   while (val)
   {
      val &= val - 1;
      cnt++;
   }
   return cnt;
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 09, 2024 12:04:58 
Мучитель микросхем
Аватар пользователя

Карма: 10
Рейтинг сообщений: 155
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 469
Рейтинг сообщения: 0
Adrift, не, я по тупому всегда делала, циклом сравнивала с двигающейся маской. В основном это для проверки, а не нажато ли более одной кнопки. Если нажато, то все события от кнопок блокируются, пока не будут отпущены все кнопки. Ну либо, если нужно отследить одновременно нажатые - то тут уже массив допустимых масок.

_________________
Белая и Пушистая


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

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 09, 2024 12:28:14 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 38
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Just_Fluffy писал(а):
В основном это для проверки, а не нажато ли более одной кнопки.
конкурсы, конкурсы.. а сама про дребезг завуалировала :)))


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

Зарегистрирован: Сб июл 30, 2011 21:00:24
Сообщений: 110
Рейтинг сообщения: 3
А кнопка может дребезжать без нажатия на нее?
Какой смысл ждать бездребезгового состояния на интервале опроса большем, чем время дребезга?
Попадание на дребезг ничем не грозит. Просто читаете состояние.

Кнопки анализирую не по прерыванию, а делаю опрос на каждом витке программы.
Считывание кнопок во время дребезга надо исключать, это мусор. Какой отсчёт мусорный – неизвестно, а для дальнейшей обработки нужен правильный отсчёт. Для решения этой проблемы и применяю предложенный алгоритм.
Использовал три отсчёта с интервалом больше дребезга. При нажатии одной или двух кнопок один или два отсчёта могут быть мусором, но третье будет правильным. Соответственно, три одинаковых отсчёта всегда будут верными.
Придумал этот метод, когда был совсем начинающим. Наверно, нажатие на кнопку - вторая задача начинающих. Первая – помигать светодиодами.
Программа получилась очень простая, написать её намного проще, чем найти оптимальное решение на вторую задачу Just_Fluffy.

Про дребезг без нажатия кнопки не понял. Если это помеха, то здесь есть защита от неё.

А можно сделать программный симулятор дребезжащей кнопки,и сравнивать с ним,а не с предыдущими двумя считываниями ?

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

На фоне решения Adrift табличный вариант выглядит чудовищной растратой памяти. Но СИ-шникам, похоже, такие растраты привычны.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 09, 2024 13:56:41 
Мучитель микросхем
Аватар пользователя

Карма: 10
Рейтинг сообщений: 155
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 469
Рейтинг сообщения: 0
shonty писал(а):
сама про дребезг завуалировала

1. Я описала 2 алгоритма, которые применяю при опросе кнопок.
2. Алгоритмы сами по себе никак не относятся к ликбезу по ассемблеру.
3. Реализации алгоритмов могут быть на любом языке. И красивые решения конкретных задач (как, например, проверка поднятости одного бита) - они могут быть применены в любом языке.
И да, я совершенно не возражаю, что некоторые частные случаи алгоритмов могут быть выписаны на ассемблере гораздо более изящно, нежели на любом ЯВУ. Но это конкретные частные случаи.

AQ29 писал(а):
На фоне решения Adrift табличный вариант выглядит чудовищной растратой памяти. Но СИ-шникам, похоже, такие растраты привычны
Ну куда уж нам всем.... Главное - нужно применять современный супер-пупер-турбо-ассемблер. Тогда алгоритмы сами пишутся. Вроде как для этого даже есть супер-программа - алгоритм-билдер. Где то на форуме видела, хвалили её. Лограифм на асме за одну команду вычисляет.

Так вот, решение должно быть в голове. А только потом уже переложено на язык программирования. И не важно, какой это язык будет. И если есть задача выжать из кода максимум быстродействия - то и на асме можно применить табличное решение. Это ценой расхода ОЗУ/флеша сэкономит пару тактов.

_________________
Белая и Пушистая


Последний раз редактировалось Just_Fluffy Пн дек 09, 2024 13:58:13, всего редактировалось 1 раз.

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

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23905
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Кнопки анализирую не по прерыванию, а делаю опрос на каждом витке программы.
Считывание кнопок во время дребезга надо исключать, это мусор. Какой отсчёт мусорный – неизвестно, а для дальнейшей обработки нужен правильный отсчёт. Для решения этой проблемы и применяю предложенный алгоритм.....
Про дребезг без нажатия кнопки не понял. Если это помеха, то здесь есть защита от неё.

1. Нарисуйте эпюру с нажатием и отпусканием кнопки с дребезгом и наложите на нее опрос с интервалом больше дребезга.
И вы внезапно обнаружите, что захват нажимаемой кнопки во время дребезга НИЧЕМ НЕ ГРОЗИТ.
Предположим вы ПРИ НАЖАТИИ на кнопку с какой то там вероятностью захватили во время дребезга состояние "нажато". Значит нажатие произойдет именно в этот момент. Следующий опрос гарантированно произойдет по завершении дребезга.
Предположим вы ПРИ НАЖАТИИ на кнопку с какой то там вероятностью попадете в состояние "НЕ нажато". Значит нажатие на кнопку произойдет В СЛЕДУЮЩЕМ ОПРОСЕ уже без дребезга.
Все тоже самое произойдет при отпускании кнопки.
2. Помех на кнопке кроме дребезга быть не может по определению. Там смещение чистым питанием через резистор порядка 1...10 кОм.
Метод, которым вы создаете интервал опроса значения не имеет. Но интервал создаваемый таймером выглядит куртуазнее. И не нужно обрабатывать захват в прерывании от таймера. Достаточно просто захватить порт и выставить флаг требования обработки. Хотя и в прерывании по таймеру обработка тоже не сильно тяготит.


Последний раз редактировалось КРАМ Пн дек 09, 2024 14:03:28, всего редактировалось 1 раз.

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

Карма: 1
Рейтинг сообщений: 38
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Дребезг мигрировал в мк из цифровой логики. Там он действительно представлял проблему, так как отсутствовало элементарное тактирование, была сложность с таймерами, сложность с установкой периода опроса клавиатуры, сложность с задержкой возврата из процедуры обработки нажатия.. и прочее. И во время ухода системы на обработку какого либо события опрос нажатий оставался постоянным.

Поэтому решали при помощи триггеров и других аппаратных наворотов. И этому посвящено достаточно литературы.

Но многие никак не могут расстаться с этим рудиментом.. видимо психологически :dont_know: :)


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

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23905
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
табличный вариант выглядит чудовищной растратой памяти.

Все зависит от потребного объема флеша для кода и имеющегося в чипе флеша.
Не припомню в своей практике ни одного случая, когда были проблемы с размером флеша.
Это самый дешевый ресурс в МК.


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

Карма: 1
Рейтинг сообщений: 38
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
КРАМ писал(а):
1. Нарисуйте эпюру с нажатием и отпусканием кнопки с дребезгом и наложите на нее опрос с интервалом больше дребезга.
И вы внезапно обнаружите, что захват нажимаемой кнопки во время дребезга НИЧЕМ НЕ ГРОЗИТ.
Кстати, рисовал уже и выкладывал.. примерную ))
Изображение

Добавлено after 1 minute 13 seconds:
но я под себя рисовал, у меня задержки перед возвратом


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 09, 2024 14:16:37 
Мучитель микросхем
Аватар пользователя

Карма: 10
Рейтинг сообщений: 155
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 469
Рейтинг сообщения: 0
shonty, Дребезг - это физическое явление. И от него никуда не деться.
Просто в МК варианты его нивелирования гораздо более широкие. И 2-3 опроса с интервалом больше дребезга - это тоже АЛГОРИТМ. С кучей реализаций - на обычных счетчиках, на вертикальных, на массивах, на задержках и повторных опросах....
Вот когда будут идеальные кнопки - тогда это будет рудиментом.

И, кстати, мы с вами уже проговорили - в вашем случае могут быть ложные срабатывания от коротких случайных нажатий на кнопку (но это частный случай, опять же... "Кто бросил сапог на пульт управления ядерной ракетой?!")

КРАМ писал(а):
Не припомню в своей практике ни одного случая, когда были проблемы с размером флеша.
Это самый дешевый ресурс в МК.
Забейте. Когда мир сошелся клином на тине13 или меге8 с современным ассемблером - то да. А когда копеешный арм с мегабайтом флеша - то тут уже и ассемблер как то не в кассу, да и табличку можно разместить, не переживая за оставшееся место.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 09, 2024 14:37:03 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 38
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Just_Fluffy, я кажется догадываюсь, зачем вам алгоритмы с наименьшим объёмом памяти))
Основная же память на обработку дребезга уходит :)

(это шутка :beer: )

Добавлено after 15 minutes 33 seconds:
Just_Fluffy писал(а):
И 2-3 опроса с интервалом больше дребезга - это тоже АЛГОРИТМ.
Нет)) это не алгоритм - это концепция)


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

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23905
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Когда мир сошелся клином на тине13

Это не имеет значения. Даже для шестиногих PIC10 с совсем небольшим флешем. Просто там другие задачи и другой размер таблиц.

Добавлено after 3 minutes 56 seconds:
Вот когда будут идеальные кнопки

Идеальные кнопки есть и сейчас. Это кнопки с перебросом.
Но на самом деле для просто кнопок нажимаемых пальцем не нужно никаких сложных алгоритмов.
Алгоритмы с фильтрацией нужны для механических энкодеров с малым временем дребезга и потребностью не пропускать импульсы на максимально возможной скорости. Тогда можно разменять задержку получения информации на высокую скорость вращения без пропусков.


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

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Три страницы явно для темы про оригинальные алгоритмы, а не про ассемблер. Ну и часть сообщений надо в особую писькомерную тему модераторам выделить...

Кстати, про реверс битов: я такой вопрос-конкурс сто лет назад здесь проводил... Ничто не ново в подлунном мире...

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 09, 2024 20:33:04 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 38
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Так то можно на каждое слово тему создать.. но они мёртвые будут :dont_know:
Да и эта умрёт. Были же перерывы, когда тут никто не писал более чем по полгода.
Сейчас уже не та активность у людей :dont_know:
Всё переговорили вдоль и поперёк.

Не думаю, что обсуждение дребезга или "конкурсы" особо мешают кому то решать сложные задачи..

Но это моё мнение..


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

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15096
Откуда: ДОНЕЦК
Рейтинг сообщения: 1
Тогда уж..
Может про мой ""слэнг" в работе с многофайловыми проектами" под ассемблером потрындеть?
В отличии от "стандарта" там только один файл в настройках компилятора указывается...
Удобненько получилось...
:roll:
Так про то в почти половине котуинки ( viewtopic.php?f=62&t=156720) проговорено...
Особо смысла не вижу...
:sleep:


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

Карма: 4
Рейтинг сообщений: 96
Зарегистрирован: Вс окт 25, 2020 22:13:25
Сообщений: 299
Откуда: Смоленск
Рейтинг сообщения: 0
Почему бы и нет...


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


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

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


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