STM32: sprintf wandelt nicht richtig

OP #5527689
Lesenswert?
• ▲
▼
Hallo,

ich habe einen Quellcode von einem Atmega2560 auf einen STM32 gespielt. 
Nun macht sprintf Ärger. Anstelle einer Zahl in ASCII kommt nur Mist.
1
char caMinuten[4];
2
char caSekunden[4];
3
unsigned char ucMinuten;
4
unsigned char ucSekunden;
5

6
sprintf(caMinuten, "%2d", (int)ucMinuten);
7
sprintf(caSekunden, "%02d", ucSekunden);


Als String kommt "d" und "2d" anstelle der zu wandelnden Zahl. Mit Itoa 
geht es, aber Sekunden muß ich dann noch per Hand in eine zweistellige 
Zahl wandeln.

Warum geht sprintf beim STM32 (Segger Compiler) nicht richtig?

Gruß
Martin
OP #5527844
Lesenswert?
• ▲
▼
>Was passiert wenn du mal %2i oder %2u benutzt?
Es wird "i" und "u" in den String geschrieben.


>#include <stdio.h>  ist vorhanden?
ja

>oder braucht der Linker Optionen für das printf?
Das von dem Segger-Link habe ich nun nicht so ganz verstanden.
Ich habe mal den Tooltip angehängt, was der Segger zu sprintf sagt. Wo 
muß ich da was machen?
Angehängte Dateien:
Gast #5527846
Lesenswert?
• ▲
▼
Irgendwo in den Projekteinstellungen für den Linker, ich kenne die 
Segger Tools/IDE nicht, deshalb kann ich das nicht konkreter sagen. Aber 
laut dem Link wird das so sein. Printf kostet viel Speicher und da ist 
es plausibel das es verschiedene Optionen gibt.
Was kommt den raus bei %d ohne die Längenangabe? Das sollte als Minimum 
funktionieren.
Gast #5527862
Lesenswert?
• ▲
▼
Aus der oben verlinkten Doku:

"Some library variants do not support width and precision specifiers in 
order to reduce code and data space requirements; please ensure that you 
have selected the correct library in the Printf Width/Precision Support 
property of the project if you use these."
OP #5527872
Lesenswert?
• ▲
▼
foobar schrieb:
> Aus der oben verlinkten Doku:
>
> "Some library variants do not support width and precision specifiers in
> order to reduce code and data space requirements; please ensure that you
> have selected the correct library in the Printf Width/Precision Support
> property of the project if you use these."

Wo kann ich das bei Segger einstellen?
Anbei eine Hardcopy der Options.
Angehängte Dateien:

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.