Witam, siedzę już kilka dni pisząc i jednocześnie ucząc się programowania w BASCOM'ie. Napotkałem na mały problem przy programowaniu stopera, mianowicie nie potrafię zmusić układu by rozpoczynał odliczanie w momencie wciśnięcia przycisku. Proszę o pomoc, sam próbowałem już wielu sposobów ale puki co na razie nic nie wychodzi
Switch włączający jest podłączony do masy układu i Portu C.4.
Switch włączający jest podłączony do masy układu i Portu C.4.
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 4
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2
Deflcdchar 2 , 31 , 32 , 32 , 32 , 32 , 32 , 32 , 32
Config Timer0 = Timer , Prescale = 1
Config Pinc.4 = Input
Set Pinc.4
Dim Przerw0 As Word
Dim Czas As Byte
Dim Sekundy_d As Byte
Dim Minuty_d As Byte
Dim Sekundy_j As Byte
Dim Minuty_j As Byte
Dim Setne As Byte
Dim Ostatnia_st As Byte
Dim Ostatnia_sd As Byte
Dim Ostatnia_sj As Byte
Dim Ostatnia_md As Byte
Dim Ostatnia_mj As Byte
Dim Naj_st As Byte
Dim Naj_sd As Byte
Dim Naj_sj As Byte
Dim Naj_md As Byte
Dim Naj_mj As Byte
Dim Wart_ac As Bit
Cursor Off
Ostatnia_st = 0
Ostatnia_sj = 0
Ostatnia_sd = 0
Ostatnia_mj = 0
Ostatnia_md = 0
Naj_st = 9
Naj_sd = 9
Naj_sj = 9
Naj_md = 9
Naj_mj = 9
On Timer0 Licz
Enable Interrupts
Enable Timer0
Stop Timer0
Timer0 = 0
Cls
Do
Home
Locate 4 , 1
Lcd "TIME: " ; Minuty_d ; Minuty_j ; ":" ; Sekundy_d ; Sekundy_j ; "," ; Setne
Locate 3 , 1
Lcd "LAST: " ; Ostatnia_md ; Ostatnia_mj ; ":" ; Ostatnia_sd ; Ostatnia_sj ; "," ; Ostatnia_st
Locate 2 , 1
Lcd "BEST: " ; Naj_md ; Naj_mj ; ":" ; Naj_sd ; Naj_sj ; "," ; Naj_st
If Wart_ac = 1 Then
Stop Timer0
Ostatnia_st = Setne
Setne = 0
Ostatnia_sd = Sekundy_d
Sekundy_d = 0
Ostatnia_md = Minuty_d
Minuty_d = 0
Ostatnia_sj = Sekundy_j
Sekundy_j = 0
Ostatnia_mj = Minuty_j
Minuty_j = 0
Timer0 = 0
Start Timer0
End If
Loop
End
'----------------------------------
Licz:
Incr Przerw0
If Przerw0 = 3125 Then
Incr Setne
Przerw0 = 0
If Setne = 10 Then
Incr Sekundy_j
Setne = 0
End If
If Sekundy_j = 10 Then
Incr Sekundy_d
Sekundy_j = 0
End If
If Sekundy_d = 6 Then
Incr Minuty_j
Sekundy_j = 0
Sekundy_d = 0
End If
If Minuty_j = 10 Then
Incr Minuty_d
Minuty_j = 0
End If
If Minuty_d = 10 Then
Minuty_d = 0
Minuty_j = 0
End If
End If
Return