sprintf funktioniert nicht

OP #2836047
Lesenswert?
• ▲
▼
Hallo erst mal, und im Voraus danke für jegliche Hilfe.

Ich hab nen Problem beim eine float zahl in einen String reinschreiben.

Das ist das Programm, das ich zum Testen geschrieben hab.
1
#include "p18f452.h"
2
#include "delays.h"
3
#include "stdlib.h"
4
#include "math.h"
5

6
void main (void)
7
{
8

9
float AD2_result;
10
char AD2[5];
11

12
LATD=0x00;
13
TRISD=0x00;
14

15
AD2_result=123.4;
16

17
Delay1KTCYx(1);
18

19
sprintf(AD2,"%3.1f",AD2_result);
20

21
LATD=AD2[0];
22

23
Delay1KTCYx(1);
24

25
while(1);
26

27
}

An PORTD sind LED's angeschlossen welche dann den Inhalt der 
Kommponennte [0] vom char AD2 anzeigen sollen.

Es tut sich leider gar nichts, hab auch alle Komponennten durchgetested 
(AD2[0] bis AD2[4])
Die Hardware hab ich getestet und sie funktioniert, also es ligt sicher 
an der Software.


es wäre super wenn mir jemand weiterhelfen könnte

mgf

alex
#2836157
Lesenswert?
• ▲
▼
Wenn im Array "123.4" stehen soll muss der format-string "%5.1f" oder 
einfach nur "%.1f" (anzeige mit einer nachkommastelle) sein. Lies den 
o.g. FAQ-Link, da steht die Formatierung bei float-Ausgabe beschrieben.

Ist der Stack groß genug? Die printf-Funktionen sind sehr 
speicherhungrig.
#2836208
Lesenswert?
• ▲
▼
printf unterstützt standardmäßig keine Fließkomma-Operationen. Schau in 
die Doku der avr-libc, da steht drin, mit welcher Option Du dieses 
Feature aktivierst.

bis zu 3 Ziffern for dem Komma
+ Komma (bzw. Punkt)
+ eine Ziffer nach den Komma
+ eventuell das "-" Vorzeichen
+ String-Ende Markierung

macht zusammen bis zu 7 Bytes. So groß muss das Array mindestens sein.

Antwort schreiben

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.

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.