alecs
13.07.2005, 11:55
Hallo,
ich hab mal wieder ein Problem :(
Also ich habe einen CMPS03 an meinem RN-Control und dieser liefert mir in meinem Testprogramm immer die selben Werte (ohne Schwankung) 65535.
Ich hab leider noch keine erfahrungen mit diesem Sensor hat jemand eine Idee woran es liegen könnte ? Danke
Declare Sub Kompass()
$regfile = "m32def.dat"
$crystal = 16000000 'Quarzfrequenz
$baud = 9600 'Baudrate für RS232
Dim Richtungint As Word 'Zwischenvariable für Kompassmessung cmps03
Dim Richtung As Single 'Richtung für Kompassmessung cmp03
Dim Lsb As Byte
Dim Msb As Byte
Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1
I2cinit 'I2C Initialisieren
'On Timer2 Interrupthandler 'Alle Interrups werden in dieser Routine behandelt
Do 'Endlosschleife
Call Kompass()
Waitms 200
Loop
End
Sub Kompass()
I2cstart
I2cwbyte 192 'I2C Adresse C0
I2cwbyte 2
I2cstop 'Register 2 + 3
I2cstart
I2cwbyte 193 'Leseadresse (C1)
I2crbyte Msb , Ack
I2crbyte Lsb , Nack
I2cstop
Richtungint = Makeint(lsb , Msb) 'Word aus 2 Byte machen
' Richtung = Richtungint 'In Single zum Rechnen umwandeln
' Richtung = Richtung / 10 'Wert ist inkl. einer Nachkommastelle
Print "Richtung: " ; Richtungint
End Sub
ich hab mal wieder ein Problem :(
Also ich habe einen CMPS03 an meinem RN-Control und dieser liefert mir in meinem Testprogramm immer die selben Werte (ohne Schwankung) 65535.
Ich hab leider noch keine erfahrungen mit diesem Sensor hat jemand eine Idee woran es liegen könnte ? Danke
Declare Sub Kompass()
$regfile = "m32def.dat"
$crystal = 16000000 'Quarzfrequenz
$baud = 9600 'Baudrate für RS232
Dim Richtungint As Word 'Zwischenvariable für Kompassmessung cmps03
Dim Richtung As Single 'Richtung für Kompassmessung cmp03
Dim Lsb As Byte
Dim Msb As Byte
Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1
I2cinit 'I2C Initialisieren
'On Timer2 Interrupthandler 'Alle Interrups werden in dieser Routine behandelt
Do 'Endlosschleife
Call Kompass()
Waitms 200
Loop
End
Sub Kompass()
I2cstart
I2cwbyte 192 'I2C Adresse C0
I2cwbyte 2
I2cstop 'Register 2 + 3
I2cstart
I2cwbyte 193 'Leseadresse (C1)
I2crbyte Msb , Ack
I2crbyte Lsb , Nack
I2cstop
Richtungint = Makeint(lsb , Msb) 'Word aus 2 Byte machen
' Richtung = Richtungint 'In Single zum Rechnen umwandeln
' Richtung = Richtung / 10 'Wert ist inkl. einer Nachkommastelle
Print "Richtung: " ; Richtungint
End Sub