So, habe ein wenig rumprobiert und nun das ganze Programm umgeschrieben.
Funktioniert soweit gut, habe nur noch ein Problem. Die Übersicht wiederholt sich nicht. Die Anzeige bleibt also bei "Aussentmp...." hängen. Wie kann ich das ändern? Habe schon ein wenig rumprobiert aber wenn ich es in deine Do-Loop Schleife setze kann der Alarm nichtmehr auslösen.
Kann jemand helfen? Weiß grade echt nicht weiter, bin was Programmierung angeht echt noch Anfänger.
Code:
$regfile = "m8def.dat"
$crystal = 4000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Config Lcdbus = 4
Initlcd
Cursor Off
Config Portc.0 = Output 'Ausgang für Piezo Summer definiert
Config Pinb.0 = Input 'Eingang für Öffnungsmelder definiert
Sensor Alias Pinb.0 'Eingang für Resettaster definiert
Portb.0 = 1
Config Pinb.1 = Input
Taster Alias Pinb.1
Portb.1 = 1
Dim A As Byte 'Zählervariable "A" definiert '
A = 0
Do
If Sensor = 0 Then 'IF-Abfrage Sensor:
A = A + 1 'Zählervariable + 1
Else
A = A + 0
End If
If A > 0 Then 'Wenn A=1 oder höher ist
Sound Portc.0 , 200 , 80 'Alarm geben
Waitms 30 .
Sound Portc.0 , 200 , 110
Waitms 30
Cls 'Und auf dem Display Warnmeldung anzeigen
Locate 1 , 2
Lcd "***Achtung!***"
Locate 2 , 1
Lcd "Tuer geoeffnet"
Else
Portc.0 = 0
End If
If Taster = 0 Then 'IF-Abrfrage Reset:
A = 0 'Variable "A" zurücksetzen
Cls 'Und die Übersicht anzeigen
Locate 1 , 1
Lcd "***Uebersicht***"
Locate 2 , 1
Lcd "Tür: geschlossen"
Wait 1
Cls
Locate 1 , 1
Lcd "***Uebersicht***"
Locate 2 , 1
Lcd "InnenTmp: 19,5C"
Wait 1
Cls
Locate 1 , 1
Lcd "***Uebersicht***"
Locate 2 , 1
Lcd "AussenTmp: 4,5C"
Wait 1
Else
A = A
End If
Loop
LG Fabian
Edit:
Ich merke gerade das der Alarm nur auslösen kann wenn die Anzeige bereits bei Aussentmp. hängt.
Lesezeichen