Auslesen eines Drucksensors über I2C

Gast #1500702
Lesenswert?

Guten Tag,
Ich habe einen Drucksensor den man über I2C auslesen kann.
Jedoch bekomme ich das nicht richtig hin.

Ich habe mein Programm und den Auszug aus dem Datenblatt als Anhang 
beigefügt.

Kann mir jemand sagen was ich falsch mache ?

Gruß Dennis
Angehängte Dateien:
Persönliche Seite #1501215
Lesenswert?

Da kann ich dir leider nicht weiterhelfen.

An deiner Stelle würde ich mal ein anderes i2c-Device anschließen, z.B. 
ein EEPROM. Rein als Gegencheck. Und vielleicht brauch der Bus auch noch 
seine Pull-Up R's??
Das BASCOM scheint die i2c-Funktionalität bereits in Firmware vorhanden 
zu haben. Schau dir halt die Fehlercodes an und berichte was denn nun 
genau nicht geht?
Wo ist das Datenblatt des Sensors?
#1501296
Lesenswert?

Hier zum gucken mal mein Code um ein i²c ADC abzufragen..

1
Sub I2c_adc
2
        I = 0
3
       I2cstart
4
          I2cwbyte I2c_adress_w                             'Schreibadresse adressieren
5
          I2cwbyte I2c_init                                 'Init senden
6
       I2cstop
7
'          Waitms 150                                        'laut DatenBlatt min 11SpS
8
Try2:
9
        Waitms 1
10
       I2cstart
11
         I2cwbyte I2c_adress_r                              'Leseadresse adressieren
12
         If Err = 1 Then Errorflag.1 = 1                    'bei Adressierfehlern -> Errorflag 1 setzen
13
         I2crbyte Msbyte , Ack                              'Highbyte lesen
14
         I2crbyte Lsbyte , Ack                              'Lowbyte lesen
15
         I2crbyte Configbyte , Nack                         'Configbyte lesen
16
      I2cstop
17

18
  If Configbyte.7 > 0 Then I = I + 1                        'Counter Anzahl Abholversuche
19
  If I > 100 Then Errorflag.2 = 1                           'Mehr als 100 Versuche -> Errorflag 2 setzen
20
  If Configbyte.7 > 0 Then Goto Try2                        'Loop bis Daten abholbereit sind
21
  If Configbyte.7 = 0 Then                                  'Cb.7 = 0 -> Daten abholbereit
22
   Adc1 = Makeint(lsbyte , Msbyte)                          'zusammensetzen der 2 Byte zu einem 16Bit-Wort
23
  End If
24
End Sub I2c_adc

Bist du dir sicher dass dein Config korrekt ist?
1
'Register auswählen
2
   I2cstart
3
   I2cwbyte Cmps_slaveid
4
   I2cwbyte 2
5
   I2cstop

Gruß Anselm

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren