TI中文支持网
TI专业的中文技术问题搜集分享网站

我是初学者,想做一个用pwm输出一个方波,然后去驱动喇叭唱歌,程序现在只写到这里,用示波器看波形发现不能按照设计的占空比变化,请问问题在哪。

#include <msp430x14x.h>int SONGTABLE[ ]={1,10};

int count=0;
/***初始化时钟源****/
void Init_clk (void)
{ char i;
BCSCTL1 &= ~XT2OFF;
BCSCTL2 |= SELM1+SELS;
do
{
IFG1&=~OFIFG;
for (i =0; i <100; i++)
_NOP();
}
while ((IFG1&OFIFG));
IFG1&=~OFIFG;
}
/****初始化定时器A,载波***/
void Init_TimerA (void)
{
P1DIR |= BIT2;
P1SEL |= BIT2; TACCR0 =20;
TACCR1=10;
TACCTL0=CCIE;
TACCTL1 = OUTMOD_7;
TACTL =TASSEL1+ID0+MC0+TAIE+TACLR;
}
//初始化定时器B,调制波
void Init_TimerB (void)
{
TBCCR0=500;
TBCCR1=250;
TBCCTL0=CCIE;
TBCCTL1=OUTMOD_7;
TBCTL =TBSSEL1+ID0+MC0+TBIE+TBCLR;
}
/****主函数***/
void main (void)
{ WDTCTL = WDTPW + WDTHOLD;
Init_clk ();
Init_TimerA();
Init_TimerB();
_EINT();
while(1)
{
   if(count<2) 

      TACCR1=SONGTABLE[count];

     else count=0;

     }

}
#pragma vector=TIMERB0_VECTOR
__interrupt void Timer_B(void)
{
count++;
}

灰小子:

楼主,你好。你的问题解决了吗?

看你的代码,载波和调制波都是固定的频率和占空比,这样是没法改变喇叭发出的声音信号的。

赞(0)
未经允许不得转载:TI中文支持网 » 我是初学者,想做一个用pwm输出一个方波,然后去驱动喇叭唱歌,程序现在只写到这里,用示波器看波形发现不能按照设计的占空比变化,请问问题在哪。
分享到: 更多 (0)