#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
chip1:VCC
chip1:GND
chip1:INP
chip1:OUT
vcc1:VCC
gnd1:GND
led1:A
led1:C
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