#if(0)

#include "wokwi-api.h"
#include <stdio.h>
#include <stdlib.h>

// prototipi delle funzioni
void wcb_inp(void *u_data, pin_t pin, uint32_t value);
// se commenti la riga sopra ottieni errore

typedef struct {
    // TODO: Put your chip variables here
    pin_t out;
    pin_t inp;
    bool on_off;
    
} chip_state_t;

void chip_init() {
    setvbuf(stdout, NULL, _IOLBF, 1024); // Limit output buffering to a single line
    chip_state_t *chip = malloc(sizeof(chip_state_t));
    printf("Hello from custom chip!\n");
    
    // inizializza il pin INP come ingresso con pull-up 
    chip->inp = pin_init("INP", INPUT_PULLUP);

    // configura winp_cfg (watch inp config)
    pin_watch_config_t winp_cfg = {
        .edge = FALLING,
        .pin_change = wcb_inp,
        .user_data = chip
    };
    // abilita l'osservazione 
    pin_watch(chip->inp, &winp_cfg);
    //        pin__^        ^__watch config
}

void wcb_inp(void *u_data, pin_t pin, uint32_t value) {
    chip_state_t *chip = (chip_state_t*)u_data;
    chip->on_off = !chip->on_off;
    if (chip->on_off) {
        printf("on\n");
    } else {
        printf("off\n");
    }
}
#endif

void setup() {

}
void loop() {

}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
test-pinwatchBreakout
chip1:VCC
chip1:GND
chip1:INP
chip1:OUT
vcc1:VCC
gnd1:GND
led1:A
led1:C
D0D1D2D3D4D5D6D7GNDLOGIC
logic1:D0
logic1:D1
logic1:D2
logic1:D3
logic1:D4
logic1:D5
logic1:D6
logic1:D7
logic1:GND
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r