
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Do you have a good data sheet of the CMPS03 Compass Module? Greetings, H.J. Windt > 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 |