PWM技术

来源:互联网 发布:罗志祥有淘宝店吗 编辑:程序博客网 时间:2024/05/21 08:46

  利用MSP430f149的timerA 比较捕获模式生成两路PWM方波。

  原理图如下,利用的是输出模式3和7

 

  下面是代码:

  

#include <msp430x14x.h>  #include "Config.h"uchar count = 0;void Init_PWM(void){   P1SEL |= BIT2;  //TA1从P1.2输出   P1DIR |= BIT2;  //TA1从P1.2输出   P1SEL |= BIT3;  //TA2从P1.2输出   P1DIR |= BIT3; //TA2从P1.2输出       TACTL |= MC_1 + TASSEL_1;  //时钟源选择ACLK,增计数模式 TA设置    TACCTL1 = OUTMOD_7; //模式7 高电平PWM输出 PWM设置   TACCTL2 = OUTMOD_7; //模式7 高电平PWM输出   TACCR0 = 33-1;  //PWM总周期=32个ACLK周期 约等于1000Hz 设置PWM的周期}void Set_PWM1_Duty(uchar duty){     TACCR1 = duty;}void Set_PWM2_Duty(uchar duty){     TACCR2 = duty;}void main(){  WDTCTL = WDTPW + WDTHOLD ;  Clock_Init();  Init_PWM();  Set_PWM1_Duty(16);  Set_PWM2_Duty(16);  while(1)  {  }}