PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Kompass CMPS03 an CC1



08.08.2004, 13:02
Hallo
hat jemand schonmal versucht das Komapssmodul CMPS03 von Devantach an die CC1 anzuschließen. Das Kompassmodul hat ja zwei Ausgänge: PWM und I²C. Möchte es am besten über I²C anschließen, hababer überhaupt keine ahnung wie.
Kann mir jemand helfen?
Gruß jonas

BlueNature
08.08.2004, 13:34
An besten liest du dich über I²C-Protokoll von Philips ein. Bei dem Kompassmodul gibt es eine Anleitung die mitgeliefert wird. In diesem ist auch eine Skizze für die Signale auf dem I²C-Bus und die Schreib und Leseadresse angegeben. Einen Code geb ich nicht, da du anscheinend keine Ahnung hast und das eh nicht klappen wird mit einspielen und starten.

Du solltest dir irgend ein I²C-Script suchen im Internet für die C-Control 1 und das mal als Basis nehmen. Zum Lesen braucht man entweder ein Doppelregister (16-Bit) das 0-3599 zurückliefert oder ein einfacher Auflösung das 8-Bit Register das Werte von 0-255 zurückliefert. Kalibrieren sollte man das Modul aber auch vorher damit es genauer wird.

Grüsse Woflgang

10.08.2004, 20:00
Hallo BlueNature
ich hab mir jetzt einige Zeit genommen, dass I²C-Protokoll zu studieren und einige Tests mit dem Bussystem gemacht. Allerdings sind die Beschreibungen und Erläuterungen im Internet meistens immer nur mit einem PCF-Erweiterungsbaustein gemacht. Mir ist nur nicht klar wie es beim Komapssmodul funktioniert, da ich meine, dassdasProtokoll doch etwas anders erscheint. Könntest du nicht doh einmal ein Programm posten, damit ich mih besser einarbeiten kann? Wäre doch sehr hilfreich.
MfG jonas

BlueNature
10.08.2004, 22:23
Wenn es dich interessiert, aber da hängt bei mir relativ viel dran und meine Assembler-Routinen hab ich auchg selber geschreiben.



#HostKommandoG
'Orientierung mit Kompass zurückgeben (16-Bit Genauigkeit)
'Rückgabewert: 0 - 3599 (0,1° / Einheit)
'Antwort: "G" KompassHigh KompassLow EOT

Sys ASM_I2C_Start 'I2C Startbit senden
Sys ASM_I2C_Write ADR_CMPS_W 'Adresse senden
Sys ASM_I2C_Write REG_CMPS_INTH 'Register senden (16-Bit Wert Higher)
Sys ASM_I2C_Stop 'I2C Stopbit senden
Sys ASM_I2C_Start 'I2C Startbit senden
Sys ASM_I2C_Write ADR_CMPS_R 'Register anfragen
AlphaH = I2C_Read 'Wert empfangen
Sys ASM_Send_ACK 'Acknowledge senden
AlphaL = I2C_Read 'Wert empfangen
Sys ASM_Send_NAK 'Not-Acknowledge senden
Sys ASM_I2C_Stop 'I2C Stopbit senden
Put x_G
Put AlphaH
Put AlphaL
Put x_EOT
GoTo Main


Grüsse Wolfgang