Controller: Atmega8 Compiler: Winavr Hallo, ich suche eine einfache Möglichkeit in einem C-Programm eine 8-Bit (packed) Bcd-Zahl (2 Stellen) in eine Hex-Zahl zu wandeln. Ich lese über zwei BCD-Sxhalter ein Bxte ein. Dieser Wert soll dann die Verzögerungszeit für ein paar Ausgänge sein. Kann mir jemand einen Tipp geben? Gruß Gerd
Probier's mal damit:
1 | x = (bcd >> 4) * 10 + bcd & 0x0F; |
wert = (bcd >> 4) * 10 + (bcd & 0x0F); Das war ja unglaublich schwer ;)
Ich würde dir ja gerne eine Tipp geben, verstehe aber beim besten Willen nicht, was du meinst. Kannst du das mal an einem Beispiel und ohne entstellende Tippfehler ausführen?
>>wert = (bcd >> 4) * 10 + (bcd & 0x0F); >>Das war ja unglaublich schwer ;) Hmm, dann habe ich in der Ausgabe noch einen Fehler, dass hatte ich als letztes probiert. Da ist noch der Wurm drin... Ich danke euch beiden. Dachte, dass ich da was falsch mache. Gruß Gerd @seltsamer Kauz Welche Tippfehler muss ich einfügen, damit du nicht nur trollst?
Wie sieht denn deine Ausgabefunktion aus? Meiner Meinung nach hat aber BCD nix mit HEX zu tun. BCD ist ja nur eine Darstellungsart einer Zahl im Speicher, während Hexadezimalsystem eher ein Zahlensystem ist um die Zahlen für Menschen lesbarer zu machen.
Naja, Ausgabefunktion ist übertrieben. Ich habe auf der Platine vier LEDs, auf die ich zum Test Werte ausgeben kann. Und da ich nicht die Werte sah, die ich erwartete, habe ich hier nachgefragt.
Okay, ich habe den Fehler gefunden. Man sollte nicht 8 Stunden ununterbrochen basteln und dann noch glauben, dass man das Programm aus dem Stegreif schreibt... Vielen Dank!
Ich kann mich Simon nur anschließen. µC rechnen im Zahlensystem zur
Basis 2 nicht 16. Und wenn du dann auch noch einen Satz abläßt wie
> Ich lese über zwei BCD-Sxhalter ein Bxte ein.
dann mußt du dich wirklich nicht wundern, daß man u.U. nicht gleich
dahinterkommt, was du meinst. Dazu die unklare inhaltliche
Beschreibung... das hat also nichts mit trollen zu tun, sondern ist von
dir verursacht.
O.K. wenn ich mich nicht klar ausgedrückt habe. Schließlich bin ich einfacher Bastler und kein höher gebildeter Mensch. Dass ein µC im binären Zahlensystem arbeitet, weiß ich. Ich hatte bloß nach langer Bastelzeit ein Brett vor dem Kopf und das wurde mir von Andreas erfolgreich entfernt. Aber du hast Recht, ich werde dir meine Fragen schicken, damit du sie forengerecht ausarbeiten kannst. Ich will ja nicht wieder so angemaunzt werden. In Ordnung? ;-P Gruß Gerd
Also jetzt mach mal einen Punkt. Ich habe dich in keiner Weise 'angemaunzt', sondern dich ganz höflich gebeten, klarzustellen, was du meinst. Hier kannst du meinen Beitrag nochmal nachlesen: Beitrag "Re: packed BCD in eine HEX-Zahl wandeln (Gcc)"
>Also jetzt mach mal einen Punkt.
Hier hast du ihn:
1 | .
|
Ich will keinen Streit. Es war ein Missverständnis und damit kann der Thread beendet werden. Viel Spaß im Forum, Uhu
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.