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
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
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
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
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.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.