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.

[参考译文] MSP430G2553:timerA 的输出控制

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1031521/msp430g2553-output-control-of-timera

器件型号:MSP430G2553

您好!

感谢您阅读此问题。 在 slau144中、第页上有一个 OUT2信号。 我的印象是、每个 CCR 寄存器都有一个相应的输出单元、该单元可以输出到引脚。 至少适用于 MSP430G2553。



我查看了这些引脚以了解它们可能是什么、这似乎得到了确认


现在、我键入一些代码、为我提供2个不同的占空比、无需 CPU 的帮助

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <msp430.h>
/**
* main.c
*/
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
BCSCTL1 = CALBC1_16MHZ;
DCOCTL = CALDCO_16MHZ;
// -------------------------- Pin Setup ------------------------
P1DIR |= BIT2;
P1SEL |= BIT2;
P1DIR |= BIT5;
P1SEL |= BIT5;
//---------------------------- TIMER A Setup --------------------
TACCR0 = 1023;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


好消息! 我在 P1.2上看到具有预期占空比的脉冲、位 P1.5 不会为我提供任何值。 我知道我可以让这种行为与中断一起工作、但我不想使用 CPU。

有人有任何提示?  

感谢您仔细查看。

~Triston

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

    要根据 TACCR2 (即 TA0CCR2)获得输出、您需要引脚功能 TA0.2、该功能在20引脚封装中不可用(P3.6)。

    您可以使用 TA1、它提供 TA1.2 (P2.4或 P2.5)以及 TA1.1 (P2.1或 P2.2)。 您还必须设置 TA1CCTL2=OUTMOD_7。

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

    嗯、这可以清除东西。 因此、只需确保

    引脚 P1.1和 P1.5可由 CCR0 (TA0.0)、和控制
    引脚 P1.2由 CCR1控制?

     CCR0在向上计数模式下实际上不起作用、因此我只具有用于输出的 P1.2 -对吧?

    但是、在 TA1上、我有3个计数器比较寄存器、因此我可以使用 TA1.1和 TA1.2。

    主席先生、我更改了我的代码以使用 TA1、它起作用。 感谢您的帮助!

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include <msp430.h>
    /**
    * main.c
    */
    int main(void)
    {
    WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
    BCSCTL1 = CALBC1_16MHZ;
    DCOCTL = CALDCO_16MHZ;
    // -------------------------- Pin Setup ------------------------
    //P1DIR |= BIT2;
    //P1SEL |= BIT2;
    P2DIR |= BIT1;
    P2SEL |= BIT1;
    P2DIR |= BIT4;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX