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]
define Z byte[2]
define KOMPASSWERT byte[3]

'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 12 = 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