MPU6050 I2C Write Mega8

Gast #2736233
Lesenswert?
• ▲
▼
Guten Tag,

Ich bin grad dabei den MPU6050 mit dem ATMega8 über I2C anzusteuern.
Mit I2C read funktioniert soweit alles und ich kann die Device ID 
auslesen.
Allerdings funktioniert das schreiben der Register im Moment gar nicht. 
Ich sende eine einen Start Befehl mit Write bit. Anschließend sende ich 
die Registeradresse auf der ich schreiben will in diesem Fall die 0x19 
und danach direkt mit einem Writebefehl das Byte welches ich 
reinschreiben will. Nun wird das ganze durch eine Stopbedingung beendet. 
Konnte mit dem UART auch noch etwas debuggen und habe festgestellt das 
ich für die Write Befehle sogar ein ACK bekomme. Allerdings wird der 
Wert im Register nicht geschrieben. Ich verwende die I2C Bibliothek von 
Peter Fleury

Hat vielleicht jemand ein ähnliches Problem gehabt oder weiß wo mein 
Fehler ist.

Die Funtkion sieht wie folgt aus:
1
void mpu6050_SMPRT_DIV_W(char addr,char byte)
2
{
3
  i2c_start_wait((addr<<1)+ I2C_WRITE);
4
  s=i2c_write(0x19);
5
  s=i2c_write(byte);
6
  i2c_stop();
7
}

Danke schonmal im Vorraus

gruß Tobias

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.