利用ARM外部中断控制流水灯的闪烁速度(基于LPC2134)
2011-03-14 01:43
357 查看
#include "config.h" void __irq Eint0_IRQ(void); //INT0中断函数声明 void delay(int dly); //delay延时函数声明 //流水灯数值表 int Led_Table[]={ 0x00fe0000,0x00fd0000,0x00fb0000,0x00f70000,0x00ef0000, 0x00df0000,0x00bf0000,0x007f0000}; int Delaytime=70; //主函数 int main(void) { int i=0; PINSEL0=0X000CC0CC; //使能p0.1 p0.3 p0.7 p0.8分别为外部中断0.1.2.3 PINSEL1=0X00000000; //使能p1.16~23为IO功能 IO1DIR=0XFF<<16; //这个写法很清楚,推荐 IRQEnable(); VICIntSelect=0x00000000; //设置所有的终端都为IRQ中断 VICVectCntl0=0x20|14; //设置INT0为IRQ中断,使用slot0 VICVectAddr0=(uint32)Eint0_IRQ; //设置终端服务程序地址 VICIntEnable=0x00004000; //使能INT0 EXTMODE=0x00; //INT0电平触发 EXTPOLAR=0x00; //触发电平为低电平 EXTINT=0x0f; //清除所有中断标志 while(1) { IO1SET=Led_Table[i];//设置高电平引脚 IO1CLR=~Led_Table[i]; //设置低电平引脚 delay(Delaytime); i+=1; if(i==8) { i=0; } } return 0; } /**************************************************************************** # * 名称:delay # * 功能:延时函数 # * 入口参数:延时时间 # * 出口参数:无 # ****************************************************************************/ void delay(int dly) { int i,j; for(i=0; i<dly; i++) for(j=0; j<25000; j++); } /**************************************************************************** # * 名称:Eint0_IRQ() # * 功能:外部中断1中断处理程序。 # * 入口参数:无 # * 出口参数:无 # ****************************************************************************/ void __irq Eint0_IRQ(void) { if(Delaytime>20) { Delaytime-=20; //加快流水灯的闪烁速度 } while((EXTINT&0x01)!=0) //不断被清除标志位,直到外部恢复高电平,此时EXTINT的最低位位0 { EXTINT=0x01; } VICVectAddr=0; //必须操作 }
相关文章推荐
- 32学习之中断 外部中断 按键控制流水灯不同速度
- 嵌入式外部中断控制编程方法论—比较CC2541(51核)和S5PV210(ARM核)
- [置顶] ARM开发(10)基于STM32的通用定时器中断控制蜂鸣器响
- 嵌入式外部中断控制编程方法论—比較CC2541(51核)和S5PV210(ARM核)
- 用定时器0控制切换流水灯顺序,用外部中断控制两种数码管显示方式
- [置顶] ARM开发(6) 基于STM32的矩阵键盘按键触发外部中断引起蜂鸣器鸣叫
- 利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减 直至765398并保持此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动 ,当数码管上数减到停止时,实验板上流水灯出停止然后全部开始闪烁,3秒后(用 T0定时)流水灯全部关闭,数码管上显示出“HELLO”,到此保持住
- 基于mini2440外部中断的按键驱动
- 学习猎户座4412芯片中断引脚控制能的闪烁
- 基于UC/COSII系统的STM32F103系列单片机外部中断按键的一种使用方法
- 基于群星ARM的lwIP以太网中断分析
- dsp控制DM9000实现802.3数据收发第三篇,调试过程程序第三版;采用外部引脚中断方式获取中断,优化掉帧现象
- ARM 中断--IRQ and FIQ配置--外部配置
- 外部中断实现LED灯的控制亮灭
- Azure ARM (17) 基于角色的访问控制 (Role Based Access Control, RBAC) - 自定义Role
- 【原创】基于ARM的步进电机控制示例(串口方式+中断方式)
- 单片机控制外部中断输入
- 基于ARM的网络视频监控开发+网页按钮控制摄像头方位 ---fwqlzz love is for ever
- Arduino的详细介绍(基于Mega2560)(分文)——外部中断attachInterrupt()
- 用定时器T0的中断控制8位LED闪烁