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:WFP 2.6

Guru**** 2577155 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/629949/msp430g2553-p2-6

部件号:MSP430G2553

您好!  

我正在尝试创建一个PWM信号,它适用于WFP 1.6 (LED2)输出,但它不适用于WFP的2.6 引脚。 有人可以帮我吗?

谢谢!

下面是我的代码:

#include <MSP4S.h>

Void主(void)

WDTCTL = WDTPW + WDTHOLD;//停止WDT
ConfigureClockModule();

P1DIR |= BIT6;// WFP 1.6 作为输出
P2DIR || BIT6;// WFP 2.6 作为输出


P1SEL || BIT6;// WFP 1.6 选择作为输出
P2SEL &=~BIT6;//清除SEL位
P2SEL2 &=~BIT6;//清除SEL2位  


TA0CCR0 = 999;// PWM周期= TA0CCR0 +1
TA0CCTL1 = OUTMOD_7;// CCR1重置/设置


TA0CCR1 = 250;// CCR1 PWM占空比= TA0CCR1*100/(TA0CCR0+1)
TA0CCTL2 = OUTMOD_7;// CCR2重置/设置


TA0CCR2 = 250;// CCR2 PWM占空比= TA0CCR2*100/(TA0CCR0+1)
TA0CTL = tassel_2 + MC_1 + TCLR;// SMCLK,向上模式,清除TAR

__bis_sr_register(LPM0_bits);//输入LPM0
__no_operation();//用于调试器
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    P1SEL || BIT6;// WFP 1.6 选择作为输出 

    这是将0.1 输出连接到WFP 1.6 的正确方法。

    P2SEL &=~BIT6;//清除SEL位
    P2SEL2 &=~BIT6;//清除SEL2位 

    这不是将0.1 的输出连接到WFP 2.6 的正确方法。 请参阅数据表的表21。

    0.2 的输出仅可用于WFP的3.0 或WFP的3.6。

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

    这里是表21,这是我过去的P2SEL = 0和P2SEL2 = 0。 这不正确吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    要从引脚获得PWM信号,必须将计时器的输出连接到该引脚。

    “0.1 ”是这样的计时器输出。 "WFP 2.6 (电压调节器)"是指针脚由软件控制。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么我会将P2DIR = BIT6,P2SEL = BIT6,P2SEL2 =~BIT6?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    最好不要更改您不关心的PxDIR或PxSELx卷筒中的位。
    请尝试以下代码snip:

    //为在WFP 2.6 上安装PWM而设置的一般设置为2553
    //设置输出引脚和
    //将其连接到计时器A0 输出1
    P2DIR || BIT6;
    //在P2SEL中,设置位6和清除位7
    P2SEL || BIT6;
    P2SEL &=~BIT7;
    //在P2SEL2中,清除位6和位7
    P2SEL2 &=~(BIT6 | BIT7)

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

    感谢您的帮助! 我想问一下,为什么我不会使用BIT7,但您还是清除了BIT7?

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

    参见SLAS735J的表21。
    如果列标题P2DIR.x改为P2DIR.6,则该表可能更好/更清晰。好吧

    这是我所了解的发生的事情。。 XIN和XOUT引脚通常成对; 将32.6768 kHz晶体悬挂在它们上是很常见的。如果您使用内部DCO并想使用"xin"引脚作为输出,那么明确地将"XOUT"引脚从与晶体相关的外部函数中分离是有意义的。保持P2SEL.7和P2SELBL 2.7 位清晰可实现这一点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    噢,我明白了! 非常感谢你,杰夫! 现在一切都很完美!