Например TDA7294

Форум РадиоКот • Просмотр темы - Опрос кнопок микроконтроллером
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн июл 28, 2025 02:03:42

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


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



Начать новую тему Ответить на тему  [ Сообщений: 509 ]     ... , , , 24, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вт фев 18, 2025 09:32:36 
Друг Кота

Карма: 31
Рейтинг сообщений: 817
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5556
Откуда: Протвино
Рейтинг сообщения: 0
shonty, блин ну я же совсем подругому предлагаю, добавил выше


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вт фев 18, 2025 09:52:42 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
AlexS4, да, этот код подходит и к моему "неполноценному" енкодеру подходит, а про помехи какие мысли будут?

Добавлено after 2 minutes 59 seconds:
но вопрос: по какому условию сдвигать регистр? если при каждом опросе, то если я буду крутить медленно - то такой паттерн никогда не соберётся...
если по изменению, то даже небольшой дребезг и будут большие пропуски, ведь этот паттерн это даже не 3, а 4 проверки и если система нестабильна - пройти их будет трудно...

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вт фев 18, 2025 10:16:10 
Друг Кота

Карма: 31
Рейтинг сообщений: 817
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5556
Откуда: Протвино
Рейтинг сообщения: 0
я же выше напсал детально viewtopic.php?p=4683673#p4683673

Добавлено after 6 minutes 4 seconds:
Ivanoff-iv писал(а):
если по изменению, то даже небольшой дребезг и будут большие пропуски, ведь этот паттерн это даже не 3, а 4 проверки и если система нестабильна - пройти их будет трудно...

думаю надо попробовать, скорее всего при правильном времени таймера семплирования ~5..20mS
будет много попадений, пасаны ж утверждают что антидребезг это ненаучная хрень и КОТельников типа против такого ;)

но если таки нет то можно перед этим применить алгоритм антидребезга проверяющий стабильность 2х последовательных семплов
(еще выше писал) тоесть двигать по 2му одинаковому сэмплу. для этого для таймерного прерывания потребуется выделить еше 1 статическую переменную (регистр) с предыдущим семплом в 2х битах.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вт фев 18, 2025 10:38:52 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
я попробую но с 3мя, а не с 4 мя семплами в памяти (заносить буду в 3 и 4 бит, т.е. 2 младших бита не будут использоваться и будут всегда нулями и в рабочем регистре и в маске сравнения)

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вт фев 18, 2025 11:02:31 
Друг Кота

Карма: 31
Рейтинг сообщений: 817
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5556
Откуда: Протвино
Рейтинг сообщения: 0
нене это против концепции!! заноси все
а вот паттерны можно более короткие применять,
нормализовать окно (and/or mask) при этом ненужно, важно только чтоб неиспользуемые биты паттерна были заполнены теми же значениями на которые ресетится EcSeq переменная при совпадении паттерна (удобно 0 заполнять в avr)

оно же наполняет EcSeq по факту до 1го совпадения с паттерном, а дальше веравно ресетит и продолжается набор последовательности

ну конечно важно чтоб цикл проверки паттернов был достаточно быстрым (не перегруженным долгими непрерываемыми алгоритмами) чтоб не пропускать "лишние" семплы в последовательнось от таймера. но для энкодера это 10ки mS, так что врядли с этим могут быть проблемы.


Последний раз редактировалось AlexS4 Вт фев 18, 2025 11:07:43, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вт фев 18, 2025 11:07:31 
Мучитель микросхем

Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 428
Рейтинг сообщения: 0
из библиотеки Гайвера Александра замутил для себя на c++

В оригинале были битовые поля, 15 флагов занимали 2 байта, а у вас структура из 12 bool занимает 12 байт.


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

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вт фев 18, 2025 11:09:43 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
я принцип не меняю и заношу всё, просто обрезаюне слева, а справа, при этом экономлю и флеш и время (зачем чтото чистить, если можно и не мусорить?) тем более у меня входы на 3 и 4 бит приходят - достаточно на 1 вправо сдвинуть и вуаля...

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вт фев 18, 2025 11:16:14 
Друг Кота

Карма: 31
Рейтинг сообщений: 817
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5556
Откуда: Протвино
Рейтинг сообщения: 0
а чистить же всеравно нужно! сразу после обнаружения совпадения!
иначе последовательность будет продолжать совпадать с паттерном и вызывать процедуру +1 или -1 снова и снова ...пока энкодер еще раз не потрогают и он не даст чтото отличное от паттернов ;)

а вот проверка длины записанной последовательности это ненужное усложнение (довольно критического к избыточностиям) обработчика прерывания :music:

слева и справа - совершенно без разницы, я сначала ж предложил в младшие задвигать, а потом просто заметил что битовое бинарное представление паттерна становится более наглядным при задвигании семплов со старших битов (ror)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вт фев 18, 2025 12:11:21 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 9
Рейтинг сообщений: 27
Зарегистрирован: Сб янв 29, 2011 21:43:38
Сообщений: 163
Откуда: Чернь, Тульская обл
Рейтинг сообщения: 0
из библиотеки Гайвера Александра замутил для себя на c++

В оригинале были битовые поля, 15 флагов занимали 2 байта, а у вас структура из 12 bool занимает 12 байт.


struct __attribute__((packed)) ButtonFlags {
bool btn_deb : 1;
bool hold_flag : 1;
bool isHolded_f : 1;
bool isRelease_f : 1;
bool isPress_f : 1;
bool step_flag : 1;
bool oneClick_f : 1;
bool isOne_f : 1;
bool inv_state : 1;
bool type : 1;
bool tickMode : 1;
bool noPin : 1;
};

спс за уточнение. не знал .


Последний раз редактировалось chern55 Вт фев 18, 2025 12:33:39, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вт фев 18, 2025 12:19:11 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
AlexS4, да, после обнаружения совпадения - конечно, его (это совпадение) надо разрушить...
длину записанной последовательности я и не проверяю.

в остальном спор ни о чём: для мк без разницы, откуда задвигать...
просто мне нет нужды двигать до края (+2 команды), чтобы потом перед сравнением накладывать маску (ещё +2 команды), ведь там скраю, от которого двигаешь, неоткуда взяться данным и там и так всегда нули пока сам туда ничего не внесёшь, а значит ни маскировать ни чистить ничего не надо.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вт фев 18, 2025 12:31:46 
Друг Кота

Карма: 31
Рейтинг сообщений: 817
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5556
Откуда: Протвино
Рейтинг сообщения: 0
если я правильно понял, то доп двигать сэмпловый регистр никуда не нужно в любом случае,
просто неполный (короткий) паттерн должен быть дополнен 0ми (точнее дефолтным послесбросовым заполнением) с нужной стороны. это просто вопрос формирования хардкодной константы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Сб мар 08, 2025 12:12:38 
Встал на лапы

Зарегистрирован: Сб июл 30, 2011 21:00:24
Сообщений: 111
Рейтинг сообщения: 0
Ну может человек боится прерываний, не умеет нормально писать обработчики...

Если не используешь прерывания, но тем более нужно стараться писать максимально быстрый нигде подолгу не зависающий код, особенно если еще и критикуешь ЯВУ за недостаточную эффективность)

У меня с прерываниями простое правило: где необходимо, прыгаю в прерывания, в остальных случаях обработку флагов прерываний провожу в окнах основного круга программы. В прерывании минимально необходимые действия.
Вот и в моём примере с кнопками не использую таймер с прерываниями, условия задачи это позволяют. Здесь таймер с прерываниями – лишнее усложнение задачи, зачем это нужно.

ps. Я, кстати, вспомнил, что AQ29 на easyelectronics свой "современный ассемблер", который пока нигде нельзя списать, еще в 2017 рекламировал. По идее общедоступная версия уже должна быть на подходе )

Может быть, не я это был. В 2017 году всё только начиналось, да и было это несерьёзно.
AQ29 писал(а):
На ассемблере программа всегда либо ходит по кругу, либо переход между кругами.
открою тебе секрет: на любом языке программа ходит по кругу и по вложенным кругам.

Какой же это секрет? Всё в конечном итоге сводится к машинным кодам, фактически, к ассемблеру. Только на ЯВУ, которые нехороши, код сильно «раздувается».
осталось разобраться с наводками... как никак МК напрямую к сетевой фазе подключен, да импульсный БП и 5 симисторов рядом...

Не представляю ситуацию, где можно МК напрямую подключить к сетевой фазе.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Сб мар 08, 2025 13:28:14 
Мучитель микросхем

Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 428
Рейтинг сообщения: 0
Может быть, не я это был. В 2017 году всё только начиналось, да и было это несерьёзно.

Думаете много есть людей в русскоязычном пространстве которые, как минимум раньше, юзали АБ, а сейчас пишут для AVR на хорошем/современном/макро ассемблере которого нет в общем доступе, при этом С они не знают и примеры приводят на бейсике? И в каком там состоянии этот ассемблер был в 2017-м вообще не важно, вы и сейчас популяризируете то, чем другие пользоваться не могут )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Сб мар 08, 2025 13:36:12 
Друг Кота
Аватар пользователя

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

А в чем вы видите проблему такого подключения? Намекну, в любой стиральной машине МК подключен напрямую к сетевой фазе. Точнее, может быть подключен с вероятностью 50%.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Сб мар 08, 2025 15:10:39 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1217
Рейтинг сообщения: 0
И не только в стиральной машине. В холодильниках МК зачастую питаются от бестрансформаторного БП.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Сб мар 08, 2025 18:37:14 
Встал на лапы

Зарегистрирован: Пн янв 13, 2025 15:24:02
Сообщений: 148
Рейтинг сообщения: 0
Давно читаю эту тему и просто опишу что у меня работает. 24 входа обновляются каждую миллисекунду в три байта, в последствии каждый бит проходит через фильтр переменной, устанавливаемой юзером длиной, берётся этот параметр из таблицы 24 + 24 байта, соответственно на 1 и 0 отдельно, Длина настройки байт, то есть 0....250, четверть секунды максимально. На каждый входной бит оперативка используется по два байта, на счётчик единиц и счётчик нулей отдельно. Получается в итоге то чтобы на выходе фильтра установилось значение это нужно насчитать совпадений всех выборок согласно таблицы от 0 - это получается выход в точности копирует вход, и до 250, когда нужно чтобы вход повторился 250 раз. Программа написана на ACM2 в AStudio. Потребляет в самом коротком случае 17us, до самого длинного случая 30us. Главный цикл 1 ms, вот и вызывается эта программа сразу после обмена вход/выход. Можно было конечно количество оперативки необходимой уменьшить, но у меня была главной задачей это скорость, по этому код долго вылизывался. Дополню ещё что для кнопки достаточно выставить 30.30 или 40.40 и уже никто не сможет протрезвонить кнопкой, кнопка чётко отрабатывает нажатие, дал специально стенд человеку чтобы он увидел дребезг, не смог, сдался. Чуть не забыл - ATmega 168 - 20 mgz.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Сб мар 08, 2025 19:10:47 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1217
Рейтинг сообщения: 0
Эх, слабак человек.) То же мне тестировщик.(


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Сб мар 08, 2025 19:13:14 
Встал на лапы

Зарегистрирован: Пн янв 13, 2025 15:24:02
Сообщений: 148
Рейтинг сообщения: 0
Я ему провода для подключения выдал на стенде, так что он мог подключать любые кнопки или концевики, ну светодиод при каждом нажатии просто инвертировал своё состояние.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Сб мар 08, 2025 19:27:12 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1217
Рейтинг сообщения: 0
Ну какой это тест? Это не показатель. А люди, как известно, разные. Один просто шустрый, а другой чемпион и что?)
Вот ARV говорит что люди не могут нажимать быстрее 50 мс (не помню), а Старичок вообще 100 мс (не помню) ставит на нажатие. Это его реакция - значит другие быстрее быть не могут.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Сб мар 08, 2025 19:35:34 
Встал на лапы

Зарегистрирован: Пн янв 13, 2025 15:24:02
Сообщений: 148
Рейтинг сообщения: 0
Я сам юзал эту кнопку и нашёл правильный ответ - 30.30 или 40.40, Очень удобно, можно например 250 выставить, тогда получается удерживать надо. А если 0 выставить, то тут кошмар - светодиод остаётся в непредсказуемом состоянии, конечно от кнопки всё зависит, тогда я себе сказал - я программист и знаю как кнопку обмануть, тогда и пришла мысль чтобы кто нибудь другой эту кнопку понажимал.


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

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


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

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


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

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


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