Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

PIC16F676 a jeho A/D převodník

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
bohuš
Neregistrovaný





PříspěvekZaslal: ne únor 25 2007, 13:32    Předmět: PIC16F676 a jeho A/D převodník Citovat

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


PIC16F676.JPG
 Komentář:

Stáhnout
 Soubor:  PIC16F676.JPG
 Velikost:  29.42 kB
 Staženo:  175 krát

Návrat nahoru
jankop
Neregistrovaný





PříspěvekZaslal: ne únor 25 2007, 16:32    Předmět: Citovat

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.
Návrat nahoru
bohuš
Neregistrovaný





PříspěvekZaslal: ne únor 25 2007, 18:06    Předmět: Citovat

Nastaveno, ale neúspěšně. Stále nechce převádět. Už jsem to vyzkoušel na dvou kusech PICů, tak předpokládám stále chybu někde v programu Cry
Návrat nahoru
jankop
Neregistrovaný





PříspěvekZaslal: ne únor 25 2007, 19:22    Předmět: Citovat

> 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ý.
Návrat nahoru
bohuš
Neregistrovaný





PříspěvekZaslal: ne únor 25 2007, 20:02    Předmět: Citovat

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

movlw b'11010000' ; PULL-UPy OFF, preddelic=1:32 pripojen k TMR0
movwf OPTION_REG ; f:4 :64 :156 = 100,1Hz (100us)

movlw b'00010000'
movwf ADCON1

bcf STATUS,RP0 ; nastavení BANKY 0
; ------------------------
movlw b'10000001' ;
movwf ADCON0


Převod :

bsf GO_AD
btfsc GO_AD
goto $-1
movf ADRESH,F
andlw 0xFF ; zamaskování bitů
movwf op_A+1
bsf STATUS,RP0
movf ADRESL,F
bcf STATUS,RP0
Návrat nahoru
jankop
Neregistrovaný





PříspěvekZaslal: ne únor 25 2007, 20:22    Předmět: Citovat

#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
Návrat nahoru
tatous



Založen: Sep 06, 2004
Příspěvky: 122
Bydliště: Střední Čechy

PříspěvekZaslal: ne únor 25 2007, 20:53    Předmět: Citovat

prevod by Ti mel takle chodit

; ADC Start
ADC
BSF GO_AD ; ADC start
ADCgo
BTFSC GO_AD ; je 0?
GOTO ADCgo ; ne zpět
movfw ADRESH ; ano načti a
movwf op_A+1 ; ulož do reg
bsf STATUS,RP0 ; Bank1
movfw ADRESL ; načti a
bcf STATUS,RP0 ; Bank0
movwf op_A+2 ; ulož do reg
return
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
jankop
Neregistrovaný





PříspěvekZaslal: ne únor 25 2007, 21:03    Předmět: Citovat

>movfw ADRESH ; ano načti a<
Tož tohle můj assembler nezná
Návrat nahoru
bohuš
Neregistrovaný





PříspěvekZaslal: ne únor 25 2007, 21:49    Předmět: Citovat

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"
Návrat nahoru
tatous



Založen: Sep 06, 2004
Příspěvky: 122
Bydliště: Střední Čechy

PříspěvekZaslal: po únor 26 2007, 5:37    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
jankop
Neregistrovaný





PříspěvekZaslal: po únor 26 2007, 8:52    Předmět: Citovat

Ano, máš pravdu, tato pseudoinstrukce je v základním souboru MPLABu.
Nevěděl jsem to.
Návrat nahoru
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
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

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

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.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.19 sekund