funktionieren denn "normale" ausgaben wie lcd "hallo welt"??
Hallo
Ich habe ein Problem mit einem LM75 an einem AT90S2313.
Den folgenden Code hab ich hier im Forum gefunden (von Frank glaub ich) und hab ihn auf den AT90S2313 umgeschrieben. Der µC soll die Temperatur auslesen und dann auf dem LCD anzeigen.
Aber alles was ich auf dem LCD sehe ist ein undefinierbares zeichen (sieht aus wie so nen chinesisches schriftzeichen ).Code:$regfile = "2313def.dat" $crystal = 3686400 config LCD = 16 * 1 Declare Sub Showtemperatur() Const Lm75slavewrite = &H90 Const Lm75slaveread = &H91 Dim Lm75high As Byte Dim Lm75low As Byte Dim Temperatur As Integer Dim Nachkommastelle As String * 2 I2cinit Start: Showtemperatur Wait 2 Goto Start Sub Showtemperatur() I2cstart I2cwbyte Lm75slaveread I2crbyte Lm75high , Ack I2crbyte Lm75low , Nack I2cstop If Lm75high > 127 Then Temperatur = Lm75high And 127 Temperatur = Not Temperatur Incr Temperatur Else Temperatur = Lm75high End If Lm75low = Lm75low And 128 If Lm75low > 0 Then Nachkommastelle = ",5" Else Nachkommastelle = "" End If Locate 1 , 1 Lcd Temperatur ; Nachkommastelle End Sub
Ich hab den LM75 so angeschlossen:
+Ub = +5V
A0 = leer
A1 = leer
A2 = leer
I2CData = SDA port
I2CTakt = SCL port
OS = leer
GND = GND
Ich hoffe ihr könnt mir helfen
Vielen Dank, Markus
funktionieren denn "normale" ausgaben wie lcd "hallo welt"??
Hallo markus,
Du solltest Dir mal das Datenblatt, insbesondere Seite 9 - 12 anschauen.
Mir fällt z.B. auf das Du den chip nicht initialisiert hast, auch das pointerbyte
wurde nicht gesendet.
Im Datenblatt ist es eigentlich recht gut erklärt. Ich habe zwar mit dem LM75 keine eigenen Erfahrung, scheint mir aber ähnlich wie der DS1631 zu sein. Den habe ich in Gebrauch.
Um mögliche Fehler im Bereich LCD auszuschließen, teste doch erst mit Ausgabe auf dem Monitor.
BTW: hast Du SDA und SCL mit Pullup's,versehen.
mfg gerhard
Hallo
also erstmal danke für eure antworten.
Die einfache Textausgabe auf dem LCD funktioniert einwandfrei.
Pullups habe ich keine verwendet (sry, aber was ist das und wie mach ich das???).
Also ich werd mir dann mal das Datenblatt saugen und gucken was da drin steht.
mfg Markus
... du mußt SCL und SDA mit pullup-Widerständen auf +5 V legen.
Ohne die geht I2C garnicht.
Zum Verständnis des I2C-Bus ist dieser Link recht hilfreich.
http://www.semiconductors.philips.co...8/39340011.pdf
mfg Gerhard
Also jetzt hab ich SCL und SDA mit 1,7K auf +5V gelegt. Allerdings bekomme ich nun konstant 23,5 grad angezeigt (auch wenn ichd das teil in die hand nehme und somit erwärme). Ist da irgendwas in der routine falsch die das LCD beschreibt oder aus dem LM75 ausliest?
mfg Markus
Zwischenfrage vom Nichtwissenden zum dazulernen: Wenn du schreibst:
"LCD Temperatur, Nachkomma"
wobei temp.. ein Integer und Nachk.. ein String ist
kann der "LCD" das ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Jetzt funktioniert alles so wie gewollt.
Danke für eure Hilfe.
mfg Markus
Hallo Markus, könntest du mal das kommentierte Programm posten, dann können wir auch noch was lernen.Zitat von Grillmeister Markus
Bernd
Das Programm steht oben. Wie gesagt: ich hab den code auch nur von frank.
mfg Markus
Lesezeichen