mirror of
https://github.com/yuri91/ili9341-rs.git
synced 2024-11-24 23:50:59 +00:00
Add Interface trait
This commit is contained in:
parent
1956825a8e
commit
f09403d092
1 changed files with 18 additions and 0 deletions
18
src/lib.rs
18
src/lib.rs
|
@ -13,6 +13,24 @@ use hal::spi::{Mode, Phase, Polarity};
|
|||
use core::fmt::Debug;
|
||||
use core::iter::IntoIterator;
|
||||
|
||||
/// Trait representing the interface to the hardware.
|
||||
///
|
||||
/// Intended to abstract the various buses (SPI, MPU 8/9/16-bit) from the Controller code.
|
||||
pub trait Interface {
|
||||
type Error;
|
||||
|
||||
/// Sends a command with a sequence of 8-bit arguments
|
||||
///
|
||||
/// Mostly used for sending configuration commands
|
||||
fn write(&mut self, command: u8, data: &[u8]) -> Result<(), Self::Error>;
|
||||
|
||||
/// Sends a command with a sequence of 16-bit data words
|
||||
///
|
||||
/// Mostly used for sending MemoryWrite command and other commands
|
||||
/// with 16-bit arguments
|
||||
fn write_iter(&mut self, command: u8, data: impl IntoIterator<Item = u16>) -> Result<(), Self::Error>;
|
||||
}
|
||||
|
||||
/// SPI mode
|
||||
pub const MODE: Mode = Mode {
|
||||
polarity: Polarity::IdleLow,
|
||||
|
|
Loading…
Reference in a new issue