硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6217|回复: 1
收起左侧

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

[复制链接]

4

主题

19

回帖

31

积分

新手上路

积分
31
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引起的错误。还不敢确定是不是这个而引起的错误~~

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107374
QQ
发表于 2015-11-9 15:27:55 | 显示全部楼层
没有用过STM8,帮顶了。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-28 21:32 , Processed in 0.218440 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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