Cześć,
Przedstawiam problem:
w poniższym programie, gdy nastąpi 2razy przerwanie INT0, to zmienna limit bedzie wynosić 400. Jeżeli zmienna minuty dojdzie do 400 powinno się zatrzymać. Jednak zmienna Minuty dochodzi tylko do 255 tak jakby była zadeklarowana jako Byte, a nie jako Long. Dlaczego?
Zmienna Sekundy jeżeli się przestawi z 2 na mp 400 liczy właściwie do zakresu Long. Dlaczego zmienna minuty nie???
Coś przeoczyłem, ale co???
Siedzę i jakoś znaleźć błędu nie mogę, dlatego proszę Was
Led3 Alias P1.2
Dim Count As Byte
Dim Limit As Integer
Dim Limit1 As Integer
Dim X1 As Byte
Dim W1 As Byte
Dim Il1 As Byte
Dim Clock As Integer
Dim Minuty As Long
Dim Sekundy As Long
Config Timer0 = Timer , Gate = Internal , Mode = 2
On Timer0 Timer_0_int
Load Timer0 , 250
On Int0 Przerw1
Enable Interrupts
Enable Int0
Enable Timer0
Start Timer0
Clock = 0
Sekundy = 0
Minuty = 0
X1 = 0
Limit = 0
Il1 = 0
Limit1 = 0
Do
Loop
End
'========================
Przerw1:
X1 = 1
W1 = 200
Inc IL1
Limit1 = W1 * Il1
Limit = Limit1 ' + Limit2
Wait 1
Return
Timer_0_int:
Inc Clock
Sekundy = Sekundy + X1
If Sekundy = 2 Then
Inc Minuty
Set Led3
Sekundy = 0
If Minuty = Limit Then
Reset Led3
End If
End If
Return
Przedstawiam problem:
w poniższym programie, gdy nastąpi 2razy przerwanie INT0, to zmienna limit bedzie wynosić 400. Jeżeli zmienna minuty dojdzie do 400 powinno się zatrzymać. Jednak zmienna Minuty dochodzi tylko do 255 tak jakby była zadeklarowana jako Byte, a nie jako Long. Dlaczego?
Zmienna Sekundy jeżeli się przestawi z 2 na mp 400 liczy właściwie do zakresu Long. Dlaczego zmienna minuty nie???
Coś przeoczyłem, ale co???
Siedzę i jakoś znaleźć błędu nie mogę, dlatego proszę Was
Led3 Alias P1.2
Dim Count As Byte
Dim Limit As Integer
Dim Limit1 As Integer
Dim X1 As Byte
Dim W1 As Byte
Dim Il1 As Byte
Dim Clock As Integer
Dim Minuty As Long
Dim Sekundy As Long
Config Timer0 = Timer , Gate = Internal , Mode = 2
On Timer0 Timer_0_int
Load Timer0 , 250
On Int0 Przerw1
Enable Interrupts
Enable Int0
Enable Timer0
Start Timer0
Clock = 0
Sekundy = 0
Minuty = 0
X1 = 0
Limit = 0
Il1 = 0
Limit1 = 0
Do
Loop
End
'========================
Przerw1:
X1 = 1
W1 = 200
Inc IL1
Limit1 = W1 * Il1
Limit = Limit1 ' + Limit2
Wait 1
Return
Timer_0_int:
Inc Clock
Sekundy = Sekundy + X1
If Sekundy = 2 Then
Inc Minuty
Set Led3
Sekundy = 0
If Minuty = Limit Then
Reset Led3
End If
End If
Return