Slacky
Member
Если кто вдруг возьмет за основу мой код устранения дребезга, то я нашел там небольшой косяк, хотя ни на что это не влияет, но мало ли ... В функции прерывания os_timer_arm() может вызваться несколько раз. А документация гласит
For the same timer, os_timer_arm (or os_timer_arm_us) cannot be invoked repeatedly. os_timer_disarm should be invoked first.
Поэтому функции прерываний должны выглядеть так
For the same timer, os_timer_arm (or os_timer_arm_us) cannot be invoked repeatedly. os_timer_disarm should be invoked first.
Поэтому функции прерываний должны выглядеть так
Код:
void hotInterrupt() {
if (hotInt == 0) {
hotInt++;
hotTimeBounce = millis();
} else os_timer_disarm(&hotTimer);
Serial.println("hotInterrupt");
os_timer_arm(&hotTimer, TIME_BOUNCE, true);
}