Forum: Mikrocontroller und Digitale Elektronik Binär to Dezimal


von Ben (Gast)


Lesenswert?

Hallo,
Ich muss mit dem PIC16F877 einen 12-Bit ADC-Wert in Dezimal
umwandeln .Kann mir jemand bei Umwandlung helfen?

Danke

von Karl (Gast)


Lesenswert?

Hallo,

das gleiche habe ich gestern für einen 8-Bit-Wert beim Mega8 gemacht.
Nur sollten bei mir noch zwei Stellen hinter dem Komma herauskommen für
Spannungswerte, die am AD-Wandler anliegen. Nebenbei musste der Wert
auch noch umgerechnet werden, so dass tatsächlich die richtige Spannung
ausgegeben wird und nicht z.B. das 1,15-Fache. Das hat den ganzen
Nachmittag gekostet.

Bei dir ist der Fall einfacher:
Mit 12 Bit kann der maximale Wert der Zahl 1024 sein.

1. Stelle:
So oft 1000 abziehen bis Rest < 1000

2. Stelle:

vom Restwert von Stelle-Eins-Berechnung so oft 100  abziehen bis < 100

3. Stelle

vom Restwert von Stelle-Zwei-Berechnung so oft 10 abziehen bis < 10

4. Stelle
entspricht  Restwert von Stelle-Drei-Berechnung und kann direkt
übernommen werden.

von Denis (Gast)


Lesenswert?

falls es im programm schon eine 12b Divisionsroutige gibt, geht es auch
analog damit wert /1000, rest /100 usw.

von hans müller (Gast)


Lesenswert?

mit 3 x 16 bit division geht das schon:

a = gesamt-wert

b = a / 100
c = a mod 100
(b ist das ergebnis und c ist der rest, bei den meisten div befehlen
kommen beide ergebnisse)

dann:

d = b / 10
e = b mod 10
(s.o.

f = c / 10
g = c mod 10

dann ist die zahl:
[d] [e] [f] [g]

von hans müller (Gast)


Lesenswert?

anmerkung zum oberen post:

vergleiche die zeiten (takte für übliche werte zusammenrechnen) für die
divisions-methode und die schleifen-methode und nimm dann die schnellere
(einige uC haben HW mul/div)

von Ben (Gast)


Lesenswert?

Hallo,
Der PIC 16F877 hat bis auf die Additions- bzw. Subtraktionsbefehle
keine weitere Arithmetik Befehle,es gibt leider keine Division
oder Multiplikation Befehle.
Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.