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**** 2534270 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 的帮助

#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;
	TACCR1 = 127;
	TACCR2 = 512;

	TACCTL1 = OUTMOD_7;
	TA0CTL = TASSEL_2 + MC_1+ID_0;
	while(1){}

	return 0;
	}


好消息! 我在 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、它起作用。 感谢您的帮助!

    #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;
        P2SEL |= BIT4;
    	//---------------------------- TIMER A Setup --------------------
    	TA1CCR0 = 1023;
    	TA1CCR1 = 512;
    	TA1CCR2 = 128;
    
    	TA1CCTL2 = OUTMOD_7;
    	TA1CCTL1 = OUTMOD_7;
    
    	TA1CTL = TASSEL_2 + MC_1+ID_0;
    	while(1){}
    
    	return 0;
    }