Forum: Mikrocontroller und Digitale Elektronik Zeichen einlesen


von Alex R. (Gast)


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.

von Ingo B (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.