Parameters not passing correctly
(also happened with 8.10). Suddenly I noticed one of my functions
was not working correctly, and discovered that inside the function
the parameters that were passed in do not have the values that was
used in the function call. I made a test function (see below) and
the same thing happens.
Test( 1, 2.0 ); //breakpoint here
void Test( unsigned char a, float b )
unsigned char c = 0;
unsigned char d = 0;
unsigned char e = 0;
c = 1;
d = 2;
e = 3;
c = d;
d = e;
e = c;
When I step through the function, the watch window shows the
a = 0x00
b = 2.298970e-041
These values are the same every time I run the program.
If I reverse the order of the arguments (change to "unsigned char a,
float b") the values become:
a = 0x16
b = 8.968310e-044
It is not a matter of the name "Test", if I use a different name the
same thing happens.
IMPORTANT CLUE: If I call Test() as the first line of main(), the
parameters are passed correctly.
It's like I'm running out of RAM or stack space. Any ideas what's
going on here?