mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kommazahl übern UART schicken!


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe da mal eine Frage, wie bekomme ich eine errechnete Kommazahl
per UART zum PC?? (ATmega8 -> PC)
Muß ich diese Zahl erst in eine Zeichenkette umwandeln und dann Char
für Char rüberschicken??? oder gibt es da was anderes??

Vielen Dank

Martin

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martin,

wenn Du weißt, auf wieviele Stellen genau Du die Zahl brauchst,
multiplizier sie doch im AVR mit einem Faktor (sagen wir, 1000), schick
sie zum PC und teile sie dort wieder durch diesen Faktor.

Gruß Sebastian

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soweit ich weis must du die Zahl umwandeln.
ich würd das so machen:
z.B. 124,4
124,4 * 10 = 1244
1244 / 1000 = 1 Rest 244   1+48 = '1'
244 /100    = 2 Rest 44    2+48 = '2'
44 / 10     = 4 Rest 4     4+48 = '4'
komma senden, dann die 4 die übrig bleibt.

So mach ich das immer(in ASM).
Keine Ahnung obs da noch was besseres gibt.
Die Zahl sollte das Komma immer an der selben stelle haben, sonst musst
du das voher extra auswerten.


Gruß Matthias

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@matthias: Ist doch etwas umständlich, oder?

@martin: Wie Programmierst Du den AVR? In asm oder in c?

Sebastian

Autor: MSE (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn (aber auch nur dann!) Du auf dem AVR und dem PC Gleitkommazahlen
des selben Formats verwendest, dann könntest Du die Gleitkommazahl so
wie sie ist Byte für Byte übertragen.
Du könntest dazu ein union definieren, das folgende zwei Felder hat:

1. die Gleitkommazahl und
2. ein Bytearray aus so vielen Bytes, wie die Gleitkommazahl groß ist.

(Dies kann sowohl AVR- als auch PC-seitig so geschehen.)

Gruß, Michael

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi...

Wenn es nur um die Anzeige im Terminalprogramm auf dem PC geht, dann
schick doch einfach den ASCII-Code für das Komma oder den Dezimalpunkt
rüber...

...HanneS...

Autor: matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@sebastian: gibts ne bessere möglichkeit in assembler? Meine möglichkeit
is dafür gedacht die Zahl z.B. im Hyperterminal anzeigen zu lassen. Wenn
ich die Zahl sowiso nachher am PC weiterbearbeite geht das natürlich
einfacher...

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ sebastian
 ich programmiere in c, und ich möchte gerne die Zahl gleich mit Visual
C weiterverarbeiten.

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.