C2000LaunchPad学习记录(3)——外部中断翻转LED
2014-03-13 16:36
363 查看
程序功能:将GPIO12配置成中断输入。按键按下,触发下降沿中断,中断服务子程序翻转LED。
中断向量表
![](http://img.blog.csdn.net/20140313163408375)
主函数,main.c
外部中断配置函数
中断服务程序
中断向量表
主函数,main.c
/* Includes ------------------------------------------------------------------*/ #include<F2802x_Device.h> #include<DSP28x_Project.h> #include "SubFunction.h" /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ void main(void) { // 系统控制初始化 InitSysCtrl(); InitGpio(); // 禁止全局中断 DINT; InitPieCtrl(); // 禁止CPU中断 IER = 0x0000; // 清楚CPU所有中断标志 IFR = 0x0000; // 位向量表中的所有中断向量配置对应的入口地址 InitPieVectTable(); EXTI_Configure(); EINT; // 允许访问受保护的空间 EALLOW; // 配置I/O口为输出 GpioCtrlRegs.GPADIR.all=0x000f; // 禁止访问受保护的空间 EDIS; while(1){ } }
外部中断配置函数
/* Includes ------------------------------------------------------------------*/ #include<F2802x_Device.h> #include<DSP28x_Project.h> #include "C2000_it.h" /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ /**************************************************************************** * Function Name : EXTI_Configure * Description : 配置外部中断 * Input : None * Output : None * Return : None ******************************************************************************/ void EXTI_Configure(void) { //允许访问受保护的空间 EALLOW; PieVectTable.XINT1= &EXTI12_IRQHandler; GpioCtrlRegs.GPAPUD.bit.GPIO12 = 1; //除能上拉电阻 GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 0; //GPIO12作普通IO使用 p189 GpioCtrlRegs.GPADIR.bit.GPIO12 = 0; //配置为输入 GpioCtrlRegs.GPAQSEL1.bit.GPIO12 = 2; // 6 samples GpioCtrlRegs.GPACTRL.bit.QUALPRD1 = 0xFF; //采样周期为510*Tsysclk,窗口宽度为5*510*Tsysclk=2550/60M=42.5us GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 12; //GPIO12作为xint1的中断源 XIntruptRegs.XINT1CR.bit.POLARITY = 1; //上升沿触发中断 XIntruptRegs.XINT1CR.bit.ENABLE = 1; //外中断1使能 PieCtrlRegs.PIECTRL.bit.ENPIE = 1; //使能PIE PieCtrlRegs.PIEIER1.bit.INTx4 = 1; //使能int1.4 IER |= 0x0001; //使能int1 //禁止访问受保护的空间 EDIS; }
中断服务程序
/* Includes ------------------------------------------------------------------*/ #include<F2802x_Device.h> #include<DSP28x_Project.h> /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ /******************************************************************************* * Function Name : EXTI12_IRQHandler * Description : This function handles External interrupt Line 12 request. * Input : None * Output : None * Return : None *******************************************************************************/ interrupt void EXTI12_IRQHandler(void) { GpioDataRegs.GPATOGGLE.bit.GPIO0=1; PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; }
相关文章推荐
- C2000LaunchPad学习记录(5)——SIC中断接收
- C2000LaunchPad学习记录(2)——循环查询按键点亮LED
- 【51单片机学习过程记录】12中断 之外部中断的应用2
- C2000LaunchPad学习记录(4)——SIC串口发送数据
- 【51单片机学习过程记录】11 中断之外部中断的应用
- CC2530学习笔记の外部中断——按键控制LED
- STM32——EXTI外部中断:中断方式翻转LED灯
- STM32:STM32学习记录5: 外部中断
- 使用Energia开发MSP430 LAUNCHPAD学习笔记1--LED闪烁
- stm32学习笔记——外部中断的使用
- 【NUCLEO_F767ZI开发板系列】四、外部中断控制LED
- 基于stm32f103zet6的外部中断学习
- tiny210(S5PV210)中断控制相关学习记录
- 3、通过按键S1产生外部中断改变LED1状态(it's 中断-寄存器和中断子程序)
- cortex_m3_stm32嵌入式学习笔记(四):外部中断实验
- [MTK_Code]EINT外部中断学习
- 板载LED实验----记录学习Arduino
- 1.25日学习内容,外部中断
- 基于模型设计ADC中断学习记录
- SpringBoot学习记录3------外部配置文件yml