A discussion group for the PICMicro microcontroller. Also called the Microchip PIC, this list is dedicated to the use and abuse of this fine, simple, microcontroller. Close to topic posts are welcome, ie. general electronics.
I am writing a program for the PIC18F66J50, using MPLAB IDE v8.14
(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.
void main()
{
...
ServiceDebugPrint();
...
}
void ServiceDebugPrint()
{
...
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
following values:
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?
Thanks
BasicPoke
------------------------------------
to unsubscribe, go to http://www.yahoogroups.com and follow the instructions

(You need to be a member of piclist -- send a blank email to piclist-subscribe@yahoogroups.com )