[STM8] 请教各位前辈, 32位变量被中断骚扰 ??

[复制链接]
3167|7
 楼主| yurulin 发表于 2011-1-7 23:21 | 显示全部楼层 |阅读模式
本帖最后由 yurulin 于 2011-1-7 23:24 编辑

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位运行要很长时间,我的程序不能禁止中断这么长时间)
mcuisp 发表于 2011-1-7 23:44 | 显示全部楼层
嗯,这个是老问题了。
ayb_ice 发表于 2011-1-8 11:54 | 显示全部楼层
不会吧,中断没有使用全局变量啊
 楼主| yurulin 发表于 2011-1-8 15:45 | 显示全部楼层
是局部变量(unsigned long int c,d;)被中断骚扰的,  这个应该是编译器的问题吧,
各位前辈指点下,这个要怎么解决??
 楼主| yurulin 发表于 2011-1-10 15:56 | 显示全部楼层
等待回答中....
 楼主| yurulin 发表于 2011-1-10 21:50 | 显示全部楼层
还是没人回答
berry2006 发表于 2011-1-22 10:35 | 显示全部楼层
我也碰到了同样的问题,期待回答
luke_lu 发表于 2011-1-22 22:59 | 显示全部楼层
在中断函数入口要加一个符号的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

68

帖子

1

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