Hallo zusammen,
ich glaube, dass sich da noch ein Fehler eingeschlichen hat. Die SerWrite()-Funktion benötigt einen Pointer auf Daten. Aber hier werden 'Netto'-Bytes, also ohne Pointer, (z.B. das '-') an die Funktion übergeben.
Ersetzt mit UartPutc() und dann geht es bei mir perfekt.
Übrig bleiben ganze 56 Byte bei Optimizereinstellung -Os (size)
Gruß Sternthaler.Code:#include <asuro.h> void PrintChar (int x) { int b = 0; if (x < 0) { UartPutc ('-'); x = -x; } if (x >= 10) { while (x >= 10) { b++; x -= 10; } PrintChar (b); } UartPutc (x + '0'); } int main (void) { Init (); while (1) { PrintInt (-9854); PrintChar (-26978); } return 0; }
P.S.: Na izaseba, jetzt kommt der Sport![]()
Lesezeichen