[求助] 關於stm8中斷的問題??

w9190040   2012-3-20 10:12 楼主
小弟現在在使用STM8S105C6 想請問一個中斷的問題 就是如果中斷發生後 還在執行中斷的動作時 又在發生中斷 他會如何的動作呢

回复评论 (3)

优先级

这个有优先级设定啊,查阅产品的datasheet,里边有如何设定。
点赞  2012-3-20 11:20

我的意思是 如果我的中斷做到一半還沒有跳出去 又有中斷產生 是否會跳去做

 

大大的優先權的意思是如果我正在執行的中斷的優先權較低

 

來了一個比他優先權高的中斷 就會跳去做 如果沒有他來的高 就不會嗎

 

那如果是這樣 跳去做完優先權較高的中斷 他還會回來做那個比較低的中斷嗎   

点赞  2012-3-20 16:18

回复 板凳 w9190040 的帖子

这样子做。 不知道你参考过什么例程。
 一般来说,像我看到的这个是这样写的

  1. disableInterrupts();
     if ((GPIOC->IDR & GPIO_Pin_1) == 0x0)

  2. {
     i++;

  3. if(i % 2)

  4. GPIO_Init( LD4_GPIO_PORT, LD4, GPIO_Mode_Out_PP_High_Fast);
     else

  5. GPIO_Init( LD4_GPIO_PORT, LD4, GPIO_Mode_Out_PP_Low_Fast);
     }
     EXTI_ClearITPendingBit(EXTI_IT_Pin1);
     while(mode--);
     enableInterrupts();

 这是我自己写的一个点亮熄灭LED的小例程,头尾有一句 使能 和 禁止 中断。
在你说的问题里,最简单的解决方法是,如同这个例程段所示 在进中断以后,立马禁止中断再次发生。 然后等执行完出去以前,再打开中断使能。
当然,因为刚开始玩,我还不清楚这一句是控制所有中断,还是只控制这一句。 如果是控制所有,应该是可以有相应的选择屏蔽函数的,这个就要再研究了。 [ 本帖最后由 辛昕 于 2012-3-27 23:54 编辑 ]
强者为尊,弱者,死无葬身之地
点赞  2012-3-27 23:52
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复