external_int.c.bak

来自「AVR单片机ATMEGA128实习之—外部中断(附带Proteus仿真例子)」· BAK 代码 · 共 65 行

BAK
65
字号
#include <iom128.h>
#include <macros.h>


#define	  Red_LED_on		PORTB&~BIT(0)
#define	  Red_LED_off		PORTB|(1<<0)
#define	  Green_LED_on		PORTB&(~(1<<1))
#define	  Green_LED_off		PORTB|(1<<1)
#define	  Yellow_LED_on		PORTB&(~(1<<2))
#define	  Yellow_LED_off	PORTB|(1<<2)
//#define	  Flag_H			PORTB|(1<<3)
//#define	  Flag_L			PORTB&~(1<<3)

unsigned char INT0_flag = 0;
unsigned char INT1_flag = 0;
unsigned char INT2_flag	= 0;

#pragma interrupt_handler External_INT_0:2   //外部中断0
#pragma interrupt_handler External_INT_1:3   //外部中断1
#pragma interrupt_handler External_INT_2:4   //外部中断2

void Port_initilaze(void);
//void Timer_initilaze(void);
void INT_initialize(void);

void main(void)
{


}
void Port_initilaze(void)
{
	DDRB = 0xFF;
	//DDRD = 0x00;
	PORTB = 0xFF;
}
void INT_initialize(void)
{
	EICRA = 0xaa;	//fall edge trigger
	EICRB = 0x00;	//no influence
	EIMSK = 0x0f;

	SEI();

}
void External_INT_0(void)
{
	PORTB = Green_LED_off;
	PORTB = Yellow_LED_off;
	PORTB = Red_LED_on;
}
void External_INT_1(void)
{
	
	PORTB = Green_LED_on;
	PORTB = Yellow_LED_off;
	PORTB = Red_LED_off;
}
void External_INT_2(void)
{

	PORTB = Green_LED_off;
	PORTB = Yellow_LED_on;
	PORTB = Red_LED_off;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?