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.

[参考译文] CCS/MSP430FR6989:TIMER_A配置显示错误

Guru**** 2587365 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/621763/ccs-msp430fr6989-timer_a-configuration-shows-error

部件号:MSP430FR6989

工具/软件:Code Composer Studio

大家好,我正在阅读《MSP430微处理器基础知识》一书,这里有一个关于使用定时器A切换LED的练习。程序如下:

#include "MSP40.0.h"


#define LED1	BIT0

int main(void){
WDTCTL = WDTPW | WDTHOLD;	//停止看门狗计时器
PM5CTL0 &=~LOCKLPM2;

P1OUT =~LED1;
P2DIR = LED1;
TA0CTL = MC_2|ID_3|tassel_2|TALCLR;

用于(;){
	while (TA0CTL_bit.TAIFG == 0){
		TA0CTL_Bit.TAIFG = 0;
		P1OUT ^= LED1;
	}
}
} 

但是,当我尝试编译它时,IDE会发送以下错误消息:  

说明资源路径位置类型
#135预期字段名main.c /Timer_and_cinlinesline 15 C/C++ problem
#135预期字段名main.c /Timer_and_cinlinings line 16 C/C++ problem
#20标识符"TA0CTL_bit"未定义main.c /Timer_and_中断 行15 C/C++问题
gmake:***[main.obj]错误1 Timer_and_reinationsC/C++问题
gmake:由于错误,目标'all'没有重制。 Timer_and_中断C/C++问题

在这本书中,他们添加了以下标题:<io430x11x1.h>,但当我尝试使用#incude "io430fr6989.h"时,它表示无法打开它,如果我不添加它,它将显示上面的错误,其中指出TA0CTL_bit不是标识符。 我查看了MSP430系列的用户指南,注册器就在那里,也许我声明的方式不好。  

我可以在哪里查找标题,或者问题可能是什么? 我知道我可以使用Driverlib,但首先我想这样做。

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    要配置WFP 1.0 ,您必须使用P1DIR,而不是P2DIR。

    要设置或清除单个位,必须使用位操作,而不是分配整个寄存器(这会更改所有8位):

    P1OUT &=~LED1;
    P1DIR || LED1; 

    我不知道有任何当前的头文件声明"_bit"寄存器符号。 请改用普通位操作:

    同时(!(TA0CTL和TAIFG)){
    TA0CTL &=~TAIFG;
    P1OUT ^= LED1;
    } 

    这不是一个错误,但有一些符号显示寄存器字段的实际含义:

    TA0CTL = MC__continous | ID__8 | tassel__SMCLK | TALCLR; 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢,它很有效。

    我知道我需要使用P1DIR,这是一个小错误。 这些书与Port 2一起使用,并复制了类似的程序,但谢谢。 它很有效。