|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
mk0388 Član
Pridružen-a: Čet 30 Okt 2008 21:52 Prispevkov: 161 Aktiv.: 0.85 Kraj: Celje
|
Objavljeno: Sob Sep 19, 2009 1:04 pm Naslov sporočila: Obdelava digitalnih podatkov po AD pretvorbi--pic16f876a |
|
|
Lep pozdrav
Imam na mikrokontrolerju analogni vhod od 0 d0 5 V. Program deluje pretvorbo mi lepo shrani v željen register. Ta 8 bitni rezultat bi sedaj rad prikazal na dveh 7 seg displejih, tako da bi mi za vsakih 100mV prištelo na displejih +1. To kako prižigati displeja ni problem samo algoritem da bo program vedel kdaj naj kaj izpiše na displejih.
hvala za kakršno koli pomoč _________________ Victims - aren't we all... |
|
Nazaj na vrh |
|
|
aly Član
Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 42.23 Kraj: Kranj - struževo
|
Objavljeno: Sob Sep 19, 2009 2:29 pm Naslov sporočila: |
|
|
pretvorba > množenje / deljenje, da dobiš pravilno številko > razbiješ na stotice, desetice, enice > pretvorba v 7-segmentno obliko > prikaz. _________________ I'm going to stand outside, so if anyone asks, I'm outstanding |
|
Nazaj na vrh |
|
|
mk0388 Član
Pridružen-a: Čet 30 Okt 2008 21:52 Prispevkov: 161 Aktiv.: 0.85 Kraj: Celje
|
Objavljeno: Sob Sep 19, 2009 3:52 pm Naslov sporočila: |
|
|
aly je napisal/a: |
množenje / deljenje, da dobiš pravilno številko > razbiješ na stotice, desetice, enice |
E to je ta stvar katera mi ni jasna...mi lahka to edn prosim razloži _________________ Victims - aren't we all... |
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.34 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Sep 19, 2009 4:42 pm Naslov sporočila: |
|
|
Ker je vprašanje postavljeno v programiranje v assemblerju, te verjetno zanima kako izvesti v assemblerju?
Izmerjeno vrednost je najprej potrebno spraviti v 3 registre (enice, desetice , stotice)
Najprej vrednost deliš s 100 - dobiš stotice nato jo deliš z 10 dobiš desetice ostanek so enice.
Narediš tabelo "številk" za prikaz.
To je to...
Na forumu je ogromno mojih primerov z izvorno kodo. Malo poišči (voltmetri, termometri, števci...) _________________ lp
Silvo |
|
Nazaj na vrh |
|
|
mk0388 Član
Pridružen-a: Čet 30 Okt 2008 21:52 Prispevkov: 161 Aktiv.: 0.85 Kraj: Celje
|
Objavljeno: Sob Sep 19, 2009 7:46 pm Naslov sporočila: |
|
|
Tako je v asemblerju pišem...
Zanima me bolj teorija, kar je bilo razloženo malo prej je bolj na grobo, ker potem bi že nekako sam si pogruntal kot pa če gledam nek program, ki ga je nekdo napisal. _________________ Victims - aren't we all... |
|
Nazaj na vrh |
|
|
eddie Član
Pridružen-a: Sre 10 Dec 2003 21:02 Prispevkov: 706 Aktiv.: 3.17 Kraj: Severna primorska
|
Objavljeno: Sob Sep 19, 2009 8:00 pm Naslov sporočila: Re: Obdelava digitalnih podatkov po AD pretvorbi--pic16f876a |
|
|
mk0388 je napisal/a: |
Ta 8 bitni rezultat bi sedaj rad prikazal na dveh 7 seg displejih, tako da bi mi za vsakih 100mV prištelo na displejih +1. |
Temu se reče skaliranje: v poštev pride stara še onovnošolska formula y=k*x(+n),
kjer je x vhod(surova vrednost iz AD-ja), y izhod(številka na displeju) k pa faktor (y2-y1)/(x2-x1), kjer so y2 in x2 izhodno območje(0 do xx mV), y1 in x1 pa vhodno(npr. 0 do 1024 ). Ostane pa še n, ki je offset...
lp |
|
Nazaj na vrh |
|
|
mk0388 Član
Pridružen-a: Čet 30 Okt 2008 21:52 Prispevkov: 161 Aktiv.: 0.85 Kraj: Celje
|
Objavljeno: Sob Sep 19, 2009 8:07 pm Naslov sporočila: |
|
|
Skaliranje = Enakost intervalov = Linearna funkcija
Imam 8 bitno pretvorbo torej 0 do 255 izhod ne? Pa če mam od 0 do 5V 0mV do 5000mV. _________________ Victims - aren't we all... |
|
Nazaj na vrh |
|
|
eddie Član
Pridružen-a: Sre 10 Dec 2003 21:02 Prispevkov: 706 Aktiv.: 3.17 Kraj: Severna primorska
|
Objavljeno: Sob Sep 19, 2009 8:32 pm Naslov sporočila: |
|
|
y=(5000-0)/(255-0)*x+0
y=5000/255*x
y~19,6*x
Torj če imaš na vhodu 3V bo to AD pretvoril v 153, kar pa boš s skaliranjem dobil v
y=19,6*153
y=2998,8mV
Lp |
|
Nazaj na vrh |
|
|
mk0388 Član
Pridružen-a: Čet 30 Okt 2008 21:52 Prispevkov: 161 Aktiv.: 0.85 Kraj: Celje
|
Objavljeno: Sob Sep 19, 2009 8:44 pm Naslov sporočila: |
|
|
eddie je napisal/a: |
y=(5000-0)/(255-0)*x+0
y=5000/255*x
y~19,6*x
Torj če imaš na vhodu 3V bo to AD pretvoril v 153, kar pa boš s skaliranjem dobil v
y=19,6*153
y=2998,8mV
Lp |
Super, sem jaz tudi na takšen način tole enačbo rešil, ampak kako sedaj napisati rutino, za izpis števil npr. y= 54mV to mi naj izpiše, kaj mi mora program preverjati? _________________ Victims - aren't we all... |
|
Nazaj na vrh |
|
|
|
|
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: 69 dni
Powered by phpBB © 2001, 2005 phpBB Group
|