#include "2410lib.h"
#include "Option.h"
#include "2410slib.h"
#include "def.h"
#include "2410addr.h"
#include "stdlib.h"
#include "string.h"
#include "mmu.h"
#include "timer.h"
#define LED_OPEN1 ~(1<<5)
#define LED_OPEN2 ~(1<<6)
#define LED_OPEN3 ~(1<<7)
#define LED_CLOSE1 (1<<5)
#define LED_CLOSE2 (1<<6)
#define LED_CLOSE3 (1<<7)
int flag = 1;
static void __irq key_handler(void);
//初始化led的端口
void led_port_init(void)
{
rGPGCON &= 0xffff03ff;
rGPGCON |= 0x00005400;
}
//初始化按键
void key_init(void)
{
//init GPIO(F)
rGPFCON &= 0xfffffffC;
rGPFCON |= 0x00000002;
//init EINT 0 register 初始化控制EINT0这个中断的外部中断控制器
rEXTINT0 &= ~(0x7);
//rEINTPEND 用来记录有没有发生中断,如果要清楚就置1即可
//rEINTMASK 用来指示要不要屏蔽这个中断
//设置ISR
pISR_EINT0 = (U32)key_handler;
EnableIrq(BIT_EINT0);//设置IN
用中断的方式都控制LED
最新推荐文章于 2023-10-22 18:17:13 发布
本文通过一个简单的LED控制案例,介绍如何利用中断进行程序设计。首先,对中断引脚进行初始化,使GPF0作为中断触发点。其次,配置中断内部设置,包括按键触发条件、中断标志清除及非屏蔽。接着,定义中断处理函数,并将其关联到中断处理流程。最后,简述MMU_Init函数在中断向量表转移中的作用,确保中断处理程序的正确执行。这是一个学习中断处理的基础模板。
摘要由CSDN通过智能技术生成