打印

GPI口 能设置双边沿触发的Interrupt吗?

[复制链接]
1087|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
joylu|  楼主 | 2016-12-1 16:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我想实现一个GPI口,上下沿状态改变都可以调用一个ISR函数,但是Cypress 的Interrupt Type 中只有Level,Derived,Rising Edge三个选项,目前,选了Rising Edge这个选项之后,通过上位机将GPI口的状态从0->1 确实能调用到ISR函数,但是从1->0 是无法调用,请问如何才能实现GPI 状态变化 能够调用到ISR函数呢?先谢谢大神啦
沙发
leijixiaomile| | 2016-12-2 16:57 | 只看该作者
Pin脚的interrupt 配置中有 rising/falling/both的配置

使用特权

评论回复
板凳
joylu|  楼主 | 2016-12-6 11:00 | 只看该作者
leijixiaomile 发表于 2016-12-2 16:57
Pin脚的interrupt 配置中有 rising/falling/both的配置

你说的时候GPI口上的配置里设置双边沿触发吧? 我之前有试过将GPI口设置中Input->Interrupt设置为Both Edge(双边沿触发),然后将irq连到中断上,在中断InterruptType设置成Rising Edge或者Derived, 都无法实现真正意义上的双边触发,而是发现这个中断一直被触发。

使用特权

评论回复
地板
leijixiaomile| | 2016-12-7 10:28 | 只看该作者
joylu 发表于 2016-12-6 11:00
你说的时候GPI口上的配置里设置双边沿触发吧? 我之前有试过将GPI口设置中Input->Interrupt设置为Both Ed ...

中断一直触发是因为没有清中断吧,可以参考下creator中的示例工程:file->code examples: search: interrupt.

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
joylu + 1 很给力!
5
joylu|  楼主 | 2016-12-8 14:03 | 只看该作者
leijixiaomile 发表于 2016-12-7 10:28
中断一直触发是因为没有清中断吧,可以参考下creator中的示例工程:file->code examples: search: interr ...

嗯嗯,清了中断之后确实 可以实现双边触发,谢谢啦。这个问题可以结帖了。
当时我遇到另外一个问题,我将P6[6]与P6[7]设置为两个的中断,却出现了编译错误,报错内容是中断不能放在P6[6],因为中断与P6[6]的已有中断冲突了,我讲P6[6]换成P2[6]就没有问题了,编译错误见下图c:\10X10 Project\Error.bmp

使用特权

评论回复
6
joylu|  楼主 | 2016-12-8 14:04 | 只看该作者
补上编译错误图片

Error.png (279.93 KB )

编译错误

编译错误

使用特权

评论回复
7
leijixiaomile| | 2016-12-8 16:48 | 只看该作者
joylu 发表于 2016-12-8 14:04
补上编译错误图片

可以开新帖提新的问题。
一个port上只有一个中断源与之映射。把这个两个pin放置在同一个port上的相邻的引脚(共用中断源,中断触发时需要判断是哪个引脚触发的)或者分在不同的port上。
可以加我QQ:2576333532 互相学习。

使用特权

评论回复
8
joylu|  楼主 | 2016-12-9 09:17 | 只看该作者
leijixiaomile 发表于 2016-12-8 16:48
可以开新帖提新的问题。
一个port上只有一个中断源与之映射。把这个两个pin放置在同一个port上的相邻的引 ...

昨天下午自己摸索出来把这个问题解决了,多谢你

使用特权

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

本版积分规则

1

主题

6

帖子

0

粉丝