AD prevodnik – Mikrokontroléry – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

AD prevodnik – Mikrokontroléry – Fórum – Programujte.comAD prevodnik – Mikrokontroléry – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
jobes
~ Anonymní uživatel
4 příspěvky
10. 7. 2009   #1
-
0
-

dobry den ako mam nastavit registre (DDRA, PORTA, ADMUX, ADCSRA) ked chcem s PA0 co najpresnejsi prevod? budem merat odpor.
a este ako dlho to bude trvat (milisekundy)?

diki

Nahlásit jako SPAM
IP: 87.244.196.–
Reklama
Reklama
KIIV+42
God of flame
10. 7. 2009   #2
-
0
-

DDRA.0 chces jako vstup, na PORTB.0 nechces mit zaplej pull-up, ADMUX nastavis tak aby se to bralo z PA0, pak nastavis jeste deleni taktu aby se zlepsila presnost tj. asi /128, zapnes preruseni, nastavis jak chces mit zarovnan vysledek, nastavis free runing mod, zapnes ADC, a spustis konverzi... nic slozityho :D
vse je popsany v datasheetu tveho AVR

EDIT: jeste sem zapomel ze musis nastavit referenci - nejlepe nejakou precizni externi referenci - tj nastavit ze to ma brat z AREF.
Interni reference neni obvykle moc presna..

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
jobes
~ Anonymní uživatel
4 příspěvky
10. 7. 2009   #3
-
0
-

diki... ale to prerusenie nebude mozne pretoze mi spadne komunikacia cez usb (V-USB).

takze DDRA=0;
PORTA=0;
ked meriam odpor tak neni jedno odkial berem referenciu? nech je natie hocijake odpor sa nemeni iba prud a ten priamoumerne od odporu takze by to malo ukazovat odpor spravne stale, nie?

takze staci nastavit ADMUX a ADCSRA a uz to bude konvertovat?

diki

Nahlásit jako SPAM
IP: 87.244.196.–
KIIV+42
God of flame
10. 7. 2009   #4
-
0
-

nuz se da udelat i bez preruseni..
presnou referenci potrebujes protoze pak nameris ze mas treba 453/1024 dilku .. ale kolik je vlastne jeden dilek?
no kdyz bys mel dost predne napajeni treba 5V tak by se to dalo vzit jako 5/1024 ...

klidne muzes dat free running mod bez preruseni a jednou za cas nacist proste ADC .. neni potreba to mit nejak presne samplovany

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
jobes
~ Anonymní uživatel
4 příspěvky
11. 7. 2009   #5
-
0
-

takze nastavil som to takto:
DDRA=0;
PORTA=0;
ADMUX=0;
ADCSRA=0xC0;
cakal som 5 milisekund
nacital som udaje:

ADCSRA==0x90
ADCL==ff;
ADCH==3;(tj 1023)
o 3 sekundy sa cely cyklus opakoval
zapojenie atmelu: na VCC som pripojil AREF a AVCC. PA0 som pripojil na VCC potom na GND ale stale som mal 1023 na vystupe (pri zapojeni na GND som cakal 0)... dokonca po odpojeni AREF od VCC mi to robilo to iste (stale som mal 1023 v ADCL a ADCH)

co som zle nastavil?
diki

Nahlásit jako SPAM
IP: 87.244.196.–
KIIV+42
God of flame
11. 7. 2009   #6
-
0
-

To jobes :
ja s prerusenim pouzil toto nastaveni:
DDRA = 254; // jen jeden vstup - mene to pak zere pokud by se nezaply pull-upy
PORTA = 254; // log 1 na vystupy + nezapinat pullup na PA0

ADMUX = 0x40; // 01000000 REFS0:1 = 1 (reference z Vcc) ; ADLAR = 0 (lepsi pro C); ADMUX = 0
ADCSRA = 0xEE; // 11101110 ADEN=1, ADCS=, ADATE=1 (auto trigger), ADIE=1(pouzivam preruseni - pro tebe 0), ADPS = 64 (8MHz takt -> pak je trochu presnejsi vysledek)

pro tebe by melo stacit neco jako ADMUX = 0x00 (nebo pro experimenty pouzit tu interni referenci ADMUX=0xC0 )
a dale ADCSRA = 0xE6

proste aby to neustale merilo aktualni hodnotu .. ty pak jen jednou za cas nactes z ADC...


jo ten autotrigger se da jeste donastavit pomoci SFIOR ale v defaultni hodnote je to prave kontinualni mereni (free running)


btw: je to pro ATMEGA16



EDIT: jeste sem si tvuj prispevek precetl znovu a uz vim cim to je.. si nameril 1024 hned poprve protoze si mel pripojene PA0 na VCC, jenze si nedal ten autotrigger takze ta hodnota uz tam proste zustala ... kdyztak nastaveni jak sem poslal :D

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
jobes
~ Anonymní uživatel
4 příspěvky
11. 7. 2009   #7
-
0
-

diki funguje je super :) sa to nesutali na hodnote ked dam konstantny odpor ale skace to okolo jednej hodnoty, ale to nevadi, taka nepresnost je OK

velmi pekne diki

Nahlásit jako SPAM
IP: 87.244.196.–
KIIV+42
God of flame
11. 7. 2009   #8
-
0
-

To jobes : sem resil tak ze sem delal prumer .. pak to vychazelo kvalitneji

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

Prevodnik — založil Petr

Převodník měn — založil Bzikkk

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý