PC与单片机通信漏数据

[复制链接]
2226|5
 楼主| cshij2009 发表于 2012-6-11 14:19 | 显示全部楼层 |阅读模式
msp430f149与pc机串口通信。
单片机只是接收PC机发送过来的数据,能够正确的接收数据。
现在,我开了一个定时中断,每隔160ACLK个脉冲,产生一次中断,结果能够正确的接收数据,这说明定时中断是不是不影响接收中断函数呢?因为我能够正确接收数据。
我如果在定时中断中加上下面的程序,我接收数据就有遗漏:、
switch (k)
{
   case 1 :b =r%10;break;
   case 2 : b =(r%100)/10; break;
   case 3 : b =(r%1000)/100; break;
   case 4 : b =(r%10000)/1000; break;
    case 5: b =(r%100000)/10000; break;
    case 6 : b =(r%1000000)/100000; break;
   case 7 : b =(r%10000000)/1000000; break;
   case 8 : b =r/10000000; break;
}
如果没有上面的程序,接收的数据没有遗漏;
接收函数的中断等级比定时中断等级高。
求高手指点!!!
ayb_ice 发表于 2012-6-11 14:47 | 显示全部楼层
430的优先级基本是个虚的,很多MCU也是那样的,与51不同的
是不能中断的,只能在同时申请时优先响应高优先中断,但不能中断一个正在运行的中断
NICKY99 发表于 2012-6-11 15:31 | 显示全部楼层
将这段代码拿到中断外面试试(中断后利用标志执行),中断服务程序精短对程序有好处。
JC.Wang 发表于 2012-6-12 14:33 | 显示全部楼层
没用过MSP430,来赚积分的飘过
cjseng 发表于 2012-6-12 22:10 | 显示全部楼层
因为你的定时中断耗费的时间太长了,比如这一句
“ case 7 : b =(r%10000000)/1000000; break;”不知道要多长时间才能算完哦。

160ACLK产生一个定时中断,频率有点高了。
wukunshan 发表于 2012-6-13 14:46 | 显示全部楼层
看一看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

73

帖子

0

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