external_int.c
来自「AVR单片机ATMEGA128实习之—外部中断(附带Proteus仿真例子)」· C语言 代码 · 共 64 行
C
64 行
#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 + =
减小字号Ctrl + -
显示快捷键?