[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