打印
[STM8]

请教:@svlreg解决中断里不能做乘除法的问题

[复制链接]
3429|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
oldpig|  楼主 | 2013-11-10 22:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的乘法运算在主程序中正常,把它写为主程序里的一个函数被中断调用,为了解决乘除法出错的问题,在中断函数的定义中加了@svlreg,结果却编译出错(symbol c_lreg not defined),不知我哪里理解错了。程序如下:

------- main.c -------------------------
u16 power;
void chengfa(void);
main()
{
       .........
}

void chengfa()
{
       power = power * 100;
}


-------------------------    stm8_interrupt_vector.c --------------------------------------
extern u16 power;
extern void chengfa(void);

@far @interrupt @svlreg void Timing_Interrupt(void)
{
      ........
      chengfa();
      .........
}

沙发
oldpig|  楼主 | 2013-11-10 22:58 | 只看该作者
我也试着把@svlreg加在引用声明处,即extern @svlreg void chengfa(void); 也不能解决问题

使用特权

评论回复
板凳
戈卫东| | 2013-11-11 07:40 | 只看该作者
看来开发工具还是STM8的短板哪....

使用特权

评论回复
地板
oldpig|  楼主 | 2013-11-12 23:11 | 只看该作者
我觉得应该是我哪里出错了,因为很多人都通过加@svlreg解决了这个问题

使用特权

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

本版积分规则

15

主题

47

帖子

1

粉丝