PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 16F877A printf Dezimalzahl?



RoboLeo
04.11.2005, 13:50
Hallo

Hab mal wieder ein kleines Programmierproblem.
Hatte einen 16F628A PIC so programmiert das er mir in 100ms Zeitintervallen einen Datenstring via RS232 an den Computer sendet. Das hat einwandfrei funktioniert.
Da ich nun aber den PIC wechseln muss (Brauch mehr IOs) wollte ich das Programm auf den 16F877A kopieren.

Nun hab ich das Problem das dieser PIC scheinbar keine long decimals senden kann. Schreibe ich %ld stoppt der PIC bei der Datenuebertragung. Habs simuliert.
Wenn ich allerdings %x schreibe sendet er die Daten. Allerdings in HEX und nicht dezimal. Hardwaremaessig ist es genauso.
Versteh das nicht.

Schon mal danke.

Hier der Code.

#int_RTCC
RTCC_isr()
{
if(timerdelay == 50)
{
output_high(PIN_A0);
timercount++;

printf("%ld , %ld , %ld,\n",timercount,hallgear,hallwheel);
}
else
{
timerdelay++;
}
output_low(Pin_A0);
}

//Die Variablen sind als int8 bis int32 initialisiert

Bye

PicNick
04.11.2005, 14:51
Weder dieser noch jener PIC können das. Für die Auswertung des Format-Specifiers ist ausschliesslich der Kompiler zuständig.

RoboLeo
07.11.2005, 06:35
Sers

Das das ein Problem vom Kompiler ist hab ich mir schon gedacht.
Aber jener Chip, der 16F628, kann das. Hat ja schon funktioniert.

Hmmm