[elektro] dsPIC3012 AD leakadás
Horvath Zsolt
hozso_001 at freemail.hu
Wed Sep 3 13:19:41 CEST 2008
Sziasztok!
Hátha találkozott már valaki ilyennel.
HD44780-at használom, a PORTB 0-5 lábaira kötve.
Tökéletesen működik. A PORTB 6,7 lábán analóg funkciókat
szeretnék használni. A nagykönyv szerint beállítom a TRISB-t,
az ADCON-okat, az ADPCFG-ot stb. A szimulátor szerint
tökéletesen működik minden. A valóságban az AD kiakad.
A program úgy működik, hogy a főprogram folyamatosan,
egymás után hívogatja az AD kezelő és az LCD kezelő rutinokat.
Az LCD rutin mindig frissíti az LCD-t, tehát a TRISB-t állítja (
figyelem a busy-t ), de arra figyeltem, hogy a 6,7 bitet ne bántsam.
Az AD rutin az AD_DONE bitet figyeli. Ha az értéke 0, akkor
azonnal kiugrik a rutinból, nem csinál semmi mást. Ha az értéke 1, akkor
kiolvassa az adatot, átváltja a csatornát stb. Ha megvan a kért mennyiségű
minta, akkor azokat leátlagolja stb.
A szimulátorban tökéletesen működik, a valóságban meg sosem billen
be a DONE bit. ( Ha nem ugrok vissza az AD rutinból, amikor a DONE
0, hanem várok, amíg 1-re vált, akkor megáll a kijelző frissítése, ebből
gondolom, hogy a DONE nem vált egyre. )
Csináltam egy olyan programrészletet, ami ugyan azokat a
programrészleteket
használja, de a rutinon belül megcsinál két mérést ( csatornaváltással )
és mindig
ki-bekapcsolja az AD modult és újra bekonfigolja az ADCON-okat, az ADCFG-t
stb. Ez működik tökéletesen.
Van valakinek tippje, hogy mitől akad le az AD?
( Az adatlapban olvastam, hogy bizonyos biteket nem lehet állítani az AD
bekapcsolt
állapotában, azokra odafigyeltem. )
Üdv.: Horváth Zsolt
More information about the Elektro
mailing list