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/MSP430FR5994:设置多个计时器频率时出错

Guru**** 2605745 points
Other Parts Discussed in Thread: MSP-EXP430FR5994, MSP430FR5994

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/653132/ccs-msp430fr5994-error-setting-multiple-timer-frequencies

部件号:MSP430FR5994
主题中讨论的其他部件:MSP-EXP430FR5994

工具/软件:Code Composer Studio

我正在尝试通过计时器中断(以不同速率闪烁LED指示灯等)生成多个频率,使用与以下两个链接类似的多个时基。

www.ti.com/.../slaa513a.pdf
e2e.ti.com/.../116.537万

但是,当我尝试设置“TA0CCTL3”和“TA0CCR3”(以及4/5/6,此处未显示)时,我收到以下错误信息。

"../main.c",第263行:错误#20:标识符"TA0CCTL3"未定义
"../main.c",第264行:错误#20:标识符"TA0CCR3"未定义

使用MSP430FR5994 (在MSP-EXP430FR5994开发套件上),我应该能够定义最高TA0CCR6。 有什么建议说明为什么这不起作用?

这是我配置计时器的代码。 我还在代码中使用#include <MSP4S.h>。

TA0CTL |= tassel_1; //使用ACLK作为源
TA0CTL |= ID_0; //将时钟除以1
TA0CTL |= MC_2; //使用连续模式计时器
TA0CTL |= TALCL; //清除计时器

TA0CCTL0 |= CCIE; //启用定时器中断
TA0CCR0 = 5000; //计时器中的周期数

TA0CCTL1 |= CCIE; //启用定时器中断
TA0CCR1 = 1万; //计时器中的周期数

TA0CCTL2 |= CCIE; //启用定时器中断
TA0CCR2 =1.5万; //定时器中的周期数

/*
这两行会产生错误- TA0CCTL3和TA0CCR3未定义。
请参阅slau367o.pdf中的表25-8 -应该能够定义7个计数器。
*/

TA0CCTL3 |= CCIE; //启用定时器中断
TA0CCR3 = 2万; 		//计时器中的周期数

TA0IV = 0x0000; //清除中断标志

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    《用户指南》(SLAU367O)描述了所设计的架构。 数据表(SLASE54B,特别是表3-1和6-57)描述了在特定设备中实现的内容。 后者显示TA0只有3个CCR。

    FR5994上的TB0有7个CCR。 TimerA和TimerB之间存在差异,但对您的目的而言,它们可能不重要。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,谢谢。 因此,根据MSP430FR5994的表3-1,我可以设置它
    - TA0/1上各有3个CCR
    -TA2/3/4上各有2个CCR (2/3上仅限内部)和
    - TB0上的7个CCR。
    登记册的定义见表6-57/58/59/60/62/76。