|
47 | 47 | #define HWTIMER_LOCK() portENTER_CRITICAL(timer->lock)
|
48 | 48 | #define HWTIMER_UNLOCK() portEXIT_CRITICAL(timer->lock)
|
49 | 49 |
|
50 | | -typedef struct { |
| 50 | +typedef volatilestruct { |
51 | 51 | union {
|
52 | 52 | struct {
|
53 | 53 | uint32_t reserved0: 10;
|
@@ -272,6 +272,12 @@ void timerEnd(hw_timer_t *timer){
|
272 | 272 | }
|
273 | 273 |
|
274 | 274 | 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 |
275 | 281 | static bool initialized = false;
|
276 | 282 | static intr_handle_t intr_handle = NULL;
|
277 | 283 | if(intr_handle){
|
|
0 commit comments