[STM8] 32位局部变量被中断骚扰

[复制链接]
2662|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

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