有4个按键直接与eint4~eint7引脚相连,将i/o口设置为工作在外部中断模式下后,可以通过按下某个按键来触发中断。
首先对pg口的工作模式进行设置,要让pg4~pg7工作在外部中断输入状态。因此,要将pg口设置在功能3模式下,采用语句rpcong=11 11 11 11 xx xx xx xxb;如果希望采用内部上拉,则语句为rpupg = 0000xxxxb。
采用下降沿触发时:
rextint=01x 01x 01x 01x xxx xxx xxx xxxb;
采用上升沿触发时:
rextint=10x 10x 10x 10x xxx xxx xxx xxxb;
采用边沿触发时:
rextint=11x 11x 11x 11x xxx xxx xxx xxxb;
采用低电平触发时:
rextint=000 000 000 000 xxx xxx xxx xxxb;
中断处理程序参考示例如下:
void irq_eint4567lsr(void)
{
which_int = rextintpnd;
rextintpnd = 0x0f;
rl_lspc= bit_eint4567;
delay(1000);