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á?
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
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.
Én a külső felhúzó-ellenállást kisebbre venném. Olyan 1k5...2k7 körülire (ami a fiókban van). A belső felhúzó a régi chipek esetén volt 15...25k, az újabb P illetve A sorozat esetén 80...120 k körül van!