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/MSP432P401R:在引脚5.6上选择 TimerA 输出时出现问题

Guru**** 2595800 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/964207/ccs-msp432p401r-issue-selecting-timera-output-on-pin-5-6

器件型号:MSP432P401R

工具/软件:Code Composer Studio

大家好

我需要在 MSP432的引脚5.6上输出第一个捕获-比较寄存器(我正在使用 TI Launchpad 修订版2.1)。 我遵循了 RESSOURCE 资源管理器中提供的示例以及 MSP432数据表中的引脚信息(我在此帖子中附加了数据表的摘录)、其中在引脚 P8.0上输出了 TA1.0 (此示例对我来说很好):

#include "ti/devices/msp432p4xx/inc/msp.h"

int main (void)
{
WDT_A->CTL = WDT_A_CTL_PW | //停止 WDT
WDT_A_CTL_HOLD;

//配置 GPIO
P8->DIR |= BIT0; // P8.0输出
P8->SEL1 |= BIT0; // P8.0选项选择
P8->SEL0 &=(~BIT0); // P8.0选项选择


//配置 Timer_A
Timer_A1->CCTL[0]= TIMER_A_CCTLN_OUTMOD_4;// CCR0切换模式
Timer_A1->CCR[0]= 32 - 1;
Timer_A1->CTL = TIMER_A_CTL_tassel_2 |// SMCLK
Timer_A_CTL_MC_3 | //向上-向下计数模式
Timer_A_CTL_CLR; //清除 TAR


_SLEEP();
__no_operation(); //对于调试器
}

但是、如果我尝试在引脚 P8.0上输出 T2.1、我无法测量该特定引脚(P5.6)上的任何值:

#include "ti/devices/msp432p4xx/inc/msp.h"

int main (void)
{
WDT_A->CTL = WDT_A_CTL_PW | //停止 WDT
WDT_A_CTL_HOLD;

//希望具有 P5.6/TA2.1
P5->DIR |= BIT6; // P5.6输出
P5->SEL0 |= BIT6; //选项选择 P5.6
P5->SEL1 &=(~BIT6); //选项选择 P5.6

Timer_A2->CCTL[1]= TIMER_A_CCTLN_OUTMOD_4;// CCR0切换模式
Timer_A2->CCR[1]= 32 - 1;
Timer_A2->CTL = TIMER_A_CTL_tassel_2 |// SMCLK
Timer_A_CTL_MC_3 | //向上-向下计数模式
Timer_A_CTL_CLR; //清除 TAR

_SLEEP();
__no_operation(); //对于调试器
} 

数据表中的参考:

引脚5.6 ( SLAS826H 中的第157页):

引脚8.0 ( SLAS826H 中的第163页):

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

    新年快乐的 MMDucance、

    很抱歉耽误你的时间。  您是否能够在代码中找到错误?   

    查看这两个计时器、P8.0连接到 TA1.0输出。  TAX.0引脚连接到 CCR0寄存器。  CCR0也是定时器周期寄存器。  因此、通过该寄存器使用向上/向下计数模式应提供纯50%占空比信号。   

    在 P5.6上、您将尝试输出 TA2.1信号。  TAx.1实际上由您正在配置的 CCR1寄存器控制、但您不是在配置 CCR0。  最有可能的情况是、任一 CCR0都是最大值、因此定时器周期比您预期的要长得多。  此外、输出行为与 CCR1的行为与 CCR0的行为不同。  请参阅 用户指南的第19.2.5.1.3节。   

    希望这对您有所帮助!

    JD