Hallo zusammen, hier habe ich mit einem komischen Problem getroffen. Ich möchte im Programm Fließpunktzahlen benutzen. Aber es sieht das, dass es komflikt mit Funktion "printf" gibt. Das Programm ist wie folgend geschrieben. Wenn ich die Funktion "printf" benutzte und paraller eine Fließpunktzahl definierte dann kommt Problem bei Programm herunterladen, aber es kommt kein Problem bei der Complierung.. #include <XC167.h> #include <stdio.h> #define WillProblem 0 void main (void) { #if WillProblem == 1 double Problem = 1.0; #endif #ifndef Monitor P3 |= 0x0400; DP3 |= 0x0400; DP3 &= 0xF7FF; ASC0_TIC = 0x80; ASC0_RIC = 0x00; ASC0_BG = 0x81; ASC0_CON = 0x8011; #endif ALTSEL0P3 |= 0x0C03; putchar(' '); printf ("\xAHello World\n"); while (1); }
Ich weiß ja nicht wieviel Flashspeicher dein µC hat, aber die Floatingpoint Lib braucht ziemlich viel Platz und da kann es natürlich sein, dass es einfach nicht mehr rauf passt (zumal printf und das was dazu gehört) auch nicht gerade klein ist. Wie sieht denn dein Map-File aus?
Danke für die Antwort. Aber ich denke das Problem ist nicht auf die Programmgröße oder Speicher. Weil wenn ich nur Fließpunktzahl benutze, ist es auch kein Problem. Problem kommt nur wenn "double" und "printf()" gleichzeitig im Programm sind.. Ich habe kein Map-File benutzt, die Map ist wie: ROM: Start 0x0000 0000 Größe:0x0010 0000 RAM: Start 0x0020 0000 Größe:0x0008 0000 intere Spercher ist geblockt. Kann das sein, das auf dem Board ist der Flash AM29F800BB, aber im Keil habe ich AM29F800BT gewahlt(es gibt nur -BT im Keil)?
Habe ich gelöscht...das ist das Problem mit dem Flash..
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.