Pripojenie tlačítok a ošetrenie zákmitov

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání


Predmet

Konfigurovateľné mikroprocesorové systémy
Tématická časť:
GPIO - Všeobecne vstupy a výstupy PSoC

Ako vstupy možno ku GPIO pripájať aj tlačítka a iné kontaktné el. komponenty. Problémom pripojenia takýchto komponentov je, že vytvárajú zákmity spôsobené pružnosťou kontaktov, znečistením kontaktných plôch atď. Riešenie potlačenia zákmitov môžu byť:

  • Hardverové
  • Softverové

Príklad - Počítanie stlačení tlačitka

Pomocou tohto príkladu sa dá prakticky dokázať zakmitávanie tlačítka. Port1[3] je nastavený na Pull Down.

        ...
        mov reg[PRT1DR],0
        mov [COUNT],0
Loop_0: tst reg[PRT1DR],%00001000   ; wait for '1'
        jz Loop_0      
        inc [COUNT]
        ;[COUNT] -> LCD Display
Loop_1: tst reg[PRT1DR],%00001000   ; wait for '0'
        jnz Loop_1     
        jmp Loop_0
Zakmit.jpg
Zákmity tlačítka a skoky v programe

Hardverové potlačenie zákmitov

  • Ošetrenie zákmitov RC členom - vyžaduje presné stanovenie konštanty Cx*Rp
RC tlac.jpg
Ošetrenie zákmitov pomocou RC člena
  • Ošetrenie zákmitov pomocou RS klopného obvodu
RS KO.jpg
Ošetrenie zákmitov pomocou RS klopného obvodu

Softverové potlačenie zákmitov

Po každej zmene stavu pinu ignorujeme stav spínača po určitú dobu (napr. 25 msec - vyžaduje určenie vzhľadom k typu spínača a pod.)

        ...
        mov reg[PRT1DR],0
        mov [COUNT],0
Loop_0: tst reg[PRT1DR],%00001000   ; wait for '1'
        jz Loop_0      
        inc [COUNT]
        ;[COUNT] -> LCD Display
        call Delay25msec
Loop_1: tst reg[PRT1DR],%00001000   ; wait for '0'
        jnz Loop_1
        call Delay25msec     
        jmp Loop_0