display scanning
This commit is contained in:
88
src/main.rs
88
src/main.rs
@@ -2,6 +2,7 @@
|
|||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
use arduino_hal::prelude::*;
|
use arduino_hal::prelude::*;
|
||||||
|
use embedded_hal::digital::OutputPin;
|
||||||
|
|
||||||
// NOTE: 115200 @ 16MHz is 3.5% off, try 9600 or 1M if it causes issues (https://wormfood.net/avrbaudcalc.php)
|
// NOTE: 115200 @ 16MHz is 3.5% off, try 9600 or 1M if it causes issues (https://wormfood.net/avrbaudcalc.php)
|
||||||
const SERIAL_BAUD: u32 = 115200;
|
const SERIAL_BAUD: u32 = 115200;
|
||||||
@@ -36,6 +37,12 @@ fn panic(info: &core::panic::PanicInfo) -> ! {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum SegmentState {
|
||||||
|
Num(u8),
|
||||||
|
Minus,
|
||||||
|
Dot,
|
||||||
|
}
|
||||||
|
|
||||||
#[arduino_hal::entry]
|
#[arduino_hal::entry]
|
||||||
fn main() -> ! {
|
fn main() -> ! {
|
||||||
let dp = arduino_hal::Peripherals::take().unwrap();
|
let dp = arduino_hal::Peripherals::take().unwrap();
|
||||||
@@ -46,9 +53,84 @@ fn main() -> ! {
|
|||||||
|
|
||||||
ufmt::uwriteln!(&mut serial, "Hello from Arduino!").unwrap_infallible();
|
ufmt::uwriteln!(&mut serial, "Hello from Arduino!").unwrap_infallible();
|
||||||
|
|
||||||
|
// let mut kd_KN = pins..into_input();
|
||||||
|
// let mut kd_KO = *pins.a.into_output();
|
||||||
|
let mut kd_d1_1c = pins.d2.into_output();
|
||||||
|
let mut kd_d2_5div = pins.d3.into_output();
|
||||||
|
let mut kd_d3_6mul = pins.d4.into_output();
|
||||||
|
let mut kd_d4_7up = pins.a3.into_output();
|
||||||
|
let mut kd_d5_8e = pins.a2.into_output();
|
||||||
|
let mut kd_d6_90 = pins.d7.into_output();
|
||||||
|
let mut kd_d7_2down = pins.a1.into_output();
|
||||||
|
let mut kd_d8_3plus = pins.d11.into_output();
|
||||||
|
let mut kd_d9_4min = pins.d12.into_output();
|
||||||
|
|
||||||
|
let mut kd_seg_a = pins.d5.into_output();
|
||||||
|
kd_seg_a.set_high();
|
||||||
|
let mut kd_seg_b = pins.d8.into_output();
|
||||||
|
kd_seg_b.set_high();
|
||||||
|
let mut kd_seg_c = pins.d10.into_output();
|
||||||
|
kd_seg_c.set_high();
|
||||||
|
let mut kd_seg_d = pins.a5.into_output();
|
||||||
|
kd_seg_d.set_high();
|
||||||
|
let mut kd_seg_e = pins.d9.into_output();
|
||||||
|
kd_seg_e.set_high();
|
||||||
|
let mut kd_seg_f = pins.d6.into_output();
|
||||||
|
kd_seg_f.set_high();
|
||||||
|
let mut kd_seg_g = pins.a0.into_output();
|
||||||
|
kd_seg_g.set_high();
|
||||||
|
let mut kd_seg_dp = pins.a4.into_output();
|
||||||
|
kd_seg_dp.set_high();
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
led.toggle();
|
for d in 1u8..=9 {
|
||||||
arduino_hal::delay_ms(1000);
|
match d {
|
||||||
ufmt::uwrite!(&mut serial, ".").unwrap_infallible();
|
1 => {
|
||||||
|
kd_d9_4min.set_low();
|
||||||
|
kd_d1_1c.set_high();
|
||||||
|
}
|
||||||
|
2 => {
|
||||||
|
kd_d1_1c.set_low();
|
||||||
|
kd_d2_5div.set_high();
|
||||||
|
}
|
||||||
|
3 => {
|
||||||
|
kd_d2_5div.set_low();
|
||||||
|
kd_d3_6mul.set_high();
|
||||||
|
}
|
||||||
|
4 => {
|
||||||
|
kd_d3_6mul.set_low();
|
||||||
|
kd_d4_7up.set_high();
|
||||||
|
}
|
||||||
|
5 => {
|
||||||
|
kd_d4_7up.set_low();
|
||||||
|
kd_d5_8e.set_high();
|
||||||
|
}
|
||||||
|
6 => {
|
||||||
|
kd_d5_8e.set_low();
|
||||||
|
kd_d6_90.set_high();
|
||||||
|
}
|
||||||
|
7 => {
|
||||||
|
kd_d6_90.set_low();
|
||||||
|
kd_d7_2down.set_high();
|
||||||
|
}
|
||||||
|
8 => {
|
||||||
|
kd_d7_2down.set_low();
|
||||||
|
kd_d8_3plus.set_high();
|
||||||
|
}
|
||||||
|
9 => {
|
||||||
|
kd_d8_3plus.set_low();
|
||||||
|
kd_d9_4min.set_high();
|
||||||
|
}
|
||||||
|
_ => unreachable!(),
|
||||||
|
};
|
||||||
|
kd_seg_g.set_low();
|
||||||
|
arduino_hal::delay_ms(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// loop {
|
||||||
|
// led.toggle();
|
||||||
|
// arduino_hal::delay_ms(1000);
|
||||||
|
// ufmt::uwrite!(&mut serial, ".").unwrap_infallible();
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user