首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

因为小弟我水,所以遇到一个很“奇怪”的有关问题,高手来相助

2013-03-12 
因为我水,所以遇到一个很“奇怪”的问题,高手来相助ta0r_fliter 是int 型,TA0R是unsigned short int 型,ta0r

因为我水,所以遇到一个很“奇怪”的问题,高手来相助
因为小弟我水,所以遇到一个很“奇怪”的有关问题,高手来相助

ta0r_fliter 是int 型,TA0R是unsigned short int 型,ta0r_fliter的初值是0,赋值都是TA0R赋给它

int ta0r_fliter=0;

从图中可见,此时TA0R是1,ta0r_fliter是由unsigned short int赋值给的,不会小于0, int 自动类型匹配转成 unsigned short int 的话 也是非负的。

那么TA0R-ta0r_fliter 怎么满足 >2的条件而进入if里面去呢? 没搞明白。

编译环境是:IAR  硬件环境是:MSP430 5438a
[解决办法]
unsigned short int ,非负

TA0R改成 int
[解决办法]
一个负数,强制转换成unsigned,会很大。

if(TA0R〉a0r_fliter + 2)。
[解决办法]
无符号的判断指令和带符号的判断指令是不一样的

热点排行