程序如下:
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:
谢谢 问题解决 又开了一个定时器