#include <stdio.h>
#include "pico/stdlib.h"
#include "pico/cyw43_arch.h"
#define LED_PIN 0
#define SW_PIN 20
int main() {
stdio_init_all();
gpio_init(LED_PIN);
gpio_set_dir(LED_PIN, GPIO_OUT);
gpio_init(SW_PIN);
gpio_set_dir(SW_PIN, GPIO_IN);
uint32_t interval_ms = 100;
bool led_on = true;
uint64_t next_toggle_us = time_us_64();
while (true) {
uint64_t now = time_us_64();
if (now >= next_toggle_us) { // 締め切りが来たか
led_on = !led_on;
gpio_put(LED_PIN, led_on);
next_toggle_us += interval_ms*1000; // 次を予約
}
if (gpio_get(SW_PIN) == 0) { // 毎周確認できる
interval_ms = (interval_ms == 500) ? 100 : 500;
}
sleep_ms(1); // シミュレーター(Wokwi)に処理の隙間を与える
}
}