#include "msp430g2553.h"
#define IN1 BIT0
#define IN2 BIT1
//#define IN3 BIT3
//#define IN4 BIT4
#define PWMA BIT5
//#define PWMB BIT6
void Set_CLK(void)
{
BCSCTL1 |= CALBC1_1MHZ; //set range
DCOCTL = CALDCO_1MHZ; //设置DCO模式
BCSCTL2 &=~SELS; //SMCLK时钟DCOCLK
BCSCTL2 |= DIVS_0 + SELM_0 + DIVM_0; //MCLK时钟DCOCLK,0分频
}
void Set_TimerA(void)
{
//TA0CCR0 =1000; //PWM周期
TA0CTL = TASSEL_2 + ID_0 + MC_1 + TACLR; //时钟源SMCLK。0分频,增计数,位清除
}
void Set_Pwm1()
{
TA0CCR0 = 1000;
TA0CCTL0 = OUTMOD_7; //输出模式7
TA0CCR1 =200 ;
P1OUT |= IN1;
P1OUT &=~ IN2;
P1SEL |= PWMA;
P1DIR |= PWMA;
}
void Set_Pwm2()
{
TA0CCR0 = 1000;
TA0CCTL0 = OUTMOD_7; //输出模式7
TA0CCR1 =1000 ;
P1OUT |= IN2;
P1OUT &=~ IN1;
P1SEL |= PWMA;
P1DIR |= PWMA;
}
int main( void ) {
WDTCTL = WDTPW + WDTHOLD;//看门狗
P1SEL &=~ (IN1 + IN2 ); //定义IN1 IN2 为I/O口
P1DIR |= (IN1 + IN2 ); //定义IN1 IN2 为输出口
Set_CLK();
Set_TimerA();
while(1){
Set_Pwm1();
__delay_cycles(3000000);
P1OUT |= (IN1 + IN2 );
__delay_cycles(3000000);
Set_Pwm2();
__delay_cycles(3000000);
}
}
#define IN1 BIT0
#define IN2 BIT1
//#define IN3 BIT3
//#define IN4 BIT4
#define PWMA BIT5
//#define PWMB BIT6
void Set_CLK(void)
{
BCSCTL1 |= CALBC1_1MHZ; //set range
DCOCTL = CALDCO_1MHZ; //设置DCO模式
BCSCTL2 &=~SELS; //SMCLK时钟DCOCLK
BCSCTL2 |= DIVS_0 + SELM_0 + DIVM_0; //MCLK时钟DCOCLK,0分频
}
void Set_TimerA(void)
{
//TA0CCR0 =1000; //PWM周期
TA0CTL = TASSEL_2 + ID_0 + MC_1 + TACLR; //时钟源SMCLK。0分频,增计数,位清除
}
void Set_Pwm1()
{
TA0CCR0 = 1000;
TA0CCTL0 = OUTMOD_7; //输出模式7
TA0CCR1 =200 ;
P1OUT |= IN1;
P1OUT &=~ IN2;
P1SEL |= PWMA;
P1DIR |= PWMA;
}
void Set_Pwm2()
{
TA0CCR0 = 1000;
TA0CCTL0 = OUTMOD_7; //输出模式7
TA0CCR1 =1000 ;
P1OUT |= IN2;
P1OUT &=~ IN1;
P1SEL |= PWMA;
P1DIR |= PWMA;
}
int main( void ) {
WDTCTL = WDTPW + WDTHOLD;//看门狗
P1SEL &=~ (IN1 + IN2 ); //定义IN1 IN2 为I/O口
P1DIR |= (IN1 + IN2 ); //定义IN1 IN2 为输出口
Set_CLK();
Set_TimerA();
while(1){
Set_Pwm1();
__delay_cycles(3000000);
P1OUT |= (IN1 + IN2 );
__delay_cycles(3000000);
Set_Pwm2();
__delay_cycles(3000000);
}
}
