请选择 进入手机版 | 继续访问电脑版

安富莱电子论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 4971|回复: 1
收起左侧

EK2开发板,STM8S105单片机中断优先级问题求助

[复制链接]

4

主题

10

帖子

18

积分

新手上路

积分
18
QQ
发表于 2015-11-9 13:59:39 | 显示全部楼层 |阅读模式
        EK2开发板,STM8S105单片机在做例程时,我用了几个中断,想设置一下中断优先级,便是发现开机时总是会死机。调试跟踪发现运行到
ITC_SetSoftwarePriority(ITC_IRQ_UART2_RX, ITC_PRIORITYLEVEL_3); (stm8s_it.c文件中)函数里面的 assert_parm(IS_ITC_INTERRUPTS_
DISABLED); 断言宏时,总是会死机,跟踪到 IS_ITC_INTERRUPTS_DISABLED 里面 看到是 (ITC_GetSoftIntStatus() == CPU_SOFT_INT_DISABLED),
不知道为什么这个断言的结果始终为假,我把它放在MAIN函数的开头也不行,放在开全局中断前面也不行。。。不知道是哪里出了问题。于是我
继续跟踪下去发现:ITC_GetSoftIntStatus 函数里是:return (uint8_t)(ITC_GetCPUCC() & CPU_CC_I1IO);  ITC_GetCPUCC(void) 函数里有
{
  #ifdef _COSMIC_
  ~~
  return;
#dlif defined _RAISONANCE_
  return _getCC_();
#else
  asm("push cc");
  asm("pop a");
#endif
  return 0;
}
我现在怀疑是这里面的一句return 0引起的错误。还不敢确定是不是这个而引起的错误~~

请大神们帮我看看,或者分享你们以前做项是,是怎么设置中断优先级的,谢谢!!
回复

使用道具 举报

5537

主题

3万

帖子

4万

积分

管理员

做人第一,工作第二

Rank: 9Rank: 9Rank: 9

积分
44725
QQ
发表于 2015-11-9 15:27:55 | 显示全部楼层
没有用过STM8,帮顶了。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|安富莱电子论坛 ( 鄂ICP备09023347号,公安机关备案号42010602000201 )

GMT+8, 2019-4-24 02:08 , Processed in 0.159698 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表