MSP432--TimerA (主要说明如何实现可调PWM)

---恢复内容开始---

16位定时器 Timer_A 输出精密PWM

1.模式操作

Timer_A 支持     :多路捕获/比较 、PWM输出 、 定时
        同时支持 :中断

Timer_A 特点: 异步16位具有四种模式的定时器/计数器
               可选择、可配置的时钟资源
               多达7个可配置的 捕获/比较 寄存器
               具有配置PWM的功能
               异步输入和输出自锁
               中断向量寄存器快速解码定时器中断
2.基本操作模式
三种模式: 连续计数模式
           增计数模式
           增减计数模式
TimerA_initCompare() 初始化比较模式  /*需要必要的参数*/
TimerA_generatePWM() 生成PWM         /*需要必要的参数*/

/*配置TimerA PWM参数*/
Timer_A_PWMConfig pwmConfig =
{
 TIMER_A_CLOCKSOURCE_SMCLK,
 TIMER_A_CLOCKSOURCE_DIVDER_1,
 32000,
  TIMER_A_CAPTURECOMPARE_REGISTER_0,
 TIMER_A_OUTPUTMODE_TOGGLE,
 3200
};

参数详情:
typedef struct _Timer_A_PWMConfig
{
    uint_fast16_t clockSource;   //时钟资源,选取哪个时钟做定时器的来源,同430中的TASSELx
    uint_fast16_t clockSourceDivider;//分频率
    uint_fast16_t timerPeriod;//周期
    uint_fast16_t compareRegister;//选取比较寄存器
    uint_fast16_t compareOutputMode;//比较模块的输出模式
    uint_fast16_t dutyCycle;//高电平 占
} Timer_A_PWMConfig;

/*配置TimerA PWM参数*/

/*程序实例*/


/* 配置 MCLK to REFO at 128Khz for LF mode
* 配置 SMCLK 为 64Khz */
MAP_CS_setReferenceOscillatorFrequency(CS_REFO_128KHZ);
MAP_CS_initClockSignal(CS_MCLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1);
MAP_CS_initClockSignal(CS_SMCLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_2);
MAP_PCM_setPowerState(PCM_AM_LF_VCORE0);
/* 将GPIO7.3设置为PWM输出引脚,P1.1位按键
* 中断 */
MAP_GPIO_setAsPeripheralModuleFunctionOutpu

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值