<div dir="ltr">obavam se ze u preruseni muze nastat ta potiz ze v okamziku obsluhy preruseni se take muze zmenit stav coz uz preruseni nechytne a ztratite informaci. Lepe asi resit pravidelnim casovym interruptem (rychlost dle max.poctu zmen) a tam si napsat ten stavovy automat.<div>S pozdravem T.M.</div></div><div class="gmail_extra"><br><div class="gmail_quote">Dne 22. října 2015 14:57 Pavel Kutina <span dir="ltr"><<a href="mailto:hw@prelude.cz" target="_blank">hw@prelude.cz</a>></span> napsal(a):<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Zdravim,<br>
<br>
nemate nekdo nejaky vhodny algoritmus na likvidaci zakmitu pro enkoder? Mam STM32F103, na nem na pinu PORT.B0 a B1 laciny, osklivy cinsky enkoder (pull-upy 10k na 3V3, pull-upy zapnute i na procesoru, abych aspon trochu zvetsil proud skrz kontakty), preruseni obe obe hrany na B0.<br>
<br>
Zatim zkousim ten nejjednodussi algoritmus - hrana mi vygeneruje na B0 preruseni, ja se podivam, jaky je stav na druhem pinu a podle toho se rozhodnu, jestli prictu nebo odectu z nejake globalni promenne.<br>
<br>
V idealnim svete by to stacilo - samozrejme binec delaji ruzne zakmity. Enkoder produkuje spoustu smeti, zatim jsem to "vyresil" tak, ze po spusteni preruseni nactu stav pinu, pockam nejakou dobu (cca 300us), nactu stav znovu, a pokud se stavy nelisi, popojedu ve zpracovani o kus dal. Totez u druheho pinu. Idealni to neni, ty nejvetsi hruzy to sice odfiltruje, ale prinasi to dalsi problemy, treba ze pri rychlem protoceni enkoderu to diky zpozdeni misto pricteni zacne odecitat.<br>
<br>
Nemate nekdo nejaky vyzkouseny algoritmus? (Nemluvim o kodu, protoze nepredpokladam, ze by tu STM32 pod MikroE Pascalem krome me jeste nekdo pouzival) Idealne nejak zdokumentovany, aby to pochopil i idiot?<br>
<br>
S titmtez enkoderem na Arduinu (ovsem s pouzitim cizi knihovny - ze ktrere to ovsem nejsem schopen pochopit a opsat - tusim, ze je to ona: <a href="http://www.buxtronix.net/2011/10/rotary-encoders-done-properly.html" rel="noreferrer" target="_blank">http://www.buxtronix.net/2011/10/rotary-encoders-done-properly.html</a>) nemam problem, co se tyka generovani falesnych pulsu ani rychlosti toceni - evidentne to tedy odfiltrovat jde... V te zminene knihovne autor pozuiva nejake stavove tabulky, ale evidentne nejsem "technologicky na vysi" a nechapu to (pravda je, ze uz jsem taky tri dny prakticky nespal).<br>
<br>
Diky za pomoc.<span class="HOEnZb"><font color="#888888"><br>
<br>
Pavel Kutina <br>
_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</font></span></blockquote></div><br></div>