#include #include "pico/stdlib.h" #include "keyer.h" extern const uint LEFT_PADDLE_PIN; bool left_paddle_pressed() { if (!gpio_get(LEFT_PADDLE_PIN)) { return true; } return false; } void Keyer::run() { switch (state) { case State::Wait: if (left_paddle_pressed()) state = State::Dit; break; case State::Dit: printf("."); if (left_paddle_pressed()) state = State::InterCharSpace; else state = State::Wait; break; case State::Dah: printf("-"); ++numElements; if (numElements == 3) { numElements = 0; if (left_paddle_pressed()) state = State::InterCharSpace; else state = State::Wait; } break; case State::InterCharSpace: printf("(.)"); if (left_paddle_pressed()) state = State::Dit; else state = State::Wait; break; default: break; } }