diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..68e1d38 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,42 @@ +#![no_std] +#![no_main] + +use arduino_uno::{adc::{Adc, AdcSettings}, hal::{clock::MHz16, port::{mode::{Floating, Input, Output}, portd::{PD0, PD1}}, usart::Usart}, pac::USART0, prelude::*}; +use panic_halt as _; + +type _Serial = Usart<USART0, PD0<Input<Floating>>, PD1<Output>, MHz16>; + +#[arduino_uno::entry] +fn main() -> ! { + let dp = arduino_uno::Peripherals::take().unwrap(); + + let mut pins = arduino_uno::Pins::new(dp.PORTB, dp.PORTC, dp.PORTD); + + let mut led = pins.d13.into_output(&mut pins.ddr); + led.set_low().void_unwrap(); + + let mut serial = arduino_uno::Serial::new( + dp.USART0, + pins.d0, + pins.d1.into_output(&mut pins.ddr), + 57600.into_baudrate(), + ); + + let mut adc = Adc::new(dp.ADC, AdcSettings::default()); + + let mut a0 = pins.a0.into_analog_input(&mut adc); + let mut a1 = pins.a1.into_analog_input(&mut adc); + let mut a2 = pins.a2.into_analog_input(&mut adc); + + loop { + let a0: u16 = nb::block!(adc.read(&mut a0)).void_unwrap(); + let a1: u16 = nb::block!(adc.read(&mut a1)).void_unwrap(); + let a2: u16 = nb::block!(adc.read(&mut a2)).void_unwrap(); + // let b = nb::block!(serial.read()).void_unwrap(); + match serial.read() { + Ok(_) => (), + Err(_) => (), + } + arduino_uno::delay_ms(100); + } +} |
