USART Float übergeben STK600 AT32UC3C0512C

Gast #3708177
Lesenswert?
• ▲
▼
Hallo,

Ich arbeite momentan an einem Projekt mit einem STK600 und dem Prozessor 
AT32UC3C0512C der Firma Atmel.

Im Programm wird ein Vector mit Float-Werten erzeugt der per USART an 
den PC übergeben werden muss.

Ein Beispielprogramm der Firma Atmel habe ich bereits umgeschrieben und 
kann auch ein "Hello World" ausgeben.

Wenn ich allerdings Zahlen übergeben will wird immer nur die letzte 
Ziffer übertragen.

Vielleicht wisst ihr da ja eine Lösung für mein Problem.

Grüße

PHTH
Gast #3708403
Lesenswert?
• ▲
▼
Danke schon mal für die schnellen Antworten!

nachfolgend einmal der Code-Abschnitt für das "Hello World". ICh hoffe 
mal das reicht so
1
while (1)
2
  { 
3
    
4
  // Hello world!
5
  usart_write_line(EXAMPLE_USART, "Hello World");
6

7
  // Press enter to continue.
8
  while (usart_get_echo_line(EXAMPLE_USART) == USART_FAILURE);  // Get and echo characters until end of line.
9

10
  usart_write_line(EXAMPLE_USART, "Goodbye.\r\n");
11
  
12
  }

und jetzt möchte ich anstatt des "Hello World" einen Float-Wert 
übergeben.

die Float-Werte sollen erstmal nur am PC angezeigt werden.

Gruß

PHTH
Gast #3708486
Lesenswert?
• ▲
▼
Hier einmal der Code-Teil bei dem nur die letzte Ziffer übergeben wird
1
float adc_value[1];
2
  adc_value[0] = 1.2;
3
  float wert = adc_value[0];
4

5
  while (1)
6
  {
7
    usart_write_char(EXAMPLE_USART, wert); //oder usart_write_line(EXAMPLE_USART, wert);
8
    
9
    while (usart_get_echo_line(EXAMPLE_USART) == USART_FAILURE);  
10

11
    usart_write_line(EXAMPLE_USART, "Goodbye.\r\n");
12
  }
Gast #3708536
Lesenswert?
• ▲
▼
Also ...  in C gibt es verschiedene Datentypen wie float oder char.
Und bei einer Funktion
usart_write_char()
sollte man unter Umständen auch ein char übergeben und nicht einen 
float.

Wie man aus einem Float mit sprintf oder ähnlichem eine Zeichenkette 
erzeugt, steht in jedem guten C-Buch.

Da werden auch die Unterschiede von float, int und char erklärt.

Ein-Elementige Vektoren wie float adc_value[1] sollte auch vermieden 
werden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 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.