[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