
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo! Ich habe ein Problem mit dem Kompass CMPS03von Devantech. Ansteuern kann man mittels I2C. Ausgben sollte er den Winkel in auf einen Wert, der normiert auf 0-255 ist. Aber meiner macht das irgendwie nicht. das ist mein Quellcode: define SDA port[9] 'DATENLEITUNG define SCL port[10] 'TAKTLEITUNG define I2C_DATEN byte[1] 'BYTE, MIT DEM DATEN GESENDET UND EMPFANGEN WERDEN define Z byte[2] 'ZÄHLERBYTE FÜR I2C-STANDARDROUTINEN define KOMPASSWERT byte[3] 'BYTE, IN DEM DER KOMPASSWERT GESPEICHERT WIRD 'RUHEZUSTAND FÜR I2C-LEITUNGEN SDA = ON SCL = ON 'BEGINN DES HAUPTPROGRAMMS #KOMPASS gosub I2C_START I2C_DATEN = 192 gosub I2C_WRITE I2C_DATEN = 1 gosub I2C_WRITE gosub I2C_STOPP gosub I2C_START I2C_DATEN = 193 gosub I2C_WRITE gosub I2C_READ KOMPASSWERT = I2C_DATEN print " " print KOMPASSWERT gosub NO_ACK gosub I2C_STOPP goto KOMPASS 'I2C-STANDARDROUTINEN #I2C_START SDA = OFF SCL = OFF return #I2C_STOPP SDA = OFF SCL = ON SDA = ON return #I2C_WRITE for Z = 1 to 8 SDA = OFF if (I2C_DATEN and 128) = 128 then SDA = ON pulse SCL I2C_DATEN = I2C_DATEN shl 1 next pulse SCL return #I2C_READ I2C_DATEN = 0 deact SDA for Z = 1 to 8 I2C_DATEN = I2C_DATEN shl 1 SCL = ON if SDA then I2C_DATEN = I2C_DATEN + 1 SCL = OFF next return #ACK SDA = 0 pulse SCL return #NO_ACK SDA = 1 pulse SCL return end Habe ich vielleicht irgendwo einen Fehler oder kennt jemand das Problem? Für Hilfe wäre ich dankbar! MfG Jonas |
| Antwort schreiben |