查看: 2186|回复: 2

MC9S08DZ60的端口中断问题

[复制链接]

该用户从未签到

18

主题

52

帖子

0

注册会员

Rank: 2

积分
127
最后登录
2021-3-12
发表于 2014-6-6 20:23:04 | 显示全部楼层 |阅读模式
 我在利用端口中断检测脉冲的时候,偶尔出现无法清除中断标志位,一直在中断服务程序死循环,这是为什么呢?
void hall_in(void){
 
        PTDSC_PTDIE = 0;
 
        PTDPS_PTDPS4 = 1;                                        //PTD4脚检测
        PTDPS_PTDPS5 = 1;                                        //PTD5脚检测
        PTDSC_PTDMOD = 1;                                //边沿和电平变化中断
        PTDSC_PTDACK = 1;                                        //清除中断标志
        PTDSC_PTDIE = 1;                                        //允许中断
       
}
 
回复

使用道具 举报

该用户从未签到

16

主题

705

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1745
最后登录
1970-1-1
发表于 2014-6-9 11:06:13 | 显示全部楼层

回复:MC9S08DZ60的端口中断问题

楼主,你管脚中断初始化有没有按照这个流程呢:
6.3.4 管脚中断初始化
第一次使能中断管脚时,可能会得到一个错误的中断标记。要防止管脚中断初始化期间的错误中
断请求,用户应遵循以下步骤:
1. 清除PTxSC 里的PTxACK,屏蔽中断;
2. 在PTxES 中设置适当的PTxESn 位,选择管脚极性;
3. 如果使用内部上拉/ 下拉器件,在PTxPE 中配置相关的使能位;
4. 在PTxPS 中设置适当的PTxPSn 位,使能中断管脚;
5. 在PTxSC 中写入PTxACK,清除所有错误中断;
6. 在PTxSC 中置位PTxIE,使能中断;
还有,你有没有debug,然后看看在执行PTDSC_PTDACK = 1;        后,是否会清除PTxIF?
回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

705

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1745
最后登录
1970-1-1
发表于 2014-6-10 15:57:53 | 显示全部楼层

RE:MC9S08DZ60的端口中断问题

楼主按照上面的步骤做一下,应该是可以的,如果还有问题,欢迎交流啊。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-21 21:32 , Processed in 0.080739 second(s), 21 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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