Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Problem mit Kompass CMPS03 Kategorie: C-Control I V1.1 (von Windt H.J. - 6.11.2004 14:04)
 Als Antwort auf Problem mit Kompass CMPS03 von Jonas - 4.11.2004 19:48
Do you have a good data sheet of the CMPS03 Compass Module?
Greetings,
H.J. Windt


> 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]                'BYTE, MIT DEM DATEN GESENDET UND EMPFANGEN WERDEN
> define Z byte[2]                        'ZÄHLERBYTE FÜR I2C-STANDARDROUTINEN
> define KOMPASSWERT byte[3]              'BYTE, IN DEM DER KOMPASSWERT GESPEICHERT WIRD
>
> '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 128) = 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  
>  
>
>

 Antwort schreiben

Bisherige Antworten:

Re: Problem mit Kompass CMPS03 (von jonas - 6.11.2004 18:47)