#include <stdint.h>
#include <esp_rom_sys.h>
#define REG32(addr) (*(volatile uint32_t *)(addr))
#define GPIO_ENABLE_W1TS_REG 0x3FF44024
#define GPIO_OUT_W1TS_REG 0x3FF44008
#define GPIO_OUT_W1TC_REG 0x3FF4400C
#define LED1_PIN 2
#define LED2_PIN 4
#define LED3_PIN 5
#define LED1_MASK (1U << LED1_PIN)
#define LED2_MASK (1U << LED2_PIN)
#define LED3_MASK (1U << LED3_PIN)
#define ALL_LEDS_MASK (LED1_MASK | LED2_MASK | LED3_MASK)
void app_main(void)
{
REG32(GPIO_ENABLE_W1TS_REG) = ALL_LEDS_MASK;
while (1) {
REG32(GPIO_OUT_W1TC_REG) = ALL_LEDS_MASK;
REG32(GPIO_OUT_W1TS_REG) = LED1_MASK;
esp_rom_delay_us(1000000);
REG32(GPIO_OUT_W1TC_REG) = ALL_LEDS_MASK;
REG32(GPIO_OUT_W1TS_REG) = LED2_MASK;
esp_rom_delay_us(1000000);
REG32(GPIO_OUT_W1TC_REG) = ALL_LEDS_MASK;
REG32(GPIO_OUT_W1TS_REG) = LED3_MASK;
esp_rom_delay_us(1000000);
REG32(GPIO_OUT_W1TC_REG) = ALL_LEDS_MASK;
esp_rom_delay_us(500000);
}
}