PIC16F726的RB2设置为下降沿电平变化中断,RB0设置为外部中断。当RB2为低电平时,当RB0发生外部中断时偶尔会进入电平变化中断中。相关代码如下:
初始化:
void vMCU_GPIOInit(void)
{
TRISA = PORTA_DDR;
ANSELA = PORTA_ANS;
PORTA = 0x48;
TRISB = PORTB_DDR;
ANSELB = PORTB_ANS;
PORTB = 0x00;
TRISC = PORTC_DDR;
PORTC = 0;
INTEDG = 0;
nRBPU = 0;
WPUB0 = 1;
WPUB1 = 1;
WPUB2 = 1;
WPUB3 = 1;
WPUB4 = 1;
IOCB0 = 0;
IOCB1 = 0;
IOCB2 = 1;
IOCB4 = 0;
INTF = 0;
INTE = 1;
RBIF = 0;
RBIE = 1;
}
中断服务
if (INTF == 1 )
{
INTF = 0;
if ( 0 == fun_startA )
{
if ( RB0 == 0 ) //PORTB&0x01 RB0
{
if ( RB1 ==1 ) // RB1 PORTB&0x02
{
scan_key1_move =1;
}
else
{
scan_key1_move = 2;
}
}
}
else { scan_key1_move = 0;}
}
if ( RBIF == 1 )
{
RBIF = 0;
if ( 0 == fun_startB )
{
if ( RB3 == 0 ) // PORTB&0x08
{
if ( RB2 == 1 ) // PORTB&0x04
{
scan_key2_move = 1;
}
else
{
scan_key2_move = 2;
}
}
}
else { scan_key2_move = 0;}
}
请问:把RB0设置为外部中断时是否会同时引起电平变化中断。
PIC16F726外部中断影响电平变化中断
答案:2 悬赏:60 手机版
解决时间 2021-03-05 08:33
- 提问者网友:椧運幽默
- 2021-03-04 09:28
最佳答案
- 五星知识达人网友:撞了怀
- 2021-03-04 10:38
在你把开关置于低电平的时候,响应中断,点亮LED等,执行完中断服务程序后,系统返回while循环,执行响应中断前的任务,因为是电平触发,又一次进入中断、中断服务程序、返回,重复这个顺序。这种中断叫做咬尾中断,中断来临压栈、中断服务程序执行完出栈返回主循环,连续两个中断处理之间有时间间隔,这个间隔时间主程序在运行,因为主程序每次只执行很短的时间,所以你看到的现象就是缓慢变化。
全部回答
- 1楼网友:行路难
- 2021-03-04 10:44
看门狗清了吗?把整个程序贴上来看看
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯