LPC1788外部中断系统配置与应用
需积分: 35 50 浏览量
更新于2024-09-09
收藏 328KB DOC 举报
"LPC1788单片机关键配置"
LPC1788单片机是一种基于Cortex-M3内核的微控制器,具有强大的外部中断能力和丰富的时钟控制功能。本文将详细介绍LPC1788单片机的外部中断配置和时钟控制,包括外部中断系统的配置、中断触发方式的设置、时钟控制寄存器的配置等。
**外部中断系统配置**
LPC1788单片机的外部中断系统采用I/O复用的形式,需要对管脚进行配置,使其工作在外部中断输入的模式。在本例中,我们使用的是外部中断0,查阅数据手册,其GPIO管脚为P2_10。因此,我们需要设置IOCON_P2_10寄存器的FUNC字段,设置成001即为EINT0模式。
**中断触发方式的设置**
在配置完引脚后,还需要继续配置具体的中断功能。我们需要打开中断使能,设置ISER相应位;还要配置中断的触发方式如电平触发和边沿触发,相关寄存器为EXTMODE和EXTPOLAR。在本例中,我们配置EINT0的中断触发方式为低电平触发。
**时钟控制寄存器的配置**
LPC1788单片机的时钟控制系统包括系统时钟、PLL时钟和外部时钟等。系统时钟是单片机的主时钟,PLL时钟是phase-locked loop时钟,外部时钟是外部时钟信号。在本例中,我们不需要配置时钟控制寄存器,因为我们的程序不需要使用时钟控制功能。
**中断处理函数**
在中断处理函数中,我们需要清零EXTINT寄存器中的相应位,以便于下一次中断的产生。在本例中,我们熄灭LED灯,以示中断处理函数的执行。
**主函数**
在主函数中,我们一直点亮LED灯,以示单片机的正常工作。在按下SW6按键时,LED灯熄灭,示中断处理函数的执行。
**代码实现**
以下是实现LPC1788单片机外部中断配置和时钟控制的代码:
```cpp
#define rFIO1DIR (*(volatile unsigned*)0x20098020)
#define rFIO1MASK (*(volatile unsigned*)0x20098030)
#define rFIO1PIN (*(volatile unsigned*)0x20098034)
#define rFIO1SET (*(volatile unsigned*)0x20098038)
#define rFIO1CLR (*(volatile unsigned*)0x2009803c)
int main()
{
// 配置EINT0的中断触发方式为低电平触发
EXTI->EXTMODE = (1 << 0);
EXTI->EXT_POLAR = (1 << 0);
// 打开中断使能
NVIC_EnableIRQ(EINT0_IRQn);
while (1)
{
//一直点亮LED灯
rFIO1SET = (1 << 0);
}
}
void EINT0_IRQHandler(void)
{
//熄灭LED灯
rFIO1CLR = (1 << 0);
//清零EXTINT寄存器中的相应位
EXTI->EXTINT = (1 << 0);
}
```
本文详细介绍了LPC1788单片机的外部中断配置和时钟控制,包括外部中断系统的配置、中断触发方式的设置、时钟控制寄存器的配置等,为开发者提供了一个详细的参考。
2024-03-26 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2013-10-25 上传
qq_27995771
- 粉丝: 3
- 资源: 1
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析