Ai8H8K64U的INT0、INT1触发方式控制位IT0、IT1的问题
本帖最后由 DebugLab 于 2024-10-29 16:20 编辑官方的Ai8H8K64U实验箱v9.6版
当 IT0=0,IT1=1,
按理一个是双边沿触发中断,一个是下降沿触发中断。
Ai8H8K64U规格书中,13.6.2例程、13.6.3例程,表明这两种触发方式是可以通过IT0、IT1两个位分别设置不同触发方式的。
但是,在实验箱上,连在INT0、INT1的两个按钮按下引发的中断所表现的,都是双边沿触发
——即按下下降沿触发1次中断,松开上升沿触发1次中断
——也即 “IT1=1” 没有能成功设置INT1为下降沿触发。
请大神指点:该现象是什么情况?
另外:Ai8H8K64U规格书中提到,所有的I/O口均可中断
——如此一来的话,中断系统结构图中的INT0、INT1、INT2、INT3、INT4这4个外部中断,还能够按传统外部中断的方式来理解么?
急盼赐教,非常感谢~~
按键要消抖
IO中断和外部中断是两个东西,中断向量不同 你有用示波器抓过按键的波形么?你能保证你按下的时候就只有一个下降沿,松开的时候只有一个上升沿么{:4_200:} 在中断函数中,我的程序功能是,每进入一次中断,LED移动1位点亮。
如果是按键抖动引起的话,应该是造成多次中断,导致LED移动多位~
——现在的情况是:
按键一按下,LED正好移1位(表明中断了1次,或者9次),
按键松开,LED再移动1位(这表明也是中断了1次,或者9次),
不同用力不同速度多次反复重复操作,上述现象规则固定不变。
——要从按键抖动角度来分析的话,除非按键抖动每次都是始终固定正好引发9次中断,从而与我程序设定的功能正好重合——但这个“正好”蛮难保证呵。
——但上述现象与双边沿触发的逻辑正好相符,所以导致我的困惑。 DebugLab 发表于 2024-10-29 16:22
按键要消抖
IO中断和外部中断是两个东西,中断向量不同
"IO中断和外部中断是两个东西,中断向量不同"——这个特别感谢提醒{:4_213:}{:5_300:} _奶咖君_ 发表于 2024-10-29 17:20
你有用示波器抓过按键的波形么?你能保证你按下的时候就只有一个下降沿,松开的时候只有一个上升沿么 ...
谢谢提醒{:5_300:},回头我找个示波器也看下波形~
只是,按键抖动的边沿,不能保证是1个,但也难保证是某个固定的数字,现象要是有随机性的话,我也甘心往这方面考虑了。
但现在这出现的现象很固定,所以困惑~ oy野马 发表于 2024-10-29 22:44
谢谢提醒,回头我找个示波器也看下波形~
只是,按键抖动的边沿,不能保证是1个,但也难保证是某个固定的 ...
根据我的测试,,按键是一定会有抖动的,,会出现若干上升沿下降沿,,以此为据,不太能验证你的问题。连接到其他的IO上,测试,,应该能得到你想要的答案 今天再测试,发现:
INT0中断,通过IT0,可以设置成双边沿触发,也可以设置成下降沿触发。
INT1中断,IT1无论为0还是1,都是双边沿触发的效果。
使用STC8H实验箱v9.6程序包中的第06例程进行测试,INT0和INT1也是这种情况呵 {:4_174:}
页:
[1]