6 releases
0.3.0 | Dec 18, 2023 |
---|---|
0.2.1 | Aug 14, 2023 |
0.2.0 | Apr 20, 2022 |
0.1.3 | Apr 10, 2022 |
#1549 in Embedded development
26 downloads per month
74KB
1.5K
SLoC
Abstraction for I/O expander PCA9539
Abstraction for I/O expander PCA9539.
This crate offers the following features:
- Individual pin instances, fully implementing digital::v2 traits of embedded_hal
- Central I/O control, s. PCA9539 module
- Two state management modes for reduced I2C overhead, s. pins module
- Three concurrency models, s. concurrency section
- no_std support
Example
use rca9539::example::DummyI2CBus;
use rca9539::expander::Bank::Bank0;
use rca9539::expander::PCA9539;
use rca9539::expander::PinID::Pin1;
use embedded_hal::digital::v2::InputPin;
let i2c_bus = DummyI2CBus::new();
let mut expander = PCA9539::new(i2c_bus, 0x74);
let pins = expander.pins();
let pin01 = pins.get_pin(Bank0, Pin1);
assert!(pin01.is_high().unwrap());
Development
Any form of support is greatly appreciated. Feel free to create issues and PRs. See DEVELOPMENT for more details.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Each contributor agrees that his/her contribution covers both licenses.
Dependencies
~580–770KB
~14K SLoC