int Zahl als Ascii äquivalent darstellen

OP #2695367
Lesenswert?

Hallo Zusammen,

ich möchte für ein Display Projekt eine über einen 12 Bit AD-Wandler 
erstellte Zahl in eine Folge von Ascii-Zeichen wandeln.

Sprich wenn
1
 int wert_int = 0x0fff;

dann soll mir die Funktion möglichst einfach und schnell einen String 
mit dem Inhalt "4095" liefern. Also 0x34, 0x30, 0x39, 0x95, 0x00.

Ich verwende einen PIC18.

Ich freue mich auf eure C-Vorschläge, bin momentan echt ratlos.
OP #2695401
Lesenswert?

Vielen Dank erst mal für dei schnelle Antwort.

sprintf funktioniert:
1
unsigned int wert_int=0x0FFF;
2
char ascii[5]={};
3

4
sprintf(ascii,"%d",wert_int);

itoa versuch ich später auch noch.

Wenn ich dann ein Oszilloskop zur Hand habe entscheide ich mich für die 
schnellere der beiden Funktionen.

Vielen Dank!
#2695784
Lesenswert?

Michael A. schrieb:
> Wenn ich dann ein Oszilloskop zur Hand habe entscheide ich mich für die
> schnellere der beiden Funktionen.

Siehe: 
http://www.mikrocontroller.net/articles/FAQ#Wie_kann_ich_Zahlen_auf_LCD.2FUART_ausgeben.3F

> Der "Haken" an der mächtigen Funktion sprintf() ist, daß sie auch bei
> minimalisierter Konfiguration verhältnismäßig viel Programmspeicher
> (Flash-ROM) belegt und relativ viel Prozesszeit benötigt. Daher sollte man
> sprintf() nur verwenden, wenn kein Speicher- und Prozesszeitmangel
> besteht. Sonst sollte itoa() oder eine eigene, auf die Bedürfnisse
> optimierte Implementierung auf jeden Fall vorgezogen werden.
Gast #2695798
Lesenswert?

Michael A. schrieb:
> Wenn ich dann ein Oszilloskop zur Hand habe entscheide ich mich für die
> schnellere der beiden Funktionen.

Bei Triggerung auf den Takt des PICs kannst Du im Dual-Channel-Modus 
beide Funktionen gleichzeitig anschauen und beurteilen. Dazu solltest Du 
aber ein vernünftiges Oszi benutzen und nicht die billigen Hamegs!
#2695889
Lesenswert?

Michael A. schrieb:
> Wenn ich dann ein Oszilloskop zur Hand habe entscheide ich mich für die
> schnellere der beiden Funktionen.

Selbst HDTV arbeitet nur mit 24 Bildern je Sekunde, weil der Mensch 
schneller nicht unterscheiden kann.
Wenn also die Routine in 1/24 = 41ms fertig ist, reicht das dicke.

Für Meßausgaben wird sogar noch zusätzlich verlangsamt, damit das Auge 
nicht ermüdet durch das Geflacker, 2..5 Meßwerte/s sind ergonomisch.


Peter

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