This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

problem with transfer parameter into subroutine

I am having some problem to pass parameter into subroutine.

I have defined:

BOOLEAN CRC_Message_Verify(UINT8 nbyte);

in my program, I have this line:

crc_ok = CRC_Message_Verify(SpiLoadIndex);

in which, SpiLoadIndex is defined as UINT8 xdata type,

when I single step debugging, before calling CRC_Message_Verify function, SpiLoadIndex = 5, and inside the subroutine, nbyte = 95. How come nbyte is totally different? Any ideas?

Parents
  • I will turn off optimizer and run some more test tomorrow. The bottom line is that the CRC result is not correct. This subroutine has been verified in other test program.

    Last week, I even had problem with assigning variable in the same ISR routine, I had " A = B; " and after executing that line, value stored in A and B are not same. I have to use static to define them to make the equation right. Now I am wondering if these are related somehow.

Reply
  • I will turn off optimizer and run some more test tomorrow. The bottom line is that the CRC result is not correct. This subroutine has been verified in other test program.

    Last week, I even had problem with assigning variable in the same ISR routine, I had " A = B; " and after executing that line, value stored in A and B are not same. I have to use static to define them to make the equation right. Now I am wondering if these are related somehow.

Children