[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