www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Atmega32 in AD pretvornik

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
ciko
Član
Član



Pridružen-a: Čet 27 Mar 2008 11:41
Prispevkov: 126
Aktiv.: 0.60
Kraj: Novo mesto

PrispevekObjavljeno: Sob Maj 22, 2010 7:00 pm    Naslov sporočila:  Atmega32 in AD pretvornik Odgovori s citatom

Pozdravljeni,

težave mi dela AD pretvornik na Atmega32. Tej težavi bi jaz rekel fatamorgana.

Želim uporabljati vseh 10 bitov AD pretvornika, vendar mi nikakor ne uspe.

Ni problema branje iz enega registra ADCL oz ADCH, tako leva kot desna poravnava. Deluje super. Tako dobim pravo 8 bitno vrednost.

Ko pa želim dobi 10 bitno vrednost, pa AD pretvornik neha delovati. Vedno izpiše isto vrednost kot jo ima pri prvi pretvorbi.

Branje sem poizkusil:
Koda:

unsigned int tmp1;
   ADMUX=adc_input | (0x20 & 0xff);
   _delay_us(100);
   ADCSRA|=0x40;
   while ((ADCSRA & 0x10)==0);
   ADCSRA|=0x10;

   tmp1 = ADCW;
   tmp1 &= 0x3FF;


oziroma
Koda:

unsigned int tmp1;
   ADMUX=adc_input | (0x20 & 0xff);
   _delay_us(100);
   ADCSRA|=0x40;
   while ((ADCSRA & 0x10)==0);
   ADCSRA|=0x10;

   tmp1 = (((unsigned int)ADCH)<<8)&0xFF00 + ((unsigned int)ADCL) & 0xFF;

Vedno isti problem, ne glede na katerem ADju poizkusim.


Ali je imel kdo podobne težave pri branju 10 bitne vrednosti?

Uporabljam AVR Studio in GCC AVR compiler.

Hvala za odgovore,
Lp,
Peter
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tozir
Član
Član



Pridružen-a: Pon 17 Mar 2008 19:10
Prispevkov: 187
Aktiv.: 0.89
Kraj: Celje

PrispevekObjavljeno: Sob Maj 22, 2010 7:34 pm    Naslov sporočila:   Odgovori s citatom

LP

Se opravičujem ker sem skoraj sunil temo, ampak se moje vprašanje tudi tiče Atmege32 in AD pretvornika.
Namreč izdelal se tipkovnico po tejle strani:
http://www.avr-asm-tutorial.net/avr_en/keypad/keyboard.html#io
Težava je bila v tem da so upori zelo mali in prebrane vrednosti zelo varirajo z dejanskim pritiskom na tipko. Zato sem se odločil spremeniti vrednosti za faktor 10. Sedaj se pojavlja težava branja, saj zadnje štiri tipke enako bere (1023 pri 10 bitnem načinu). Je problem v tem da so upori preveliki za notranjo upornost AD vhoda? Namreč v datasheetu piše da mora biti izhodna impedanca vira ki ga merimo manjša ali enaka 10k Omega . Je možno to rešiti z preprostim napetostnim sledilnikom?

_________________
http://www.rielektronika.comule.com/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
ciko
Član
Član



Pridružen-a: Čet 27 Mar 2008 11:41
Prispevkov: 126
Aktiv.: 0.60
Kraj: Novo mesto

PrispevekObjavljeno: Tor Maj 25, 2010 8:59 pm    Naslov sporočila:   Odgovori s citatom

Tale izsek iz datasheet-a pove vse:


If the result is left adjusted and no more than 8-bit precision is required, it is sufficient to read
ADCH. Otherwise, ADCL must be read first, then ADCH, to ensure that the content of the Data
Registers belongs to the same conversion. Once ADCL is read, ADC access to Data Registers
is blocked. This means that if ADCL has been read, and a conversion completes before ADCH is
read, neither register is updated and the result from the conversion is lost. When ADCH is read,
ADC access to the ADCH and ADCL Registers is re-enabled.


Lp,
Peter
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tozir
Član
Član



Pridružen-a: Pon 17 Mar 2008 19:10
Prispevkov: 187
Aktiv.: 0.89
Kraj: Celje

PrispevekObjavljeno: Tor Maj 25, 2010 10:25 pm    Naslov sporočila:   Odgovori s citatom

To se nanaša na originalni post?
_________________
http://www.rielektronika.comule.com/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 494 dni


Powered by phpBB © 2001, 2005 phpBB Group