diff options
author | Brian Cully <bjc@kublai.com> | 2019-08-11 19:01:34 -0400 |
---|---|---|
committer | Brian Cully <bjc@kublai.com> | 2019-08-11 19:01:34 -0400 |
commit | 7fdc6a2c1b5799221f5d89d5f935cfe7dad4ccd2 (patch) | |
tree | 3ac13da04997361ddb688d2f666298d075aa14e2 /usb/src/dotstar.rs | |
parent | cceebb087a7a8afc41e0523f6e98be2301ff3af1 (diff) | |
download | bleusb-7fdc6a2c1b5799221f5d89d5f935cfe7dad4ccd2.tar.gz bleusb-7fdc6a2c1b5799221f5d89d5f935cfe7dad4ccd2.zip |
Move usb controller stuff to usb directory.
Diffstat (limited to 'usb/src/dotstar.rs')
-rw-r--r-- | usb/src/dotstar.rs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/usb/src/dotstar.rs b/usb/src/dotstar.rs new file mode 100644 index 0000000..8e930d0 --- /dev/null +++ b/usb/src/dotstar.rs @@ -0,0 +1,42 @@ +use trinket_m0::{ + clock::GenericClockController, + gpio::{self, Floating, Input}, + prelude::*, + sercom::{self, PadPin, SPIMaster1}, + PM, SERCOM1, +}; + +use apa102_spi::Apa102; + +pub fn new( + sercom: SERCOM1, + miso: gpio::Pa31<Input<Floating>>, + mosi: gpio::Pa0<Input<Floating>>, + sck: gpio::Pa1<Input<Floating>>, + port: &mut gpio::Port, + pm: &mut PM, + clocks: &mut GenericClockController, +) -> Apa102< + SPIMaster1< + sercom::Sercom1Pad3<gpio::Pa31<gpio::PfD>>, + sercom::Sercom1Pad0<gpio::Pa0<gpio::PfD>>, + sercom::Sercom1Pad1<gpio::Pa1<gpio::PfD>>, + >, +> { + let gclk = clocks.gclk0(); + let miso = miso.into_pad(port); + let mosi = mosi.into_pad(port); + let sck = sck.into_pad(port); + let spi = SPIMaster1::new( + &clocks + .sercom1_core(&gclk) + .expect("setting up sercom1 clock"), + 3.mhz(), + apa102_spi::MODE, + sercom, + pm, + (miso, mosi, sck), + ); + + Apa102::new(spi) +} |