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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren