Răsfoiți Sursa

rotary pressed mistake

philippe44 5 ani în urmă
părinte
comite
808804f306
2 a modificat fișierele cu 3 adăugiri și 2 ștergeri
  1. 1 1
      components/services/audio_controls.c
  2. 2 1
      components/services/buttons.c

+ 1 - 1
components/services/audio_controls.c

@@ -148,7 +148,7 @@ static void control_rotary_handler(void *client, rotary_event_e event, bool long
 	case ROTARY_PRESSED:
 		if (long_press)	rotary.long_state = !rotary.long_state;
 		else if (rotary.volume_lock) action = ACTRLS_TOGGLE;
-		else action = KNOB_RIGHT;
+		else action = KNOB_PUSH;
 		break;
 	default:
 		break;

+ 2 - 1
components/services/buttons.c

@@ -81,7 +81,8 @@ static void IRAM_ATTR gpio_isr_handler(void* arg)
 
 	if (xTimerGetPeriod(button->timer) > button->debounce / portTICK_RATE_MS) xTimerChangePeriodFromISR(button->timer, button->debounce / portTICK_RATE_MS, &woken); // does that restart the timer? 
 	else xTimerResetFromISR(button->timer, &woken);
-	// ESP_EARLY_LOGI(TAG, "INT gpio %u level %u", button->gpio, button->level);
+	if (woken) portYIELD_FROM_ISR();
+	ESP_EARLY_LOGD(TAG, "INT gpio %u level %u", button->gpio, button->level);
 }
 
 /****************************************************************************************