Не могу прочитать значение регистра

Нет ответов
kimmel.dima
Offline
Зарегистрирован: 20.02.2014

Уважаемые форумчане! Прошу помощи, не могу считать данные из регистра ak4114, либо ошибка чтения, либо нули. С записью нормально все, а чтение не сдается((

#include <Wire.h>

const int DSPRST = 2; 
const int C1 = 3;
const int C2 = 4;
uint8_t addr = 0x10;
  

void write(uint8_t regID, byte regDat)
{
  byte error;
  Wire.beginTransmission(addr);
  Wire.write(regID & 0x00FF);    
  Wire.write(regDat & 0x00FF);   
  if(Wire.endTransmission()){
    Serial.print("error write reg ");
    Serial.println(regID);
  }
  error = Wire.endTransmission();
  if (error == 0)
  {
  Serial.println(regDat, HEX);
  delay(1);}
}
/*
byte read(uint8_t regID){
  Wire.beginTransmission(addr);
  Wire.write(regID & 0x00FF); 
  Wire.endTransmission();
  delay(1);
  Wire.requestFrom((addr),1);
  if(Wire.available())
    return Wire.read(); 
  Serial.print("error read reg ");
  Serial.println(regID);
  return 0;
}*/




void init_ak4114()     
{   
    write(0x00,0x6B);        
    write(0x01,0x52);      
    write(0x02,0x88);       
    write(0x03,0x48);         
    write(0x04,0x00);         
    write(0x05,0x00);       
}   



void setup(){
  Wire.begin();
  Serial.begin(9600);
  pinMode(DSPRST,OUTPUT);digitalWrite(DSPRST,HIGH);
pinMode(C1,OUTPUT);digitalWrite(C1,LOW);
pinMode(C2,OUTPUT);digitalWrite(C2,LOW);
  init_ak4114();

}



void loop(){
write(0x00,0>>7);
//init_ak4114();
delay(1000);
//WRITE++;

}
 

Чтением ошибки, а записью тоже не то. Посмотрите свежим взглядом, может поможете чем. В коде разные попытки, последние не закоментированы.