www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 5 stelligen wert über serielle schnittstelle mit uC einlesen


Autor: Klaus joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo wollte mal um rat fragen wie ich einen 5 stelligen wert mit dem uC 
einlesen kann mit der seriellen schnittstelle.  Und dan mit dem wert 
intern im uC weiter arbeiten kann

Grüsse

Autor: Joachim B. (jojo84)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für 5 Stellen? Dezimal? Hex? Byte? Genaue Beschreibung des Problems 
-> genaue Antwort :)

Gruß

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erst eins, dann zwei, dann drei, ...

Kannst du denn schon eine Stelle einlesen? Wenn nicht, wo klemmt es?

Oliver

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joachim B. schrieb:
> Was für 5 Stellen? Dezimal? Hex? Byte? Genaue Beschreibung des Problems
> -> genaue Antwort :)

Dazu noch:
Wie wird übertragen: Als Binärwerte, d.h. die Zahl in Einzelbytes 
aufgetrennt oder als Text, d.h. die einzelnen Ziffern, mit ihrem 
jeweiligen ASCII Code.

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ganz einfach: Die 5 Zeichen einlesen, die Zahl daraus berechnen, 
weitermachen...

Autor: Schmit Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
For I = 1 To 4
 Do
 Loop Until Ucsr0a.rxc0 = 1
 Temp = Temp + Chr(udr)
Next



vieleicht so?

Autor: Joachim B. (jojo84)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte, gern geschehen!!!


-_-

Autor: oldmax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
>Hallo wollte mal um rat fragen wie ich einen 5 stelligen wert mit dem uC
>einlesen kann mit der seriellen schnittstelle.  Und dan mit dem wert
>intern im uC weiter arbeiten kann
Er wollte doch nur den Rat WIE er eine 5 stellige Zahl einlesen kann. Da 
sind Formate erst mal noch ohne Bedeutung. So kann eine 5 stellige Zahl 
auch ein 2 Byte - Wert sein.
Also, nehmen wir den Fall an, es handelt sich um einen String  in der 
Form "12345". Wenn die Empfangsroutine daraus eine Zahl machen soll, so 
ist es unumgänglich, ein String-Ende Zeichen 0A 0D  (CR LF) anzuhängen, 
damit der Controller weis, die Zahl ist komplett und er kann nun diese 
zusammenrechnen. Mit der Info, es sind immer 5 Zeichen, kann man 
zusätzliche Sicherheit erreichen. Dann werden einfach vorgestellte "0"en 
mit übertragen. Also "00123"+0A 0D z.B.
Kommen wir zur Unsetzung der Ziffern in Zahlen. Der ASCII - Code von 0 
ist 30 hex oder 48 dez. Zieht man von dem übertragenen Byte nunn 30 hex 
ab, so erhält man 0 als Zahl und da die Zahlen aufeinander folgen, 
ergibt 39 hex -30 hex eine 9. Mit diesen Zahlen kann man nun rechnen, 
wie wir es in der Schule gelernt haben:
"00123" ist auf Zahlen umgesetzt (ASCII - 30 hex) 00123 dez. im 5 Bytes.
Die Komplette Zahl erhält man in dem man diese nun zusammenrechnet.
   0 * 10 0000 =  0
+  0 * 1000    =   0
+  1 * 100     =    100
+  2 * 10      =     20
+  3 * 1       =      3
------------------------
 Ergebnis:          123

Wenn du die Zahlen nicht als ASCII bekommst, sondern in Bytes vorliegen 
hast, läßt du die Subtrktion mit 30 hex einfach weg. Als Start oder 
Endzeichen kannst du Werte -> 9 einsetzen, da eine Stelle ja nicht 
diesen Wert erreichen kann.
Gruß oldmax

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.