Hallo,
ich hab mal ein Programm geschrieben, es funktioniert aber leider nicht, sondern liefert nur "190" als Wert auf das Display. Ich vermute, dass die I2C-Kommunikation nicht funktioniert. Kann sich die mal jemand anschauen, jetzt unabhängig davon, ob man einen NXT hat oder nicht. Vor allem bei dem Startbit bin ich mir nicht ganz sicher. Und ob ich nach jedem Lesen das Stoppbit setzten muss und dann wieder ganz von Anfang anfangen muss. Hier ist mal das Programm, über jeden Hinweis bin ich dankbar!
Code:
# define cmps03 S1
int wert;
task main()
{
SetSensorLowspeed (cmps03); // I2C an Port 1
ClearScreen ();
I2CWrite (cmps03, 0, 1); // Startbit setzten
I2CWrite (cmps03, 0, 192); // Adresse des Compass
I2CWrite (cmps03, 0, 1); // Registeradresse des Compass, 1 = Werte ausgeben von 0-255
I2CWrite (cmps03, 0, 193); // Erneutes Startbit setzen
while(true)
{
I2CRead (cmps03, 1, wert) // Wert des Registers 2 einlesen
TextOut(15,LCD_LINE1,"erd:", true); // Und auf Display ausgeben
NumOut(60,10, wert);
Wait(100);
}
}
Lesezeichen