Naprogramovani tlačítka

galOs

Re: Naprogramovani tlačítka

Příspěvek od galOs »

Mno jak jsem ten program zkracoval tak jsem umazal i příkaz na kontrolu zmáčklého tlačítka v podprogramu smer tj: if pinB.5 = 1 then goto smer
tenhle příkaz se dá do návěstí smer a už to funguje( tenhle příkaz neni z mojí hlavy a clověk už to tam zabudoval, ale díky němu, protože já mám nulove zkušenosti tak by mě to nikdy takhle nenapadlo)
S zákmitem tlačítka nemám problém.
A zde přikládám program a už to funguje normálně :D

Kód: Vybrat vše

;B.7 = koncový spínač "Dveře otevřené"
;B.6 = koncový spínač "Dveře zavřené"
;B.5 = tlačítko
;C.0 = 1. výstup do L293
;C.1 = 2. výstup do L293



start:
	if pinB.6 = 1 then goto zacit		; zde je kontrola jestli náhodou nejsou dvěře v mezi poloze
	if pinB.7 = 1 then goto zacit
	high C.0					; pokud jsou tak se automaticky zavřou
	low C.1
	goto start

zacit:
   	low C.1						; zastaveni motoru
   	low C.0
   	if pinB.5 = 1 then goto smer			; podminka na zmáčknutí tlačítka
   	goto zacit

smer:
   	if pinB.5=1 then smer    			; ošetření stisknutého tlačítka
   	if pinB.7 = 1 then goto zavirani   		; pokud je otevřeno tak at se zavře
   	if pinB.6 = 1 then goto otvirani   		; opak přechozího
  	goto zacit

otvirani:
   	high C.1               				; roztočení motoru
   	low C.0              
   	if pinB.7 = 1 then goto zacit   		; pokud dojel na konec tak at se zastavi   
   	if pinB.5 = 1 then gosub pauza 		; podmínka zmáčknutí tlačítka v cyklu.. pokud splněno tak jde na pauzu
   	goto otvirani

zavirani:
   	high C.0               ;			; roztočení motoru
   	low C.1
   	if pinB.6 = 1 then goto zacit      		; znovu akorát na opak
  	if pinB.5 = 1 then gosub pauza
   	goto zavirani

pauza:  
	low C.1						; vypnuti motoru
	low C.0                   
	if pinB.5=1 then pauza    			; ošetření stisknutého tlačítka
pauza1:
	if pinB.5=0 then pauza1   			; čeká na opětovný stisk tlačítka
pauza2:                     
	if pinB.5=1 then pauza2
	return                  			; vrátí na místo vyvolání podprogramu a pokračuje dál
Odpovědět