Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Bascom 89C4051 - pętla

carry
-
-
Posty:6
Rejestracja:19 gru 2004, o 13:06
Lokalizacja:Poznań
Kontaktowanie:
Bascom 89C4051 - pętla

Postautor: carry » 19 gru 2004, o 13:11

Witam serdecznie
mam problem mianowicie....

mam 3 przyciski na portach
1 - P3.0 ;
2 - P3.1 ;
3 - P3.2 ;

każdy z nich odwołuje sie do pewnej sekwensji Set i Reser pozostałych wolnych portów....

jak zrobić zeby po wciscieciu przycisku 2 przerywał sekrensje np 1 i wykonywał drugą.... a potem przerwał drugą i zaczoł 3 po wciscięciu przycisku 3...

dzieki za wszelką pomoc....

Awatar użytkownika
ScauT
-
-
Posty:62
Rejestracja:3 maja 2003, o 17:14
Lokalizacja:Legnica
Kontaktowanie:

re

Postautor: ScauT » 19 gru 2004, o 13:24

witaj,

dim sekwencja as byte

do
if p3.0 = 0 then sekwencja = 0
if p3.1 = 0 then sekwencja = 1
if p3.2 = 0 then sekwencja = 2

select case sekwencja
case 0 : rob cos tam...
case 1 : rob cos tam 2...
case 2 : rob cos jeszcze innego...
end select
loop
end

carry
-
-
Posty:6
Rejestracja:19 gru 2004, o 13:06
Lokalizacja:Poznań
Kontaktowanie:

Postautor: carry » 19 gru 2004, o 13:57

no wyszło mi takie coś:

Dim Sekwencja As Byte

Do
If P3.0 = 0 Then Sekwencja = 0
If P3.1 = 0 Then Sekwencja = 1
If P3.2 = 0 Then Sekwencja = 2

select case sekwencja

Case 0 :
Do
Set P1.7
Waitms 700
Set P1.6
Set P1.5
Waitms 700
Set P1.4
Set P1.3
Waitms 1
Loop

Case 1 :
Do
Set P1.7
Waitms 500
Reset P1.7
Waitms 500
Loop

Case 2 :
Do
Set P1.7
Set P3.3
Wait 1
Reset P1.7
Reset P3.3
Wait 1
Loop

End Select
Loop
End

i nadal nie dziala...jest tak ze właczam napiecie i jest ok wybieram sobie jeden przycisk i wykonuje tą sekwencje....ale jak chce zmienic na inną to nie działa.... dopiero po wyłączeniu zasilania i ponownym jego włączeniu...

Awatar użytkownika
ScauT
-
-
Posty:62
Rejestracja:3 maja 2003, o 17:14
Lokalizacja:Legnica
Kontaktowanie:

re

Postautor: ScauT » 19 gru 2004, o 14:21

bo widzisz, dajesz petle do...loop
ta petla jest bez wyjscia
obecnie on ci wchodzi tutaj:
Case 0 :
Do
Set P1.7
Waitms 700
Set P1.6
Set P1.5
Waitms 700
Set P1.4
Set P1.3
Waitms 1
Loop

i wykonuje to w kolko - (po chlopsku-widzi tylko to co w tej petli).

odpal to:


Do
If P3.0 = 0 Then Sekwencja = 0
If P3.1 = 0 Then Sekwencja = 1
If P3.2 = 0 Then Sekwencja = 2

select case sekwencja

Case 0 :
Set P1.7
Waitms 700
Set P1.6
Set P1.5
Waitms 700
Set P1.4
Set P1.3
Waitms 1

Case 1 :
Set P1.7
Waitms 500
Reset P1.7
Waitms 500

Case 2 :
Set P1.7
Set P3.3
Wait 1
Reset P1.7
Reset P3.3
Wait 1

End Select
Loop
End



dziala napewno...

carry
-
-
Posty:6
Rejestracja:19 gru 2004, o 13:06
Lokalizacja:Poznań
Kontaktowanie:

Postautor: carry » 19 gru 2004, o 17:01

faktycznie !!
działa

dzieki za pomoc

pozdrawiam
Michał

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości