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

msp430f149 通过timerA 产生的PWM控制外围电路电压并AD采集,但是采集不到数据

程序如下:

uint TT=1600;
void Init_TimerA(void)
{
  TACCR0=2000-1;                  // 脉宽                  
  TACCR2=TT;                   TACCTL2=OUTMOD_7;         //设CCR2输出单元为复位/置位输出模式
  TACTL=TASSEL_2+ID_3+MC_1+TACLR; //子系统时钟+8分频+增计数模式+计数器器清零
}
void bujin(void)                        //间隔3秒PWM占空比改变
{
    TT=TT-64;
    Init_TimerA();
    start_ADC12();                    //AD采集电压
    delay_bujin(1);                    //延时3秒
    while(TT>1200)
    {
      TT=TT-64;
      Init_TimerA();          start_ADC12();                   //AD采集电压
      delay_bujin(1);
    }
    if(TT<1200)
    {
      TT=TT+64;
      Init_TimerA();
      start_ADC12();                  //AD采集电压
      delay_bujin(1);
      while(TT<1840)
      {
        TT=TT+64;
        Init_TimerA();
        start_ADC12();                  //AD采集电压         delay_bujin(1);
      }
    }
   }

Bruce Wei:

这个问题应该分为两部分调试:

1)先测试 start_ADC12();是否能采集到正确的数据;

2)再使用GPIO翻转的方法,测试定时器中断的时间是否正确;

xi li:

回复 Bruce Wei:

谢谢Billy的指导,

1)start_ADC12();单独测试可以采集到数据,并通过LCD1621显示;

2)去掉 start_ADC12(); 采集部分,单独测试 Init_TimerA(); 输出可调占空比,控制外围电路也可获得预期电压;

3)去掉延时 delay_bujin(1); 后测试,可以采集到数据,但没有延时PWM变化太快;不能获得稳定可调电压值;

4)又测试原来的程,发现LCD1621显示的采集电压变化时间间隔,是延时时间的10倍,不能同步显示采集口电压。

是不是有时序上的冲突呢? 刚接触430不久,请您多多指教啊!!!

xi li:

回复 Shi JianHua:

    但是那样就不能调节PWM的占空比   

Shi JianHua:

回复 xi li:

怎么会,我采集和4-20ma都同时做了没问题。

xi li:

回复 Shi JianHua:

谢谢 问题解决 又开了一个定时器

赞(0)
未经允许不得转载:TI中文支持网 » msp430f149 通过timerA 产生的PWM控制外围电路电压并AD采集,但是采集不到数据
分享到: 更多 (0)