MSP430-Timer(三)

查询数据手册可知,有四个定时器,分别是TimerA0,A1,A2,B0,接下来主要针对TimerA进行主要探究.

Timer_A介绍

  1. Timer_A是一个16位的计时器/计数器,有多达7个捕获/比较寄存器。
  2. Timer_A可以支持多个捕获/比较,PWM输出,间隔计时。
  3. Timer_A还具有广泛的中断功能。在溢出条件下,可以从计数器和每个捕获/比较寄存器中生成中断。
  4. Timer_A功能包括:异步16位定时器/计数器,四种操作模式可选择和可配置的时钟源最多可配置7个捕获/比较寄存器具有脉宽调制(PWM)能力的可配置输出异步输入和输出闭锁
  5. 中断向量寄存器用于快速解码

单脉冲的PWM输出

1.设置IO口为输出模式

	//P2.0 as PWM output
	    GPIO_setAsPeripheralModuleFunctionOutputPin(
	        GPIO_PORT_P2,
	        GPIO_PIN0
	        );

2.设置Timer模式

        Timer_A_outputPWMParam param = {0};
        param.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;
        param.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1;
        param.timerPeriod = TIMER_PERIOD;
        param.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1;
        param.compareOutputMode = TIMER_A_OUTPUTMODE_RESET_SET;
        param.dutyCycle = DUTY_CYCLE;
        Timer_A_outputPWM(TIMER_A1_BASE, &param);

效果
在这里插入图片描述

实测中ACLK仅有32.8HZ,SMCLK时钟有1.054Mhz.

在电机控制中,内部PWM频率设置非常有讲究,查阅的资料一般都是说在10-20Khz较好,不过具体还得看自身电机的参数。对于主频只有1MHZ的MSP430如何产生那么高的PWM呢?
两个方法:
第一个是利用UCS时钟管理系统升频
第二个是配置好TIMER_PERIOD和DUTY_CYCLE两个参数。

具体捕获比较寄存器的选择就根据原理图中对应IO口的定时器所用的设置即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值