[elektro] pic ad
Bodosi Balázs
bbalazs at phys.szote.u-szeged.hu
Thu May 27 10:10:48 CEST 2010
Ja, meg valami:
Ha tul gyors a mintavetel, tehat a foprogi ket lekezelese kozott is beuthet
AD interrupt, akkor ping-pong puffert erdemes hasznalni.
Ez azt jelenti, hogy mondjuk 32 adatig az elso pufferbe megy megszakitasban.
Utana atvalt a masodik pufferre, de ekozben jelzi a foprogramnak, hogy el
kellene vinni az adatokat az ELSObol (ekozben mar tolti a MASODIK puffert a
megszakitas ezalatt). A foprogi elviszi es jelzi, hogy lehet ujra az elso
puffert hasznalni. Persze itt a puffer merete fugg az elvitel sebessegetol,
illetve erdemes teszteles alatt egy (piros) leddel jelezni, ha mindket
puffer megtelt es megsem tudtuk addig elkuldeni, tehat adatvesztes lephet
fel.
----- Original Message -----
From: "Bodosi Balázs" <bbalazs at phys.szote.u-szeged.hu>
To: <elektro at tesla.hu>
Sent: Thursday, May 27, 2010 10:04 AM
Subject: Re: [elektro] pic ad
Igazabol a PIC-ben onallo modulok vannak, amiknek a szinkronitasat a
vezerlobitek biztositjak.
Tehat te megmondod az AD-nek, hogy melyik csatornat akarod es inditod - GO.
A foprogid megy tovabb.
Aztan amikor o keszen van, akkor torli a GO/DONE bitet, ahol ertelemszeruen
most a DONE funkcio el :)
Ha kered, akkor viszont ezen felul ad interruptot. Az interrupt ugye ennel a
procinal egy prioritasu, a megszakitas elejen neked kell eldonteni az
interrupt bitek allapota alapjan, hogy miert volt a megszakitas (pl.
timerek, kulso esemeny, AD, stb). Utana a megszakitason belul lekezeled
(torlod az ADIE jelzobitet), kiolvasod az AD-t, atteszed valami pufferbe az
erteket, noveled a puffermutatot, beallitod az uj AD parametereket es GO
megint. Utana visszatersz az interruptbol a foprogiba.
A foprogi amikor raer, kiolvassa a puffermutatot, ha az eler egy bizonyos
erteket, akkor elviszed az adatokat es elkuldod vagy feldolgozod. Legalabbis
szerintem igy a legegyszerubb es leggyorsabb.
Ha pl annyi a feladat, hogy egy homerot kell figyelni, ott lehet, hogy eleg
a NOP-os ciklus vagy loop-os figyeles, de semmikeppen nem elegans.
Az AD megszakítás egy érdekes kérdés.
Megszakítás. Mit csinálok vele?
Kiolvasom és jelzem a főprogramnak, hogy megtörtént a kiolvasás?
Ha nem használok IT-t, akkor az történik, hogy az ADIF bittel jelzem a
főprogramnak, hogy a konverzió kész.
Majd a főprogram a neki alkalmas időben kiolvassa és feldolgozza.
AD megszakítást én csak akkor használnék, ha nagyon ki van élezve az
időzítésem és minél sebesebben kell az AD-t használnom.
Bár, még akkor sem kötelező.
A microchip azért alkotott egy pár érdekes IT forrást.
Nekem például még nem sikerült megfejtenem a hardware I2C mechanizmusát. :)
Bodosi Balázs <bbalazs at phys.szote.u-szeged.hu> írta (2010. május 27. 8:00):
> Ez nem tud olyat,. hogy megszakitast ad az A/D, ha keszen van? Mert az a
> legegyszerubb...
> Masreszt szerintem a direkt problema az, hogy az Acquisition time tul
> rovid.
> Eloszor vedd az orajelet minimumra az acq timeot pedig maximumra.
>
>
> -----------------------------------------
> elektro[-flame|-etc]
>
-----------------------------------------
elektro[-flame|-etc]
__________ ESET NOD32 Antivirus - Vírusdefiníciós adatbázis: 5145 (20100525)
__________
Az üzenetet az ESET NOD32 Antivirus ellenőrizte.
http://www.eset.hu
-----------------------------------------
elektro[-flame|-etc]
__________ ESET NOD32 Antivirus - Vírusdefiníciós adatbázis: 5148 (20100526)
__________
Az üzenetet az ESET NOD32 Antivirus ellenőrizte.
http://www.eset.hu
More information about the Elektro
mailing list