summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-06-05 01:42:12 +0200
committerGustav Sörnäs <gustav@sornas.net>2021-06-05 01:42:12 +0200
commit1fd1fa7d4d84abc93cf657c70c0ff1afaa2cdd93 (patch)
tree309ea34f46042d3aec0375d4ff67e1f87167fcce /src
downloadjoystick-1fd1fa7d4d84abc93cf657c70c0ff1afaa2cdd93.tar.gz
initial commit
Diffstat (limited to 'src')
-rw-r--r--src/main.rs42
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);
+ }
+}