注册 登录
查看: 1216|回复: 5

KL26 PIT单独关中断疑惑

[复制链接]
发表于 2014-5-22 12:13:57 | 显示全部楼层 |阅读模式
  1. void PIT_IRQHandler(void)
  2. {
  3.     if(PIT_TFLG(PIT0) == 1 )
  4.     {
  5.         led_turn(LED0);             //闪烁 LED0
  6.     PIT_TCTRL0 &=~ PIT_TCTRL_TIE_MASK;
  7.     PIT_TFLG0  |=  PIT_TFLG_TIF_MASK;
  8.     }
  9. }
  10. void main()
  11. {
  12.     led_init(LED0);                                         
  13.     pit_init_ms(PIT0, 1000);                                
  14.     set_vector_handler(PIT_VECTORn ,PIT_IRQHandler);
  15.     enable_irq (PIT_IRQn);                                 //使能PIT0中断

  16.     while(1);
  17. }
1.只用一个PIT定时器,可以通过PIT_TCTRLn &=~ PIT_TCTRL_TIE_MASK;来关闭定时器中断
  1. void PIT_IRQHandler(void)
  2. {
  3.     if(PIT_TFLG(PIT0) == 1 )
  4.     {
  5.         led_turn(LED0);
  6.     PIT_TCTRL0 &=~ PIT_TCTRL_TIE_MASK;
  7.     PIT_TFLG0  |=  PIT_TFLG_TIF_MASK;
  8.     }
  9.     if(PIT_TFLG(PIT1) == 1 )
  10.     {
  11.       led_turn(LED1);
  12.       PIT_TFLG1 |= PIT_TFLG_TIF_MASK;
  13.     }
  14. }
  15. void main()
  16. {
  17.     led_init(LED0);
  18.     led_init(LED1);
  19.     pit_init_ms(PIT1, 1000);
  20.     pit_init_ms(PIT0, 1000);                                
  21.     set_vector_handler(PIT_VECTORn ,PIT_IRQHandler);
  22.     enable_irq (PIT_IRQn);                                 //使能PIT0中断

  23.     while(1);
  24. }
2.使用两个PIT定时,就不能通过PIT_TCTRLn &=~ PIT_TCTRL_TIE_MASK;单独关闭一个PIT的定时中断


请问大家这是为什么?

本帖被以下淘专辑推荐:

回复

使用道具 举报

发表于 2014-5-22 12:22:09 | 显示全部楼层
还有关闭定时器:PIT_TCTRL_TEN_MASK
否则的话,标志位一样会置位,只不过不触发中断。
而另外一个定时器触发中断,可以误以为根据标志位认为之前那个定时器也触发中断
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-22 16:10:27 | 显示全部楼层
山外メ雲ジ 发表于 2014-5-22 12:22
还有关闭定时器:PIT_TCTRL_TEN_MASK
否则的话,标志位一样会置位,只不过不触发中断。
而另外一个定时器 ...

嗯,只有关闭定时器才能好使,你这样一讲解我就更明白了
回复 支持 反对

使用道具 举报

发表于 2015-3-7 22:12:47 | 显示全部楼层
山外メ雲ジ 发表于 2014-5-22 12:22
还有关闭定时器:PIT_TCTRL_TEN_MASK
否则的话,标志位一样会置位,只不过不触发中断。
而另外一个定时 ...

求教下,山外哥,我之前的程序都试过的能进入PIT中断,然后试了下DisableInterrupts之后加了EnableInterrupts,,,,就始终进不到中断中,芯片也绝对没烧,但为什么进不去呢?
回复 支持 反对

使用道具 举报

发表于 2015-3-7 22:15:53 | 显示全部楼层
875710462 发表于 2015-3-7 22:12
求教下,山外哥,我之前的程序都试过的能进入PIT中断,然后试了下DisableInterrupts之后加了EnableInterr ...

你把main发上来看看
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-5-14 12:27:11 | 显示全部楼层
875710462 发表于 2015-3-7 22:12
求教下,山外哥,我之前的程序都试过的能进入PIT中断,然后试了下DisableInterrupts之后加了EnableInterr ...

同求!
回复 支持 反对

使用道具 举报

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

本版积分规则

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