Pripojenie tlačítok a ošetrenie zákmitov
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
![]() |
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
![]() |
Ošetrenie zákmitov pomocou RC člena |
- Ošetrenie zákmitov pomocou RS klopného obvodu
![]() |
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