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.rs20
1 files changed, 14 insertions, 6 deletions
diff --git a/sw/picardy/src/main.rs b/sw/picardy/src/main.rs
index 66c00c5..e6d2469 100644
--- a/sw/picardy/src/main.rs
+++ b/sw/picardy/src/main.rs
@@ -67,6 +67,8 @@ enum FilterShift {
Custom(u32),
}
+const VHF_BAND_EDGE : u32 = 144_000_000;
+const VHF_LO : u32 = 114_286_000;
const BFO_LSB : u32 = 4_915_940;
const BFO_USB : u32 = 4_914_910;
@@ -74,7 +76,7 @@ struct State {
mode : Mode,
filter_shift : FilterShift,
bfo_tune_fail : bool,
- qrg : u32,
+ vhf_qrg : u32,
tune_speed : TuneSpeed,
transmit : bool,
@@ -89,8 +91,12 @@ impl State {
}
}
+ fn if_qrg(&self) -> u32 {
+ self.vhf_qrg - VHF_LO
+ }
+
fn vfo(&self) -> u32 {
- self.qrg - self.bfo()
+ self.if_qrg() - self.bfo()
}
fn vfo_incr(&self) -> i32 {
@@ -138,9 +144,11 @@ fn update_disp<T: hd44780_driver::bus::DataBus>(lcd: &mut HD44780<T>, state: &St
lcd.write_str(&string, delay).unwrap();
string.clear();
+ /* Shorten the QRG to avoid using three digits for nothing */
+ let disp_freq = (state.vhf_qrg as i32) - (VHF_BAND_EDGE as i32);
match state.mode {
- Mode::BFO => write!(string, " {:<10}", state.qrg).unwrap(),
- Mode::VFO => write!(string, ">{:<10}", state.qrg).unwrap(),
+ Mode::BFO => write!(string, " .{:<06} ", disp_freq).unwrap(),
+ Mode::VFO => write!(string, ">.{:<06} ", disp_freq).unwrap(),
}
match state.tune_speed {
@@ -159,7 +167,7 @@ fn main() -> ! {
mode : Mode::VFO,
filter_shift : FilterShift::USB,
bfo_tune_fail : false,
- qrg : 28_000_000,
+ vhf_qrg : VHF_BAND_EDGE,
tune_speed : TuneSpeed::Mid,
transmit : false,
};
@@ -293,7 +301,7 @@ fn main() -> ! {
match state.mode {
Mode::VFO => {
- state.qrg = (state.qrg as i32 + delta * state.vfo_incr()) as u32;
+ state.vhf_qrg = (state.vhf_qrg as i32 + delta * state.vfo_incr()) as u32;
},
Mode::BFO => {
let new_bfo = (state.bfo() as i32 + delta * state.bfo_incr()) as u32;