问题之编程语言_c语言_无符号计算
1.虽然查了资料大概了解了MCU处理减法的方式,使用加法加上补码,但是在处理一段程序时任然遇到了问题;
程序实现周期性处理一段程序:
u16 Systime,starttime;
if((Systime-starttime)==SCANSLAVEDATATIMES)
{
starttime = Systime;//重新载入时间
处理数据部分
}else if((Systime-starttime)>SCANSLAVEDATATIMES){
starttime = Systime;//重新载入时间
}
调试发现程序不会进入else if语句(虽然实际上基本不会进入,但是为了实验,在定时器中周期性将Systime置位0);
经过查证C语言进行减法会强制将u16转换为INT类型,此处将U16换成U32后工作正常,正确语句如下:
u32 Systime,starttime;
if((Systime-starttime)==SCANSLAVEDATATIMES)
{
starttime = Systime;//重新载入时间
}else if((Systime-starttime)>SCANSLAVEDATATIMES){