4 ms·
> Generally you have to run Espressif's FreeRTOS variant, which is a very different programming model from the standard microcontroller-with-interrupts model th
by numlock86 3y ago
> Generally you have to run Espressif's FreeRTOS variant, which is a very different programming model from the standard microcontroller-with-interrupts model that prior Arduinos use.
I can tell you never bothered programming an ESP within Arduino IDE and its wrappers. You don't have any contact points with this, unless you want to. It's like with any other ATmega chip. And even if this wasn't the case, the argument would be the same on either side: Just replace Espressif's IDF with Renesas' FSP and each other's FreeRTOS port.
And yes, I am aware you can program Renesas chips bare metal ... just like you can do with ESPs. uBlox is doing the latter for example for their ESP-based products, including even a custom WiFi stack. Once you do a percentage more with ESPs than just toying with their IDF and Getting Started you will start doing that too and just use the IDF for reference at best.
> ESP32 has a crappy ADC.
The ADC of the ESP in question (ESP-S3) is okay, others not so much.
- meatmanek 3y agoThey've done a good job of hiding the RTOS from you and making most sketches run fine without porting, but you're still running as a task under the RTOS, yielding between loop() calls[1]. This leads to mysterious timing issues if you aren't aware of it[2] It doesn't appear that the Arduino core for the Renesas chip is using the RTOS, at least by default -- its main loop is literally doing while (1) { loop(); }, similar to how the AVR core works. [3, 4] 1. https://github.com/espressif/arduino-esp32/blob/72c41d09538663ebef80d29eb986cd5bc3395c2d/cores/esp32/main.cpp#L45 2. https://www.reddit.com/r/esp32/comments/t9aqr6/what_on_earth_is_my_esp32_doing_between_loops/ 3. https://github.com/arduino/ArduinoCore-renesas/blob/149f78b6490ccbafeb420f68919c381a5bdb6e21/cores/arduino/main.cpp#L115 4. https://github.com/arduino/ArduinoCore-avr/blob/eabd762a1edcf076877b7bec28b7f99099141473/cores/arduino/main.cpp#L46