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 

8 bit adc v Bascomu

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
veter
Član
Član



Pridružen-a: Tor 06 Jan 2004 9:25
Prispevkov: 132
Aktiv.: 0.59
Kraj: Bled

PrispevekObjavljeno: Ned Jun 28, 2015 8:05 pm    Naslov sporočila:  8 bit adc v Bascomu Odgovori s citatom

Lep pozdrav!

Imam potrebo, kjer moram vzorčiti ADC na svojem Attiny84 mikrokontrolerju s frekvenco 650kHz. Ko sem prebiral literaturo sem zasledil, da je pri 10 bitni resoluciji priporočena frekvenca med 50kHz in 200kHz. Če želimo imeti višjo frekvenco pa moramo preiti na 8 bitno resolucijo.
Ker programiram v Bascomu, sem za 8 bitno ADC sempliranje napisal naslednjo sub routino:

Koda:
Dim spremenljivka as byte

' najprej pocistimo registre
Admux = &B00000000
Adcsr = &B00000000
Adcsrb = &B00000000
  'dolocimo 8 bit resolucijo
  Adcsrb.adlar = 1
 ' dolocimo iz katerega kanala ADC(1) bomo brali
  Admux.mux5 = 0
  Admux.mux4 = 0
  Admux.mux3 = 0
  Admux.mux2 = 0
  Admux.mux1 = 0
  Admux.mux0 = 1
  ' dolocimo referencno napetost na pinu Aref
  Admux.refs1 = 0
  Admux.refs0 = 1
  ' omogocimo ADC.... ADC enable
  Adcsr.aden = 1
  ' dolocimo prescaler 16
  Adcsr.adps2 = 1
  Adcsr.adps1 = 0
  Adcsr.adps0 = 0
  ' pricnemo z ADC konverzijo ... START ADC
  Adcsr.adsc = 1
  ' pocakamo toliko casa, dokler ADC konverzija ni koncana
  Do
  Loop Until Adcsr.adif = 1
  'prebermo 8 bitno vrednost
   spremenljivka = Adch


Vendar zadeva ne meri. V registru Adch ali Adcl se sicer nahaja neka vrednost, ki pa ostaja nespremenjena, ne glede na to ali spreminjam napetost na pinu a.1 ali ne.

p.s.
Sedaj nimam Do loop zanke za neskončno branje ADC-ja. Vedno, ko hočem na novo prerbrati vrednost ADC, ukontroler resetiram.

Hvala za pomoč.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Ned Jun 28, 2015 10:07 pm    Naslov sporočila:   Odgovori s citatom

Sicer še nikoli nisem delal AD-ja na način kot ti (nikoli se mi še ni bilo treba poglabljati v registre AD-ja), ampak nekje sem prebral, da je po vklopu AD-ja treba prvo meritev zavreči zaradi morebitne netočnosti... poskusi narediti dva branja zapored.


Pa še to..a branje takole ni dovolj hitro?
Koda:
spremenljivka=getadc(0)
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
veter
Član
Član



Pridružen-a: Tor 06 Jan 2004 9:25
Prispevkov: 132
Aktiv.: 0.59
Kraj: Bled

PrispevekObjavljeno: Ned Jun 28, 2015 10:11 pm    Naslov sporočila:   Odgovori s citatom

Hvala za odgovor.

Težavo sem odpravil. Program je pravilno napisan in ga sedaj lahko uporabi še kdo, ki bo potreboval velike hitrosti ADC-ja.
Težava je bila tokrat v hardware-u...

S funkcijo GETADC v bascomu, lahko dosežemo max hitrosti 200kHz (uradno) in 250kHZ (neuradno). Nažalost, aplikacijo na kateri delam, potrebuje višjo frekvenco vzorčenja, na srečo, pa ni potrebe po 10bit ADC ampak je 8 bit v redu.
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 -> Osnove programiranja AVR-jev Č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: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group