1522|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

MSP430占空比可变的PWM波程序 [复制链接]

MSP430占空比可变的PWM波程序  
//*******************************************************************************
//  Description: 设定一个变量来选择初始占空比,然后通过Timer_B定时1s,每隔一秒
//  改变一次占空比,生成占空比可变的PWM波。
//  ACLK= TACLK = 32768Hz, MCLK= SMCLK= default DCO ~ 800kHz
//  Daquan. Liu
//  China University of Geosciences(Wuhan)
//  2010.12.27
//  Built with IAR Embedded Workbench Version: V3.42A
//******************************************************************************
#include
unsigned char v=5;
void  Init_TIMER_B();
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 options
   Init_TIMER_B();

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

   CCR0 = 512-1; // PWM Period
   CCTL1 = OUTMOD_7 ; // CCR1 reset/set
   CCTL2 = OUTMOD_7 ; //CCR2 reset/set
   if(v==5)
   {
     CCR1 = 128; // CCR1 PWM duty cycle
     CCR2 = 384; // CCR2 PWM duty cycle
   }
   else if (v==12)
   {
     CCR1 = 384; // CCR1 PWM duty cycle
     CCR2 = 128; // CCR2 PWM duty cycle
   }
   else
   {
     CCR1 = 128; // CCR1 PWM duty cycle
     CCR2 = 384; // CCR2 PWM duty cycle
   }

   TACTL |= MC_1;      // Start Timer_A in up mode
   TBCTL |= MC_1;      // Start Timer_B in up mode

   _EINT();         //开全局中断
   _BIS_SR(LPM0_bits); // Enter LPM0

}


void  Init_TIMER_B()
{
    TBCTL |= TBSSEL0 +TBCLR; //ACLK
    TBCCTL0 = CCIE;
    TBCCR0 =32768;  //定时1s  
}


// Timer B0 interrupt service routine
#pragma vector=TIMERB0_VECTOR
__interrupt void Timer_B (void)
{
if(CCR1 >511)
   CCR1 = 64;
else CCR1 += 32;      // 调整占空比
if(CCR2 < 10)
   CCR2 = 448;
else  CCR2 -= 32;                        

}


//此程序不能用定时器A中断定时

 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表