Stránka 1 z 1

PIC - TON, TOF - ošetření tlačítka

Napsal: 12 pro 2016, 15:08
od palol69
Zdravím, naprogramoval jsem si PIC v assembleru. Programem stopuji čas.
Při stopování času uložím daný čas do paměti pomocí tlačítka, na kterém mám nastaveno přerušení.

Bohužel nevím jak ošetřit tlačítko, aby reagovalo jen na jednu změnu, a to zmáčknutí.
Jelikož když tlačítko držím déle tak toto přerušení proběhne při zmáčknutí i puštění

Předem moc děkuji.

Napsal: 12 pro 2016, 18:05
od ZdenekHQ
Použij nějaký flag/příznak stisknutého tlačítka, co se při stisku nastaví, a v hlavní smyčce programu ho smaž, až je tlačítko skutečně rozepnutý, t.j. po filtraci.

Napsal: 12 pro 2016, 20:15
od forbidden
Jednoduchej kus kódu na kontinuální test třech tlačítek.

Kód: Vybrat vše

TT1		BTFSC TL1			; test stisku tlacitka 1
		GOTO TT2
		CALL CEK15MS		; cekej 15 ms na dozneni zakmitu
		BTFSC TL1			; 2. test stisku tlacitka 1 kvuli zakmitum
		GOTO TT2
		GOTO T1				; skok na obsluhu tlacitka 1

TT2		BTFSC TL2			; test stisku tlacitka 2
		GOTO TT3
		CALL CEK15MS		; cekej 15 ms na dozneni zakmitu
		BTFSC TL2			; 2. test stisku tlacitka 2 kvuli zakmitum
		GOTO TT3
		GOTO T2				; skok na obsluhu tlacitka 2

TT3		BTFSC TL3			; test stisku tlacitka 3
		GOTO TT1
		CALL CEK15MS		; cekej 15 ms na dozneni zakmitu
		BTFSC TL3			; 2. test stisku tlacitka 3 kvuli zakmitum
		GOTO TT1
		GOTO T3				; skok na obsluhu tlacitka 3
V každé obsluze jednotlivýho tlačítka je ještě čekání na rozepnutí.

Kód: Vybrat vše

T1		BTFSS TL1
		GOTO $-1
Samotná akce ale může začít až po puštění, nebo něco udělat před puštěním a pak čekat. Záleží jak se to hodí.

Napsal: 01 led 2017, 17:26
od mtajovsky
No dobrý, ale to znamená, že pokud podržím některé tlačítko, celý systém zablokuji.