readd data_x_times

This commit is contained in:
Chris 2018-10-11 00:33:44 +02:00
parent 98e392fff1
commit 468425881c
2 changed files with 25 additions and 4 deletions

View File

@ -181,11 +181,11 @@ where
let color = self.background_color.get_byte_value();
//TODO: this is using a big buffer atm, is it better to just loop over sending a single byte?
self.interface.cmd_with_data(
self.interface.cmd(
spi,
Command::WRITE_RAM,
&[color; WIDTH as usize / 8 * HEIGHT as usize]
)
Command::WRITE_RAM
)?;
self.interface.data_x_times(spi, color, WIDTH / 8 * HEIGHT)
}

View File

@ -74,6 +74,27 @@ where
self.data(spi, data)
}
/// Basic function for sending the same byte of data (one u8) multiple times over spi
///
/// Enables direct interaction with the device with the help of [command()](ConnectionInterface::command())
///
/// //TODO: make public?
pub(crate) fn data_x_times(
&mut self,
spi: &mut SPI,
val: u8,
repetitions: u16,
) -> Result<(), SPI::Error> {
// high for data
self.dc.set_high();
// Transfer data (u8) over spi
for _ in 0..repetitions {
self.write(spi, &[val])?;
}
Ok(())
}
// spi write helper/abstraction function
fn write(&mut self, spi: &mut SPI, data: &[u8]) -> Result<(), SPI::Error>
{