Не могу прочитать значение регистра
- Войдите на сайт для отправки комментариев
Пнд, 07/08/2017 - 22:30
Уважаемые форумчане! Прошу помощи, не могу считать данные из регистра 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++;
}
Чтением ошибки, а записью тоже не то. Посмотрите свежим взглядом, может поможете чем. В коде разные попытки, последние не закоментированы.