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); } }







Zitieren

Lesezeichen