Witam.
Zaczynam zabawe z uC i Bascomem. Chcialbym napisac program, ktory bedzie sterowal np.3 portami - wlaczal je w roznych kompinacjach na jakis czas. Kompinacji ma byc kilka - w ponizszym programie sa przykladowe dwie jako Prog1 i Prog2. Sęk w tym, że nie bardzo wiem jak zrealizowac ich wybor. Musi byc dostepny w kazdej chwili- bez czekania, az dany program sie zakonczy (wiec wymyslilem, ze bedzie potrzebne przerwanie;) ) Zadawalajace by bylo np, zeby "Numer" byl inkrementowany przez przerwanie i wplywalby na wybor programu np. (start prog- 0 , przerwanie-1, przerwanie-2, przerwanie znow 0 itd.) co by zadzialalo gdyby po zakonczeniu przerwania wrocil na poczatek programu glownego (dokonywanie wyboru podprogramu), a nie np do 10-cio sek. Wait'a :/.
Ps. Da sie w BascomAvr jakos usprawnic ta symulacje, zeby reagowala na przyciski sama - nie czekala na kolejne tykniecie zegara. Ustawiam wejscia i musze zmienic cos, zeby miec rezultat...
Help.
$sim
Config Lcd = 16 * 2
Cls
Dim Numer As Byte
On Int0 Przycisk0
Enable Interrupts
Enable Int0
Numer = 0
Cls : Lcd "xxx" : Waitms 300
Lowerline : Lcd "xxx" : Waitms 300
Do
'tu ma byc program
Loop
Prog1:
Cls
Lcd "Program #1"
Do
Set Portd.0
Reset Portd.1
Set Portd.2
Wait 5
Reset Portd.0
Set Portd.1
Reset Portd.2
Wait 5
Loop
Return
Prog2:
Cls
Lcd "Program #2"
Do
Set Portd.0
Reset Portd.1
Reset Portd.2
Wait 5
Reset Portd.0
Set Portd.1
Reset Portd.2
Wait 5
Reset Portd.0
Reset Portd.1
Set Portd.2
Wait 5
Loop
Return
Przycisk0:
Return
Zaczynam zabawe z uC i Bascomem. Chcialbym napisac program, ktory bedzie sterowal np.3 portami - wlaczal je w roznych kompinacjach na jakis czas. Kompinacji ma byc kilka - w ponizszym programie sa przykladowe dwie jako Prog1 i Prog2. Sęk w tym, że nie bardzo wiem jak zrealizowac ich wybor. Musi byc dostepny w kazdej chwili- bez czekania, az dany program sie zakonczy (wiec wymyslilem, ze bedzie potrzebne przerwanie;) ) Zadawalajace by bylo np, zeby "Numer" byl inkrementowany przez przerwanie i wplywalby na wybor programu np. (start prog- 0 , przerwanie-1, przerwanie-2, przerwanie znow 0 itd.) co by zadzialalo gdyby po zakonczeniu przerwania wrocil na poczatek programu glownego (dokonywanie wyboru podprogramu), a nie np do 10-cio sek. Wait'a :/.
Ps. Da sie w BascomAvr jakos usprawnic ta symulacje, zeby reagowala na przyciski sama - nie czekala na kolejne tykniecie zegara. Ustawiam wejscia i musze zmienic cos, zeby miec rezultat...
Help.
$sim
Config Lcd = 16 * 2
Cls
Dim Numer As Byte
On Int0 Przycisk0
Enable Interrupts
Enable Int0
Numer = 0
Cls : Lcd "xxx" : Waitms 300
Lowerline : Lcd "xxx" : Waitms 300
Do
'tu ma byc program
Loop
Prog1:
Cls
Lcd "Program #1"
Do
Set Portd.0
Reset Portd.1
Set Portd.2
Wait 5
Reset Portd.0
Set Portd.1
Reset Portd.2
Wait 5
Loop
Return
Prog2:
Cls
Lcd "Program #2"
Do
Set Portd.0
Reset Portd.1
Reset Portd.2
Wait 5
Reset Portd.0
Set Portd.1
Reset Portd.2
Wait 5
Reset Portd.0
Reset Portd.1
Set Portd.2
Wait 5
Loop
Return
Przycisk0:
Return