Hallo, Ich muss mit dem PIC16F877 einen 12-Bit ADC-Wert in Dezimal umwandeln .Kann mir jemand bei Umwandlung helfen? Danke
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.
falls es im programm schon eine 12b Divisionsroutige gibt, geht es auch analog damit wert /1000, rest /100 usw.
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]
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.