//app.c
#include "pico/stdlib.h"
#include "pico/cyw43_arch.h"

int Flag;
int LED;    //LED点灯/消灯モード
int exLED_PIN = 0;  //外付けLEDピン番号1 :GP0
struct  repeating_timer timer;    //インターバルタイマ インスタンス生成
//repeating_timer_t timer;    //

bool callback_timer(struct repeating_timer *t)  //コールバック関数
{
    Flag = 1;
    //cyw43_arch_gpio_put(); //★このコードがコールバック関数内にあるとRP2040が起動しない
    return 1;
}

void init() //ピン初期化
{
    gpio_init(exLED_PIN);
    gpio_set_dir(exLED_PIN, GPIO_OUT);     //ピン出力モード化
}

int main(void)
{
    if (cyw43_arch_init())return -1;    //無線モジュールCYW43初期化
    init();     //ピン初期化

    add_repeating_timer_ms(1000, callback_timer, NULL, &timer);//コールバック関数 及びインターバル時間の設定
    //add_repeating_timer_us(1000000, callback_timer, NULL, &timer);//μsec単位

    while(1)
    {
        if(Flag == 1)
        {
            Flag = 0;
            if(LED == 0)    //消灯モードの場合
            {
                LED = 1;
                cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 1);  //内臓LED: 点灯        
                gpio_put(exLED_PIN, 1);   //外付けLED: 点灯
            } else          //点灯モードの場合
            {
                LED = 0;
                cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 0);  //内臓LED: 消灯  
                gpio_put(exLED_PIN, 0);   //外付けLEDLED 消灯
            }
        } 
    };    
    return 0;
}