Are you following standard operating procedures? 1. Put your MCU into sleep. 2. Inject wake-up trigger signal. 3. Observe that the MCU has wake-up u flashing LED. 4. Goto Step-1.
Why are you injecting interrupting signal by pressing SW2 when the MCU is not in sleep?
Why are you injecting interrupting signal by pressing SW2 when the MCU is not in sleep?
My goal is to make a specialized infrared remote control, with 5 buttons, running on battery.
So, I plan to use the light sleep function to use as little power as possible.
It is absolutely necessary that the user of this remote control can press the button of his choice, at the speed he wants, and in the order he wants, without the remote control freezing.
So, in my test, I press the buttons of my choice and, necessarily, the ESP32-C3 must not freeze.
With some adaptation of the circuit and programming, I know it works fine on an ESP32-S3 and an ESP-WROOM-32... But I still need to find a solution for the ESP32-C3...
Ok, I have setup the circuit with the same board and for me it works fine, with the same pins.
The difference is only that I use the internal pullups instead of the resistors:
The rest is the same. Instead of switches I short the pins with a jump wire to a GND ring that I have in the breadboard, to hook clip leads, etc.
I switch both fast, at the same time, alternatively... and it works fine.
I suppose that you know that when the board is sleeping, to program it you have to reset it while pressing also the boot button, to enter programming mode. And after programming you have to press the reset button again to restart.
But this kind of switch (with a kind of carbon washer inside) does not give a clean contact closure and gives a contact around 100 ohms. It probably works well with an ADC, but it seems that the ESP32-C3 does not appreciate it.
I am currently using standard switches and it works very very well.