当前位置:首页 > 单片机 > 单片机
[导读]INT外部中断是几乎所有通用单片机,嵌入机中都会带有的,早期的51系列和arm系列也都有,然而大多数因为设计原因,多只有带两个INT,最近别人提到了一个“所有端口都可以外部中断”这样的说法,因为表示存疑,因此找了

INT外部中断是几乎所有通用单片机,嵌入机中都会带有的,早期的51系列和arm系列也都有,然而大多数因为设计原因,多只有带两个INT,最近别人提到了一个“所有端口都可以外部中断”这样的说法,因为表示存疑,因此找了些资料,也就找到了avr328p自带的PCINT引脚功能

INT外部中断和AVR和PCINT具体区别如下:

差别1. INT限制在了两个端口上面,而PCINT则是所有接口都具备。

差别2. INT具有上沿,下沿,低电平,高电平触发这几种模式,而PCINT只有测量电平的变化这一个模式。

差别3. INT可以了解具体是哪个口触发的,而PCINT不行。

差别4. PCINT不会直接跳转入指定的程序,用户需要读取寄存器来做判断是哪个PCINT端口产生了变化。

差别5. INT0和INT1各自可配置一个中断程序入口,而所有的PCINT都只会触发跳转进入一条指定的程序。

提供一道avr环境下的PCINT相关代码与注释,代码功能是初始化三个PCINT

参考地址:https://sites.google.com/site/qeewiki/books/avr-guide/external-interrupts-on-the-atmega328

#include

#include// 头文件,内含了uint8的声明

#include// Needed to use interrupts

volatileuint8_t portbhistory = 0xFF;// default is high because the pull-up

int main(void)

{

DDRB &= ~((1 << DDB0) | (1 << DDB1) | (1 << DDB2));//拉低PB0,1,2三个口的电平
// PB0,PB1,PB2 (PCINT0, PCINT1, PCINT2 pin)现在处于输入态

PORTB |= ((1 << PORTB0) | (1 << PORTB1) | (1 << PORTB2));//开启上拉

// PB0, PB1, PB2 现在处于上拉输入状态下


PCICR |= (1 << PCIE0);//设置 PCIE0以启用 PCMSK0 侦测

PCMSK0 |= (1 << PCINT0);//设置 PCINT0 来测量状态变化并产生中断


sei();// turn on interrupts


while(1)

{


}

}

ISR (PCINT0_vect)

{

uint8_t changedbits;//设立一个无符号整数来记录寄存器的变化



changedbits = PINB ^ portbhistory;

portbhistory = PINB;


if(changedbits & (1 << PINB0))

{


}


if(changedbits & (1 << PINB1))

{


}


if(changedbits & (1 << PINB2))

{


}


}


结论:

PCINT在当年的设计中堪称创新,但和所谓的全端口外部中断依然有一定差距,但相对于按键扫描等方式来说,依然有一部分中断服务的优势


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。AVR的单片机可以广泛应用于计算机外部设备、工业实时控制...

关键字: AVR 单片机 计算机

AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通...

关键字: AVR 单片机 计算机

AVR与传统类型的单片机相比,除了必须能实现原来的一些基本的功能,其在结构体系、功能部件、性能和可靠性等多方面有很大的提高和改善。 但使用更好的器件只是为设计实现一个好的系统创造了一个好的基础和可能性,如果还采用和沿袭以...

关键字: AVR 单片机 硬件

在这篇文章中,小编将为大家带来AVR单片机的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: AVR 单片机

在下述的内容中,小编将会对AVR单片机的相关消息予以报道,如果AVR单片机是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: AVR 单片机

MCS-51单片机有两个外部中断源INT0和INT1,它们分别在P3.2和P3.3引脚出现低电平或下降沿信号时向单片机发出中断请求。外部中断可用于检测单片机外部发生的事件,如键盘敲击和特定脉冲发生的次数等。

关键字: 51单片机 外部中断

杰成医疗(健适医疗成员企业)的"经血管介入生物主动脉瓣膜"在国内首次得到成功应用,两名心脏瓣膜病患者通过经导管主动脉瓣置换术(TAVR)各被植入一枚"杰成经血管介入瓣膜"。杰成医疗已计划对该产品在全球范围内开展多个前瞻性...

关键字: AVR

新加坡2022年2月5日 /美通社/ -- 近日,新兴医疗科技公司“健适医疗”宣布,公司已完成对“苏州杰成医疗科技有限公司”的收购,后者是国内TAVR(Transcatheter Aortic Valve Replace...

关键字: AVR

外部中断是单片机实时地处理外部事件的一种机制。具体指的是,当某种外部事件发生时,单片机的中断系统迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后,又返回被中断的程序处,继续执行下去。这里我们以Nuc...

关键字: MCU 外部中断 ST

最近项目上要用到 MPU6050 陀螺仪,以前没有接触过它。虽然在网上很容易就可以找到了需要的代码。实现了一部分功能。但是却还是对陀螺仪的工作原理不太了解,它的代码也需要分析一下,I2C通信、相关寄存器也要熟悉。我看网上...

关键字: mpu6050 int
关闭
关闭