打印
[STM8]

stm8l152c6中断优先级设置问题?

[复制链接]
3132|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
javine|  楼主 | 2014-6-26 11:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 javine 于 2014-6-26 11:20 编辑

我的项目中使用了3个中断,需要设置中断优先级。
调低TIM4和ADC1中断优先级之后,遇到看门狗一直复位的问题。

对其进行一番分析和验证之后,该问题可以简化为下面的过程。
1.打开TIM4定时器和TIM4中断。并讲TIM4中断的中断优先级设置为2(默认为最高优先级--- 3)
2.打开看门狗,在主循环中只有喂狗程序
IWDG_ReloadCounter();
3.SWIM在线调试,系统不断复位。
4.检查发现,有一个默认保留的 中断服务向量
struct interrupt_vector const _vectab[] = {
  {0x82, (interrupt_handler_t)_stext},                /* Reset */
  
  {0x82, (interrupt_handler_t)TRAP_IRQHandler},                        /* TRAP - Software interrupt */
  
  {0x82, (interrupt_handler_t)NonHandledInterrupt},                /* Reserved */
                        
  {0x82, (interrupt_handler_t)FLASH_IRQHandler},                        /* irq1 - FLASH interrupt */

  {0x82, (interrupt_handler_t)DMA1_CHANNEL0_1_IRQHandler},                        /* irq2 - DMA1 channel0 and channel1 interrupt */
系统默认中断优先级为3(最高),TIM4中断发生之后没有进入TIM4的中断服务程序,而是在不停进入了IRQ0的中断服务程序
[url=home.php?mod=space&uid=422518]@interrupt[/url] void NonHandledInterrupt(void)
{
   
                return;
}
导致看门狗在主循环中不能成功喂狗,系统复位。

请问有用过这款单片机的高手们,它的中断优先级不是等于没用吗?
是单片机本来就这样,还是可能是我哪里设置有问题?   
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝