- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Eine Binärzahl in ASCII umwandeln

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    24.03.2007
    Beiträge
    10

    Eine Binärzahl in ASCII umwandeln

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    Ich brauchte mal einen Tipp, wie ich Zahlen aus 2 Registern auf einem LCD-Display (einzeilig - 16 Zeichen) anzeigen lassen kann.

    Wenn ich z.B Impulse an einem Eingang zähle, nehmen wir an, ich verwende 2 Register, so incrementiere ich das 1. Register. Tritt ein Überlauf auf, so incrementiere ich das 2. Register.
    Wenn ich jetzt aber z.B 259 Impulse gezählt habe, Steht in Register1 eine 1
    und in Register2 eine 3 (00000001-00000011).
    Wenn ich diese 2 Register nun an mein LCD-Display übertragen würde (2.
    Register ab Adresse0 und 1. Register ab Adresse H40, so sähe ich im Display die Zahl 1003.

    Ich brauchte also eine Routine, welche mir das Ganze umrechnet. Hat jemand einen einfachen Tipp für mich?

    Ich hoffe, ich konnte mein Problem anschaulich schildern.

    MfG LotharK

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    1. Wandle die Binärzahl in eine BCD Zahl um.
    2. Addiere 30 zu jeder einzelnen Ziffer.
    3. Gib die einzelnen Zeichen aus.

    Grüße,
    Hanni
    Grundregeln des Forenpostings:
    1. Nutze niemals die Suchfunktion!
    2. Überprüfe niemals die Topics nach Ähnlichkeiten!
    3. Schreibe alles in hellgelb!

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    24.03.2007
    Beiträge
    10
    Hi,
    Danke erst mal für den Tipp.

    Na ja, so lange mache ich das hier noch nicht. (Einige Wochen) Wie wandle ich eine Binärzahl in eine BCD-Zahl?

    MfG LotharL

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    10.02.2005
    Ort
    eastside, L.E.
    Alter
    53
    Beiträge
    104
    Hi Lothar,

    sieh Dich mal auf den Seiten hier um ->> http://www.avr-asm-tutorial.net/avr_...onversion.html

    greetz Rajko

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    24.03.2007
    Beiträge
    10
    Hallo,

    diese Seite habe ich mir schon angesehen. Das Ganze war mir ehrlich gesaht zu komplex und zu kompliziert. Gibt es vielleicht was einfacheres?

    MfG LotharK

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Gibt es vielleicht was einfacheres?
    1. Möglichkeit
    subtrahieren Methode :
    als erstes prüfen, ob Deine Zahl > 10000 ist, wenn ja solange 10000 subtrahieren bis sie kleiner wird und Anzahl der Schritte mitzählen.
    Zum Schluß Anzahl der schritte mit 0x30 verodern und ausgeben.
    Weiter mit 1000 100 10 , die Einer nicht mehr subtrahieren sondern direkt verodern, fertig.

    2. Möglichkeit

    Programmiersprache wechseln z.B. C oder Basic, da ist es nicht mehr komplex und kompliziert...

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    24.03.2007
    Beiträge
    10
    Hi,

    Danke für die Antwort. Obwohl ich es noch nicht begriffen habe...
    Müßte ich nicht immer 256 abziehen?
    C oder Basic wollte ich nicht verwenden, da es mir nicht darum geht, was Konkretes zu bauen, sondern Assembler lernen will.

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Zitat Zitat von SiDe
    Hi,

    Danke für die Antwort. Obwohl ich es noch nicht begriffen habe...
    Müßte ich nicht immer 256 abziehen?
    Nein.

    BCD = Binär codierte Dezimalzahl.

    Das heisst, jede einzelne Stelle deiner 16 Bit Zahl steht nach der Umwandlung in einem extra Register / Variable.
    Grundregeln des Forenpostings:
    1. Nutze niemals die Suchfunktion!
    2. Überprüfe niemals die Topics nach Ähnlichkeiten!
    3. Schreibe alles in hellgelb!

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    24.03.2007
    Beiträge
    10
    Hallo Hanni,

    meine Funktion für die Darstellung der Zahlen existiert schon. Solange bei mir weniger als 256 Impulse gezählt werden, kann ich das Register gleich an die Funktion übergeben. Werden mehr als 256 Impulse gezählt, stehen im 2. Register die Anzahl der Überläufe des 1. Registers.
    Ich müßte doch nur in einer Schleife die Anzahl des oberen Registers in ein Doppelregister addieren. Also so viel mal 256, wie im oberen Register steht. Zum Schluss wird noch das untere Register zum Doppelregister addiert und fertig. Danach werden die 2 Register ausgegeben.

    Wieso sollte ich den Um weg über BNC nehmen?

    Das alles sind so meine Überlegungen. Testen werd ich das morgen. Meines Erachtens sollte das funktionieren - oder?
    MfG Lo

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Hallo,
    schau Dir mal mein Programm unter https://www.roboternetz.de/phpBB2/ze...101&highlight= an.

    Was Dich interessieren könnte, ist die Routine berechne:
    Es wandelt bin->BCD und speichert das Ergebnis im RAM .
    Viel Erfolg

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests