WS2812 RMT work-around

This commit is contained in:
Stephan Hadinger 2021-11-28 22:48:36 +01:00
parent 1cdc1578f7
commit dff20c41ad
1 changed files with 12 additions and 0 deletions

View File

@ -224,6 +224,9 @@ void Ws2812StripShow(void)
}
}
strip->Show();
#ifdef ESP32 // workaround for SPI conflict
rmt_wait_tx_done((rmt_channel_t) USE_WS2812_RMT, 50/portTICK_PERIOD_MS);
#endif
}
int mod(int a, int b)
@ -497,6 +500,9 @@ void Ws2812Clear(void)
strip->ClearTo(0);
strip->Show();
Ws2812.show_next = 1;
#ifdef ESP32 // workaround for SPI conflict
rmt_wait_tx_done((rmt_channel_t) USE_WS2812_RMT, 50/portTICK_PERIOD_MS);
#endif
}
void Ws2812SetColor(uint32_t led, uint8_t red, uint8_t green, uint8_t blue, uint8_t white)
@ -523,6 +529,9 @@ void Ws2812SetColor(uint32_t led, uint8_t red, uint8_t green, uint8_t blue, uint
if (!Ws2812.suspend_update) {
strip->Show();
Ws2812.show_next = 1;
#ifdef ESP32 // workaround for SPI conflict
rmt_wait_tx_done((rmt_channel_t) USE_WS2812_RMT, 50/portTICK_PERIOD_MS);
#endif
}
}
@ -564,6 +573,9 @@ void Ws2812ForceUpdate (void)
Ws2812.suspend_update = false;
strip->Show();
Ws2812.show_next = 1;
#ifdef ESP32 // workaround for SPI conflict
rmt_wait_tx_done((rmt_channel_t) USE_WS2812_RMT, 50/portTICK_PERIOD_MS);
#endif
}
/********************************************************************************************/