微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 关于外部中断检测 在实际应用中的问题!

关于外部中断检测 在实际应用中的问题!

时间:10-02 整理:3721RD 点击:

硬件的说明:
                    P0口 的P00 接了一个按键,按键按下为低电平,P04 接了一个门磁传感器,门打开的时候为低电平,门关闭的时候为高电平

场景:  设备为电池供电,不能处在轮询的费电的 操作。如何将门磁 假设为一个按键,按下为低,松开为高。则都使用zstack的key 驱动来完成检测

问题: 利用 HalKeyConfig 将P0口 设置为下降沿触发,PUSHx_POLARITY     ACTIVE_LOW
           当按键被按下和门打开瞬间,都可以在应用层检测到,但是门关闭的瞬间 就无法检测到。

           如何实现 即能感知门打开的瞬间,又能感知门关闭的瞬间?

设想: 1, 门打开瞬间检测到后, 设置一个事件,每多少秒去轮询检测 P04 门磁接口的电平,最终实现检测要求,但是这种是费电的轮询 很不适合很不环保。
           2,门打开瞬间检测到后, 重新配置P0口的硬件设置,修改为上升沿触发,PUSHx_POLARITY   修改为  ACTIVE_HIGH, 但是这应用层修改底层设置的做法又感觉不是很妥当,另外这样设置后 在门没有关闭的期间  按键就失效了。。。。。修改硬件配置具有排他性 导致了同一端口的硬件的局限性
           3,使用ADC 检测产生中断, ADC的序列转换没有中断功能,只有单个转换有中断功能, 而 ADC 工作模式 又是轮询的, 设置一段时间然后开启ADC ,这个和第一种设想  对电池供电的设备 伤不起~~~~~~


设想了这么多,感觉没有一种合适的方法,请各位高手 指点!

VV 请帮忙分析分析 有没有可行的方法!

利用两个边沿触发的方式可以么 你可以在门打开以后 重新配置io的边沿触发,则在关上以后,另外一个边沿就出发了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top