AudioCodec_NAU88U10YG/Src/nau88u10yg_audio_codec.c

30 lines
1007 B
C

#include "nau88u10yg.h"
bool xAudioCodecReadRegister(tI2cIO *i2c, uint16_t AdrRegQwery, uint16_t *DataRegResult) {
uint8_t pack = AdrRegQwery << 1 | 0b0 << 0;
uint8_t i2cPack[2]={0};
uint16_t data = 0;
I2cWrite(i2c, NAU88U10YG_ADDRESS_WRITE, &pack, 1, NAU88U10YG_IO_TIMEOUT);
uint16_t result = I2cRead(i2c, NAU88U10YG_ADDRESS_READ, (uint8_t *) &data, 2, NAU88U10YG_IO_TIMEOUT);
i2cPack[0] = data>>8;
i2cPack[1] = data;
*DataRegResult = (uint16_t)*i2cPack;
return result;
}
bool xAudioCodecWriteRegister(tI2cIO *i2c, NAU88U10YG_RegAddrPacket packet){
uint8_t i2cPack[2]={0};
i2cPack[0] = packet.raw>>8;
i2cPack[1] = packet.raw;
return I2cWrite(i2c,NAU88U10YG_ADDRESS_WRITE,i2cPack,2,NAU88U10YG_IO_TIMEOUT);
}
bool xAudioCodecWrite_Register8b_Data8b(tI2cIO *i2c, uint8_t reg, uint8_t data){
uint8_t i2cPack[2]={0};
i2cPack[0] = reg;
i2cPack[1] = data;
return I2cWrite(i2c,NAU88U10YG_ADDRESS_WRITE,i2cPack,2,NAU88U10YG_IO_TIMEOUT)==2;
}