Zaslal: ne únor 25 2007, 13:32 Předmět: PIC16F676 a jeho A/D převodník
Mám opět problém s tímto procesorem a to s nastavením A/D převodníku. Podle datasheetu jsou nastaveny registry správně, ale bohužel stále A/D nefunguje. Analogový vstup je na PA0, referenční napětí je jako Vdd. Prosím o radu s odhalením problému. Děkuji
Pro interní referenci je v příkladu chybně nastaven bit ADCON0 <6> VCFG
Pro spuštění A/D převodu je třeba aktivovat bit ADCON0 <1> GO/DONE (bsf ADCON0,GO), který je pak vhodné testovat na ukončení převodu.
> Podle datasheetu jsou nastaveny registry správně< Tohle je vcelku dobrý vtip.
Jinak ti nemohu pomoci, protože když pošleš obrázek kousku programu, kde není ani start převodu, ani test jeho dokončení, tak s tím nic nenadělám. Mimochodem, kde ses naučil prezentovat assembler formou JPG? To je fakt hodně ujetý.
No tak sorry za pěknej obrázek. Takhle to bude tedy asi lepší. Převod je odstartován a čeká se na dokončení. Po převodu by se měla hodnota registrů ADRESH a ADRESL dále zpracovávat.
#define GO_AD ADCON0,1
INIT
bcf STATUS,RP0
movlw 0x01
movwf PORTA ; přednastavení PORTu A
movlw 0x07 ; nastaveni PA 0-2 jako I/O
movwf CMCON
clrf PORTC ; přednastavení PORTu B
; ------------------------
bsf STATUS,RP0 ; nastavení BANKY 1
movlw b'000101' ; portA 2-0, 2vstupy, 1vystupy
movwf TRISA
movlw b'000001' ; PA0 jako analog
movwf ANSEL
movlw b'000000' ; portB 7-0, 0vstupy, 8vystupy
movwf TRISC
#define GO_AD ADCON0,1 ; použij raději #include <P16F676.INC> processor specific variable definitions
Použitím standardních parametrů si budeme lépe rozumnět.
bsf GO_AD
btfsc GO_AD
goto $-1
movf ADRESH,F ; Tak tohle asi ne ??? !!!
andlw 0xFF ; zamaskování bitů
movwf op_A+1
bsf STATUS,RP0
movf ADRESL,F ; A tohle taky ne !!!
bcf STATUS,RP0
No super, už to vidím <movf ADRESH,F>, to je ale ptákovina. Děkuji všem za příspěvky, už to chodí. Tak dlouho jsem hledal chybu v nastavení registrů ADCON0, ADCON1 a ANSEL až jsem úplně přehlídl takovou "MALIČKOST"
Založen: Sep 06, 2004 Příspěvky: 122 Bydliště: Střední Čechy
Zaslal: po únor 26 2007, 5:37 Předmět:
pro jankop :
patrně používáš jiný překladač, MPLab přeložit pseudoinstrukce umí. >movfw ADRESH<
je pseudoinstrukce k
>movf ADRESH,w <
Velmi dobře je to popsáno v KTE 8/2002 v "Miniškole programování PIC"
do pana M. Hrona.
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.