#define GPIO_BOOTSEL 30
#define GPIO_A 12 // Button A
#define GPIO_B 13 // Button B
#define GPIO_X 14 // Button X
#define GPIO_Y 15 // Button Y
sys_printf(
"Starting runloop on core %d...\n", core);
while (true) {
if (event == NULL) {
break;
}
sys_printf(
"core %d: Processing event: %s (queue size=%d)\n", core,
}
}
if (pin == GPIO_BOOTSEL) {
return;
}
if (!event_data) {
return;
} else {
const char *state_str = NULL;
state_str = "RISING|FALLING";
} else if (event & HW_GPIO_RISING) {
state_str = "RISING";
} else if (event & HW_GPIO_FALLING) {
state_str = "FALLING";
} else {
state_str = "UNKNOWN";
}
sys_sprintf(event_data, 50,
"gpio(core=%d pin=%d state=%s)", core, pin,
state_str);
}
}
}
void core1_task(void *arg) {
runloop(queue);
}
bool core0_task() {
return false;
}
sys_printf(
"main: Failed to launch task on core 1\n");
return false;
}
sys_printf(
"Defining pull-up GPIO inputs %d, %d, %d, %d\n", GPIO_A, GPIO_B,
GPIO_X, GPIO_Y);
sys_printf(
"main: Initializing GPIO for BOOTSEL button %d\n", GPIO_BOOTSEL);
runloop(&queue);
return true;
}
int main() {
if (core0_task() == false) {
}
return 0;
}