Pripojenie tlačítok a ošetrenie zákmitov: Rozdiel medzi revíziami
		
		
		
		
		
		
		Skočit na navigaci
		Skočit na vyhledávání
		
			
		 
 
 
 
 
 
		
		
		
		
		
		
	
 (Vytvorená stránka „Category:Mikroprocesorové systémy __NOTOC__ {{Draft}}  Ako vstupy možno ku GPIO pripájať aj tlačítka a iné kontaktné el. komponenty. Problémom pripojenia tak…“)  | 
			
(Žiaden rozdiel) 
 | 
Verzia zo dňa a času 14:14, 14. jún 2010
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