/****************************************************
Controlling the Pi Pico GPIO with direct register
access (SIO registers + IO Bank 0 registers)
****************************************************/
const uint32_t SIO_MASK = 0b00000000011111111111111111111111;
void setup() {
for (int i = 0; i < 23; i++) {
gpio_set_function(i, GPIO_FUNC_SIO);
}
gpio_set_dir_out_masked(SIO_MASK);
delay(1000);
for (uint8_t i = 0; i < 3; i++) {
gpio_put_masked(SIO_MASK, SIO_MASK);
delay(150);
gpio_clr_mask(SIO_MASK);
delay(150);
}
delay(1000);
}
void loop() {
static uint32_t i = 0;
uint32_t addr = 1 << i;
gpio_put_masked(SIO_MASK, addr);
i++;
i %= 23;
delay(100);
}