int Zahl als Ascii äquivalent darstellen

OP #2695367
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.