mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C und Drucksensor (Lib Peter Fleury)


Autor: Elmar M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe ein Grundlegendes Verständnisproblem.

Ich habe einen Drucksenor welcher laut Datenblatt:
>send 2 data bytes containing the current pressure value as a 15 bit
>information placed in their output registers.

Soweit so gut. Die Slave Adresse ist 1111000xb, also
>#define SENSOR  0x78

Mein Code sieht wie folgt aus, um den Slave Sensor mit meinem Atmega 128 
auszulesen.
  uint8_t byte1;
    uint8_t byte2;

    if(!(i2c_start(SQ277+I2C_READ))) //Slave bereit zum lesen?
    {
      byte1 = i2c_readAck();                   
      byte2 = i2c_readNak(); 
      i2c_stop();
    }else{
      //Errormeldung
    }
So um den Sensor jetzt nutzen richtig auslesen zu können, brauche ich 
sein Ergebnis als HEX oder Dezimalzahl. Die Ausgabewerte schwanken lt 
Datenblatt zwischen 0666 und 6CCC Hexadezimal.

Ich nehme an, dass der Code so richtig ist, und die Libary von Peter 
Fleury funktioniert. Leider bin ich nicht wirklich firm mit den Bit und 
Bytehandling in C.

Kann mir jemand einen Tipp geben, wie ich die Werte bekomme. Wenn ich 
den Wert mal als INT habe, komme ich weiter.

Danke schonmal.

Autor: Elmar M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es von Bedeutung ist, es wird zuerst das MSB dann LSB übertragen.

Autor: Elmar M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manchmal muss man nur wissen wonach man suchen muss... MSB und LSB haben 
geholfen...

intresult=((int16_t)(byte1) << 8) | (int16_t)(byte2) ;

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.