inkrementalis jelado feldolgozas
Tauri
elektrolista at pdg.hu
Fri Feb 10 07:46:25 CET 2006
Hi Lista
2006. február 9., 23:16:17, írtad:
Szia Arnold
> Illetve az nA, nB jeleket is fel fogom dolgozni...
Ezek a jelek ha rendesen csinalod akkor nincsenek is.
A-B-C jel van.
A jeladot rendesen fogadnod kell egy diferencialt vevovel (pl 26ls32)
ebbe a jeladorol bemegy az "A" es "B" jel valamint a negaltjai ebbol
csinal egy jelet.
http://www.pdg.hu/letolt.php?fid=encoder.gif
Kiertekeles:
3 féle van.
"1-szeres" itt csak az "A" felfuto elenel nezed a B allapotat. Ha B
magas akkor elore ha alacsony akkor hatra szamolsz.
"2-szeres" itt "A" es "B" felfuto elenel nezed a a parjat
"4-szeres" itt "A" es "B" minden valtozasara szamolsz
A jeladokon az "1-szeres" impulzus szam van megadva.
amit en adtam neked az 2500-as tehat neked 4-szeres kiertekelesnel
10000 impulzussal kell szamolnod.
Es persze a fordulat szamot ennyivel kell szoroznod es ebbol derul ki
eleg gyors-e a procis feldolgozas. /szerintem egy cpld jobb volna
amugy is biztoss kell valami logika a panelra
Visszaterve a negalt jelekre azokat a diferencialt vevovel
parhuzamossan ossze kell hasonlitani.
"A" nem lehet egyenlo "A negalt"-al. Ebbol tudod ha szar a jelado
illetve kabel szakadasod van.
De itt fontos hogy pillanatokra lesz egyforma a jel a valtasoknal, tehat nem szabad azonal tiltani vagy
sw-bol vagy hw-bol kell egy kis varakozast adni es csak ha x ideig fen
all a hiba akkor tiltani.
Ez itt egy mukodo vhdl 4-szeres kiertekelesre:
sync: process(eclk)
begin
if eclk'event and eclk = '1' then
sync_a <= enc1_a;
sync_b <= enc1_b;
old_a <= sync_a;
old_b <= sync_b;
end if;
end process;
count: process(eclk,clear)
begin
if clear = '0' then
pos <= (others => '0');
elsif eclk'event and eclk = '1' then
if ((old_a = old_b) and (old_a /= sync_a)) or ((old_a /= old_b) and (old_b /= sync_b)) then
pos <= pos -1;
end if;
if ((old_a = old_b) and (old_b /= sync_b)) or ((old_a /= old_b) and (old_a /= sync_a)) then
pos <= pos +1;
end if;
end if;
end process;
More information about the Elektro
mailing list