STC8G,外部中断,如何判断上下边沿
外部中断0,有单下边沿方式,有上下边沿方式,选择上下边沿的话,如何确定触发的是上边沿还是下边沿呢?如是 边沿变化都中断,则进中断服务程序后,立即读对应I/O的状态,
读到高就认为是上升沿;读到低就认为是下降沿;
引脚上拉还是下拉 soma 发表于 2024-5-17 11:28
引脚上拉还是下拉
上下拉,不一样的吗?方便都讲讲吗?谢谢 定一个全局变量,记录一下每次退出外部中断前的IO状态,然后进入边沿中断后对比IO状态和变量,如果不一致,那可以根据变化是从1到0还是从0到1判断边沿,如果一致,说明是个极窄的脉冲 本帖最后由 Yim_Hom 于 2024-5-19 19:02 编辑
定义一个flag;
然后正常配置上升沿下降沿都触发;
在中断中读你的触发flag=。。。,
然后判断你的flag是1还是0。
不就知道是上升还是下降了吗?
手里有8H的开天斧,这样测试了一下:
P32对应INT0,设置为下降沿触发,初始化P32为准双向口且使能上拉电阻,确保初始电平为1,这样在按键没有按下的情况下读取P32的值,为1;当P32按下的时候,读取P32的值变为0;松开后继续变为1。
P33对应INT1,设置为上升下降沿触发,初始化P33为准双向口且失能上拉电阻,并且P33赋值为0,确保初始电平为0,这样P33在没有外接VCC的情况下读取的值为0;当外接VCC后,P33的值变为1;断开VCC后继续变为0。
这样就绝对验证了是上升沿还是下降沿触发,也从根儿上知道了究竟。
页:
[1]