Skip to content
Snippets Groups Projects

Fixed errors in pca9956 and added reset_devices function for i2c

Merged Leo Springsfeld requested to merge pca9956 into main
2 files
+ 13
3
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -109,7 +109,7 @@ impl<I2C: I2c, PIN: OutputPin> PCA9956<I2C, PIN> {
@@ -109,7 +109,7 @@ impl<I2C: I2c, PIN: OutputPin> PCA9956<I2C, PIN> {
}
}
/// Checks for errors and prints error registers if error flag is set (Datasheet section 7.3.14)
/// Checks for errors and prints error registers if error flag is set (Datasheet section 7.3.14)
async fn error_check(&mut self) -> Result<(), PCA9956Error> {
pub async fn error_check(&mut self) -> Result<(), PCA9956Error> {
let mode_2: u8 = self.i2c_read(Registers::MODE_2).await?;
let mode_2: u8 = self.i2c_read(Registers::MODE_2).await?;
debug!("PCA9956 Mode 2 register value: {mode_2:#010b}");
debug!("PCA9956 Mode 2 register value: {mode_2:#010b}");
if (mode_2 & (1 << 6)) != 0 {
if (mode_2 & (1 << 6)) != 0 {
@@ -172,8 +172,13 @@ impl<I2C: I2c, PIN: OutputPin> PCA9956<I2C, PIN> {
@@ -172,8 +172,13 @@ impl<I2C: I2c, PIN: OutputPin> PCA9956<I2C, PIN> {
debug!("ALL_PWM register: {reg:#010b}");
debug!("ALL_PWM register: {reg:#010b}");
let reg = self.i2c_read(ALL_IREF).await?;
let reg = self.i2c_read(ALL_IREF).await?;
debug!("ALL_IREF register: {reg:#010b}");
debug!("ALL_IREF register: {reg:#010b}");
let reg = self.i2c_read(ERFLAGS_0).await?;
debug!("ERFLAGS_0 register: {reg:#010b}");
for i in 0..6 {
 
let mut regs = [0];
 
self.i2c_read_raw(ERFLAGS_0 as u8 + i, &mut regs).await?;
 
debug!("ERFLAGS_{i} register: {:#010b}", regs[0]);
 
}
 
Ok(())
Ok(())
}
}
Loading