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.