Forum: Mikrocontroller und Digitale Elektronik Problem mit XC167 bei printf und fließpunktzahl


von Tong Luo (Gast)


Lesenswert?

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);
}

von Timmo H. (masterfx)


Lesenswert?

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?

von Tong Luo (Gast)


Lesenswert?

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)?

von Tong Luo (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.