- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 3 von 3

Thema: Kopassmodul cmps03 über I²C mit BASCOM

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2007
    Beiträge
    9

    Kopassmodul cmps03 über I²C mit BASCOM

    Anzeige

    Powerstation Test
    Guten Tag!

    Verstehe nicht warum bei mir am Anfang jedes neuen Projektes nie etwas
    auf Anhieb klappen kann. Versuche momentan den Winkel eines
    cmps03-Kompassmoduls über I²C einzulesen. Das Ganze soll ja mit Bascom
    SEHR EINFACH funktionieren ... angeblich! Irgend etwas mache ich falsch.
    Alles klapp wunderbar bis ich die Funktion für den Winkel aufrufe. Mir
    kommt vor wie wenn das Programm in der Funktion stecken bleibt! Kann das
    sein ???

    Hier mal mein Code:


    Code:
    Declare Function Rn_cmps_himmelsrichtung() As Word
    
    ' ---------------RN-Mega128Funk übliche ------------------
    
    $regfile = "m128def.dat" ' Bei Mega 128 "
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    'Quarzfrequenz
    $baud = 19200                                               'Baudrate
    für Funkmodul
    $baud1 = 9600                                               'Baudrate
    für MAX
    
    Config Scl = Portd.0                                        'Ports fuer
    IIC-Bus
    Config Sda = Portd.1
    
    Config Ping.0 = Output                                      'Spannung an
    LCD aktivieren
    Lcdpower Alias Portg.0
    
    Config Pine.2 = Output
    Rdy_hostempfangsbereit Alias Porte.2                        'Auf Low
    setzen wenn Empfangsbereit für Datenvom Funkmodul
    
    Config Pine.5 = Input
    Bsy_funkmodulsendebereit Alias Porte.5                      'Ist Low
    wenn Funkmodul frei zum senden
    Open "com2:" For Binary As #2                               'Ausgabe
    über zweite serielle Schnittstelle (MAX)
    
    Sound Portg.2 , 400 , 450                                   'BEEP bei
    RN-Mega128Funk
    Sound Portg.2 , 400 , 250                                   'BEEP bei
    RN-Mega128Funk
    Sound Portg.2 , 400 , 450                                   'BEEP bei
    RN-Mega128Funk
    
    ' ---------------------------------------------------
    
    Config Pinf.6 = Output
    Lcd_rw Alias Portf.6
    Lcd_rw = 0
    Lcdpower = 1
    Waitms 500
    Config Lcd = 20 * 2
    Config Lcdpin = Pin , Db4 = Portf.3 , Db5 = Portf.2 , Db6 = Portf.1 ,
    Db7 = Portf.0 , E = Portf.5 , Rs = Portf.7
    Config Lcdbus = 4
    Initlcd
    Cls
    
    Cursor Off
    
    Dim Himmelsrichtung As Word
    
    I2cinit
    
    Do
    
       Himmelsrichtung = Rn_cmps_himmelsrichtung()
    
       Cls
       Lcd Himmelsrichtung
    
       Wait 1
    
    Loop
    
    End
    
    Function Rn_cmps_himmelsrichtung() As Word
    Local Lob As Byte
    Local Hib As Byte
    Local Cmps_slaveid As Byte
    Local Cmps_slaveid_read As Byte
    
       Cmps_slaveid = &HC0
       Cmps_slaveid_read = Cmps_slaveid + 1
    
       'Register auswählen
       I2cstart
       I2cwbyte Cmps_slaveid
       I2cwbyte 2
       I2cstop
    
       I2cstart
       I2cwbyte Cmps_slaveid_read
       I2crbyte Hib , Ack
       I2crbyte Lob , Nack
       I2cstop
    
       Rn_cmps_himmelsrichtung = Makeint(lob , Hib)
    End Function




    Im Anhang ebenfalls zu finden!
    Wichtig ist eigentlich nur die Mainloop und die Funktion. Ich bitte euch
    vielmals mir zu helfen ... DANKE !!!

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.05.2007
    Ort
    Mannheim
    Alter
    37
    Beiträge
    270

    Programm Simulieren

    Hallo Matthias,

    hast du schonmal versucht das Programm im Bascom Simulator durchlaufen zu lassen?

    Wie sieht dein Hardware-Aufbau aus? Hast du die beiden Pull-Ups an der SCL und SDA-Leitung angeschlossen?

    Ansonsten versuch doch mal testweise das Register 1 vom cmps03 aus zu lesen. Nicht das du dir da durch das Word einen fehler rein schleifst.

    Gruß Robodriver

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2007
    Beiträge
    9
    HIHO!

    Habs mittlerweile schon hinbekommen ... Fehler waren die PULL-UP´s !
    Dachte auf den RN-BOards sei überall SCL und SDA über pull up´s auf 5V gezogen, ... dem war nicht so!

    Trotzdem großen Dank .. cu

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad