#include #include #include "pico/stdlib.h" #include "settings.h" #include "keyer.h" namespace { const uint LED_PIN = PICO_DEFAULT_LED_PIN; const uint RIGHT_PADDLE_PIN = 15; } extern const uint LEFT_PADDLE_PIN = 14; void setup() { 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); } int main() { stdio_init_all(); timer_hw->dbgpause = 0; // fix problem with debug and sleep_ms https://github.com/raspberrypi/pico-sdk/issues/1152#issuecomment-1418248639 sleep_ms(1000); setup(); Settings settings{read_settings()}; printf("\nIambic mode (loaded): %d\n", static_cast(settings.mode)); printf("WPM (loaded): %d\n", settings.wpm); printf("Element duration (u_sec): %" PRIu64 "\n", element_duration_us(settings.wpm)); Keyer keyer; while (true) { sleep_us(element_duration_us(settings.wpm)); keyer.run(); } return 0; }