单片机中 IT0=1是负跳变触发 ,IT0=0 据说是低电压触发,问题是如果一个低电平的脉冲宽度较大,那么 算触
答案:2 悬赏:30 手机版
解决时间 2021-03-20 00:48
- 提问者网友:萌卜娃娃
- 2021-03-19 02:37
发了几次呢? 比如 我在接收引脚上通过一开关接地,开关长按,为低电平了,那么怎么判断触发的次数呢
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-03-19 03:10
如果你的IT0 = 0,即低电平触发,那么,究竟触发多少次,要看你的程序,如果你的外中断0的中断服务程序在最后一句没有加上while(P3_2 == 0);这句话,那么,具体触发了多少次,不好说,要看你的脉冲长度和中断服务程序的长度。
如果你加上while(P3_2 == 0);那就触发了一次。
void ISR_Exint0(void) interrupt 0
{
//......中断处理函数
while(P3_2 == 0); //---如果没有这句话,且外中断又是低电平触发,那么,刚跳出中断,就又会进入中断。所以,一般情况,我都用边沿触发。
}
如果你加上while(P3_2 == 0);那就触发了一次。
void ISR_Exint0(void) interrupt 0
{
//......中断处理函数
while(P3_2 == 0); //---如果没有这句话,且外中断又是低电平触发,那么,刚跳出中断,就又会进入中断。所以,一般情况,我都用边沿触发。
}
全部回答
- 1楼网友:人间朝暮
- 2021-03-19 04:26
如果你的it0 = 0,即低电平触发,那么,究竟触发多少次,要看你的程序,如果你的外中断0的中断服务程序在最后一句没有加上while(p3_2 == 0);这句话,那么,具体触发了多少次,不好说,要看你的脉冲长度和中断服务程序的长度。
如果你加上while(p3_2 == 0);那就触发了一次。
void isr_exint0(void) interrupt 0
{
//......中断处理函数
while(p3_2 == 0); //---如果没有这句话,且外中断又是低电平触发,那么,刚跳出中断,就又会进入中断。所以,一般情况,我都用边沿触发。
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯