繁体   English   中英

是否可以将PCINT0和PCINT1用于atmega328pb上的所有引脚中断?

[英]Can I use PCINT0 and PCINT1 for all pin interrupts on atmega328pb?

我正在尝试使其按下PINB7(这是波顿的针脚)LED点亮。 板上的PINB7是PCINT8。 所以我设定

PCICR|=(1<<1);//enable interrupts for pins 14-8
sei();
PCMSK1|=(<<PCINT8); // mask for pin 8

我没有在ISR中使用什么向量。 从我所看到的,我应该只做PCINT8_vect,但是矢量不会像我使用“ TIMER2_COMPB_vect”那样突出显示。那么PCINT8矢量不存在或者有没有办法使用PCINT0和1?

显然,在mega328pb上,没有用于单个引脚中断的向量,但是对于PCIE0、1、2、3有向量。 0位0:7 1-8:14 2-16:23 3-24:27

因此,如果您想对插针b7使用中断。 PB7是PCINT7(可以在关于I / O端口的章节中看到)。 因此,id必须在PCIRC寄存器中启用PCIE0,并将其正确屏蔽为TMSK0。 并使用ISR(PCINT0_vect)。 但是,如果在PCINT6和PCINT7上有中断,则需要在ISR中是否需要确定2个引脚中的哪一个触发了中断

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM