- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 25

Thema: Daten Senden Empfangen Ic -> Pc -> Ic

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo,

    Versuchs mal mit
    uart_putc(a);
    an Stelle von
    uart_puts(a);

    "a" ist ein int und kein String, da ist kein '/0' am Ende!

    "12" ist ein String und wird im Speicher als
    0x32, 0x32, 0x00
    abgelegt.

    12 ist eine dezimale Zahl und wird als
    0x0C
    im Speicher abgelegt. 0x0C ist übrigens das Steuerzeichen FF (Form Feed). Auf einem Drucker würde dies einen Seitenvorschub auslösen.

    Mit a=65 würdest du ein "a" senden, dahinter kommt dann aber irgendwelcher Schott bis uart_puts(a); irgend wo auf 0x00 im Speicher stösst.
    Wenn du Pech hast, ergeben sich aber auch Steuerzeichen, welche das "a" oder die ganze Zeile in deiner Terminalemulation wieder löschen.

    Das ist auch der Unterschied zwischen ANSI- und ASCII-Darstellung.

    Im ANSI-Mode werden Steuer-Zeichen und -Sequenzen interpretiert und ausgeführt. Alle Zeichen < 0x20 sind Steuerzeichen und werden nicht angezeigt, lösen aber meistens eine Funktion aus, sofern auf dem Terminal umsetzbar. 0x07 sollte einen Beeb erzeugen, 0x0A ist eine Zeilenvorschub und 0x0D ein Wagenrücklauf (der Cursor wird nach ganz links gestellt). 0x0C macht auf dem Terminal keinen Sinn und wird meistens ignoriert. Dann gibt es noch Befehle mit Parametern, wie z.B. das Positionieren des Cursors an einer beliebigen Stelle auf dem Terminal. Diese beginnen, bei ANSI, mit 0x1B (ESC). Die folgenden Bytes sind dann der Befehl und die Parameter.

    Im ASCII-Mode wird jedes Zeichen angezeigt und nicht als Steuerbefehl interpretiert.

    Grundsätzlich kennt ein Prozessor nur Zahlen, Buchstaben gibt es für ihn gar nicht!
    Buchstaben sind eine Art Verschlüsselung. In einer Tabelle werden den Zahlen Buchstaben zugeordnet.
    Die bekannteste Codierung ist ASCII, welche aber nur für die ersten für die Werte 0...127 Zeichen gilt.
    https://de.wikipedia.org/wiki/Americ...#ASCII-Tabelle

    Besonders IBM bevorzugte aber eine andere Codierung Namens EBCDIC:
    http://www.astrodigital.org/digital/ebcdic.html

    Dummerweise kennen die AMIs aber keine Umlaute und andere Sonderzeichen!
    Ein Problem durch die ASCII-Norm, war noch, dass vor allem bei der Datenübertragung nur oft 7 Bit übertragen wurden (Teilweise wurde Bit-8 als Parity-Bit verwendet und beim Empfang dann auf 0 gesetzt).
    Der erste Ansatz war dann z.B. die deutschen Umlaute auf normalerweise wenig benutzte Zeichen zu legen.
    Ein weiteres Problem war dadurch, dass man so keine Binärdaten Übertragen konnte, weshalb man die 8 Bit in ein Format mit 6 Bit umpacken musste.
    Deshalb werden heute noch Binärdaten in E-Mails als MIME-64 codiert:
    https://de.wikipedia.org/wiki/Multip...ail_Extensions

    Man hat dann z.B. Umlaute auf die Zeichen "[" und "]" gelegt. Als Programmierer bekam man dann aber lustige Listings ausgedruckt

    Da ein Byte aber die Werte 0...255 annehmen kann und in ASCII z.B. keine Umlaute vorgesehen sind, haben die Hersteller dann den Erweiterten-ASCII-Code, welcher den Werten 128...255 Zeichen zuordnet. Entwickelt. Allerdings waren diese Erweiterungen für jede Sprache unterschiedlich und die meisten Hersteller kochten ein eigenes Süppchen.
    Mit dem IBM-PC und DOS hat dann IBM eine Defaktostandard geschaffen. Allerdings waren auch hier die Zuordnungen je nach eingestellter Code-Page unterschiedlich.

    Eine genormte Vereinheitlichung entstand dann erst vor etwa 25 Jahren mit dem Unicode:
    https://de.wikipedia.org/wiki/Unicode#Versionen
    Windows unterstützt Unicode seit NT 4.0 (1996) bzw. Windows 2000 (2000).

    MfG Peter(TOO)
    Geändert von Peter(TOO) (29.10.2015 um 15:42 Uhr) Grund: ASCII tippfehler
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

Ähnliche Themen

  1. Daten senden und empfangen mit IR
    Von GerdM im Forum Robby RP6
    Antworten: 3
    Letzter Beitrag: 21.06.2009, 13:40
  2. RS232 daten empfangen, senden und auswerten
    Von Crischan im Forum Software, Algorithmen und KI
    Antworten: 62
    Letzter Beitrag: 20.03.2009, 17:10
  3. USART Senden und Empfangen von Daten.
    Von Ferdinand im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 05.02.2009, 23:13
  4. Daten senden/empfangen
    Von FSTII im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 15
    Letzter Beitrag: 29.12.2006, 17:25
  5. Antworten: 1
    Letzter Beitrag: 22.09.2006, 17:33

Berechtigungen

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

LiFePO4 Speicher Test