This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
程序如下:
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);
}
}
}
这个问题应该分为两部分调试:
1)先测试 start_ADC12();是否能采集到正确的数据;
2)再使用GPIO翻转的方法,测试定时器中断的时间是否正确;
谢谢Billy的指导,
1)start_ADC12();单独测试可以采集到数据,并通过LCD1621显示;
2)去掉 start_ADC12(); 采集部分,单独测试 Init_TimerA(); 输出可调占空比,控制外围电路也可获得预期电压;
3)去掉延时 delay_bujin(1); 后测试,可以采集到数据,但没有延时PWM变化太快;不能获得稳定可调电压值;
4)又测试原来的程,发现LCD1621显示的采集电压变化时间间隔,是延时时间的10倍,不能同步显示采集口电压。
是不是有时序上的冲突呢? 刚接触430不久,请您多多指教啊!!!