📄 external_int.c
字号:
#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)
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 INT_initialize(void);
void main(void)
{
Port_initialize();
INT_initialize();
}
void Port_initialize(void)
{
DDRB = 0xFF;
DDRD = 0xf0;
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -