微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > avr单片机外部中断0,1,2初始化配置及说明

avr单片机外部中断0,1,2初始化配置及说明

时间:11-18 来源:互联网 点击:

* Bit 6 – INTF0: 外部中断标志 0

INT0引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF0。如果SREG 的位
I以及GICR寄存器相应的中断使能位INT0为”1” ,MCU即跳转到相应的中断向量。进入中
断服务程序之后该标志自动清零。此外,标志位也可以通过写入 ”0” 来清零。

* Bit 5 – INTF2: 外部中断标志 2

INT2引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF2。如果SREG 的位
I以及GICR寄存器相应的中断使能位INT2为”1” ,MCU即跳转到相应的中断向量。进入中
断服务程序之后该标志自动清零。此外,标志位也可以通过写入 ”0” 来清零。注意,当
INT2中断禁用进入某些休眠模式时,该引脚的输入缓冲将禁用。这会导致INTF2标志设置
信号的逻辑变化

*/
//外部中断0向量端口
#pragma interrupt_handler INTER_0:iv_INT0
//外部中断1向量端口
#pragma interrupt_handler INTER_1:iv_INT1
//外部中断2向量端口
#pragma interrupt_handler INTER_2:iv_INT2

void INTER_init_0(unsigned char a)//a取值0-3
{
switch(a)
{
case 0:MCUCR&=~(1case 1:MCUCR&=~(1case 2:MCUCR|=1case 3:MCUCR|=1default : MCUCR|=1}
GICR|=(1GIFR&=~(1SREG|=0x80;//使能全局中断
}
void INTER_init_1(unsigned char a)//a取值0-3
{
switch(a)
{
case 0:MCUCR&=~(1case 1:MCUCR&=~(1case 2:MCUCR|=1case 3:MCUCR|=(1default : MCUCR|=1}
GICR|=(1GIFR&=~(1SREG|=0x80;//使能全局中断

}
void INTER_init_2(unsigned char a)
{
if(a)
MCUCSR|=(1else
MCUCSR&=~(1

GICR|=(1GIFR&=~(1SREG|=0x80;//使能全局中断
}
void INTER_0(void)
{

//add your code here!

}
void INTER_1(void)
{

//add your code here!

}
void INTER_2(void)
{

//add your code here!

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top