打印
[Kinetis]

在写PIT时发现的一个问题

[复制链接]
601|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我在写PIT的时候,发现了一问题。
中断服务函数如下:
void pit0_isr()
{
  GPIOC_PTOR |= GPIO_PDOR_PDO(GPIO_PIN(18));
  PIT_T标志寄存器0 |= PIT_T标志寄存器_TIF_MASK;
}
发现LED灯不闪烁,我认为这样书写是没有问题的。但是就是不闪烁,不过改下如下就可以了:
void pit0_isr()
{  
  GPIOC_PTOR |= GPIO_PDOR_PDO(GPIO_PIN(18));  
  PIT_T标志寄存器0 |= PIT_T标志寄存器_TIF_MASK;  
  asm("nop");
}
这是怎么回事?难怪是清标志位的速度太快了?我主频100M

相关帖子

沙发
FSL_TICS_Robin| | 2015-11-9 10:24 | 只看该作者
楼主是否尝试过先请标志位再操作IO口呢?另外能够看一下你芯片正面刻的硅版本号,根据版本号查一下对应勘误表里是否有提到该模块问题。

使用特权

评论回复
板凳
FSL_TICS_ZJJ| | 2015-11-9 10:44 | 只看该作者
楼主你用的什么芯片型号?
下次问问题的时候,请给出具体的芯片型号,还有一般是进入中断后,先清除标志,然后再做事。

使用特权

评论回复
地板
603133791|  楼主 | 2015-11-9 13:28 | 只看该作者
使用的芯片版本号是MK60DN512VLL10 4N22D。确实如版本所言,先清标志位后是正确的。我PIT是参考山外论坛的中断来写的,看来是不正确的。

使用特权

评论回复
5
603133791|  楼主 | 2015-11-9 13:29 | 只看该作者
FSL_TICS_ZJJ 发表于 2015-11-9 10:44
楼主你用的什么芯片型号?
下次问问题的时候,请给出具体的芯片型号,还有一般是进入中断后,先清除标志, ...

使用的芯片版本号是MK60DN512VLL10 4N22D。确实如版本所言,先清标志位后是正确的。我PIT是参考山外论坛的中断来写的,看来是不正确的。

使用特权

评论回复
6
FSL_TICS_ZJJ| | 2015-11-9 14:09 | 只看该作者
603133791 发表于 2015-11-9 13:29
使用的芯片版本号是MK60DN512VLL10 4N22D。确实如版本所言,先清标志位后是正确的。我PIT是参考山外论坛 ...

不客气,问题解决了就好。
后续如果还有问题,欢迎继续交流,如果问题解决了,还请帮我们及时结贴哦。

使用特权

评论回复
7
shauew| | 2015-11-9 16:38 | 只看该作者
可能是你进中断太快,后面加了个小延时就有效果了,
太快了眼睛反应不过来的!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

40

帖子

0

粉丝