Forum: Mikrocontroller und Digitale Elektronik int Zahl als Ascii äquivalent darstellen


von Michael A. (mike22)


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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

itoa?

(s)printf?

von Klaus W. (mfgkw)


Lesenswert?

C-Buch?

(bin schon wieder wech...)

von Michael A. (mike22)


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!

von Peter II (Gast)


Lesenswert?

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

auch ohne Oszi kann ich dir sagen das itoa viel schneller ist.

von Karol B. (johnpatcher)


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.

von Matthias (Gast)


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!

von Peter D. (peda)


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

von Udo S. (urschmitt)


Lesenswert?

Peter II schrieb:
> auch ohne Oszi kann ich dir sagen das itoa viel schneller ist.

ein gutes C Buch hätte es ihm auch sagen können.

von Klaus W. (mfgkw)


Lesenswert?

naja, gerechterweise muß man sagen, daß itoa kein ANSI-Standard ist und 
damit nicht unbedingt in jedem C-Buch steht...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.