cw out added
This commit is contained in:
parent
9a004f8b94
commit
cdc6f7998a
2 changed files with 10 additions and 2 deletions
|
@ -8,6 +8,7 @@
|
||||||
extern const uint LED_PIN;
|
extern const uint LED_PIN;
|
||||||
extern const uint LEFT_PADDLE_PIN;
|
extern const uint LEFT_PADDLE_PIN;
|
||||||
extern const uint RIGHT_PADDLE_PIN;
|
extern const uint RIGHT_PADDLE_PIN;
|
||||||
|
extern const uint CW_OUT_PIN;
|
||||||
|
|
||||||
const uint SIDETONE_FREQ = 622;
|
const uint SIDETONE_FREQ = 622;
|
||||||
|
|
||||||
|
@ -69,6 +70,7 @@ void Keyer::run()
|
||||||
m_currentlyKeying = true;
|
m_currentlyKeying = true;
|
||||||
m_keying_until = make_timeout_time_us(m_elementDuration);
|
m_keying_until = make_timeout_time_us(m_elementDuration);
|
||||||
gpio_put(LED_PIN, 1);
|
gpio_put(LED_PIN, 1);
|
||||||
|
gpio_put(CW_OUT_PIN, 1);
|
||||||
m_Sidetone.on(SIDETONE_FREQ);
|
m_Sidetone.on(SIDETONE_FREQ);
|
||||||
} else {
|
} else {
|
||||||
// If right paddle üressed -> note for Iambic B
|
// If right paddle üressed -> note for Iambic B
|
||||||
|
@ -80,6 +82,7 @@ void Keyer::run()
|
||||||
if (absolute_time_diff_us(timestamp, m_keying_until) <= 0) {
|
if (absolute_time_diff_us(timestamp, m_keying_until) <= 0) {
|
||||||
m_currentlyKeying = false;
|
m_currentlyKeying = false;
|
||||||
gpio_put(LED_PIN, 0);
|
gpio_put(LED_PIN, 0);
|
||||||
|
gpio_put(CW_OUT_PIN, 0);
|
||||||
m_Sidetone.off();
|
m_Sidetone.off();
|
||||||
m_previousState = State::Dit;
|
m_previousState = State::Dit;
|
||||||
m_state = State::DitPause;
|
m_state = State::DitPause;
|
||||||
|
@ -91,6 +94,7 @@ void Keyer::run()
|
||||||
m_currentlyKeying = true;
|
m_currentlyKeying = true;
|
||||||
m_keying_until = make_timeout_time_us(m_elementDuration * 3);
|
m_keying_until = make_timeout_time_us(m_elementDuration * 3);
|
||||||
gpio_put(LED_PIN, 1);
|
gpio_put(LED_PIN, 1);
|
||||||
|
gpio_put(CW_OUT_PIN, 1);
|
||||||
m_Sidetone.on(SIDETONE_FREQ);
|
m_Sidetone.on(SIDETONE_FREQ);
|
||||||
} else {
|
} else {
|
||||||
// If left paddle pressed -> Note for Iambic B
|
// If left paddle pressed -> Note for Iambic B
|
||||||
|
@ -102,6 +106,7 @@ void Keyer::run()
|
||||||
if (absolute_time_diff_us(timestamp, m_keying_until) <= 0) {
|
if (absolute_time_diff_us(timestamp, m_keying_until) <= 0) {
|
||||||
m_currentlyKeying = false;
|
m_currentlyKeying = false;
|
||||||
gpio_put(LED_PIN, 0);
|
gpio_put(LED_PIN, 0);
|
||||||
|
gpio_put(CW_OUT_PIN, 0);
|
||||||
m_Sidetone.off();
|
m_Sidetone.off();
|
||||||
m_previousState = State::Dah;
|
m_previousState = State::Dah;
|
||||||
m_state = State::DahPause;
|
m_state = State::DahPause;
|
||||||
|
@ -150,6 +155,7 @@ void Keyer::run()
|
||||||
break;
|
break;
|
||||||
case State::Abort:
|
case State::Abort:
|
||||||
gpio_put(LED_PIN, 0);
|
gpio_put(LED_PIN, 0);
|
||||||
|
gpio_put(CW_OUT_PIN, 0);
|
||||||
m_Sidetone.off();
|
m_Sidetone.off();
|
||||||
m_keyNextIambicB = false;
|
m_keyNextIambicB = false;
|
||||||
m_currentlyPausing = false;
|
m_currentlyPausing = false;
|
||||||
|
|
|
@ -16,6 +16,7 @@ extern const uint LED_PIN = PICO_DEFAULT_LED_PIN;
|
||||||
extern const uint LEFT_PADDLE_PIN = 14;
|
extern const uint LEFT_PADDLE_PIN = 14;
|
||||||
extern const uint RIGHT_PADDLE_PIN = 15;
|
extern const uint RIGHT_PADDLE_PIN = 15;
|
||||||
extern const uint BUZZER_PIN = 18;
|
extern const uint BUZZER_PIN = 18;
|
||||||
|
extern const uint CW_OUT_PIN = 17;
|
||||||
|
|
||||||
// Stuff for communicating between cores
|
// Stuff for communicating between cores
|
||||||
enum class KeyerQueueCommand {
|
enum class KeyerQueueCommand {
|
||||||
|
@ -46,8 +47,9 @@ void setup()
|
||||||
gpio_init(RIGHT_PADDLE_PIN);
|
gpio_init(RIGHT_PADDLE_PIN);
|
||||||
gpio_set_dir(RIGHT_PADDLE_PIN, GPIO_IN);
|
gpio_set_dir(RIGHT_PADDLE_PIN, GPIO_IN);
|
||||||
gpio_pull_up(RIGHT_PADDLE_PIN);
|
gpio_pull_up(RIGHT_PADDLE_PIN);
|
||||||
|
gpio_init(CW_OUT_PIN);
|
||||||
// sleep_ms(1000);
|
gpio_set_dir(CW_OUT_PIN, GPIO_OUT);
|
||||||
|
gpio_put(CW_OUT_PIN, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Let's do all the keying stuff in the second core, so there are no timing problems. */
|
/* Let's do all the keying stuff in the second core, so there are no timing problems. */
|
||||||
|
|
Loading…
Reference in a new issue