Hier mal mein Code (eigentlich nur der von http://www.mtahlers.de/index.php/ele...ren/mmc2120mg#)
Code:
' beispielprogramm zum auslesen des MMC2120MG
' malte ahlers 2011
' weitere infos auf malteahlers.de
'
'
'
' compiler steuerung
$regfile = "m16def.dat"
$crystal = 16000000
$framesize = 64
$swstack = 64
$hwstack = 64
$baud = 19200
$lib "i2c_twi.lbx"
'


' - I2C
Config Twi = 400000
Config Scl = Portc.0
Config Sda = Portc.1
'
' konstanten
Const Cmp_w = &H60
Const Cmp_r = &H61
'
' variablen
Dim I As Byte
Dim Dat(5) As Byte
Dim X As Single
Dim Y As Single
Dim Zahl As Single
Dim K As Single


Config Portc.4 = Output
Portc.4 = 1


Config Portb.0 = Output
Beeper Alias Portb.0
Sound Beeper , 400 , 450
'
' hauptprog
I2cinit
'
Do
   '
   ' * set/ reset coil *
   I2cstart
   '
   ' sensor adressieren (schreiben)
   I2cwbyte Cmp_w
   '
   ' register adressieren
   I2cwbyte &H00
   '
   ' register manipulieren -> set coil
   I2cwbyte &B00000010
   '
   I2cstop
   '
   Waitms 1
   '
   I2cstart
   '
   ' sensor adressieren (schreiben)
   I2cwbyte Cmp_w
   ' register adressieren
   I2cwbyte &H00
   '
   ' register manipulieren -> reset coil
   I2cwbyte &B00000100
   '
   I2cstop
   '
   Waitms 5
   '
   ' * messung *
   I2cstart
   '
   ' sensor adressieren (schreiben)
   I2cwbyte Cmp_w
   '
   ' register adressieren
   I2cwbyte &H00
   '
   ' register manipulieren -> messung
   I2cwbyte &H01
   '
   I2cstop
   '
   Waitms 5
   '
   I2cstart


   I2cwbyte Cmp_w


   ' leseindex setzen
   I2cwbyte &H00
   '
   I2cstart
   '
   ' sensor adressieren (lesen)
   I2cwbyte Cmp_r
   '
   For I = 1 To 4
      ' bytes 1-4 holen mit ack
      I2crbyte Dat(i) , Ack
   Next
   '
   ' byte 5 holen mit nack
   I2crbyte Dat(5) , Nack
   '
   I2cstop
   '
   ' oberes nibble im high bytes löschen
   Dat(2) = Dat(2) And &B0000_1111
   Dat(4) = Dat(4) And &B0000_1111
   '
   ' x-wert aus high- und lowbyte berechnen
   X = Dat(2) * 256
   X = X + Dat(3)
   '
   ' y-wert aus high- und lowbyte berechnen
   Y = Dat(4) * 256
   Y = Y + Dat(5)




  Zahl = Atn2(y , X)
Zahl = Rad2deg(zahl)
 Print Zahl
   Waitms 200


Loop
End
Es wird jetzt auch ein Wert ausgegeben, aber egal wie rum ich den Sensor drehe, es kommt immer eine Zahl um die 45,000000000 heraus.

Kann es sein das der Sensor kaputt ist oder vom Steckbrett gestört wird?