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 

A/D in ADRESH/ADRESL

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
ElGrigon
Član
Član



Pridružen-a: Pon 24 Jul 2006 22:38
Prispevkov: 3880
Aktiv.: 18.03
Kraj: okolica Lenarta

PrispevekObjavljeno: Čet Jul 11, 2013 10:29 pm    Naslov sporočila:  A/D in ADRESH/ADRESL Odgovori s citatom

Pozdravljeni,

ADC nam zapiše 10-biten rezultat v omenjena registra. Kako se prebere oziroma uporabi vseh 10-bitov oziroma ali sploh?

Pri zapisu se izbere opcija Left/Right justified, glede na to vemo kam je kaj zapisal. Pri Left justified beremo iz ADRESH 8-bitov. Kaj je z ostalima 7-6 iz registra ADRESL?

Gledam različne kode in vidim, da se bere samo iz tistega v katerega je naslovljeno. Zakaj potem ostala dva bita v drugem registru?

_________________
lp, ElGrigon
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 18.17
Kraj: Črnuče

PrispevekObjavljeno: Čet Jul 11, 2013 10:46 pm    Naslov sporočila:   Odgovori s citatom

Ja če so registri 8 bitni, resolucija AD pretvornika pa 10 bitov ti nekje 2 bita višek hodita se ti ne zdi?
Da pobereš vso resolucijo pač rabiš 2 registra. 6 bitov, ki ti hodi viška so pač ničle.
Če ne rabiš 10 bitov resolucije, poravnaš podatke v levo in ADRESL enostavno pozabiš.
Drugače pa moraš preračunavanje tako spisati, da upoštevaš oba registra.

Kako pa poglej kakšen Application note, ki jih Microchip ponuja.

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
ElGrigon
Član
Član



Pridružen-a: Pon 24 Jul 2006 22:38
Prispevkov: 3880
Aktiv.: 18.03
Kraj: okolica Lenarta

PrispevekObjavljeno: Čet Jul 11, 2013 11:05 pm    Naslov sporočila:   Odgovori s citatom

Ja, imaš 8-bitno resolucijo. Kaj pa je dejanski rezultat teh 8-bitov?

Recimo, da AD vrne 10-bitno 0110100101, pomakneš to v levo in dobiš? 01101001, 01 pa ostane v desnem?

Se pravi rezultat AD-ja je 421 (10-bitno), ker pa bereš samo ADRESH dobiš za nadaljno uporabo 105 (8-bitno)?

_________________
lp, ElGrigon
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Pet Jul 12, 2013 11:09 am    Naslov sporočila:   Odgovori s citatom

ElGrigon je napisal/a:
Recimo, da AD vrne 10-bitno 0110100101, pomakneš to v levo in dobiš? 01101001, 01 pa ostane v desnem?
10-bitni AD vrne 16-bitno vrednost 00000001 10100101. Zgornjih 6 bitov je pač vedno 0.

Priporočam, da vse nadaljne izračune delaš v 16-bitnem načinu. Če je le možno, naj bodo najprej množenja in seštevanja, z deljenji in odštevanji pa odlašaj. Po potrebi za funkcijo (npr. odziv termostata) uporabi ločen izračun od tistega za prikaz (manj pomembno).

Šele čisto na koncu po potrebi zaokroži rezultat na 8 bitov (če je npr. maksimalen možen rezultat 16-bitnega izračuna 14-biten, zanemariš zgornja 2 bita in spodnjih 6, da dobiš vmesnih 8). Če boš že na začetku oklestil 2 bita, nato pa še malo delil, boš hitro dobil le še 5 ali 6 uporabnih bitov.

Dodano:
Izogibaj se tudi akrobacijam v stilu ADC*5000/200 , uporabi raje ADC*25.
Včasih se kakšen izračun bistveno poenostavi, če izmerjen rezultat ne more biti večji od 1000. Za tista 2% na skrajnem robu merilnega dosega, ko je merjena vrednost itak nevarno blizu resnim težavam pri delovanju sistema, pa si lahko privoščiš ločen okleščen izračun za odziv v sili.

Še več. Če naprimer veš, da bo ADC rezultat pri normalnem delovanju vedno znotraj nekega območja, imaš lahko ločene izračun/odziv za vrednosti izven meja. S tem lahko povečaš natančnost izračuna v delovnem območju.

Najprej moraš poznati enačbo (ne)linearne funkcije (npr. ADC v odvisnosti od temperature), nato pa jo razteguješ in premikaš po x-y oseh, da jo spraviš v obliko, ki omogoča najnatančnejši izračun. Važno je, da bo odziv na meritev pravilen. Prikaz je običajno drugotnega pomena.

In še ... po toliko kompliciranja ... Izračun porabi konstantno število ciklov, zato ga lahko uporabljaš namesto pavze. Samo ne pozabi prave pavze zmanjšati za kakšno milisekundo ali dve Smile .

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
ElGrigon
Član
Član



Pridružen-a: Pon 24 Jul 2006 22:38
Prispevkov: 3880
Aktiv.: 18.03
Kraj: okolica Lenarta

PrispevekObjavljeno: Pet Jul 12, 2013 1:08 pm    Naslov sporočila:   Odgovori s citatom

Saj, če seštejem registra je rezultat 8-biten.
_________________
lp, ElGrigon
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mujo
Član
Član



Pridružen-a: Ned 02 Jan 2005 19:24
Prispevkov: 722
Aktiv.: 3.25
Kraj: MB

PrispevekObjavljeno: Pet Jul 12, 2013 1:47 pm    Naslov sporočila:   Odgovori s citatom

ElGrigon je napisal/a:
Saj, če seštejem registra je rezultat 8-biten.


Če sešteješ registra dobiš... nič kaj uporaben podatek.

registra moraš združiti v eno 16 bitno spremenljivko. Ali pa vzeti samo 8 najbolj uteženih bitov.

Tukaj je zdaj vse na tebi.

ElGrigon je napisal/a:

Se pravi rezultat AD-ja je 421 (10-bitno), ker pa bereš samo ADRESH dobiš za nadaljno uporabo 105 (8-bitno)?

Da. In s tem izgubiš 2 bita resolucije.

Primer: Če imaš "merilno območje" (razlika med REF- in REF+, pustimo zdaj kako ima čip nastavljeno) 3.3V potem pri 10 bitnem imaš 1024 različnih možnosti vrednosti.
Torej tvoja ločjivost je 3.2 mV. Rezultat AD-ja bi potem bil 421*3.3/1024 = 1,357 V.

Če uporabiš samo zgornjih 8 bitov imaš 256 različih vrednosti. Ločljivost je: 12,89 mV. Isti izračun kot zgoraj: 105*3.3/256 = 1,354 V.

Številka je na prvi pogled ista. Ampak če izračunaš na več decimalk boš videl razliko.
Vse je zdaj odvisno od tega kaj bo s tem delal.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
ElGrigon
Član
Član



Pridružen-a: Pon 24 Jul 2006 22:38
Prispevkov: 3880
Aktiv.: 18.03
Kraj: okolica Lenarta

PrispevekObjavljeno: Pet Jul 12, 2013 2:51 pm    Naslov sporočila:   Odgovori s citatom

Ja, ni velike razlike.

Namen imam narediti polnilec za LiPoFe in meriti moram napetost ter po možnosti še tok.
Bom videl ali gre 8-bitov skozi. Druga decimalka napetosti pri teh baterijah še ni tako delikatno.

_________________
lp, ElGrigon
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 -> Microchip PIC Č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