Официальный сайт компании Arduino по адресу arduino.cc
Не могу прочитать значение регистра
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пнд, 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++; }
Чтением ошибки, а записью тоже не то. Посмотрите свежим взглядом, может поможете чем. В коде разные попытки, последние не закоментированы.