Also folgende Geschichte wenn ich in meinem Programm ein array in eine variable umwandle und diese dann wieder zurück um sie an den usart zu schicken wird mein programm gleich 10k groß. wieso??? und kann ich das irgend wie umgehen zum beispiel mit einer eigenen funktion.... ich probier schon selber nen bsichen kriegs aber seit zwei stunden nicht wirklich gebacken. danke schon mal für die antwort cya
mach mal ein beispiel? Sind es es float werte die umwandelst?
hoi puffer ist mein char array was ich vom usart kriege und mit putstring packe ich es wieder auf den usart sscanf(puffer, "%d", &test); test++; putstring("\n\r Berechnete Ausgabe "); sprintf(puffer, "%d", test); danke schonmal
verwende mal atoi und itoa das solllte wesentlich sparsarmner sein, aber 10k kommen mir merkwürdig vor, hast du die optmierung eingeschaltet?
>wird mein programm gleich 10k groß
Mehr Details, Programm, µC-Familie?
sprintf usw. verbraucht immer eine Menge Speicher. Manche Compiler
bringen Small- oder Tiny-Varianten mit. Meist kann man sich zur
Formatierung aber selber eine optimierte Routine schreiben.
Andererseits, ist freier Speicher = verschenkter Speicher, wenn Du genug
hast.
Peter schrieb: > aber > 10k kommen mir merkwürdig vor Die CPU hat er ja nicht genannt. Das wird warscheinlich ein ARM sein, mit 32bit Befehlen kriegt man 10k schnell voll. Auf nem 8051 wäre das natürlich entschieden zuviel, selbst ohne Optimierung. Peter
danke für die schnelle antworten also controller atmega32 programm welches meinst du damit ???? und wo finde ich im programmers notepad die speicheroptimierung ??? ich check das gleich mal mit atoi und itoa cya
ok danke schonmal ich denke es wird mit atoi und itoa gehen. lese mich gerade da ein bekomme es aber noch nicht wirklich gebacken. danke für alles bist jetzt
Danke für alles ich habs jetzt geschafft. Macht auch Sinn warum des teil so groß geworden ist. Ich hab vorhin einfach nur die syntax von atof und atoi verplant. das mit der speicheroptimierung hat auch gepasst jetzt ist das file sogar noch kleiner und ich krieg noch den rest vom projekt in den microcontroller. also nochmal vielen dank hier noch kurz die syntax falls es nochjemanden giebt der so verplant ist wie ich, was ich nicht vermute. putstring(puffer); test = atoi(puffer); test++; itoa( test, puffer, 10 ); cya
Matthias K. schrieb: > sprintf usw. verbraucht immer eine Menge Speicher. Der Grund ist, dass sie den Formatstring zur Laufzeit auswerten und daher alle möglichen Formatierungs-Routinen "vorhalten" müssen, egal, ob diese am Ende benutzt werden oder nicht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.