_joker_ schrieb:Mal eine Frage an die Programmierer. Wenn zwei gleich Zahlen hintereinander in der Datenzeile stehen, zeigt die Anzeige die Zahl ohne Unterbrechung doppelt so lange an.Ich habe das mit einem neuen Unterprogrammpunkt versucht zu losen und einen waitms Befehl eingefügt.
If Zeichen = "-" Then Gosub Pau 'kurze Pause zwischen gleichen Zahlen
Pau:
Waitms 2000
Return
Data "6" , "-" , "6" , "4"
Bei mir geht´s ohne waitms-Befehle. Quelle ist garaniert irgendwo ein Hinweis von Windi gewesen. Ich wäre von alleine nicht drauf gekommen. Ganz nebenbei spart der Powerdown Befehl auch noch kostbaren Speicherplatz - habe ich gelesen.
Hier der code, bei dem man die gleichen Zahlen doch noch mit einer kleinen Unterbrechung auflösen kann. Hängt natürlich auch ein bischen von der Entfernung ab.
Code:
Do
Reset Watchdog
Powerdown
Read Zeichen
Wdtcr = &B11010101 'Watchdog auf 0,5s stellen
If Zeichen = "0" Then Gosub P0 'schreibt 0 ins Display
If Zeichen = "1" Then Gosub P1 'schreibt 1 ins Display
If Zeichen = "2" Then Gosub P2 'schreibt 2 ins Display
If Zeichen = "3" Then Gosub P3 'schreibt 3 ins Display
If Zeichen = "4" Then Gosub P4 'schreibt 4 ins Display
If Zeichen = "5" Then Gosub P5 'schreibt 5 ins Display
If Zeichen = "6" Then Gosub P6 'schreibt 6 ins Display
If Zeichen = "7" Then Gosub P7 'schreibt 7 ins Display
If Zeichen = "8" Then Gosub P8 'schreibt 8 ins Display
If Zeichen = "9" Then Gosub P9 'schreibt 9 ins Display
If Zeichen = "." Then Gosub Pp 'schreibt . ins Display
If Zeichen = " " Then Gosub Leer
Wdtcr = &B11010011 'Watchdog wieder auf 125ms stellen
Alt = 1023 'Doppelauslösung verhindern
If Zeichen = "X" Then Return
Loop
P0:
Porta = &B10001011
Portb = &B00000110
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return
P1:
Porta = &B00001010
Portb = &B00000000
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return
P2:
Porta = &B10000011
Portb = &B00000101
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return
P3:
Porta = &B10001011
Portb = &B00000001
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return
P4:
Porta = &B00001010
Portb = &B00000011
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return
P5:
Porta = &B10001001
Portb = &B00000011
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return
P6:
Porta = &B10001001
Portb = &B00000111
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return
P7:
Porta = &B00001011
Portb = &B00000000
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return
P8:
Porta = &B10001011
Portb = &B00000111
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return
P9:
Porta = &B10001011
Portb = &B00000011
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return
Pp:
Porta = &B00010000
Portb = &B00000000
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return
Leer:
Reset Watchdog
Powerdown
Reset Watchdog
Powerdown
Reset Watchdog
Powerdown
Return
End
Daten:
Data "5" , "5" , " " , "4" , "4" , "." , "3" , "2" , "1"
Data " " , " "
Data "0" , "0" , "9" , " " , "3" , "3" , "." , "6" , "6" , "6"
Data " " , " " , "X"
Kannst ja mal ausprobieren.
Gruß
ksbender