PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : itoa,sprintf,ultoa, etc. - Routinen stoppen Programm!!!



surfer
06.01.2005, 11:59
Hallo ihr Super-Programmierer! Ich hoffe ihr könnt mir helfen!
Ich möchte am LCD einen gemessenen Wert ausgeben. Da ich nur Zeichen ans Display sende, muss ich ja die Integer oder Float oder wie auch immer zuerst in CHAR umwandeln. Ich habe verschiedene Routinen wie itoa, sprintf oder ultoa gefunden. Alle funktionieren im C++ Builder von Borland, ich habs dort auf dem Computermonitor kurz getestet und funktioniert. Nun bleibt bei meinem AT90S8515 aber das Programm irgendwie hängen, wenn ich diese Routine mehr als 1-mal verwende! Grrrr.... Ich möchte doch nur ein Testprogramm für das LCD schreiben, dass eine Integerzahl fortlaufen Inkrementiert in ca. 1s abständen, aber es läuft und läuft nicht!!!!

#include <io.h>
#include <stdio.h>

int a;
char test[10];

int main(void)
{
a=1; // Den Wert 1 in die Integerzahl "a" schreiben
disp_init(); // Display initialisieren
disp_clear(); // Display löschen
while(1) // Endlosschleife
{
sprintf(test,"Zahl: %i",a); // Int "a" nach Char "test" umwandeln
disp_write_ln(test,0x00); // Char "test" ans Display auf Spalte 0 schreiben
for(i=1; i<5000; i++); // Warteschleife (ca.1s)
a++; // a inkrementieren
}
}


Ich hoffe ihr könnt mir helfen!!! Würde mich freuen, wenn mal ein bisschen Bewegeung aufs Display kommt und nicht immer die gleiche Zahl dortstehen würde!!! O:)

Merci

bluebrother
06.01.2005, 15:36
Also wenn du nur eine Zahl umwandeln willst schreibst du dir besser selber ne kleine Routine, das ganze stdio-Zeugs braucht extrem viel Speicherplatz. Ich gehe davon aus dass es dein sprintf ist was dir abschmiert.

surfer
07.01.2005, 14:55
Danke. Hab ich mir fast schon gedacht...
Ich hab vor langer Zeit mal so eine Routine selbst geschrieben, weiss aber wirklich nicht mehr, wie ich das gemacht habe.
Hätte jemand ein paar Ideen oder eine Routine zum anschauen? Danke

07.01.2005, 15:47
http://www.mikrocontroller.net/forum/read-4-46127.html#new