EFM32之外部中断
来源:互联网 发布:java double消除误差 编辑:程序博客网 时间:2024/06/05 04:38
(a)设置时钟:
CMU_ClockSelectSet(cmuClock_HF,cmuSelect_HFXO);//32MHz(b)配置NVIC:
void NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
#ifdef VECT_TAB_RAM
NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);
#else
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);
#endif
NVIC_PriorityGropConfig(NVIC_PriorityGrop_1);//先占优先级1位,从优先级3位
NVIC_InitStructure.NVIC_IRQChannel = TIMER0_IRQn;//定时器0中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//先占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;//从优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = true;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = GPIO_ODD_IRQn;//配置奇数中断,这里要注意,EFM32的外部中断只有奇、偶两种处理函数
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//先占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//从优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = true;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = GPIO_EVEN_IRQn;//配置偶数中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//先占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//从优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = true;
NVIC_Init(&NVIC_InitStructure);
}
外部中断管脚配置:
void EXTI_Config(void)
{
CMU_HFPRECLKEN0 |= (1<<6);//使能GPIO时钟
GPIO->P[3].MODEH |= (3<<0);//PD8设置成输入带过滤器
GPIO->P[3].DOUT |= (1<<8);//上拉
GPIO->EXTIPSELH |= (3<<0);//选择PD8
GPIO->EXTIRISE |= (1<<8);//PD8上升沿有效
GPIO->IEN |= (1<<8);//外部中断8使能
GPIO->P[3].MODEH |= (3<<12);//PB11设置成输入带过滤器
GPIO->P[3].DOUT |= (1<<11);//上拉
GPIO->EXTIPSELH |= (1<<12);//选择PB11
GPIO->EXTIRISE |= (1<<11);//PB11上升沿有效
GPIO->IEN |= (1<<11);//外部中断11使能
}
中断服务程序:
当按下按键后LED灯的状态改变
void GPIO_ODD_IRQHandler(void)
{
if(GPIO->IF & 0x800)
{
GPIO->IFC |= (1<<11);
LED_Toggle();
}
}
void GPIO_EVEN_IRQHandler(void)
{
if(GPIO->IF & 0x100)
{
GPIO->IFC |= (1<<8);
LED_Toggle();
}
}
0 0
- EFM32之外部中断
- EFM32片内外设--MSC之不关总中断
- s3c2440之外部中断
- LPC1768之外部中断
- STM8S103之外部中断
- s3c2440之外部中断
- S3C2440外部中断之按键中断
- STM32之外部中断和中断控制器
- TMS320F28335之外部中断和自定义中断
- LPC2103学习之外部中断
- LPC2103学习之外部中断
- linux驱动之外部中断
- stm32之外部中断EXTI
- 【转】s3c2440之外部中断
- STM32学习之外部中断
- STM32之外部中断控制
- STM32之外部中断 EXTI
- STM32之外部中断原理
- 7--黑马程序员--技术总结之几个重要的关键字
- lucene4.10.3入门教程
- Codeforces Round #167 (Div. 1)B
- PPP
- 动态规划要点
- EFM32之外部中断
- HTML5之5 __Canvas: 渐变
- mailcore2教程-1 前言
- [leetcode][string] Longest Substring Without Repeating Characters
- Linux 指定端口开放
- android NDK开发编译C++文件出现Type 'jint' could not be resolved和Unresolved inclusion: <jni.h>的解决办法
- 数值分析4 非线性方程求根
- 小谈粗心的危害
- 黑马程序员学习日记--多线程