This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
你好。
我在 CCS (版本:8.1.0.00011)中为 MSP430 (msp430fr2355)编码,以编写一个程序,该程序使用看门狗计时器作为间隔计时器,每1秒使用 ACLK 生成一次中断。
我得到的误差是
标识符"IE1"未定义。
它对应于看门狗定时器的中断标志寄存器。
上面给出的是我编写的基本代码。
#include int main (void) { PM5CTL0&=~LOCKLPM5; WDTCTL = WDT_ADLY_1000;//停止看门狗计时器 P1DIR=BIT0; IE1|= WDTIE; enable_interrupts (); while (1); 返回0; } #pragma vector=WDT_vector __interrupt void wdtled (void) { P1OUT=BIT0; _DELAY_CYCLES (100000); P1OUT=0x00; __DELAY_CYCLES (100000); }
我已经了解了 e2e 社区中发布的许多示例代码、其中大多数使用了此 IE1寄存器、但我无法使用此寄存器。
如果有人知道解决方案,请尽快帮助我。
提前感谢!
谢谢主席先生、这消除了错误、但您能告诉我这些信息的来源、这样我就不会在将来与其他事情混淆。
如 FR4xx/FR2xx 系列用户指南所示。
但是、一般而言、要查看您可以实际使用的符号、请查看实际头文件(MSP430fr2355.h):
/********* SFR 寄存器 / #define __MSP430_has_SFR__ // #define __MSP430_BASEADDRESS_SFR__ 0x0100 #define SFR_base 定义模块是否可用 _MSP430_BASEADDRESS_SFR__ SFR_w (SFRIE1); /*中断使能*/ SFR_b (SFRIE1_L); SFR_b (SFRIE1_H); SFR_w (SFRIFG1); /*中断标志*/ SFR_b (SFRIFG1_L); SFR_b (SFRIFG1_H); SFR_w (SFRRPCR); /*复位引脚控制*/ SFR_b (SFRRPCR_L); SFR_b (SFRRPCR_H); /* SFR 寄存器偏移*/ #define OFS_SFRIE1 (0x0000) #define OFS_SFRIE1_L OFS_SFRIE1 #define OFS_SFRIE1_H OFS_SFRIE1+1 #define OFS_SFRIFG1 (0x0002) #define OFS_SFRIFG1_L OFS_SFRIFG1 #define OFS_SFRIFG1_H OFS_SFRIFG1+1 #define OFS_SFRRPCR (0x0004) #define OFS_SFRRPCR_L OFS_SFRRPCR #define OFS_SFRRPCR_H OFS_SFRRPCR+1 /* SFR 控制位*/ /* SFRIE1控制位*/ #define WDTIE (0x0001) /*看门狗定时器中断使能*/ #define WDTIE_L (0x0001) #define WDTIE_0 (0x0000) /*禁用中断*/ #define WDTIE_1 (0x0001) /*启用中断*/ #define WDTIE_1_L (0x0001) #define WDTIE_DISABLE (0x0000) /*禁用中断*/ #define WDTIE_ENABLE (0x0001) /*启用中断*/ #define WDTIE_ENABLE_L (0x0001) #define OFIE (0x0002) /*振荡器故障中断使能*/
(所有这些_L/_H 符号都用于字节访问;请忽略它们。)
报头文件对于查找中断矢量值的名称(手册中没有提到)特别有用:
#define UCIV_NONE (0x0000) /*无中断挂起*/ #define UCIV_UCRXIFG (0x0002) /*中断源:接收缓冲区已满;中断标志: UCRXIFG;中断优先级:最高*/ #define UCIV_UCTXIFG (0x0004) /*中断源:发送缓冲区为空;中断标志: UCTXIFG */ #define UCIV_UCSTTIFG (0x0006) /*中断源:接收到起始位;中断标志:UCSTTIFG */ #define UCIV__UCTXCPTIFG (0x0008) /*中断源:发送完成;中断标志: UCTXCPTIFG;中断优先级:最低*/