Verständnis RS232 Senden

Gast #1276765
Sehr geehrte Damen Und Herren,

nach dem Einlesen der sehr informativen Seite www.sprut.de bin ich auf 
eine Problematik gestoßen.
Wenn ich über einen PIC (z.B. 16F876) über die RS232 Schnittstelle und 
einem Max232- Pegelwandler an einem PC Daten schicken möchte. Kann ich 
ja nur 8 Bit Datenbreite versenden. Was rein theoretisch 256 
verschiedene Werte wären.

Wie sende ich Informationen, z.B. beim Drehgeber auslesen. Wo eine 
Umdrehungen 5000 Rasterzählungen sind. Wie übertrage ich dann z.b. + 
20000 bzw. -20000, wenn ich für 4 Umdrehungen die 200000 senden möchte 
um am PC die genaue Aufösunge zu haben!?


Vielen Dank für Ihre Hilfe.

Mit freundlichen Grüßen

Viktor
Gast
>Sehr geehrte Damen Und Herren,

Musst nicht so förmlich sein, die meisten hier sin 'per-Du'. ;)

Das duale Zahlensystem ist dir geläufig?
Bei drei Byte (24 bit) wären das insgesamt 16777216 Zähler 
(0..16777215).
Sollte als Auflösung reichen.
Also musst du drei Byte senden, um die gesamte Impulsanzahl zu 
übertragen.
Gast
Hallo.

Danke für die schnelle Antwort.

Also sende ich einfach 3x 8 Bit, Also hab ich nach 3 Zyklen meinen Wert 
sendet!?.

Beispiel

15623 =   11 1101 0000 0111

Also sende ich 11 1101 00  und eimal 00 0111 und muss dem PC nur klar 
machen, das er es als String zusammensetzt!?

Hast du vielleicht grob einen Beispielcode fürs Senden?. Die passenden 
Konfiguration müsst ich schon geschafft haben

MFG

Viktor
Gast
Oder du sendest die Werte als einzelne Zeichen

     2  0  0  0  0

oder im ASCII-Format

    "2"  "0"  "0"  "0"  "0"
 =  32   48   48   48   48  (dez)


oder BCD-Codiert, oder... oder... oder....
Gast
Moin,

ich würde die 3 x 8 bit nicht ohne Redundanz senden.
Was passiert, wenn sich das auswertende Gerät verhaspelt?
Ich würde die 24 bit als 4 x 6 bit + 4 x Stellen senden.
Die Stelle würde ich voranstellen. So kann man sicher-
stellen, dass die Werte korrekt interpretiert werden.
z. B.:
00 110011    ;Byte 1 (LSB)
01 110011    ;Byte 2
10 110011    ;Byte 3
11 110011    ;Byte 4 (MSB)

ergibt 1100 1111 0011 1100 1111 0011    binär
oder    C    F    3    C    F    3      in Hex
oder   13.581.555                       dezimal

Viel Spass
Stefan
Gast
Man kann es auch so formulieren:

Wie machst Du selbst es eigentlich, dass Du mit nur 26 Buchstaben, große 
und KLEINE, und 10 Ziffern diese Meldungen schreibst, worin sogar die 
riesengroßen Zahlen enthalten sind?

Genau, Du zerlegst sie in Teile. Die. Du. dann. unseren. Augen. 
über.mittelst. Und bei uns im Hirn wird daraus wieder eine ganze 
Meldung.

Und genau so macht es im Prinzip auch die von Dir gewünschte 
Datenübertragung.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.