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.

请教关于MSP430F5419A的定时器TA0.0的输出问题

将TA0.0配置如下:

TA0CCR0 = 500;
TA0CCTL0 |= OUTMOD_4;
TA0CCR1 = 200;
TA0CTL = TASSEL_1+MC_3;
P8DIR |= 0x01;
P8SEL |= 0x01;

按照文档应该输出的波形是红线所画的

但是我用示波器观察的波形却是这种

我的ACLK是1M,按我配置的周期应该是1ms 这个周期也不对。

我用同样的配置TA0.1的输出却是正确的,请教这是什么原因呢?


  • ning chen,

    对于你选的TA0.0对应的MC_3, OUTMOD_4, 对应为Up/Down mode, Toggle, Toggle描述为:

    The output is toggled when the timer counts to the TAxCCRn value. The output period is
    double the timer period.

    故对应于TA0.0而言,就是每当Timer counts to CCR0之后,输出即会翻转。

    故对于TA0.0, 两个CCR0的值,才是一个周期, 故对于TA0.0而言,应该是2ms一个周期。

    但是对于TA0.1而言,就是每当Timer counts to CCR1之后,输出即会翻转。应该是1个CCR0为一个周期,应该是1ms一个周期。

    故你看到的现象是正常的。

    希望对你有帮助!O(∩_∩)O~

  • Lina Lian,

    感谢你的回答,但是好像实验的结果不是这样,我把程序贴出来,你看下。现在我程序的是,相同的配置,相同的触发模式,相同的时钟源,但是一个是TA0.0输出,一个是TA0.1输出。

    得出的结果是

    黄色的是TA0.0的输出,浅蓝色是TA0.1的输出。明显TA0.1的输出和文档上说明的一样,但是TA0.0的输出却不同。

  • 能否解答下 配置相同为什么输出波形不同吗?

  • ning chen,

    我之前描述已经很清楚了,请仔细阅读,

    Lina Lian 说:

    故对应于TA0.0而言,就是每当Timer counts to CCR0之后,输出即会翻转。

    故对于TA0.0, 两个CCR0的值,才是一个周期, 故对于TA0.0而言,应该是2ms一个周期。

    但是对于TA0.1而言,就是每当Timer counts to CCR1之后,输出即会翻转。应该是1个CCR0为一个周期,应该是1ms一个周期。

    你得到的波形完全符合,请仔细对着你第一帖中user guide中的波形看看究竟CCR0在哪里,CCR1在哪里,完全和你得到的波形是一致的。

    希望对你有帮助!O(∩_∩)O~

  • 谢谢你的回答,基本明白你所说的了。还想问两点。

    1.你上面写的CCR0是指的两倍的TA0CCR0吗?

    2.TA0.0用作触发翻转时,占空比是不可以调节的?还有就是,当TA0CCRx和TA0CCR0配合使用时,所输出的波形应该是指TA0.x的波形,文档中有明确指出吗?如果有指出能贴出来吗?如果没指出容易让人误解,到底是TA0.0输出的还是TA0.x输出的。

  • ning chen,

    1. 我所说的CCR0就是TA0CCR0, 是因为你选择的是up-down mode,故CCR0对应的TA0.0输出的周期才是CCR0的两倍;

    2. 一般而言,outmode 2,3,6,7用来输出PWM波,此时CCR0决定PWM波周期,CCRx(非0)决定占空比。且各种模式下, user guide已经描述的非常清楚,就严格按照字面意思理解即可。

  • 关于第一点, 我的理解是这样,我的程序上设置的TA0CCR0的是500us,第一次到达TA0CCR0用时是500us,电平翻转一次。计数器降到0,然后从0升到TA0CCR0,电平再次翻转,用时2个TA0CCR0,也就是1ms,以后就按这种模式翻转,所以整个周期是4个TA0CCR0,也就是2ms,而不是你说的2个TA0CCR0。

  • ning chen,

    对的,是两个up-down, 4个CCR0.