Skip to content

Commit 8f46bad

Browse files
committed
Fix hardware timers
Fixes: #5337 Fixes: #4743 Thanks to @maxgerhardt
1 parent 21947eb commit 8f46bad

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

cores/esp32/esp32-hal-timer.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
#define HWTIMER_LOCK() portENTER_CRITICAL(timer->lock)
4848
#define HWTIMER_UNLOCK() portEXIT_CRITICAL(timer->lock)
4949

50-
typedef struct {
50+
typedef volatile struct {
5151
union {
5252
struct {
5353
uint32_t reserved0: 10;
@@ -272,6 +272,12 @@ void timerEnd(hw_timer_t *timer){
272272
}
273273

274274
void timerAttachInterrupt(hw_timer_t *timer, void (*fn)(void), bool edge){
275+
#if CONFIG_IDF_TARGET_ESP32
276+
if(edge){
277+
log_w("EDGE timer interrupt does not work properly on ESP32! Setting to LEVEL...");
278+
edge = false;
279+
}
280+
#endif
275281
static bool initialized = false;
276282
static intr_handle_t intr_handle = NULL;
277283
if(intr_handle){

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy