reg=get_datas_bit(7654321,6);
该函数在main下掉用,返回的reg=6;
但从子函数中经过1个if,2个switch后掉用后返回的reg=0;
函数如下:
u8 get_datas_bit(u32 datain,u8 sp)
{ u8 i,value;
for(i=1;i<sp;i++)
{ datain/=10;
}
value=(u8)(datain%10);
return value;
}
我试过关掉所有中断;编译器设置为不进行优化;甚至脱离仿真器直接运行,都表现为不正常。
单片机型号为:stm8s105k6
仿真器为:Rlink RAISONANCE
用的开发软件为:ST Visual Develop Version 4.1.3
我们几个工程师讨论都没解决,希望有高人解决。 |