Laguna
06.12.2006, 13:07
Hall zusammen ich habe zwei probleme ich will eine zeit angezeigt bekommen wenn die lichtschranke durchbrochen wird und wenn noch Sie nach paar runden noch mal unterbrochen wird dann stoppt.
Habe die Zeit soweit möchte nur noch die 1/10, 1/100 und 1/1000 sekunden angezeigt bekommen,
und ich habe das Problem das ich die runden nicht eingeben kann, vielleicht kann mir einer weiterhelfen.
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 20 * 4 , Chipset = KS077
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , _
Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.0 , Rs = Portd.6
Config Timer0 = Timer , Prescale = 64
On Timer0 Timer1int
S1 Alias Pind.3
S2 Alias Pind.4
S3 Alias Pind.7
S4 Alias Pind.2
Dim Millisekunden As Word
Dim Sekunde As Byte
Dim Minute As Byte
Dim Stunde As Byte
Dim Flag As Byte
Enable Interrupts
Stunde = 0
Minute = 0
Enable Timer0
Main:
Initlcd
Cls
Cursor Off
Do
Debounce S1 , 0 , Tast1 , Sub
Debounce S2 , 0 , Tast2 , Sub
Debounce S3 , 0 , Tast3 , Sub
Debounce S4 , 0 , Tast4 , Sub
If Flag = 1 Then
Flag = 0
If Sekunde > 59 Then
Incr Minute
Sekunde = 0
If Minute > 59 Then
Incr Stunde
Minute = 0
If Stunde > 23 Then
Stunde = 0
End If
End If
End If
locate 1,1
LCD "Rundezahl: " : LCD I
Locate 3 , 1
If Stunde => 10 Then
Lcd Stunde
else
Lcd "0" ; Stunde
end if
LCD":"
If Minute => 10 Then
LCD Minute
else
Lcd "0" ; Minute
end if
LCD ":"
If sekunde =>10 Then
Lcd sekunde
else
Lcd "0"; sekunde
end if
End If
Loop
Goto Main
Timer1int:
Timer0 = 131
Incr Millisekunden ' Millisekunden hochzählen
if Millisekunden > 999 then
Incr Sekunde
Flag = 1
Millisekunden = 0
End If
Return
Tast1:
I = I + 1
Return
Tast2:
Return
Tast3:
I = 0
cls
Return
Tast4:
Return
Habe die Zeit soweit möchte nur noch die 1/10, 1/100 und 1/1000 sekunden angezeigt bekommen,
und ich habe das Problem das ich die runden nicht eingeben kann, vielleicht kann mir einer weiterhelfen.
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 20 * 4 , Chipset = KS077
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , _
Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.0 , Rs = Portd.6
Config Timer0 = Timer , Prescale = 64
On Timer0 Timer1int
S1 Alias Pind.3
S2 Alias Pind.4
S3 Alias Pind.7
S4 Alias Pind.2
Dim Millisekunden As Word
Dim Sekunde As Byte
Dim Minute As Byte
Dim Stunde As Byte
Dim Flag As Byte
Enable Interrupts
Stunde = 0
Minute = 0
Enable Timer0
Main:
Initlcd
Cls
Cursor Off
Do
Debounce S1 , 0 , Tast1 , Sub
Debounce S2 , 0 , Tast2 , Sub
Debounce S3 , 0 , Tast3 , Sub
Debounce S4 , 0 , Tast4 , Sub
If Flag = 1 Then
Flag = 0
If Sekunde > 59 Then
Incr Minute
Sekunde = 0
If Minute > 59 Then
Incr Stunde
Minute = 0
If Stunde > 23 Then
Stunde = 0
End If
End If
End If
locate 1,1
LCD "Rundezahl: " : LCD I
Locate 3 , 1
If Stunde => 10 Then
Lcd Stunde
else
Lcd "0" ; Stunde
end if
LCD":"
If Minute => 10 Then
LCD Minute
else
Lcd "0" ; Minute
end if
LCD ":"
If sekunde =>10 Then
Lcd sekunde
else
Lcd "0"; sekunde
end if
End If
Loop
Goto Main
Timer1int:
Timer0 = 131
Incr Millisekunden ' Millisekunden hochzählen
if Millisekunden > 999 then
Incr Sekunde
Flag = 1
Millisekunden = 0
End If
Return
Tast1:
I = I + 1
Return
Tast2:
Return
Tast3:
I = 0
cls
Return
Tast4:
Return