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, konfigurace A/D převodníku
Jdi na stránku 1, 2, 3, 4  Další
 
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
fikes



Založen: Nov 15, 2005
Příspěvky: 70
Bydliště: Trutnov

PříspěvekZaslal: po březen 26 2012, 20:22    Předmět: PIC16F676, konfigurace A/D převodníku Citovat

Prosím o radu, podle seriálu v Praktické elektronice zkouším měření analogových hodnot, konkrétně podle dílu 44, tab. 56. Tam je konfigurace pro 16F88, upravil jsem nastavení portů na PORTA a PORTC a nastavení ADCON0 a ADCON1 pro 16F676. Přesto mi nejde A/D převodník, nevíte, co je třeba ještě upravit? Když pošlu hodnotu z registru W, místo vyčtení z ADRESL či ADRESH, tak mi ostatní procedutry běžej v pořádku. Jak je možno nahradit příkaz SLEEP, jak případně nastavit SAMPLE_DELAY, viz např. v tab 53, 54, 55. Děkuji za radu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: po březen 26 2012, 21:17    Předmět: Citovat

Vlož tu svoje dielo, inak nie je o čom radiť.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
fikes



Založen: Nov 15, 2005
Příspěvky: 70
Bydliště: Trutnov

PříspěvekZaslal: po březen 26 2012, 22:06    Předmět: Citovat

Takto je to přepsáno z časopisu Praktická elektronika, to co je tučně je pozměněno dle rady v předchozích článcích a už to funguje. Na PORTC jsou zapojeny LEDky a posílám na ně hodnotu pouze z ADRESL. Jde pouze o zkušební zapojení a prográmek. Ted když už to převádí, začnu implementovat do jiného programu, s implementací nastavení Uref a měření dvou analogových hodnot napětí a proudu + teplota z čidla DS18B20 (to už funguje). Snad už se bude dařit.

list p=16f676 ; list directive to define processor
#include <p16F676.inc> ; processor specific variable definitions

ORG 0x2007 ; processor reset vector
__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
;
;***** VARIABLE DEFINITIONS
;-----nastavení pro inicializaci a zobrazení na displeji-------------------------

RAM equ 0x20
d1 equ 0x21
d2 equ 0x22
; -------------------------------------------------------------------------------
org 0x000 ; zacatek programu
;-----------------------
INIT CLRF PORTA
CLRF PORTC
BSF STATUS,RP0
MOVLW b'00000001'
MOVWF ANSEL
MOVWF TRISA
CLRF TRISC
;
MOVLW b'11010000'
MOVWF OPTION_REG
;
BSF PIE1,ADIE
BSF INTCON,PEIE
MOVLW b'00010000'
MOVWF ADCON1
BCF STATUS,RP0
MOVLW b'10000001'
MOVWF ADCON0
;-------------------------
MAIN BSF ADCON0,GO
BTFSC ADCON0,GO
GOTO $-1
MOVF ADRESL,W
BCF STATUS,RP0
MOVWF PORTC
CALL DELAY
GOTO MAIN
;------------------------
DELAY MOVLW 0x25
MOVWF d2
DELAY1 DECFSZ d1,f
GOTO DELAY1
DECFSZ d2,f
GOTO DELAY1
RETURN
;------------------------
END
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: po březen 26 2012, 22:48    Předmět: Citovat

pred MOVF ADRESL,W ti chýba BSF STATUS,RP0

Ešte pred MAIN by som dal CALL DELAY (stačí 20us)

"Podle seriálu v Praktické elektronice" nepoznám. Ak sa jedná o kontrolery fy Microchip, tak info čerpám z ich stránok a najmä z dokumentácie ku konkrétnemu typu a info k prekladaču. V tomto prípade MPASM.
Spravidla je to postačujúce.

Poznámka:
použi "code" a "code*" ...potom je zdrojový text čitateľný ako v bežnom editore
kód:

;--------------
MAIN:
           CALL  DELAY
           ;..........
           RETURN
;--------

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
fikes



Založen: Nov 15, 2005
Příspěvky: 70
Bydliště: Trutnov

PříspěvekZaslal: st březen 28 2012, 20:11    Předmět: Citovat

Děkuji za radu, už měřím dvě hodnoty napětí se stejným potenciálem. Chodí to pěkně. Ted ještě řeším jednu věc a to, že bych vypočítával ze dvou naměřených hodnot třetí a otázka je, zda se instrukcí MOVF f,d smaže hodnota z registru f, nebo pouze přenese do jiného registru f či W a v tom původním zůstane zachována? Např. pro výpočet další procedurou?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
forbidden



Založen: Feb 14, 2005
Příspěvky: 8990
Bydliště: Brno (JN89GF)

PříspěvekZaslal: st březen 28 2012, 20:18    Předmět: Citovat

Zkopíruje se, v původním registru zůstane.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
fikes



Založen: Nov 15, 2005
Příspěvky: 70
Bydliště: Trutnov

PříspěvekZaslal: st březen 28 2012, 20:32    Předmět: Citovat

Díky, jdu to zkusit naprogramovat.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
fikes



Založen: Nov 15, 2005
Příspěvky: 70
Bydliště: Trutnov

PříspěvekZaslal: ne duben 01 2012, 21:10    Předmět: Citovat

Předělal jsem program pro 16F88 z důvodu potřeby více vstupů. MPLAB SIM hlásí tyto hlášky:
ADC-W0001: Tad time is less than 1.60us
ADC-W0008: No stimulus file attached to ADRESL for A/D.
Nevíte co je příčinou hlášky ADC-W0008? Jak by měla vypadat časová procedura pro zpoždění, když používám krystal 4MHz a případně i nastavení ADCON1 a ADCON1?
Mám to takto:
MOVLW b'10100000'
MOVWF ADCON1
MOVLW b'01000001'
MOVWF ADCON0

Děkuji za radu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
forbidden



Založen: Feb 14, 2005
Příspěvky: 8990
Bydliště: Brno (JN89GF)

PříspěvekZaslal: ne duben 01 2012, 21:33    Předmět: Citovat

Hodnoty Tad pro různý taktovací frekvence jsou v datasheetu. Nastav to podle něj.
A pokud používáš ten simulátor, tak asi musíš nějak simulovat vstupní hodnoty pro ten AD převodník. Tohle jsem ještě nepotřeboval, tak nevím jak přesně to nastavit.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
MiloPS3



Založen: Aug 07, 2010
Příspěvky: 262

PříspěvekZaslal: po duben 02 2012, 12:17    Předmět: Citovat

toto by mel bejt funkcni program od uzivatele z jineho fora,
Tad time is less than 1.60us / co to asi znamena ?
neuskodil by tvuj komplet kod



AD.asm
 Komentář:

Stáhnout
 Soubor:  AD.asm
 Velikost:  1.62 kB
 Staženo:  167 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: po duben 02 2012, 19:18    Předmět: Citovat

K "Tad"...
Ak sú dobre nastavené ADCON0 a 1 treba v SIMe nastaviť frekvenciu. Asi bude nastavená oveľa vyššia (môže byť aj 20 000kHz).
Niektoré periférie sa zložitejšie simulujú. Niektoré cykly sú otravne dlhé.
V takýchto prípadoch v programe použijem "podmienený preklad" pri ladení.
kód:

      if LADENIE == 1
; časť programu pre ladenie
...
...
    endif
   

alebo konštrukciu if.....else....endif
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
fikes



Založen: Nov 15, 2005
Příspěvky: 70
Bydliště: Trutnov

PříspěvekZaslal: čt duben 05 2012, 19:51    Předmět: Citovat

Tak jsem provedl doprogramování celého programu, tak jak si myslím, že by to mělo fungovat. Mám to v *.asm pro 16F88. Měřím čtyři analogové hodnoty a jeden vstup pro čidlo DS18B20. Analogové hodnoty mě to ve zkušebním provedení měřilo, vyčítání z čidla fungovalo s 16F676, s 16F88 to nejde. Zhlédl by mi někdo výpis programu? Smyčka v MPLAB běhá. Bohužel asi umřel PIC tak nemohu otestovat, nevím kdy a proč, najednou ho programátor odmítá, identifikuje ho, ale při čtení, mazání a zápisu nahlásí chybu Vdd.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
strg



Založen: Oct 14, 2004
Příspěvky: 26

PříspěvekZaslal: pá duben 06 2012, 19:09    Předmět: Citovat

Daj sem schému ako to máš zapojené pri programovaní a tiež aj program čo tam láduješ. Ak programátor správne detekuje ten PIC, tak mu pravdepodobne nič nieje.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
fikes



Založen: Nov 15, 2005
Příspěvky: 70
Bydliště: Trutnov

PříspěvekZaslal: so duben 07 2012, 11:26    Předmět: Citovat

PIC16F88 programuji mimo zapojení přímo v programátoru PICkit2, ostaní PICy jdou číst a zapisovat v pohodě. Co se týká zapojení obvodu s PICem, tam mám popsány piny přímo v asm souboru. Asi jsem udělal někde chybu, v jednom kroku jsem si všiml, že stále dokola spouštím čtení AD převodníku, tak jestli se to nějak nepřetížilo a neodešel tím. nevím. PIC koupím novej, spíše bych potřeboval zhlédnout vypis programu a najít chybku pro vyčítání z čidlla DS18B20, s 16F676 a 16F628 to šlo a s 16F88 to nejde, procedury jsou stejné, snad, spíše to bude v přiřazení registrů či co. Možná jiné časové prodlevy (délky pulzů apod.), nevím.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
strg



Založen: Oct 14, 2004
Příspěvky: 26

PříspěvekZaslal: so duben 07 2012, 15:41    Předmět: Citovat

Možno by to aj niekto "zhlédnul" keby si to už konečne sem dal. Surprised)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
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
Jdi na stránku 1, 2, 3, 4  Další
Strana 1 z 4

 
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.15 sekund