[DSP编程] 和溢出

[复制链接]
1285|7
 楼主| xishuidemian 发表于 2014-9-3 21:33 | 显示全部楼层 |阅读模式
新手刚学习DSP,调试中出现一个问题。SCI串口接收中断里有个和校验,
unsigned char Rec_Buff[5];
unsigned char sum;

for(sum=0,i=0;i<4;i++)
{
    sum += Rec_Buff[i] ;
}
//if(Rec_Buff[4] == sum)//这里if不成立
if(Rec_Buff[4] == (unsigned char)(sum & 0x00ff))//而这里if成立
{
。。。
}
串口助手发送数据:AA 55 E1 E1 C1。断点调试的时候发现Rec_Buff[4]为0x00C1,而sum为ox02C1。
问题1:我定义的都是char型变量,怎么显示的是16位呢?
问题2:是不是ccs3.3不认识8位的char型数据?
不知道我表达清楚没有,希望大家帮我解答。
msblast 发表于 2014-9-4 11:15 | 显示全部楼层
因为CCS把char类型定义为16bit
tttttrefg 发表于 2014-9-4 11:20 | 显示全部楼层
aresc 发表于 2014-9-4 22:26 | 显示全部楼层
2楼正解!写程序之前要大概先浏览一下你用的DSP的C编译器手册。
zhangmangui 发表于 2014-9-4 23:12 | 显示全部楼层
 楼主| xishuidemian 发表于 2014-9-5 18:04 | 显示全部楼层
zhangmangui 发表于 2014-9-4 23:12
你好   请参考我的分享

DSP2000系列数据类型和大小问题

版主V5,向你致敬
 楼主| xishuidemian 发表于 2014-9-5 18:07 | 显示全部楼层
谢谢大家,懂了结贴。
edishen 发表于 2014-9-10 22:08 | 显示全部楼层
群里有大神啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

43

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部