Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
juref Član
Pridružen-a: Tor 15 Dec 2009 11:45 Prispevkov: 226 Aktiv.: 1.29 Kraj: Črnomelj
|
Objavljeno: Tor Okt 25, 2011 6:41 pm Naslov sporočila: Pretvorba AD pretvorbe v binearno število |
|
|
Pozdravljeni!
Za projekt sem si zadal izdelati multimeter, ter me zanima ali se lahko oziroma kako se programsko pretvori rezultat AD pretvorbe v binearno število.
Najlepša hvala ter lep dan!
|
|
Nazaj na vrh |
|
|
aly Član
Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 42.17 Kraj: Kranj - struževo
|
Objavljeno: Tor Okt 25, 2011 6:47 pm Naslov sporočila: |
|
|
iz AD pretvornika direkt dobiš binarno število.
Še kaj bi rad?
binearno pa ne vem če ti bo kdo znal izračunat.
_________________ I'm going to stand outside, so if anyone asks, I'm outstanding |
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5337 Aktiv.: 24.71 Kraj: Domzale
|
|
Nazaj na vrh |
|
|
juref Član
Pridružen-a: Tor 15 Dec 2009 11:45 Prispevkov: 226 Aktiv.: 1.29 Kraj: Črnomelj
|
Objavljeno: Tor Okt 25, 2011 9:36 pm Naslov sporočila: |
|
|
aly je napisal/a: |
iz AD pretvornika direkt dobiš binarno število.
Še kaj bi rad?
binearno pa ne vem če ti bo kdo znal izračunat. |
Sem mislil ker rezultat dobim 1024 bi pa rad to v 0 in 1 .
|
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1713 Aktiv.: 7.68 Kraj: Ig
|
|
Nazaj na vrh |
|
|
int47 Član
Pridružen-a: Pon 15 Dec 2003 0:10 Prispevkov: 2066 Aktiv.: 9.26 Kraj: Ljubljana
|
Objavljeno: Tor Okt 25, 2011 10:18 pm Naslov sporočila: |
|
|
Glej posamezne bite.
1024(10) = 10000000000(2) = 0400(16)
Razlikuje se samo številski sistem.
uC deluje v binarnem sistemu, medtem ko je ljudem bližji desetiški sistem.
P.S. Rezultat 10 bitne A/D pretvorbe ne more biti 1024.
|
|
Nazaj na vrh |
|
|
zdovcj Član
Pridružen-a: Sob 18 Jul 2009 13:26 Prispevkov: 118 Aktiv.: 0.66 Kraj: Kovor
|
Objavljeno: Sre Okt 26, 2011 10:19 am Naslov sporočila: |
|
|
if(adc < 512) rezultat = 0;
else rezultat = 1;
|
|
Nazaj na vrh |
|
|
zdovcj Član
Pridružen-a: Sob 18 Jul 2009 13:26 Prispevkov: 118 Aktiv.: 0.66 Kraj: Kovor
|
Objavljeno: Sre Okt 26, 2011 10:21 am Naslov sporočila: |
|
|
lahko pa tudi:
rezultat = adc >>9;
|
|
Nazaj na vrh |
|
|
S53DZ Član
Pridružen-a: Čet 28 Apr 2011 9:27 Prispevkov: 951 Aktiv.: 6.01 Kraj: Ljubljana
|
Objavljeno: Sre Okt 26, 2011 10:30 am Naslov sporočila: |
|
|
@mucek,
ja kol'ko je zdaj ura: 12:26:16 ali 10:48:36?
Sicer je pa najbrž tema, kako prikazati binarni rezultat ADC pretvorbe v decimalnem sistemu. Pri tem pomaga 4-bitni BCD (binary coded decimal) in je nato enostavno preiti v ASCII kodo za prikaz (številka ASCII = BCD + 0x30).
|
|
Nazaj na vrh |
|
|
aly Član
Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 42.17 Kraj: Kranj - struževo
|
Objavljeno: Sre Okt 26, 2011 7:23 pm Naslov sporočila: |
|
|
juref je napisal/a: |
Sem mislil ker rezultat dobim 1024 bi pa rad to v 0 in 1 . |
1024 = 10000000000
Izvoli.
_________________ I'm going to stand outside, so if anyone asks, I'm outstanding |
|
Nazaj na vrh |
|
|
lojzek Član
Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3356 Aktiv.: 16.96
|
Objavljeno: Sre Nov 02, 2011 10:27 am Naslov sporočila: |
|
|
Mogoče pa možakar želi kaj podobnega:
Koda: |
void bitni_izpis(uint8_t n) //izpiše na LCD 8 bitno številko
{
for (uint8_t i=7;i>0;i--) // zanka za 8 ponovitev
{
if (n >= 128) // ali je n>= 128 (bit=1)?
{
LCDsendChar (49); //DA, napiši enico
n = n << 1; //premakni bite za 1 v Levo
}
else LCDsendChar (48);//NE, napiši nulo
}
} |
Mislim, da je dokaj enostavno razumljivo. Pa čisto enostavno se lahko predela na 10 bitno cifro. seveda če znaš
|
|
Nazaj na vrh |
|
|
juref Član
Pridružen-a: Tor 15 Dec 2009 11:45 Prispevkov: 226 Aktiv.: 1.29 Kraj: Črnomelj
|
Objavljeno: Sre Nov 02, 2011 11:19 am Naslov sporočila: |
|
|
lojzek je napisal/a: |
Mogoče pa možakar želi kaj podobnega:
Koda: |
void bitni_izpis(uint8_t n) //izpiše na LCD 8 bitno številko
{
for (uint8_t i=7;i>0;i--) // zanka za 8 ponovitev
{
if (n >= 128) // ali je n>= 128 (bit=1)?
{
LCDsendChar (49); //DA, napiši enico
n = n << 1; //premakni bite za 1 v Levo
}
else LCDsendChar (48);//NE, napiši nulo
}
} |
Mislim, da je dokaj enostavno razumljivo. Pa čisto enostavno se lahko predela na 10 bitno cifro. seveda če znaš |
hvala lepa, to sem iskal!
|
|
Nazaj na vrh |
|
|
aly Član
Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 42.17 Kraj: Kranj - struževo
|
Objavljeno: Sre Nov 02, 2011 2:37 pm Naslov sporočila: |
|
|
Potem pa drugič jasno napiši kaj bi rad: "Izpis / prikaz števila v binarni obliki"
_________________ I'm going to stand outside, so if anyone asks, I'm outstanding |
|
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
|