lcp2000,EINT1为下降沿中断的代码
时间: 2024-02-12 18:02:20 浏览: 28
LPC2000系列的微控制器与LPC1768微控制器有些许不同,以下是初始化EINT1为下降沿中断的LPC2000系列微控制器的代码:
```
// 使能外部中断
EXTINT |= (1 << 1);
// 设置EINT1引脚为GPIO口
PINSEL0 &= ~(3 << 30);
// 配置EINT1引脚下降沿触发
EXTMODE |= (1 << 1);
EXTPOLAR &= ~(1 << 1);
// 设置中断优先级,这里设置为最高优先级
VIC_SetPriority(EINT1_IRQn, 0);
// 使能EINT1中断
VIC_EnableIRQ(EINT1_IRQn);
```
其中,EINT1 引脚对应 LPC2000 系列的 P0.15 引脚,代码中使用了相应的寄存器和宏定义,如 `EXTINT` 代表外部中断控制寄存器,`PINSEL0` 代表引脚功能选择寄存器0,`EXTMODE` 代表外部中断模式寄存器,`EXTPOLAR` 代表外部中断极性寄存器,`VIC_SetPriority` 和 `VIC_EnableIRQ` 分别用于设置中断优先级和使能中断。
相关问题
初始化EINT1为下降沿中断的代码
以下是在 LPC1768 微控制器上初始化 EINT1 为下降沿中断的代码:
```
// 使能外部中断
LPC_SC->EXTINT |= (1 << 1);
// 设置EINT1引脚为GPIO口
LPC_PINCON->PINSEL4 &= ~(3 << 20);
// 配置EINT1引脚下降沿触发
LPC_GPIOINT->IO2IntEnF |= (1 << 11);
// 设置中断优先级,这里设置为最高优先级
NVIC_SetPriority(EINT1_IRQn, 0);
// 使能EINT1中断
NVIC_EnableIRQ(EINT1_IRQn);
```
其中,EINT1 引脚对应 LPC1768 的 P2.11 引脚,代码中使用了 LPCOpen 库中的宏定义,如 `LPC_SC` 代表系统控制寄存器,`LPC_PINCON` 代表引脚控制寄存器,`LPC_GPIOINT` 代表 GPIO 中断控制寄存器,`NVIC_SetPriority` 和 `NVIC_EnableIRQ` 分别用于设置中断优先级和使能中断。
配置 EINT1 引脚上升沿触发模式
配置 EINT1 引脚为上升沿触发模式时,需要将 `EXTPOLAR` 寄存器的相应位设置为 1,而 `EXTMODE` 寄存器的相应位需要设置为 0。
以下是配置 EINT1 引脚为上升沿触发模式的代码:
```
// 配置EINT1引脚上升沿触发
EXTMODE &= ~(1 << 1);
EXTPOLAR |= (1 << 1);
```
其中,`EXTMODE` 寄存器的第 1 位需要清零,以设置为上升沿触发模式;`EXTPOLAR` 寄存器的第 1 位需要置为 1,以设置为上升沿触发模式。