用中断的方式都控制LED

本文通过一个简单的LED控制案例,介绍如何利用中断进行程序设计。首先,对中断引脚进行初始化,使GPF0作为中断触发点。其次,配置中断内部设置,包括按键触发条件、中断标志清除及非屏蔽。接着,定义中断处理函数,并将其关联到中断处理流程。最后,简述MMU_Init函数在中断向量表转移中的作用,确保中断处理程序的正确执行。这是一个学习中断处理的基础模板。
摘要由CSDN通过智能技术生成
#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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值