Gast
#175499
Hallo, Ich muss mit dem PIC16F877 einen 12-Bit ADC-Wert in Dezimal umwandeln .Kann mir jemand bei Umwandlung helfen? Danke
|
Anzeige
|
Binär to Dezimal
Gast
#175499
Hallo, Ich muss mit dem PIC16F877 einen 12-Bit ADC-Wert in Dezimal umwandeln .Kann mir jemand bei Umwandlung helfen? Danke
Gast
#175500
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.
Gast
#175501
falls es im programm schon eine 12b Divisionsroutige gibt, geht es auch analog damit wert /1000, rest /100 usw.
Gast
#175502
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]
Gast
#175503
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)
Gast
#175504
Hallo, Der PIC 16F877 hat bis auf die Additions- bzw. Subtraktionsbefehle keine weitere Arithmetik Befehle,es gibt leider keine Division oder Multiplikation Befehle. Danke Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|