打印
[STM8]

32位局部变量被中断骚扰

[复制链接]
1811|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yurulin|  楼主 | 2011-1-11 15:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uint16 moniliangruanjianjizhun(uint16 a,uint16 b) //模拟量软件基准计算
{
unsigned long int c,d;
if(a>=b) a=0xffff;
else
{
  //_asm("sim"); //禁止中断后计算正常
  c=a; d=c<<16; d-=c; //==d=c*0xffff;
  c=b; d=d/c;
  a=d;
  //_asm("rim");//禁止中断后计算正常
}
return(a);
}

//如上程序,32位长整数计算会被中断骚扰, 当添加如上禁止中断后计算正常,
//请问要如何解决??  (32位运行要很长时间,我的程序不能禁止中断这么长时间)
沙发
香水城| | 2011-1-11 15:53 | 只看该作者
记得我曾经在你的另一个帖子中回答过这个问题,这是代码重入的问题,你可以看看编译器的手册如果回避,我没有用过这个编译器,所以没法具体回答。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

68

帖子

1

粉丝