Other Parts Discussed in Thread: CODECOMPOSER
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP432P401R
工具/软件:Code Composer Studio
这是我第一次在 MSP432上使用中断、我已经执行了每一步(更改设置文件、在代码中启用中断等)。 当我尝试在 CodeComposer 中构建代码时、我收到一个未定义 NVIC 的错误。 我已经尝试了所有东西、但我不知道如何更改。 如果你能帮助我,我将非常感激。
#include
#include
// LED1 @ P1.0
//按钮 S1 @ P1.1
volatile uint8_t button_flag = 0; //标记到信号按钮按
volatile uint32_t deb_cnt; //用于去抖按钮
void main 的计数器(void)
{
WDTCTL =(WDTPW | WDTHOLD); //停止看门狗计时器
P1SEL0 = 0x00; //清除端口1
P1SEL1 = 0x00的选择寄存器0; //清除端口1
P1REN = 0x02的选择寄存器1; S1 (P1.1)
P1OUT = 0x02时的//使能电阻; // S1 (P1.1)高电平->上拉电阻器、其他低
电平 P1DIR = 0x01; // LED1 (P1.0)到输出方向、其它输入
P1IES = 0x02; // S1 (P1.1)
P1IFG = 0x00时高电平->低电平转换时的中断; //清除任何挂起标志
P1IE = 0x02; //启用 S1 (P1.1)
NVIC_ISER1 = 1 <<((INT_Port1 - 16)& 31)的中断; //为 NVIC 模块
__ENABLE_INTERRUPT ()中的端口1启用中断; //启用全局中断
while (1) //无限循环-主程序
{
if (button_FLAG)
{
P1OUT ^= 0x01; //切换 LED1 (P1.0)
for (deb_cnt = 0;deb_cnt < 20000;deb_cnt++); //去抖按钮的软件延迟-不在实际程序中使用
button_flag = 0; //复位标志
P1IFG &=~0x02; //清除 S1 (P1.1)的挂起中断标志
P1IE |= 0x02; //为 S1 (P1.1)启用中断
}
}
void port1_ISR_handler (void) //端口1的中断处理程序
{
P1IE &=~0x02; //禁用 S1 (P1.1)的去抖中断
button_flag = 1; //将标志设置为检测到信号按钮按压
}