Sziasztok
Nem nagyon szeretnék programból prell mentesíteni, direktbe használnám a PCInt lehetőségét, és van hely a gyári panelon mentesíteni.
Ez a kapcsolás jó lesz hozzá?
Előre is köszi.
Üdv Roland
Prell mentesítés
Szia!
Gombtól ás bemenet billenési küszöbtől függ.
Általános esetben jó lesz.
Vacak gombnál nem számít, alap öntisztítás biztosított.
Szerintem (nem nyitok vitát "a'la "A tanu"c. film):
Én interrupt-ból kezelek gombokat. Általában van egy 7-14-30Hz-es INT valahol. Ekkor nem kell pergésmentesítés (hamarabb lezajlik, mint hogy újabb INT jönne)
Anno írtam már ide, lehet, hogy bonyásnak tűnik, de működik.
INTben megnézni, lenyomták-e a gombot (most nyomták-e le).
Ha most, akkor AKT_GOMB1 bit billen, úgy is marad (élvezérelt bit), de van szint is (autorepeat miatt). A főprogram csak az AKT_gombx biteket figyeli, ha kell, kinullázza. Pl. más menübe ugráskor AKT_NULL (minden bebillent bit nullázása) meghívása, ne maradjon benne duplanyomás, félrenyomás stb.
Szóval a megoldásod attól függ, milyen sűrűn olvasod a bejövő szint állapotát. A párhuzamos kisebb kondi mindenképp jót tesz a kontaktusnak! de belátható, hogy a billenési küszöbnél a "rece-fice" elkerülhetetlen, ha elég vacak a gombod.
Tehát csinálhatsz olyat, hogy PCINT, a PCINT bebillent egy bitet, és azt olvasod/törlöd főprogramból.
Ennek a gondja encoder feldolgozáskor jön elő jobban, neked most jó lesz. A felhúzót nem fontos betenni, ha a portra kapcsolod be a belső felhúzást.
JAni
Gombtól ás bemenet billenési küszöbtől függ.
Általános esetben jó lesz.
Vacak gombnál nem számít, alap öntisztítás biztosított.
Szerintem (nem nyitok vitát "a'la "A tanu"c. film):
Én interrupt-ból kezelek gombokat. Általában van egy 7-14-30Hz-es INT valahol. Ekkor nem kell pergésmentesítés (hamarabb lezajlik, mint hogy újabb INT jönne)
Anno írtam már ide, lehet, hogy bonyásnak tűnik, de működik.
INTben megnézni, lenyomták-e a gombot (most nyomták-e le).
Ha most, akkor AKT_GOMB1 bit billen, úgy is marad (élvezérelt bit), de van szint is (autorepeat miatt). A főprogram csak az AKT_gombx biteket figyeli, ha kell, kinullázza. Pl. más menübe ugráskor AKT_NULL (minden bebillent bit nullázása) meghívása, ne maradjon benne duplanyomás, félrenyomás stb.
Szóval a megoldásod attól függ, milyen sűrűn olvasod a bejövő szint állapotát. A párhuzamos kisebb kondi mindenképp jót tesz a kontaktusnak! de belátható, hogy a billenési küszöbnél a "rece-fice" elkerülhetetlen, ha elég vacak a gombod.
Tehát csinálhatsz olyat, hogy PCINT, a PCINT bebillent egy bitet, és azt olvasod/törlöd főprogramból.
Ennek a gondja encoder feldolgozáskor jön elő jobban, neked most jó lesz. A felhúzót nem fontos betenni, ha a portra kapcsolod be a belső felhúzást.
JAni
Ha figyelembe vesszük, hogy a feltöltött kondit a kapcsolóval rövidre zárod, akkor észre kell vennünk, hogy semmi nem korlátozza az áramot, ami a kisütéskor folyik. Egy idő után be fog égni a kapcsoló. Ha sorba raksz mondjuk egy 100 ohmot, akkor a kisütés árama ohm törvény alapján számolható mértékűre csökken, miközben a kisütés időállandója nem fog annyira megnövekedni, hogy az eredeti célra már ne volna jó.
A felhúzó a pedig szerintem alkalmazás függő, mert ha a példa szerinti 10k 100nF időállandójának közelébe vagy azon belül eső tempóval jönnek a gombnyomások, akkor hamis lehet a működés. Például az említett rotarynál akár elő is fordulhat, hogy erősebb felhúzóra van szükség. A proc belső felhózója elvileg ilyen ~20k nagyságrendbe esik.
A felhúzó a pedig szerintem alkalmazás függő, mert ha a példa szerinti 10k 100nF időállandójának közelébe vagy azon belül eső tempóval jönnek a gombnyomások, akkor hamis lehet a működés. Például az említett rotarynál akár elő is fordulhat, hogy erősebb felhúzóra van szükség. A proc belső felhózója elvileg ilyen ~20k nagyságrendbe esik.
Kapcsolók pergésmentesítése
http://tkiraaly.hu/muhely/klatty/klatty.html
http://tkiraaly.hu/muhely/klatty/klatty.html