mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wert über Uart empfangen und damit weiterarbeiten


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Will über die serielle einen Wert empfangen, den ich nachher als
Schleifenzähler benutzen möchte. Wie stell ich sowas an? Wenn zB 100
geschickt wird, soll die Schleife 100mal durchlaufen werden. Im Prinzip
hab ich ja dann 3 Werte nämlich 1 , 0 und 0. und damit kann ich doch
nichts rechnen
mfg markus

Autor: max.p (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo markus

Warum willst du den wert in einzelnen ziffern übertragen? schik ihn
doch einfach binär. Dann bekommst du nur ein zeichen und das kannst du
dann gleich als zähler benutzen. für 100 währ das dann 0x64 oder
0b01100100 oder das zeichen oder das @ symbol. geht aber nur bis 254
wenn du mehr durchleufe brauchst musst du hald 2 zeichen empfangen.
Dann brauchst du nach de empfangen nur noch immer den wert mit dec um 1
verkleinern.
google vieleicht mal nach "ASCII Tabelle" dann verstehst du vieleicht
was ich meien.

mfg
Max

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also 254 würden mir reichen, bräuchte nur Werte bis 100. Hab jetzt mal
in so ner ASCII Tabelle nachgeschaut. Also zB steht da im dez Code für
100 der Buchstabe d. Heisst das, dass ich statt der 100 auch ein 'd'
schicken kann und dann mit dem weiterrechnen als obs ne Zahl wäre? Muss
ich da nix konvertieren oder so? Also könnt ich den Wert in mein R7 oder
was auch immer laden und dekrementieren?
mfg markus

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah sorry habe was vergessen. Für die Schleife würden mir 100 reichen,
aber ich muss dem MC zusätzlich sagen wieviel Messwerte er speichern
soll. Und da ist dann der oberste Wert 20 000. Das ist dann bissel
schlecht zu realisiern oder wie soll ich das machen?
mfg markus

Autor: max.p (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo
Also wie du des schon richtig erkannt hast kannst du auch einfach nur
einzelne zeichen sicken. Der AVR (ich geh mal aus das du einen hast)
speichet das zeichen in binärer form wie es in der ASCII tabelle
angegeben ist, also für d z.B. 01100100 *. Dem Atmel is es völlig egal
was das jetzt ein zeichen oder ein wert ist. Für die Anzahl der
Messwerte musst du dann zwei zeichen übertragen, also eine 16bit zahl.
dann gehts bis 65535. Also erst das untere byte und dann das obere.Weis
aber nicht wie mann das am besten macht, da ich meist in c porgrammiere.


mfg
Max

*Hab mich da vorhin mit dem @ zeichen in der Spalte geteuscht.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was meinst du mit AVR? Ist das der Prozessortyp? Habe nen ADuC832,
scheint hier ja nicht sehr verbreitet zu sein. Ich brauche zum
Speichern des Wertes dann ja ein 16bit breites Register oder?Also das
wäre bei mir das SFR dptr(Datenpointer), das ist das Einzige mir
bekannte 16bit Register. Irgendwie auf 2 aufsplitten wird ja nicht
gehen denk ich ???
mfg markus

Autor: max.p (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry ADuC832 kenn ich nicht. bei einem Atmel AVR uC dibt es spezielle
register die sich zu einem 16 bit register zusammenfügen.

mfg
Max

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.