PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeit Probleme



Laguna
06.12.2006, 12: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

Vitis
06.12.2006, 12:22
das goto main kannste dir schenken,
das main: hat keine Funktion,
das LCD "Rundezahl: " : LCD I kann man in ne schönere Version ala LCD "Rundezahl: " ; I umbysteln,
das I = I +1 kann man durch incr I ersetzen,
hinter den Returns brauchen manche Bascom Versionen noch das End,