www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LM75 über PIC mit C abfragen


Autor: StephanW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Für meine Facharbeit entwickle ich zur Zeit ein Steuerteil, mit dem
Temperaturen erfasst und ausgewertet werden sollen. Hierfür benutze ich
einen PIC16F873A als Controller und einen LM75 als Temperatursensor.
Dieser wird über den I2C-Bus abgefragt.
Programmiert werden soll der PIC in C (CCS-Compiler).
Jetzt habe ich folgendes Problem:

Es werden aus dem LM75 2 mal 8 bit ausgelesen. Das MSB aus dem ersten
Byte gibt an, ob die Temperatur positiv (0) oder negativ (1) ist. Die
nächsten 7 Bit enthalten den eigentlichen Temperaturwert als Binärzahl.
Bei negativer Temperatur (MSB = 1) liegt der Temperaturwert im
Zweierkomplement-Format vor. Im zweiten Byte spielt nur die erste
Bitstelle eine Rolle. Sie gibt Auskunft darüber, ob der gemessene Wert
auf ,5 C endet. Die übrigen 7 Bits sind überflüssig.

Jetzt zu meinem Problem.
Ich kann diese 8 Bit-Pakete ja ganz einfach z.B. in eine char-Variable
einlesen ( char a; a = i2c_read(); ). Nur wie kann ich die einzelnen
bits einlesen und daraus eine Dezimalzahl machen? Des weiteren soll der
Wert auch auf dem LCD-Display ausgegeben werden. Dafür wäre es ja
notwendig, eine Typumwandlung von (short) int nach char zu machen!?!
Wie ist das möglich?

Danke für eure Hilfe!
Mfg Stephan

Autor: metamorph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich benutze den CC5X-Compiler, der besitzt diese Sonderfunktion
i2_read() nicht.
Aber versuch doch mal in folgenden Forum nachzufragen. Dort kriegst du
bestimmt eine Antwort:


http://www.forenshop.net/cgi-bin/forenserver/foren...

Autor: Gerhard. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo StefanW:

seh Dir mal die CCS example files an. Im Anhang eine Funktion davon 
abgeleitet die ich bei mir verwende.

Gerhard

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.