@ru_arduino

Страница 1222 из 7737
Dr
27.01.2017
17:29:56
или если нагрузки есть неплохие

или станочное говно, или перебои с сетью

Bastad
27.01.2017
17:30:11
Она как ночник только еще цыфорки показывает

Samael
27.01.2017
17:38:58
Она как ночник только еще цыфорки показывает
Моей диодик достаёт на зарядке.... А тут циферки?

Google
Bastad
27.01.2017
17:40:49
Не в спальне же

Ну и потом сам видишь что он там показывает)

Так что посмаьривать иногда - удобно

Влад
27.01.2017
17:45:11
Как совместить программно антидребезг и долгое/короткое нажатие? Т.е. чтобы при коротком нажатии вызывалась одна функция, если нажатие дольше определенного времени - другая функция, и все это с защитой от дребезга. Есть процессы и неблокирующие таймеры в них. Не могу придумать адекватный алгоритм

LexsZero
27.01.2017
17:48:29
Как совместить программно антидребезг и долгое/короткое нажатие? Т.е. чтобы при коротком нажатии вызывалась одна функция, если нажатие дольше определенного времени - другая функция, и все это с защитой от дребезга. Есть процессы и неблокирующие таймеры в них. Не могу придумать адекватный алгоритм
в цикле с задержкой проверяешь нажата ли кнопка и инкрементируешь счетчик если нажата. если счетчик досчитал до одного значения - короткое, если до другого, бОльшего - долгое, если кнопка отжата - сбрасываешь счетчик в ноль.

Samael
27.01.2017
17:48:54
Ну и потом сам видишь что он там показывает)
А я бы хотел на по стоянку, типа тех что сегодня юзал но от хотябы 1,5 вольт. А то эти от 4.2 чтоли гдето

Влад
27.01.2017
17:50:08
не могу, это процессор надо постоянно держать активным, а он у меня спит. мне прерывание по любому фронту приходит, с ним надо работать.

Samael
27.01.2017
17:50:34
А сетевое дома не интересно а на работе в каждой грщ на каждом вводе стоят универсальные

Bastad
27.01.2017
17:52:07
Дома тоже хочется игрушек

LexsZero
27.01.2017
17:52:40
не могу, это процессор надо постоянно держать активным, а он у меня спит. мне прерывание по любому фронту приходит, с ним надо работать.
а какой-нибудь постоянно тикающий таймер есть? по прерыванию смотришь фронт, если задний (кнопка же на ноль придавливает?) - запоминаешь текущее время, если передний - смотришь сколько времени прошло с запомненного момента и соответственно решаешь - дребезг, короткое или длинное.

Подполковник
27.01.2017
17:53:35
дребезг это что?

Влад
27.01.2017
17:53:38
системное время, да, есть.

Подполковник
27.01.2017
17:53:39
когда кучу раз нажать?

Google
Samael
27.01.2017
17:53:47
Дома тоже хочется игрушек
Скоро дом отдельный под игрушки надо будет.

дребезг это что?
Гугли дребезг контакта

Влад
27.01.2017
17:54:48
дребезг это что?
https://uscr.ru/wp-content/uploads/2014/02/Bouncy_Switch.png

Подполковник
27.01.2017
17:54:59
ее

ОлегЪ
27.01.2017
17:55:17
переделал прогер, теперь все по феншую. ман надо?

Samael
27.01.2017
17:55:23
То есть то нет то есть то нет и так очень быстро, аж подгорает

LexsZero
27.01.2017
17:57:13
задний - 1->0, в обработчике прерывания смотришь в каком состоянии сейчас нога.

Влад
27.01.2017
17:57:16
нет, нисходящий

LexsZero
27.01.2017
18:00:46
ну это зависит от того куда кнопка замыкает. обычно нога подтянута вверх и кнопка замыкает на землю

Bastad
27.01.2017
18:00:55
Dolphin
27.01.2017
18:05:01
DSO203 кто нить юзает?

Влад
27.01.2017
18:06:08
на землю. это я запутался в заднем и переднем фронтах

Dolphin
27.01.2017
18:06:10
Влад, микро-милисекунды есть?

Влад
27.01.2017
18:08:22
нет, тики системного таймера. один тик ~8мс

Dolphin
27.01.2017
18:10:22
Нах так сложно

Влад
27.01.2017
18:12:22
Теперь усложняем. Надо событие длинного клика создавать не по окончанию нажатия, а по прошествию 800мс. Т.е. запускаем таймер, который создаст событие через 800мс, а если до этого создалось событие "нажатие", то таймер убиваем. Соотвественно, устанавливаем флаг после срабатывания этого таймера и если он стоит — не генерируем событие "клик" и убираем флаг. Внимание, вопрос, куда надо воткнуть создание таймера?

Dolphin
27.01.2017
18:14:58
не надо создание таймера, он у тебя системный и тикает. У тебя есть прерывание от кнопки с ним и работаешь

Влад
27.01.2017
18:15:14
ты про что, про лонг-клик?

Google
LexsZero
27.01.2017
18:15:14
да, как-то так

Dolphin
27.01.2017
18:15:34
есть флаг нажатия

в прерывании проверяешь флаг. если он ==0, запоминаешь время

Dolphin
27.01.2017
18:16:41
если он !=0, вычисляешь время которое прошло

LexsZero
27.01.2017
18:17:09
в прерывании проверяешь флаг. если он ==0, запоминаешь время
надо реагировать через 800мс, а не когда юзер кнопку отпустит

Dolphin
27.01.2017
18:17:38
а как ты узнаешь тогда - длинное нажатие или короткое?

LexsZero
27.01.2017
18:18:07
если б было короткое - прилетело бы прерывание отпускания раньше

Dolphin
27.01.2017
18:18:19
вот оно и нужно

короче дайте скажу как я делаю а там думайте

прерывание прилетело от кнопки

если флаг ==0 запомнили время

Dolphin
27.01.2017
18:19:11
если не 0, вычисляем сколько прошло

если <50 сброс времени которое запомнили

если >50<800 - короткое нажатие

>800 - длинное

по выходу прерывания - инверсия флага нажатия

все

:)

Влад
27.01.2017
18:22:09
я нажимаю кнопку. держу ее 500мс, держку 800, держу две секунду. У меня не приходит прерывание, потому что состояние не меняется

Google
Dolphin
27.01.2017
18:22:28
нет

по фронту прерывание же

это не по таймеру

а по кнопке

хоть минуту держи

прерывание придет када отпустишь

Алекс?

Влад
27.01.2017
18:24:29
ну

Dolphin
27.01.2017
18:24:31
?

Admin
ERROR: S client not available

Влад
27.01.2017
18:24:39
оно и придет, после отпускания кнопки

а мне надо по истечении времени

когда пользователь должен думать, а сколько ему надо еще держать кнопку для долгого нажатия, это плохой интерфейс

хороший интерфейс не будет требовать от пользователя думать, а создаст событие долгого нажатия еще до отпускания кнопки, заодно и уведомит пользователя реакцией на это событие, что все, кнопку можно уже и отпустить. нажал кнопку, подержал, загорелся свет. значит кнопку можно уже и отпустить

Dolphin
27.01.2017
18:28:42
а ты не боишься вложенности в таком случае?

LexsZero
27.01.2017
18:29:03
не понял нафига нужен флаг

Влад
27.01.2017
18:29:33
не понял нафига нужен флаг
хм, и правда. я боюсь того, что в пограничных состояних могут два события сгенерироваться

Dolphin
27.01.2017
18:30:32
ок, не мешаю, общайтесь я ушел ;)

удач

Google
Влад
27.01.2017
18:31:27
ок, не мешаю, общайтесь я ушел ;)
не, ты скажи, где может быть вложенность?

Dolphin
27.01.2017
18:31:52
ну ты сетишь прерывание в прерывании

а в момент когда таймер сработает, юзер отпустит батон

и песда

Завтра пообщаемся, я спать пойду, пообщайтесь, прикольный автомат жеж

Влад
27.01.2017
18:33:27
ну, там либо одно долгое нажатие получится, либо и долгое и короткое

Dolphin
27.01.2017
18:34:11
продумать надо правильно, чтобы не сработали прерывания в один и тот же момент

;)

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

и срабатывать не по таймеру, а по достижению счетчика

Влад
27.01.2017
18:36:35
угу, я вот и боюсь гонки. там с остановкой процесса будут проблемы, надо бы тоже на флаг переделать. всмысле, не только убивать процесс, а проверять по истечению флаг срабатывания

На мой взгляд, можно в прерывании выставлять флаги, а счетчик времени проверять в главном цикле
я не могу в главном цикле постоянно проверять счетчик, потому что это будет будить процессор

а у меня кнопки на батарейках

Тёма
27.01.2017
18:38:18
ребят

я не очень в теме автомобилей и их аккумуляротов, так что вопрос

220 от аккумулятора же можно с инвертором получить?

Влад
27.01.2017
18:39:04
можно

Тёма
27.01.2017
18:39:06
а как подсчитывать, насколько хватит аккума?

Dolphin
27.01.2017
18:39:13
тогда выставлять флаг, что ты подготовил прерывание включения, и в случае если флаг стоит, при выполнении прерывания от кнопки, сразу выход из прерывания (от кнопки).

Тёма
27.01.2017
18:39:38
и если навскидку, 200вт расходовть долго получится на одном аккумуляторе обычном?

Влад
27.01.2017
18:39:58
исходя из мощности устройства, емкости аккумулятора и КПД инвертора.

Страница 1222 из 7737