Gast
#2070131
Hallo zusammen,
bei mir taucht leider immer wieder ein Fehler auf, den ich nicht finden
kann. Vielleicht kann mir hier ja jemand helfen.
Auf meinem LCD wird die aktuelle Temperatur angezeigt. Zusätzlich habe
ich das Programm so programmiert, dass jeweils der kleinste und der
größte gemessene Wert als Minimal- bzw. Maximaltemperatur in der zweiten
Zeile meines Displays angezeigt wird. Mit dem größten Wert klappt dies
auch einwandfrei, aber beim kleinsten wird immer 0°C angezeigt, obwohl
dieser Wert nie gemessen wurde. Kann den Fehler jedoch nicht entdecken.
Meiner Meinung nach habe ich nämlich bei der Minimal und
Maximaltemperatur dasselbe entsprechend den Werten programmiert. Wo ist
der Fehler?
' Vorlage-Datei für Attiny-Platine
'**********************************************************
$regfile = "attiny2313.dat" 'Attiny2313
$crystal = 4000000 '4 MHz
$baud = 9600 ' Baudrate
RS232
'******************* Deklarationen ************************
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 ,
Db7 = Portb.0 , E = Portb.4 , Rs = Portb.6
Config Lcdbus = 4
Initlcd
Cls
Config Scl = Portb.5
Config Sda = Portb.7
Dim Aktuell As Byte
Dim Mindest As Byte
Dim Maximal As Byte
Dim X As Byte
Dim Y As Byte
'****************** Initialisierung ***********************
Ddrb = &B11111111 'Port B als
Ausgangsport
Ddrd = &B01110000 'D4, D5, D6
als Ausgang; Rest als Eingang
Portd = &B10001111 'Eingänge
auf high legen
'******************** Hauptprogramm ***********************
Do
Deflcdchar Print , 32 , 3 , 3 , 32 , 32 , 32 , 32 , 32 ' replace ?
with number (0-7)
I2cstart
I2cwbyte 145
I2crbyte Aktuell , Nack
I2cstop
Locate 1 , 1
Lcd Aktuell
Lcd Chr(0)
Lcd "C"
Locate 1 , 0
I2cstart
I2cwbyte 145
I2crbyte Aktuell , Nack
I2cstop
Locate 2 , 1
If Mindest > Aktuell Then
Mindest = Aktuell
End If
Lcd Mindest
Lcd Chr(0)
Lcd "C"
I2cstart
I2cwbyte 145
I2crbyte Aktuell , Nack
I2cstop
If Maximal < Aktuell Then
Maximal = Aktuell
End If
Locate 2 , 7
Lcd Maximal
Lcd Chr(0)
Lcd "C"
Cursor Off
Wait 1
Loop
End