unsigned char ChangeForm(unsigned char BData)
//这个函数是按位(bit)记的char转换为char 如 BData=0000,1000 转换为 CData=3即0x03 1000,0000转换为7即是0x07
{
unsigned char CData;
CData=0;
BData=BData/2;
while(BData)
{
BData=BData/2;
CData++;
}
return(CData);
}
问题是 调试的时候CData总是等于0x0b BData=0xff 运行时值不会变化 为什么?
当时编译data=53.5是不是data不够用啊?不可能吧 data=53.5大吗
我在调试中出现这些问题 registor窗口中在r0-r5均给用上了 只有r6 r7暂时没用上
sp为41 spmax为47
我单步调试的时候 在ChangeForm内部数据是正确的 但函数返回的时候把r6 r7内容覆盖了 我知道是ret从堆栈pop出来了覆盖r6 r7
那么ChangeForm函数是不是没有r调用了啊,那么我该怎么去解决它呢?