[elektro] pic ad
Bodosi Balázs
bbalazs at phys.szote.u-szeged.hu
Thu May 27 10:04:42 CEST 2010
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
More information about the Elektro
mailing list