|
11 | 11 | //! ## Example
|
12 | 12 | //!
|
13 | 13 | //! ```rust,ignore
|
14 |
| -//! let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); |
15 | 14 | //! let rmt = Rmt::new(peripherals.RMT, 80.MHz(), None).unwrap();
|
16 | 15 | //!
|
17 | 16 | //! let rmt_buffer = smartLedBuffer!(1);
|
18 |
| -//! let mut led = SmartLedsAdapter::new(rmt.channel0, io.pins.gpio2, rmt_buffer); |
| 17 | +//! let mut led = SmartLedsAdapter::new(rmt.channel0, peripherals.GPIO2, rmt_buffer); |
19 | 18 | //! ```
|
20 | 19 | //!
|
21 | 20 | //! ## Feature Flags
|
@@ -51,6 +50,12 @@ pub enum LedAdapterError {
|
51 | 50 | TransmissionError(RmtError),
|
52 | 51 | }
|
53 | 52 |
|
| 53 | +impl From<RmtError> for LedAdapterError { |
| 54 | + fn from(e: RmtError) -> Self { |
| 55 | + LedAdapterError::TransmissionError(e) |
| 56 | + } |
| 57 | +} |
| 58 | + |
54 | 59 | /// Macro to allocate a buffer sized for a specific number of LEDs to be
|
55 | 60 | /// addressed.
|
56 | 61 | ///
|
@@ -113,18 +118,18 @@ where
|
113 | 118 | channel: Some(channel),
|
114 | 119 | rmt_buffer,
|
115 | 120 | pulses: (
|
116 |
| - u32::from(PulseCode { |
117 |
| - level1: true, |
118 |
| - length1: ((SK68XX_T0H_NS * src_clock) / 1000) as u16, |
119 |
| - level2: false, |
120 |
| - length2: ((SK68XX_T0L_NS * src_clock) / 1000) as u16, |
121 |
| - }), |
122 |
| - u32::from(PulseCode { |
123 |
| - level1: true, |
124 |
| - length1: ((SK68XX_T1H_NS * src_clock) / 1000) as u16, |
125 |
| - level2: false, |
126 |
| - length2: ((SK68XX_T1L_NS * src_clock) / 1000) as u16, |
127 |
| - }), |
| 121 | + PulseCode::new ( |
| 122 | + true, |
| 123 | + ((SK68XX_T0H_NS * src_clock) / 1000) as u16, |
| 124 | + false, |
| 125 | + ((SK68XX_T0L_NS * src_clock) / 1000) as u16, |
| 126 | + ), |
| 127 | + PulseCode::new ( |
| 128 | + true, |
| 129 | + ((SK68XX_T1H_NS * src_clock) / 1000) as u16, |
| 130 | + false, |
| 131 | + ((SK68XX_T1L_NS * src_clock) / 1000) as u16, |
| 132 | + ), |
128 | 133 | ),
|
129 | 134 | }
|
130 | 135 | }
|
@@ -188,7 +193,7 @@ where
|
188 | 193 |
|
189 | 194 | // Perform the actual RMT operation. We use the u32 values here right away.
|
190 | 195 | let channel = self.channel.take().unwrap();
|
191 |
| - match channel.transmit(&self.rmt_buffer).wait() { |
| 196 | + match channel.transmit(&self.rmt_buffer)?.wait() { |
192 | 197 | Ok(chan) => {
|
193 | 198 | self.channel = Some(chan);
|
194 | 199 | Ok(())
|
|
0 commit comments