[elektro] potmeter encoder konverter

Moczik Gabor pm_levlista at progzmaster.hu
Sat Dec 18 15:34:47 CET 2010


hapci wrote:
> lenne a sima idozítés periódusonként. Ami még lényeges hogy az AB jel 
> feldolgozásakor így elveszteném a 4xes felbontást ha ki szeretném használni.

Nincs 4-szeres felbontás. Eleve úgy kell csinálni, hogy egy A/D 
érték-változás a GRAY kód következő értékét adja, tehát egy digitális 
változást eredményezzen. Nem kell lejátszani egy periódust a jelekkel, 
csak bonyolítaná a dolgot.

Zajszűrés nélkül annyi, C-ben, hogy:

const char bin2gray_tab[4] = { 0, 1, 3, 2 };

uint16_t  ad_prev, ad_curr;


ad_curr = get_adc_sample();

if (ad_curr > ad_prev) {
     for (; ad_prev < ad_curr; ad_prev++) {
         out = bin2gray_tab[ad_prev & 3];
     }
} else {
     for (; ad_prev > ad_curr; ad_prev--) {
         out = bin2gray_tab[ad_prev & 3];
     }
}

---------
a ciklusban lehet limitálni a sebességet, ha kell.
Ha nem érted a C-t, majd valaki átfordítja pseudo-nyelvre. :-)

-- 
((( Móczik Gábor  )))--((( e|mail: pm-01 |@| progzmaster |.| hu )))
((( S.k.y.p.e.: moczik )))



More information about the Elektro mailing list