POMOCY
Męcze sie już kilka dni z tematem przerwań w 89c2051
procek ma sterować silnikiem krokowym 4 różne prędkości wybierane przyciskiem INT.
Na symulatorze chodzi a po za programowaniu nie działają INT
poniżej
program:
Config Timer0 = Counter = Internal , Mode = 1
Enable Interrupts
Dim S As Integer
Dim Count As Integer
On Int1 Int1_int Nosave
Reset P1.2
Reset P1.3
Reset P1.7
Enable Interrupts
Enable Int1
Count = 1
S = 5000
On Timer0 40khz
40khz:
Load Timer0 , S
Do
P1.3 = Not P1.3 : P1.2 = Not P1.3
Do
Loop
Int1_int:
Incr Count
'Print Count
If Count = 1 Then
S = 5000 : Reset P1.7 : Set P1.6 : Set P1.5 : Set P1.4
Elseif Count = 2 Then
S = 4500 : Set P1.7 : Reset P1.6 : Set P1.5 : Set P1.4
Elseif Count = 3 Then
S = 4000 : Set P1.7 : Set P1.6 : Reset P1.5 : Set P1.4
Elseif Count > 3 Then
S = 2500 : Set P1.7 : Set P1.6 : Set P1.5 : Reset P1.4 : Count = 0
End If
Gosub 40khz
INT1 ma steować wybranym zakresem , ale nie działa,
sprawdzałem na różnych seriach atmela i nic.
Pomóżcie gdzie jest błąd?
Męcze sie już kilka dni z tematem przerwań w 89c2051
procek ma sterować silnikiem krokowym 4 różne prędkości wybierane przyciskiem INT.
Na symulatorze chodzi a po za programowaniu nie działają INT
poniżej
program:
Config Timer0 = Counter = Internal , Mode = 1
Enable Interrupts
Dim S As Integer
Dim Count As Integer
On Int1 Int1_int Nosave
Reset P1.2
Reset P1.3
Reset P1.7
Enable Interrupts
Enable Int1
Count = 1
S = 5000
On Timer0 40khz
40khz:
Load Timer0 , S
Do
P1.3 = Not P1.3 : P1.2 = Not P1.3
Do
Loop
Int1_int:
Incr Count
'Print Count
If Count = 1 Then
S = 5000 : Reset P1.7 : Set P1.6 : Set P1.5 : Set P1.4
Elseif Count = 2 Then
S = 4500 : Set P1.7 : Reset P1.6 : Set P1.5 : Set P1.4
Elseif Count = 3 Then
S = 4000 : Set P1.7 : Set P1.6 : Reset P1.5 : Set P1.4
Elseif Count > 3 Then
S = 2500 : Set P1.7 : Set P1.6 : Set P1.5 : Reset P1.4 : Count = 0
End If
Gosub 40khz
INT1 ma steować wybranym zakresem , ale nie działa,
sprawdzałem na różnych seriach atmela i nic.
Pomóżcie gdzie jest błąd?