[elektro] Triac gyujtas procival
Moczik Gabor
pm_levlista at progzmaster.hu
Tue Feb 5 20:13:39 CET 2008
Miko, Imre wrote:
> Kiszamolod minden csatornara mikor kell ki es bekapcsolni.
> Sorbarendezed egy mask-al egyut, ami azt adja meg melyik csatornat akarod birizgalni.
> pl 0-as csatorna 000000001, 1-es csatorna 00000010, stb.
>
> Kiszurod az azonos idoket, ekkor a mask-okat osszevagyolod. Es a ket azonos ideju adatbol egyet csinalsz.
> Igy lesz egy tombod sorrendben egy mask-kal.
>
> Varsz a kovetkezo tarolt ideig, xor-olod a kimenetet a mask-kal.
> Ezt ismetled amig van adatod.
>
> Mindezt ugy erdemes, hogy egy timer megszakitasban megy az xor,
> es ott mindig a kovetkezo valtasig tarto idore allitod be a timert.
> Igy a foprgramban mehet a szamitgatas meg minden mas, a IT meg kinyomja az adatokat.
>
> A IT-nek az adatokat egy ringbufferbe adnad at, ahol mar csak a kovetkezo valtasig az ido-t meg a mask-ot
> tarolnad parban. Az IT egyszeru es gyors, foprogi meg barmit csinalhat kozben.
Kerek perec igy irtam meg elsokent ahogy most ezt leirtad.
Csak sajna kisse bonyolult frissiteni a tombot az uj adatokkal, mert ha
az uj adatok szerint sorbarendezek, akkor kozben meg kene allitani az
IT-t, vagy megvarni meg az IT vegez egy (fel)periodussal es akkor
frissiteni. Kell egy segedtomb amibe kiszamolom elore az idoket meg a
gate maszkokat, hogy a tomb frissitese a segedtombbol mar gyorsan menjen...
Arrol ne is beszeljunk, hogy a foprogramban a szamitas eleg komplex,
idoigenyes.
Most vegulis ugy lett, hogy az IT megold mindent.
A nullatmenet utan megnezi hogy mennyi ido volt az elozo ota (igazabol 8
minta gordulo atlagat veszi). Ebbol kivon egy fix erteket (biztonsagi
tartalek), majd elosztja 256-tal (->shift 8). Ezzel egy felperiodus 256
reszre lett felosztva. Egy masik timer ezzel a ciklusidovel general
IT-ket ami novel egy szamlalot. Ha a szamlalo erteke egyezik a csatorna
ertekevel akkor GATE=1, minden mas esetben GATE=0. Ezzel egycsapasra meg
van oldva hogy a gate pontosan 1/256 felperiodus idore van aktivalva.
PIC-en irom, megprobaltam kiaknazni a CCP modul azon lehetoseget hogy
megszakitast general ha a TMR1 megegyezik a beallitott ertekkel, de
valamiert ez baromira nem akar nekem mukodni, ugyhogy most 2 timer oldja
meg a problemat.
--
((( Móczik Gábor )))--((( E~Mail: pm-junk ~@~ progzmaster ~.~ hu )))
((( Skype: moczik )))
More information about the Elektro
mailing list