
Zitat von
hubert_K
was macht eigentlich der Befehl: i2c_start(HMC5843_ADDRESS+I2C_WRITE) bzw. welche Werte haben HMC5843 und I2C_Write?
Die Funktion initialisiert eine Übertragung in die gewünschte Richtung (schreiben bzw. lesen). Die defines dahinter sind nur um das ganze für mich persönlich übersichtlicher zu gestalten:
Code:
#define HMC5843_ADDRESS 0x3C //Write Address
#define I2C_READ 1
#define I2C_WRITE 0
Bist du dir denn sicher, das deine I2C Funktionen überhaupt etwas zurück geben? Ansonsten ist diese Fehlerabfrage nämlich reichlich sinnfrei
Kommen denn Meldungen? Poste mal eine Beispielausgabe vom UART.
Prinzipiell kannst du dem HMC nach einer lesenden Übertragung mit einem ACK mitteilen, das du noch weitere Daten lesen willst. Gibt es kein ACK, folgt sinnigerweise ein Stop -> Die Übertragung ist beendet.
Lesezeichen