-
-
Neuer Benutzer
Öfters hier
fehler bei der Temperaturausgabe
Hallo,
ich habe meinen Mikrocontroller so programmiert, dass ich die Temperatur angezeigt bekomme. Zusätzlich habe ich eingebaut, dass auf dem LCD jeweils die größte gemessene und die kleinste gemessene Temperatur angezeigt wird.Bei der größten gemessenen hat dies funktioniert, aber bei der kleinsten wird immer 0°C angezeigt, obwohl nie 0° gemessen wurden.
Kann mir vielleicht einer sagen, wo der Fehler liegt?
Habe das folgende Programm mit Bascom erstellt:
' 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
-
Erfahrener Benutzer
Roboter Genie
Du weist der Variable Mindest zu anfang keinen Wert zu, daher ist sie mit 0 vorbesetzt. Da niemals ein kleinerer Wert kommt, bleibt der Mindest Wert immer 0.
Min und Max belegt man mit dem maximal bzw. minimal möglichen Wert vor. Oder sogar noch drüber bzw. drunter, wenn dies möglich ist.
Das stellt sicher, dass der erste gemessene Wert immer ein neuer Min und Max Wert ist.
-
Neuer Benutzer
Öfters hier
[quote="for_ro"]Du weist der Variable Mindest zu anfang keinen Wert zu, daher ist sie mit 0 vorbesetzt. Da niemals ein kleinerer Wert kommt, bleibt der Mindest Wert immer 0.
quote]
Also muss ich zu Beginn z.B. schreiben Mindest=Wert
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen