AVR芯片可以响应外部引脚中断。这种引脚以INT命名。如INT0,INT1。当然以PCINT开头的引脚也能获得外部中断。不过他们会共享一个中断响应函数,因此要轮询。而INT这种引脚的中断有独享的中断函数。
以ATTiny24来实验下。它只有一个外部中断引脚PB5,对应的是INT0。
void SetINT0()
{
//常规性的都置0
MCUCR = 0;
GIMSK = 0;
// 设置为下降沿触发。ISC系列位控制触发方式
MCUCR |= _BV(ISC01);
// 开启触发中断
GIMSK |= _BV(INT0);
// 开启总中断控制
SREG |= _BV(7);
}
// 中断响应函数
ISR(INT0_vect)
{
}
总结下外部中断的使用方式:
1.设置MCUCE寄存器来控制引脚的触发方式。
2.开启引脚的触发中断
3.设置总中断
网友评论