#include "msp430x14x.h"
#define uint unsigned int
#define uchar unsigned char
uchar PWM[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//时钟初始化函数
void int_clk()
{
uchar i;
BCSCTL1&=~XT2OFF; //XT2开启
BCSCTL2|=SELM1+SELS+DIVS1+DIVS0; //MCLK为8MHZ,SMCLK为1MHZ
do{
IFG1&=~OFIFG;//清除振荡器失效标志
for( i=255;i>0;i--);
}while((IFG1&OFIFG)!=0);//如果标志位为1,则继续循环等待
IFG1&=~OFIFG;
}
void int_pwm_L()
{
TACTL=TASSEL1+MC0+ID0+ID1;//选择SMCLK 增计数 ,8分频
TACCR0=2500;
TACCTL1=OUTMOD0+OUTMOD1+OUTMOD2;
TACCR1=500; // 占空比20%
}
void int_pwm_H()
{
TACTL=TASSEL1+MC0+ID0+ID1;//选择SMCLK 增计数 ,8分频
TACCR0=2500;
TACCTL1=OUTMOD0+OUTMOD1+OUTMOD2; //模式7 置位/复位
TACCR1=2000; //占空比80%
}
void pwm_L(int i)
{
int_pwm_L();
P1SEL|=PWM;
P1DIR|=PWM;
}
void pwm_H(int i)
{int_pwm_H();
P1SEL|=PWM;
P1DIR|=PWM;
}
void main()
{WDTCTL=WDTPW+WDTHOLD;
int_clk();
pwm_H(2);
pwm_L(6);
while(1);
}
当编入程序后P1.2和P1.6都输出50HZ占空比为20%的方波;
当我将PWM_L相关代码删掉后只是输出P1.2则得到50HZ占空比为80%的方波,这是为什么?
我本想让P1.2输出占空比为80%,P1.6输出占空比为20%
|