总结:选SMCLK(可以测出来)
若选ACLK,经示波器PWM时有时无
举例一:
#include <MSP430G2553.h>
#define CPU_F ((double)12000000)//cpu frequency12000000
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
//功能:TA0.1输出PWM
//说明:TA0.1由P1.2 p1.6输出
void timerA0_1_init()
{
TACTL |= TASSEL_2 + MC_1; //选SMCLK(可以测出来),增计数
//若选ACLK,经示波器PWM时有时无
CCTL1 = OUTMOD_7; //输出模式为复位/置位
CCR0 = 1115000/1000; //SMCLK时钟频率为1.115MHZ,PWM(频率):1.115MHZ/CCR0
CCR1 = (1115000/1000) * 30/100; //占空比:CCR1/CCR0 ;
}
//功能:TA1.1输出PWM
//说明:TA1.1由P2.1 P2.2输出;
//TA1.1与TA1.2共用TA1CCR0,TA1CTL
void timerA1_1_init()
{