[elektro] Kapcsoló pergésmentesítés

Acs Gabor levlista at e8e.eu
Thu Sep 18 20:50:56 CEST 2014


Ez már napokkal ezelőtt fel lett találva (Szilárd, nem a megoldásodat 
akarom leszólni), hanem akkor az volt Károly meglátása, hogy nem biztos, 
hogy bármennyi prell timeout után stabil lesz a kontaktus. Én azt 
feltételeztem, hogy de, és akkor jó ez a megoldásod, Károly szerint meg 
nem, és akkor nem jó, mert soha nem tudhatod, hogy zavar volt-e, vagy 
valós átkapcsolás. ezért nem tudod elaltatni, hanem nonstop figyelni 
kell a bemenetet, és statisztikát készíteni, hogy melyik állapot van 
túlsúlyban. Vagy amit írtak, az üres kontaktussal dolgozni, ami nem tud 
fals jeleket bevinni.

Már ha tényleg igaz, hogy az elszívó vagy mi kapcsolója prell után is 
röcög (kétlem).


Gábor

2014.09.18. 9:31 keltezéssel, Karoly Kovacs írta:
> Aha, köszi.
> Bár nálam nem ennyire érzékeny a fogyasztásra, s ezért az első (indító)
> él után nem szándékozom elküldeni szunyálni, de különben nagyon jó, amit
> írtál az interrupt tiltásokkal.
>
> Károly
>
> Moravcsik Szilard wrote:
>> Szia!
>>
>> Anno, vagy 5 éve hasonló problémát oldottunk meg.
>> Ott a uC a bekapcsolás után ellenőrizte és szükség esetén kiszolgálta a
>> port bemenetek előírta feladatokat, majd engedélyezte a porton a Port
>> Change Interruptot és elment szundizni.
>>
>> A uC-t csak a bemeneti porton fellépő jelváltozás (a Port Change
>> Interrupt) ébreszthette fel.
>>
>> Ébredés után ideiglenesen letiltotta a porton az újabb jelváltozás
>> (prel) okozta interruptot, majd felhúzott egy timert, amelynek ideje a
>> prel idejénél biztonsággal nagyobb volt (50ms?), engedélyezte a timer
>> IRQ-t és ismét szundizni ment. A porttal egyelőre nem foglalkozott.
>>
>> A timer lejárt, IRQ-val felébresztette a uC-t, ami ekkor a timert
>> leállította, az IRQ-ját tiltotta, ellenőrizte a kérdéses port bemenetet
>> és kiszolgálta azt, ha a port szintje ezt előírta a számára, végül ismét
>> engedélyezte a Port Change Interruptot és elment szundizni.
>>
>> Már nem emlékszem, milyen kis kontroller volt (vagy PIC vagy Atmel :)),
>> de mindegy is.
>>
>> Üdv:
>> Szilárd
>>
>>
>> 2014.09.17. 12:13 keltezéssel, Acs Gabor írta:
>>> Akkor azért Károly problémája, hogy elaltatod a processzort, és a
>>> bemenet jelváltozása ébressze fel, miközben a nem átkapcsolt kontaktus
>>> sem stabil, így nem lesz egyszerű. Neki talán az lenne a jobb megoldás,
>>> ha a timer ébresztgeti a processzort, de így meg sokkal nagyobb lesz a
>>> fogyasztása.
>>>
>>>
>>> Gábor
>>>
>>> 2014.09.17. 11:42 keltezéssel, potyo írta:
>>>> Mintavételezés adott időnként, és ha elegendő számú alkalommal ugyanaz a
>>>> szint van, akkor stabilnak lehet tekinteni, és kiértékelni az előző
>>>> stabilnak tekintett szinthez képest. Valami ilyesmi:
>>>> http://pastebin.com/UdgV1waQ
>>>>
>>>> 2014. szeptember 17. 11:12 Acs Gabor írta, <levlista at e8e.eu>:
>>>>
>>>>> Akkor Te melyikre szavaznál? Addig mintavételezed, amíg el nem értél egy
>>>>> megadott darabszámot a kérdéses szintből, vagy csak egyszerűen timer egy
>>>>> sacc/kb ideig, ami alatt nem foglalkozol vele, és utána kezded újra
>>>>> figyelni?
>>>>>
>>>>> Talán az utóbbi mellett szólhat még, hogy az előbbinek mindenféle képp
>>>>> lesz egy késleltetése, más kérdés hogy semmit sem számít, ha ez akár 0,1
>>>>> mp-et is kitesz.
>>>>>
>>>>> Gábor
>>>>>
>>>>> 2014.09.17. 11:04 keltezéssel, potyo írta:
>>>>>> Persze. Megadható, hogy maximum 1 másodpercig és maximum 1000-szer. És
>>>>>> akkor előrébb vagy ezzel? :-))
>>>>>>
>>>>>> Láttam már valakitől ilyen nyakatekert dolgot, hogy le akarta mérni, hány
>>>>>> prell van, aztán meg annyit számolni a programban, de végül rájött, hogy
>>>>> ez
>>>>>> marhaság, és maradni kéne a bevált megoldásoknál :-))
>>>>>>
>>>>>> 2014. szeptember 17. 11:00 Acs Gabor írta, <levlista at e8e.eu>:
>>>>>>
>>>>>>> Viszont a maximális prellegés-szám az meghatározható?
>>>>>>>
>>>>>> -----------------------------------------
>>>>>>                elektro[-flame|-etc]
>>>>> -----------------------------------------
>>>>>               elektro[-flame|-etc]
>>>>>
>>>> -----------------------------------------
>>>>               elektro[-flame|-etc]
>>> -----------------------------------------
>>>              elektro[-flame|-etc]
>>>
>> -----------------------------------------
>>             elektro[-flame|-etc]
>>
> -----------------------------------------
>            elektro[-flame|-etc]
>



More information about the Elektro mailing list