PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Kompassmodul CMPS03



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

PicNick
13.07.2005, 15:09
65535 = 0xFFFF heißt, daß vom Kompaß nix kommt.
Du mußt mal NACH dem I2C-Addresse senden "IF ERR = 1" abfragen. wahrscheinlich reagiert er gar nicht.

Im Prgramm seh ich direkt keinen Fehler, die I2C Routinen vom BasCom sind Büffel, gehen immer. Also ist es irgendwas Hardwarmäßiges.

Einziger versuch "CONFIG I2CDELAY = 10", also etwas langsamer

alecs
18.07.2005, 17:57
Ich hab den Kompass mal an den Analog Port (Port A) angeschlossen und den PWM - Wert ausgeben lassen und dieser ändert sich auch nur sehr sehr gering, egal wie ich den Kompass dreh!
Was mach ich falsch ?

Ist eine Kalibrierung zwingend notwendig (bei jedem Neustart oder allgemein ) ????

fwallenwein
12.08.2005, 21:43
Ist eine Kalibrierung zwingend notwendig (bei jedem Neustart oder allgemein ) ????

Aus einer Doku im Internet :

Calibration only needs to be done once - the calibration data is stored in EEPROM on the PIC16F872 chip. You do not need to re-calibrate every time the module is powered up. The module has already been calibrated in our workshop for our inclination, which is 67 degrees. If your location is close to this, you may like to try the compass without re-calibrating at all.

Gruss
Frank

pebisoft
12.08.2005, 22:00
"Ist eine Kalibrierung zwingend notwendig (bei jedem Neustart oder allgemein ) ????"
nein, ist nicht notwendig. im auslieferungszustand muss das kompassmodul bei richtigen anschluss und programmcode den wert liefern von 0-3600 im i2c-betrieb.
wenn eine supergenaue messung in bestimmten räumen erforderlich wird, muss in diesem bestimmten raum eine kalibrierung durchgeführt werden.
(metallleitungen und andere metallgegenstände können die messergebnisse ein wenig ändern.)
mfg pebisoft