MSP430占空比可变的PWM波程序

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 =

相关文档
最新文档