今天用401R外部中断例程看到这样的代码
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__) #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) #elif defined(__GNUC__) void __attribute__ ((interrupt(PORT1_VECTOR))) Port_1 (void) #else #error Compiler not supported! #endif
大概就是如果定义了
TI_COMPILER_VERSION
或者
IAR_SYSTEMS_ICC 就可以使用外部中断之类的意思
如果都没有定义就跳出错误提醒:
#error Compiler not supported!
结果我运行的时候就跳出错误提示了
请问我是哪个文件没有添加才会有这种问题吗?(用的KEIL)
RoundRoad:
这个提示是说,如果不是用TI或者IAR的编译器,就无法正常编译中断服务函数,因为编译时需要编译器支持 的特殊字符。
user5369591:
回复 RoundRoad:
那请问 我在keil 里面是不是就可以把这段删了就正常写
user5369591:
void PORT_Init(void) {P1DIR &= ~(BIT1 + BIT4);P1REN |= (BIT1 + BIT4);P1OUT |= (BIT1 + BIT4);P1IES |= (BIT1 + BIT4);P1IFG &= ~(BIT1 + BIT4);P1IE |= (BIT1 + BIT4);NVIC->ISER[0] = 1 << ((PORT1_IRQn) & 31);
}void PORT1_IRQHandler(void)
{switch(P1IV){case P1IV__P1IFG1:pidA.target -= 100;break;case P1IV__P1IFG2:pidA.target += 100;break;default:break;}
}这是代码 不知道有没有问题
user5369591:
回复 user5369591:
有一个小问题case语句里的P1IV_P1IFG2 应该是P1IV_P1IFG4然而改过来也没有用
Susan Yang:
关于Keil下的MSP432使用,我们是有一个专门的文档的
适用于 SimpleLink™ MSP432™ 微控制器的 ARM® Keil® MDK 版本 5
www.ti.com.cn/…/zhcu167f.pdf
有非常详细的操作步骤,希望对您有所帮助!
user5369591:
回复 Susan Yang:
非常感谢
Susan Yang:
回复 user5369591:
很高兴能帮到您!
TI中文支持网
