aboutsummaryrefslogtreecommitdiffstats
path: root/sw/picardy/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'sw/picardy/src/main.rs')
-rw-r--r--sw/picardy/src/main.rs40
1 files changed, 23 insertions, 17 deletions
diff --git a/sw/picardy/src/main.rs b/sw/picardy/src/main.rs
index b6bf098..2e7d9a1 100644
--- a/sw/picardy/src/main.rs
+++ b/sw/picardy/src/main.rs
@@ -365,25 +365,31 @@ fn TIM2() {
let cw_paddle_tip_low = shared.cw_paddle_tip.is_low().unwrap();
let cw_paddle_ring_low = shared.cw_paddle_ring.is_low().unwrap();
+ if cw_paddle_tip_low || cw_paddle_ring_low {
+ shared.state.send_tone = false;
+ }
+
let cw_ptt_delay : u32 = TICKS_PER_SECOND * 800 / 1000;
- let cw_ptt = match shared.state.mode {
- Mode::CW(_) => {
- if cw_paddle_tip_low || cw_paddle_ring_low {
- shared.cw_ptt_timestamp = *ticks;
- true
- }
- else {
- shared.cw_ptt_timestamp + cw_ptt_delay > *ticks
- }
- },
- _ => false,
- };
+ let cw_ptt = shared.state.send_tone ||
+ match shared.state.mode {
+ Mode::CW(_) => {
+ if cw_paddle_tip_low || cw_paddle_ring_low {
+ shared.cw_ptt_timestamp = *ticks;
+ true
+ }
+ else {
+ shared.cw_ptt_timestamp + cw_ptt_delay > *ticks
+ }
+ },
+ _ => false,
+ };
- let cw_beep = match shared.state.mode {
- Mode::CW(CWMode::StraightKey) => cw_paddle_tip_low,
- Mode::CW(CWMode::Iambic) => shared.cw_keyer.tick(*ticks, cw_paddle_tip_low, cw_paddle_ring_low),
- _ => false,
- };
+ let cw_beep = shared.state.send_tone ||
+ match shared.state.mode {
+ Mode::CW(CWMode::StraightKey) => cw_paddle_tip_low,
+ Mode::CW(CWMode::Iambic) => shared.cw_keyer.tick(*ticks, cw_paddle_tip_low, cw_paddle_ring_low),
+ _ => false,
+ };
let next_state = match shared.state.sequence_state {
SequenceState::Rx => {