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.

[参考译文] MSP430F6721A:在计量 MSP430 SoC#39;s 时为所选引脚分配 PWM

Guru**** 2510095 points
Other Parts Discussed in Thread: MSP430F6721A

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/924708/msp430f6721a-assigning-pwm-to-the-chosen-pinouts-in-metering-msp430-soc-s

主题中讨论的其他器件:MSP430F6721A

大家好、团队、

正如我们在离线模式下讨论的、您能否提供一个代码示例、说明如何在 MSP430F6721A 中将 PWM 输出信号从 TA1.1分配到 TA1.0?

感谢你的帮助。

msp430f673xA_TA1_20.c

/*-版权所有-、BSD_EX
*版权所有(c) 2012、德州仪器(TI)公司
*保留所有权利。
*
*
只要
符合以下条件*、允许以源代码和二进制形式重新分发和使用:
*
*源代码的重新分发必须保留上述版权
声明*、此条件列表和以下免责声明。
*
***二进制形式的再发行必须在

*随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
*
***未经

事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
*
*本软件由版权所有者和贡献者"按原样"提供
*、

不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
*贡献者都不对任何直接、间接、偶然、特殊、
*模范、 或相应的损害(包括但不限于
*采购替代产品或服务;丧失使用、数据或利润;
*或业务中断)、但出于任何责任理论
、*无论是在合同中、严格责任还是由于
使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
、*即使已获悉可能会发生此类损坏。
*
***
*
* MSP430代码示例免责声明
*
* MSP430代码示例是自包含的低级程序
,通常*以
高度*简明的方式演示单个外设功能或器件功能。 为此、代码可能依赖于器件的加电默认
值*寄存器值和时钟配置等设置、
并且在组合多个示例中的代码时必须*小心以避免潜在的副作用
*。 另请参阅 www.ti.com/grace 了解 GUI、并参阅 www.ti.com/msp430ware
*了解外设配置的 API 函数库方法。
*
*--/版权--*
//*********
// MSP430F673xA 演


示- Timer1_A1、PWM TA1.1、上数/下数模式、32kHz ACLK //说明:此程序使用配置为上数/下数模式的// Timer1_A 在 P8.5上生成 PWM 输出。 CCR0中的值128定义
了// PWM 周期/2以及 CCR1中的 PWM 占空比值。 使用
// 32kHz ACLK 作为 TACLK 时、定时器周期为7.8ms、占空比为75%
//在 P8.5上。 正常运行模式为 LPM3
// ACLK = TACLK = LFXT1 = 32768Hz,MCLK =默认 DCO ~1.045MHz。
//
// MSP430F673xA
// --------
// /|\| |
// || |
// -|RST |
// | |
// | P8.5/TA1.1|->CCR1 - 75% PWM
//
M. Swanson
// Texas Instruments Inc.
// 2011年12月
//使用 CCS 生成版本:5.1.0和 IAR 嵌入式工作平台版本:5.40.1/

#include 

int main (void)
{
WDTCTL = WDTPW | WDTHOLD; //停止 WDT

//设置 P8.5 TA1.1
P8DIR |= BIT5; // P8.5/TA1.1输出
P8SEL |= BIT5; //输出 TA1

//设置 LFXT1
UCSCTL6 &=~(XT1OFF); // XT1打开
UCSCTL6 |= XCAP_3; //内部负载电容
//循环直到 XT1故障标志被清除
操作
{
UCSCTL7 &=~(XT2OFFG | XT1LFOFFG | DCOFFG);
//清除 XT2、XT1、DCO 故障标志
SFRIFG1 &=~OFIFG; //清除故障标志
} while (SFRIFG1和 OFIFG); //测试振荡器故障标志

//设置 TA1
TA1CCR0 = 128; // PWM 周期/2
TA1CCTL1 = OUTMOD_6; // CCR1切换/设置
TA1CCR1 = 32; // CCR1 PWM 占空比
TA1CTL = tassel_1 | MC_3; // ACLK、上-下模式

_bis_SR_register (LPM3_bits); //进入 LPM3
__no_operation(); //对于调试器
} 

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

    您好 Bart、

    您使用的是哪种封装? 是80引脚还是100引脚封装? 我提出的原因是、如果您使用80引脚封装、可能需要使用端口映射来输出信号。

    如果您希望使用 TA1.0作为计时器输出、则比仅使用 TA1.1或 TA1.2输出更具挑战性。 为什么? 嗯、模式6 (PWM 切换/置位)使用 CCR0作为基准周期、然后在必要时更改 CCR1和 CCR2以实现不同的脉冲宽度。 您需要更改使用 TA1.0作为输出的模式。

    您可以使用 TA1CCR0在技术上支持 TA1.0上的 PWM 输出、但您只能调整占空比、频率将是固定的。  要使用 TA1CCR0比较电路、定时器需要在连续模式下运行、这会强制定时器从00000h 至0FFFFh 进行计数。  具体参见第17.2.3.2节。

    使用 TA1CCR0在 TA1.0上实现 MSP430F5528 PWM

    因此、我认为如果可能、使用 TA1.2引脚比使用 TA1.0更容易。

    此致、

    James