您的位置 首页 开关

msp430单片机完成PWM

PWM信号是一种具有固定周期(T)不定占空比(t)的数字信号,如下图所示。如果PWM信号的占空比随时间变化,那么通过滤波之后的输出信号将是幅度…

PWM信号是一种具有固定周期(T)不定占空比(t)的数字信号,如下图所示。假如PWM信号的占空比随时刻改变,那么经过滤波之后的输出信号将是起伏改变的模拟信号。因而经过操控PWM信号的占空比,就能够发生不同的模拟信号。

msp430单片机使用Timer_A或许Timer_B能够很好的完成发生恣意PWM信号。

Timer_A定时器的计数器作业在增计数方法,输出选用形式7(复位/置位形式),则能够使用CCR0操控PWM波形的周期,用某个寄存器CCRx操控占空比。原理图如下:(注:这幅图片为网上下载,他用的是Timer_B定时器,故输出TBx)

摘抄下面一段:http://www1.ti.com.cn/customer/article/article12161.asp

将Timer_B装备为16-bit、up形式。在这种形式下计数器计数至CCR0,然后复位从0开端从头计数。给CCR0赋值255也就意味着计数器的长度为8bits。CCR1和TB1用于发生正弦波,CCR2和TB2用于发生直流电平。输出形式都选为形式7,即PWM复位/置位形式。如图2所示,在这种形式下,复位后每一个定时器的输出都为高电平,直到计数器到达各自的CCRx值时变为低电平,当计数器到达CCR0时再置位。也便是说CCRx的值决议了各自正脉冲的宽带。若CCRx的值是改变的,就能够发生可变宽度的脉冲,下文中的正弦波便是用这种方法发生的;若不变则发生的是固定宽度的脉冲,下文中的直流电平便是这样发生的。最终SMCLK用作Timer_B的时钟源。体系选用32768Hz的挂钟晶振,经过选用内部硬件锁频环FLL(frequency-locked-loop),来校准DCO(DigitalControlOscillator)频率为体系供给MCLK/SMCLK时钟。

示例程序:

#include
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P1DIR |= 0x0C; // P1.2 and P1.3 output
P1SEL |= 0x0C; // P1.2 and P1.3 TA1/2 otions

CCR0 = 512-1; // PWM Period
CCTL1 = OUTMOD_7; // CCR1 reset/set
CCR1 = 384; // CCR1 PWM duty cycle
CCTL2 = OUTMOD_7; // CCR2 reset/set
CCR2 = 128; // CCR2 PWM duty cycle

TACTL = TASSEL_2 + MC_1; // SMCLK, up mode

_BIS_SR(LPM0_bits); // Enter LPM0
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/274321.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部