mikrocontroller.net

Forum: Compiler & IDEs Gepackte BCD-Zahl inkrementieren


Autor: anfaenger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Wie kann ich in C am einfachsten gepackte (also 8Bit) BCD-Zahlen 
erhöhen? In Assembler gibt es ja diese Korrekturanweisung DA oder DAA um 
nach einer Inkrementierung das Ergebnis korrekt in BCD darzustellen. 
Gibts sowas ähnliches auch in C oder muss ich das hier zu Fuß machen?

Es geht um die Programmierung einer einfachen Uhr, die aus diversen 
Gründen in BCD zählen soll (jeweils ein Byte für Sekunden, Minuten und 
Stunden).

Gruß, Stefan

Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde die Zeiten in binär führen, da inkrementieren und nur für 
Anzeigezwecke die Binärwerte in BCD wandeln.

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Assemblerbefehle DA und DAA von C aus aufrufen. Welchen Compiler 
setzt du ein?

Autor: anfaenger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich verwende avr-gcc (aktuelle version). hab mich aber glaub ich geirrt. 
beim avr gibts den da befehl doch nicht. kenne das nur vom 8051 und da 
klappt das super :)

aber ist auch nicht so tragisch. die uhrzeit wird ja nur einmal pro 
sekunde erhöht.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
if ((++byte & 0x0F) == 0x0A)
  byte += 0x06;

Autor: anfaenger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey, cool! Das ist schön kurz :-)

Vielen Dank!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.