Crate ht16k33

Source
Expand description

§HT16K33

ht16k33 is a driver for the Holtek HT16K33 RAM Mapping 16*8 LED Controller Driver with keyscan chip.

Currently, only the 28-pin SOP package type is supported.

§Features

  • Uses the embedded-hal hardware abstraction.
  • Supports no_std for embedded devices.
  • Supports all 20/24/28-pin SOP package types.
  • Displays all 128 LEDs.
  • Reads keyscan.
  • Manages interrupts.
  • Manages slave devices.

§Usage

§Linux-based platforms

Using the recommended linux-embedded-hal crate which implements the embedded-hal traits for Linux devices, including I2C.

# use failure::Error;
use linux_embedded_hal::I2cdev;
use ht16k33::HT16K33;
# fn main() -> Result<(), Error>{

// The I2C device address.
let address = 112u8;

// Create an I2C device.
let mut i2c = I2cdev::new("/path/to/i2c/device")?;
i2c.set_slave_address(address as u16)?;

let mut ht16k33 = HT16K33::new(i2c, address);

# Ok(())
# }

§Embedded platforms

Using this crate without default features in your Cargo.toml like so:

[dependencies]
htk16k33 = { version = "*", features = [] }

§All platforms, using I2C simulation

Not all platforms have I2C support. The provided ht16k33::i2c_mock implements the embedded-hal traits for I2C.

use ht16k33::i2c_mock::I2cMock;
use ht16k33::HT16K33;

// The I2C device address.
let address = 112u8;

// Create a mock I2C device.
let mut i2c = I2cMock::new();

let mut ht16k33 = HT16K33::new(i2c, address);

Modules§

Structs§

Enums§

Constants§