- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 173

Thema: Portbelegung auf ATMega für LCD1602

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    genau moppi, ich dachte eigentlich, das wäre einem asm-Programmierer bekannt...
    Wenn ich zB einen Wert von 174 in einem 8-Bit Register habe, ist für mich dieser Wert DEZIMAL.
    DAS stimmt natürlich nicht.
    174 ist (ohne Vorzeichen) gespeichert als 10101110 bzw in 1 Byte-Register als 0xAE (editiert)
    nun muss man diese Zahl in eine andere Schreibweise (mit dezimalen Ziffern) umwandeln (der Zahlenwert bleibt dabei ntl identisch), erst dann erhält man die drei Ziffern 1, 7, 4
    und dann müssen die einzelnen Ziffernstellen 0-9 in Zeichen '0' bis '9' umgewandelt werden, erst dann lassen sie sich als Zeichen (nicht als Zahl) aufs Display bringen.
    Geändert von HaWe (13.01.2019 um 14:07 Uhr)

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    175
    Zitat Zitat von HaWe Beitrag anzeigen
    genau moppi, ich dachte eigentlich, das wäre einem asm-Programmierer bekannt...

    DAS stimmt natürlich nicht.
    174 ist gespeichert als 10101110 bzw in 2 Byte-Registern als 0xA 0xE
    nun muss man diese Zahl in eine andere Schreibweise (mit dezimalen Ziffern) umwandeln (der Zahlenwert bleibt dabei ntl identisch), erst dann erhält man die drei Ziffern 1, 7, 4
    und dann müssen die einzelnen Ziffernstellen 0-9 in Zeichen '0' bis '9' umgewandelt werden, erst dann lassen sie sich als Zeichen (nicht als Zahl) aufs Display bringen.
    FALSCH
    174 ist 1 BYTE die jeweils aus dem A als Highbyte und dem E als Lowbyte zusammengesetzt sind als 0xAE = 1Byte

  3. #3
    HaWe
    Gast
    ah, stimmt, klar, Highbyte und Lowbyte passen ja bei unsigned char (0...255) zusammen rein.
    Nur wenn man signed char (-128...+127) hat, braucht man bei 174 zwei Byte.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Zitat Zitat von avr_racer Beitrag anzeigen
    FALSCH
    174 ist 1 BYTE die jeweils aus dem A als Highbyte und dem E als Lowbyte zusammengesetzt sind als 0xAE = 1Byte
    Richtig.

    MfG

  5. #5
    HaWe
    Gast
    Zitat Zitat von Moppi Beitrag anzeigen
    Richtig.

    MfG
    war das jetzt noch nötig?

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ja.

    HeSt versucht was zu verstehen. Deshalb noch mal die Betonung, um Unsicherheit zu beseitigen. Und das Pallaver am Rande hilft ihm auch nicht weiter.

    MfG

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126
    He Leute!
    Langsam! Keine Seitenhiebe wegen mir !!!
    Ich hab schon verstanden.
    Die Auslegung von DEZIMAL war mir in diesem Sinne nicht geläufig.
    Darum habe ich im Post #116 ja geschrieben: "reden wir aneinander vorbei?"
    Dem war defacto so.
    Ich meinte mit "dezimal" NUMMERN/ZIFFERN (123...)!
    Gespeichert wird in dual, angezeigt in Hex um einstellig zu bleiben.
    Und "Ziffern" (0,1,2,...) kann ein Display nicht darstellen, sondern nur in "Textform" als $30,$31, ....
    Das war eben die Ungereimtheit.
    Jeder meinte mit "dezimal" was anderes.
    Ich werd mal alles durcharbeiten, was ich an Erklärungen erhalten hab.
    Wird ein bisschen dauern, muss auch wieder mehr was anderes tun als nur hier rumgrübeln ...

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ja das ist es eben. Du kennst Zahlen als Schrift, wie Du schreibst. So existieren sie in Deiner Vorstellung und deswegen meinst Du diese Zahlen. Aber der Computer kennt eben eine andere "Schrift" für Zahlen und die ist erst mal binär. Die hexadezimale Darstellung bildet eine bestimmte Bit-Menge ab. Mit 4 Bit lassen sich Werte von 0 bis 15 abbilden: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E und F. Danach kommen 8 Bit, die aus jeweils 4 Bit bestehen: 4Bit|4Bit (z.B.: 0A, 12, B3). Dann fasst man zweimal 8 Bit zu 16 Bit zusammen: 8Bit|8Bit. Und so geht das dann vom Prinzip immer weiter. So kommt man irgendwann zu Datentypen, die 32 Bit umfassen oder noch mehr sogar.

    Du musst Dich auf jeden Fall intensiv mit dem Rechnen in Maschinensprache auseinandersetzen. Ich finde, das ist jetzt das Wichtigste an allem. Sonst kommst Du immer wieder in Schwierigkeiten und verschiedene Dinge nicht verstehen zu können. Das gehört aber zum Grundverständnis. - Du hast Dir ganz schön was vorgenommen.

    MfG

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    175
    Zitat Zitat von HeSt Beitrag anzeigen
    Die Auslegung von DEZIMAL war mir in diesem Sinne nicht geläufig.
    Darum habe ich im Post #116 ja geschrieben: "reden wir aneinander vorbei?"
    Dem war defacto so.
    Ich meinte mit "dezimal" NUMMERN/ZIFFERN (123...)!
    Gespeichert wird in dual, angezeigt in Hex um einstellig zu bleiben.
    Und "Ziffern" (0,1,2,...) kann ein Display nicht darstellen, sondern nur in "Textform" als $30,$31, ....
    Das war eben die Ungereimtheit.
    Jeder meinte mit "dezimal" was anderes.
    Ich werd mal alles durcharbeiten, was ich an Erklärungen erhalten hab.
    Wird ein bisschen dauern, muss auch wieder mehr was anderes tun als nur hier rumgrübeln ...
    Ein Zündgedanke war im #116er schon dabei nur in der Weiterführung gings in die falsche Richtung.
    Können wir uns auf Zeichen einigen ?
    Diese Zeichen sind im LCD als ZEICHENVORRAT hinterlegt welche dann über eine ADRESSE angesprochen und dargestellt werden kann.
    Das das LCD keine Ziffern darstellen kann ist eher nicht richtig, es kanns ja, nur du meinst eher die Umsetzung von Zahl -> Mensch -> µC -> LCD -> Zahl passiert.

    Diesen Gedankengang hatte ich damals auch wie stellt ein LCD etwas da, bis mir jmd sagte das vieles fest vordefiniert wird was einfach dann abgerufen wird.
    https://de.wikipedia.org/wiki/Americ...on_Interchange

    Zitat Zitat von HaWe Beitrag anzeigen
    ah, stimmt, klar, Highbyte und Lowbyte passen ja bei unsigned char (0...255) zusammen rein.
    Nur wenn man signed char (-128...+127) hat, braucht man bei 174 zwei Byte.
    Hab es mir schon gedacht das da ein Denkfehler vorlag. Mit signed vollkommen recht. Ging auch nicht gegen dich...

    @Moppi danke für die Unterstützung

    Zitat Zitat von HaWe Beitrag anzeigen
    eine "Ziifer" ist ein Zeichen (für die Darstellung einer Stelle einer Zahl), ist aber selber keine Zahl ! Bild hier  
    Jep das hat ja schon den Hauch einer Definition.

Ähnliche Themen

  1. [ERLEDIGT] Atmega 644 & atmega8 parallel am ISP ... Reset beider atmega notwendig ..
    Von Ritchie im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 29.03.2013, 11:18
  2. CCPRO M128: Portbelegung
    Von Dirk im Forum Robby RP6
    Antworten: 0
    Letzter Beitrag: 22.05.2009, 22:26
  3. Portbelegung bei diesem Display [erledigt]
    Von Rob.Anfänger im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 18.11.2006, 18:12
  4. Portbelegung ATmega32
    Von Rob.Anfänger im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 15.11.2006, 19:59
  5. Antworten: 4
    Letzter Beitrag: 12.11.2006, 16:40

Berechtigungen

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

Labornetzteil AliExpress