[STM8] stm8l152c6中断优先级设置问题?

[复制链接]
 楼主| javine 发表于 2014-6-26 11:18 | 显示全部楼层 |阅读模式
本帖最后由 javine 于 2014-6-26 11:20 编辑

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

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

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

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

本版积分规则

2

主题

5

帖子

0

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

2

主题

5

帖子

0

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