stalky13
14.02.2009, 21:28
Hi,
Ich Programmiere mit der MPLAB IDE V7.6 und als Compiler verwende ich C18.
Ich bekomme bei einer Division mit Rest ein Falsches Ergebnis ...
/* D I S P L A Y N U M B E R **************************************************/
void DSP_DrawNumberLeft( static unsigned short numb, static unsigned char len, static unsigned char posx, static unsigned char posy )
{
static unsigned short DrawNumb;
static unsigned char DrawPoint;
//Noch mehr Code
DrawNumb = numb; //Nummer Speichern
//Noch mehr Code
DrawNumb %= 10; //Rest ermitteln
//Noch mehr Code
}
numb bekommt bei der Parameterübergabe der Funktion den Wert 2.
DrawNumb enthält am ende der Funktion aber nicht 2 sonder 233 ... Ich kann leider nicht die Ganze Variable sehen sondern nur das erste Byte weil ich nur über UART debuggen kann. Ein zweites Byte Hinterherschiken wäre so aus dem Stand sehr aufwändig. Trotzdem müsste das Ergebnis 2 sein.
Den Kot drumherum habe ich bereits auskommentiert es steht wirklich nurnoch das in der Funktion was ich oben geschrieben habe.
Wo liegt das Problem? Bzw. weis Jemand wie die Syntax aushehen muss dammit es Funktioniert?
MfG Stalky13
Ich Programmiere mit der MPLAB IDE V7.6 und als Compiler verwende ich C18.
Ich bekomme bei einer Division mit Rest ein Falsches Ergebnis ...
/* D I S P L A Y N U M B E R **************************************************/
void DSP_DrawNumberLeft( static unsigned short numb, static unsigned char len, static unsigned char posx, static unsigned char posy )
{
static unsigned short DrawNumb;
static unsigned char DrawPoint;
//Noch mehr Code
DrawNumb = numb; //Nummer Speichern
//Noch mehr Code
DrawNumb %= 10; //Rest ermitteln
//Noch mehr Code
}
numb bekommt bei der Parameterübergabe der Funktion den Wert 2.
DrawNumb enthält am ende der Funktion aber nicht 2 sonder 233 ... Ich kann leider nicht die Ganze Variable sehen sondern nur das erste Byte weil ich nur über UART debuggen kann. Ein zweites Byte Hinterherschiken wäre so aus dem Stand sehr aufwändig. Trotzdem müsste das Ergebnis 2 sein.
Den Kot drumherum habe ich bereits auskommentiert es steht wirklich nurnoch das in der Funktion was ich oben geschrieben habe.
Wo liegt das Problem? Bzw. weis Jemand wie die Syntax aushehen muss dammit es Funktioniert?
MfG Stalky13