Od pewnego czasu pracuje nad licznikiem który ma pracować w zakresie od 0 do 64. Niestety korzystam z przykładu napisanego przez pana Góreckiego gdzie licznik zlicza do 99. Chodzi mi o to żeby licznik np po osiągnięciu wartości 64 nie zliczał już w gore. To samo jeśli chodzi o wartość najmniejszą czyli 0 żeby nie przepełniał sie i nie ostawiał na wartości 99. Ja osobiście probowałem zastosować pomocnicza zmienna liczbanac i po osiągnięciu odpowiedniej wartości miały by być blokowane przyciski. Niestety nie chce mi to działać
Poniżej moje wypociny:
Kod: Zaznacz cały
$regfile = "attiny2313.dat"
Dim Jednostki As Byte
dim Dziesiatki As Byte
Dim Ktorywysw As Byte
Dim Liczbanac As Byte
Dim S2a As Bit
Dim S2b As Bit
Dim S1a As Bit
dim S1b As Bit
Config Portb = 255
Portb = &B11111111
Config Portd = &B1111100
Portd = &B1111111
Dziesiatki = 6 : Jednostki = 0
Liczbanac = 60
S2a = 0 : S2b = 0 : S1a = 0 : S1b = 0
Do
Waitms 5
Incr Ktorywysw
If Ktorywysw = 2 Then
Ktorywysw = 0
If Pind.1 = 0 Then
S2a = 1
If S2a = 1 And S2b = 0 Then
Gosub Zwieksz
S2b = 1
End If
Else
S2a = 0 : S2b = 0
End If
If Pind.0 = 0 Then
S1a = 1
If S1a = 1 And S1b = 0 Then
Gosub Zmniejsz
S1b = 1
End If
Else
S1a = 0 : S1b = 0
End If
End If
Portd = &B1111111
Select Case Ktorywysw
Case 0:
Portb = Lookup(jednostki , Tabela)
Portd.3 = 0
Case 1:
Portb = Lookup(dziesiatki , Tabela)
Portd.4 = 0
End Select
Loop
End
Zwieksz:
Incr Jednostki
Incr Liczbanac
If Jednostki = 10 Then
Jednostki = 0
Incr Dziesiatki
If Dziesiatki = 10 Then
Dziesiatki = 0
If Liczbanac = 64 Then reset Portd.1
End If
End If
Return
Zmniejsz:
Decr Jednostki
Decr Liczbanac
If Jednostki = 255 Then
Jednostki = 9
Decr Dziesiatki
If Dziesiatki = 255 Then
Dziesiatki = 9
If Liczbanac = 0 Then reset Portd.0
End If
End If
Return
Tabela:
Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144