|
94 | 94 |
|
95 | 95 | err
|
96 | 96 | }
|
| 97 | + |
| 98 | + #[inline] |
| 99 | + fn send_slice( |
| 100 | + &mut self, |
| 101 | + data_or_command: display_interface::DataOrCommand, |
| 102 | + slice: &[Self::Word], |
| 103 | + ) -> Result<(), DisplayError> { |
| 104 | + // Assert chip select pin |
| 105 | + self.cs.set_low().map_err(|_| DisplayError::CSError)?; |
| 106 | + |
| 107 | + // 1 = data, 0 = command |
| 108 | + match data_or_command { |
| 109 | + display_interface::DataOrCommand::Data => self.dc.set_high(), |
| 110 | + display_interface::DataOrCommand::Command => self.dc.set_low(), |
| 111 | + } |
| 112 | + .map_err(|_| DisplayError::DCError)?; |
| 113 | + |
| 114 | + // Send words over SPI |
| 115 | + let err = self |
| 116 | + .spi |
| 117 | + .write(slice) |
| 118 | + .map_err(|_| DisplayError::BusWriteError); |
| 119 | + |
| 120 | + // Deassert chip select pin |
| 121 | + self.cs.set_high().ok(); |
| 122 | + |
| 123 | + err |
| 124 | + } |
97 | 125 | }
|
98 | 126 |
|
99 | 127 | /// SPI display interface.
|
@@ -147,4 +175,23 @@ where
|
147 | 175 | // Send words over SPI
|
148 | 176 | send_u8_iter(&mut self.spi, iter)
|
149 | 177 | }
|
| 178 | + |
| 179 | + #[inline] |
| 180 | + fn send_slice( |
| 181 | + &mut self, |
| 182 | + data_or_command: display_interface::DataOrCommand, |
| 183 | + slice: &[Self::Word], |
| 184 | + ) -> Result<(), DisplayError> { |
| 185 | + // 1 = data, 0 = command |
| 186 | + match data_or_command { |
| 187 | + display_interface::DataOrCommand::Data => self.dc.set_high(), |
| 188 | + display_interface::DataOrCommand::Command => self.dc.set_low(), |
| 189 | + } |
| 190 | + .map_err(|_| DisplayError::DCError)?; |
| 191 | + |
| 192 | + // Send words over SPI |
| 193 | + self.spi |
| 194 | + .write(slice) |
| 195 | + .map_err(|_| DisplayError::BusWriteError) |
| 196 | + } |
150 | 197 | }
|
0 commit comments