mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zeichen einlesen


Autor: Alex R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

möchte foldendes machen, über die RS232 Zeichen einlesen, habe mir 
überlegt das es mit getch() geht, aber kann ich da immer nur ein zeichen 
einlesen, wie mache ich es, dass ich mehrere z.b. "ERROR" einlese oder 
"OK" oder eben irgendeinen wert?

und das zweite, wie mache ich es am besten, wenn ich ein eeprom 
beschreiben will, länge der zeichen unbekannt z.b. einen binäre file mit 
1Kbit, wie bekomme ich die am besten in ein exterenes eeprom oder flash? 
ja, über i2c aber wie schreibe ich die werte die ich z.b. über die 
serielle rs232 empfange an die adresse usw..?
hat da jemand eine ahnung bzw. eine anleitung?
danke vielmals!

mfg alex r.

Autor: Ingo B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Alex,

zu 1)

wenn Du mehere Zeichen verarbeiten willst, musst Du den genauen Aufbau 
der Übertragung kennen (oder festlegen).

z.B. ASCII, zeilenweise mit '\n' abgeschlossen:
dann kannst Du bis zum Abschlußzeichen (hier \n) die Daten in einen 
Buffer scheiben (am besten direkt im seriellen. Int) und danach die 
Zeile auswerten.

Ich benutze meist folgenden Aufbau:
1 Zeichen = Kommando
2..(n-2) Zeichen Daten
(n-1) Checksumme
n = Abschlußzeichen (z.B. \n oder \0)

Am Kommando erkenne ich die Länge und die Art der Daten (z.B. hex. 
Werte).
Die Checksumme ist einfach nur die Addition aller Zeichen. (einfach aber 
wirkungsvoll)
Das Abschlußzeichen hilft beim Synchronisieren.

Fazit: Man kann beliebig viel Aufwand beim Implementieren eines 
Protokolls betreiben :-))
-------------------------------------

zu 2)
Ich bin mir nicht sicher wo dein Problem liegt.
Also, einige EEPROM verfügen über ein autom. Adreßinkrement. D.h. Du 
mußt nur einmal die Startadr. übertragen und danach kannst Du die Daten 
lesen / schreiben.
Genauso gibt es blockweises Schreiben. Dann kann Du eine best. Anzahl 
von Zeichen seriell empfangen in einen Buffer schieben und dann als 
Block in EEPROM schreiben.

---------
Ich glaube nicht, dass es für deine Aufgabe eine Standardlösung gibt. Du 
wirst wohl nicht ums programmieren kommen ;-)

Bis dann,
               Ingo!


-----------
http://www.mikrocontroller.com

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.