#include #include "pico/stdlib.h" #include "pico/multicore.h" #include "pico/util/queue.h" #include "settings.h" #include "keyer.h" namespace { } extern const uint LED_PIN = PICO_DEFAULT_LED_PIN; extern const uint LEFT_PADDLE_PIN = 14; extern const uint RIGHT_PADDLE_PIN = 15; extern const uint BUZZER_PIN = 13; queue_t keyerQueue; void setup() { stdio_init_all(); gpio_init(LED_PIN); gpio_set_dir(LED_PIN, GPIO_OUT); gpio_put(LED_PIN, 0); // Setup pins for left and right paddles gpio_init(LEFT_PADDLE_PIN); gpio_set_dir(LEFT_PADDLE_PIN, GPIO_IN); gpio_pull_up(LEFT_PADDLE_PIN); gpio_init(RIGHT_PADDLE_PIN); gpio_set_dir(RIGHT_PADDLE_PIN, GPIO_IN); gpio_pull_up(RIGHT_PADDLE_PIN); sleep_ms(1000); } void core1_main() { Settings settings; queue_remove_blocking(&keyerQueue, &settings); Keyer keyer(settings.wpm, settings.mode); while (true) { keyer.run(); } } int main() { timer_hw->dbgpause = 0; // workaround for problem with debug and sleep_ms // https://github.com/raspberrypi/pico-sdk/issues/1152#issuecomment-1418248639 setup(); Settings settings{read_settings()}; /*Keyer keyer(settings.wpm, settings.mode);*/ queue_add_blocking(&keyerQueue, &settings); while (true) { sleep_ms(100); } return 0; }