Evgen
и если поставить CHANGE, то хрен узнаешь когда тебя позвали - когда rising или Falling
Indr1x
0x03 твое же
Indr1x
На бумажке нарисуй себе по какому фронту будет срабатывать, если стоит по любому изменению уровня
Evgen
iҚØN🐾🐾
Ruslan
iҚØN🐾🐾
iҚØN🐾🐾
Я не знаю такой причины, ну мб только коррапт памяти, но это будет уже не важно)
Evgen
По какой, например?
да пес esp знает... слишком быстро будут прерывания или ушла на базу за вайфаем
Evgen
iҚØN🐾🐾
Evgen
iҚØN🐾🐾
iҚØN🐾🐾
Ну в смысле, была регистрация прерывания и был дребезг и я потом тоже репу чесал, почему стейт не менялся, а событие было)
Evgen
В смысле, потеряться?
ну так классика жанра прерываний же... идет прерывание, обрабатывается, в этот момент второе приходит... если нет очереди на прерывания, то оно херится, и если есть регистр, то туда пишется что прерывание похерилось
iҚØN🐾🐾
Evgen
iҚØN🐾🐾
На самом деле обычно на практике не особо нужен CHANGE
iҚØN🐾🐾
iҚØN🐾🐾
Например, на stm32 делалось, например, HAL_NVIC_DisableIRQ(EXTI0_IRQn); хранение стейта, HAL_NVIC_EnableIRQ(EXTI0_IRQn)
iҚØN🐾🐾
И ничего не терялось нигде
iҚØN🐾🐾
Ну ясное дело, что могло что-то прилететь в момент сохранения переменной, но это 1 такт, так что шанс чего-то потерять минимален
iҚØN🐾🐾
Под капотом была та же реализация барьера
Evgen
iҚØN🐾🐾
Наверное.
Evgen
Наверное.
ну а на LPC фейковые прерывания прилетали. Например, два раза подряд по переднему без прерывания по заднему. При том, что частота дребезга низкая... В общем понял...из прерывания ногу читать - не ошибешься
Илфат
iҚØN🐾🐾
iҚØN🐾🐾
У меня подобное было, кондер решил все вопросы
Evgen
iҚØN🐾🐾
Ну блин, это может быть решено как задержкой программной, так и аппаратной (кондером)
Evgen
iҚØN🐾🐾
Проверяется элементарно: в разрыв ставишь оптрон и светиком дергаешь через кнопку. Сразу видно, это дребезг или баг чипа
Evgen
не баг чипа, а документрованное в еррате поведение. Насколько я помню
iҚØN🐾🐾
Ну это и есть документированный баг чипа)))
SSR
Я бы забил уже :D
iҚØN🐾🐾
iҚØN🐾🐾
Мы порой так же делаем, не?)
SSR
Мы порой так же делаем, не?)
Ну был конкретный вопрос, на что поступил прям конкретный ответ, но началось это мне не нравится, а на каких-то устройствах всё сломалось
iҚØN🐾🐾
Было время, когда мобилы создавали помехи на мыши и клавы)
iҚØN🐾🐾
Я один раз так чуть не набрал rm -rf / на проде)
iҚØN🐾🐾
Мобила лежала на проводах клавы и мыши и кто-то позвонил... клава начала нажимать что попало, верх-вниз, ентеры, мыша по экрану скакать и что-то кликать
SSR
iҚØN🐾🐾
Самое фиговое, что звонить он стал через 1-2 сек, а до этого пока соединялся была тишина, но при этом наводки уже были и я не мог понять, что происходит вообще)))
iҚØN🐾🐾
Обычно после чая выживает, а вот после кофе или колы - это все.
iҚØN🐾🐾
На работе сотрудник шел и жёпой чуток толкнул стол, полстакана кофе на клаву вылил. Он типа салфетками протер и спокойно ушел) прихожу - полклавы работает, половина нет) а потом он такой приходит и: нуу, эта, ммм, я тут чуток пролил колы на клаву, только чуток! Я быстренько вытер! Разобрал - а там уже дорожки зеленые))
SSR
SSR
Но клава дешёвая была, спасать смысла не было
iҚØN🐾🐾
А мне обидно было, это была легендарная мицуми классик)
iҚØN🐾🐾
Щас конечно другая клава ванлав - A4Tech KV-300H
SSR
Я что-то пока не нашёл свою любовь :D
Уже подумываю самому попробовать сделать
iҚØN🐾🐾
Попробуй KV-300H, влюбишься)
Ruslan
Маковская клава
iҚØN🐾🐾
Плюёмся, но используем)
Evgen
а вот скажите мне, господа медиумы... почему частота вызова loop() одинакова для esp32 и esp8266... вот такое вызывается с частотой примерно 120кГц
int n1=1, n2=1;
static int in1=0,in2=0, state=0;
void loop() {
if(state)
{ in1++;
if(in1 == n1)
{ state = 0;
in1 = 0;
digitalWrite(LED_BUILTIN, state);
}
} else {
in2++;
if(in2 == n2)
{ state = 1;
in2 = 0;
digitalWrite(LED_BUILTIN, state);
}
}
}
Ruslan
Ruslan
Еще есть такая на кухонном компе, но так себе
ok-home
Indr1x
ну а как это делать если у контроллера нет функции захвата таймера. на esp там или не на esp, какая разница
Evgen
Pavel
Indr1x
у Stm есть что то похожее
Pavel
Indr1x
определить длинну импульса используя esp32
ok-home
ok-home
Какие проблемы?
да собственно никаких - кроме никакой точности и нагрузки на мозги - есть аппаратные решения встроенные в контроллер.