PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Debugging per UART auf einem Atmega 8



chrisavr1981
05.01.2014, 14:16
Hallo zusammen,

ich versuche mich gerade nach und nach in die Microcontroller der Firma Atmel einzuarbeiten.
Ich versuche gerade mir begreiflich zu machen wie ich per UART meine Atmega 8 Controller einigermaßen debuggen kann.

Es geht mir darum zu wissen wie ihr beispielsweise von Float oder von Int nach String wandelt, alles per sprintf oder habt ihr euch eigene Funktionen geschrieben? Möglichkeit wäre noch itoa aber einige Funktionen wie ftoa habe ich nicht.

Zur Erklärung: meine 8 Kbyte Speicher sind sehr schnell verbraucht, wenn ich immer ein sprintf nehme.

Vielleicht habt ihr noch Ideen?

Vielen dank fürs lesen!

oberallgeier
05.01.2014, 14:57
Hallo chrisavr1981

willkommen im Forum.


... meine 8 Kbyte Speicher sind sehr schnell verbraucht, wenn ich immer ein sprintf nehme ...Geht mir beim m8 auch so.


... von Float ... nach String wandelt ...Vielleicht hilft Dir dies (klick mal) (http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=691092) oder dieser Thread (klick). (http://www.mikrocontroller.net/topic/1146#696509) Oder "back" to the roots hier. (http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#ga6c140bdd3b9bd740a1490137 317caa44)

Viel Erfolg.

chrisavr1981
05.01.2014, 15:38
Hallo JoeamBerg,

danke für die Tipps, aber jetzt mal Hand aufs Herz, ich hatte eher an so etwas gedacht:



char* neuitoa(uint8_t i, char b[])
{
char digit[] = "0123456789";
char* p = b;

if(i<0){
*p++ = '-';
i = -1;
}
uint8_t shifter = i;
do
{ //Move to where representation ends
++p;
shifter = shifter/10;
}
while(shifter);
*p = '\0';
do
{ //Move back, inserting digits as u go
*--p = digit[i%10];
i = i/10;
}
while(i);
return b;
}


und jetzt nur das ganze von float nach string.

Vielen Dank und viele Grüße!