Skip to content
Snippets Groups Projects
Select Git revision
  • dcd5d69d2799b5db510a05f041642864db30847c
  • main default protected
  • tuxcoder_dome
  • tuxcoder_fix_captouch
  • crates-reorga
  • wifi
  • test-badgenet
7 results

mod.rs

Blame
  • Forked from flow3r / flow3-rs
    17 commits behind the upstream repository.
    mod.rs 1.20 KiB
    use hal::{i2c::I2C, peripherals::I2C0};
    use port_expander::{dev::max7321::Driver, Max7321};
    use shared_bus::{I2cProxy, NullMutex, XtensaMutex};
    
    pub mod badgenet;
    
    pub struct BadgeLink {
        port_expander: Max7321<NullMutex<Driver<I2cProxy<'static, XtensaMutex<I2C<'static, I2C0>>>>>>,
    }
    
    impl BadgeLink {
        pub fn new(i2c: I2cProxy<'static, XtensaMutex<I2C<'static, I2C0>>>) -> Self {
            let port_expander = port_expander::Max7321::new(i2c, true, true, true, false);
            Self { port_expander }
        }
    
        pub fn left_audio(&mut self) -> Result<(), hal::i2c::Error> {
            let mut pes = self.port_expander.split();
            pes.p3.set_low()?;
            pes.p4.set_low()
        }
    
        pub fn left_badgelink(&mut self) -> Result<(), hal::i2c::Error> {
            let mut pes = self.port_expander.split();
            pes.p3.set_high()?;
            pes.p4.set_high()
        }
    
        pub fn right_audio(&mut self) -> Result<(), hal::i2c::Error> {
            let mut pes = self.port_expander.split();
            pes.p5.set_low()?;
            pes.p6.set_low()
        }
    
        pub fn right_badgelink(&mut self) -> Result<(), hal::i2c::Error> {
            let mut pes = self.port_expander.split();
            pes.p5.set_high()?;
            pes.p6.set_high()
        }
    }