肯定有浮动,你把中间的余量该大就行,因为1088和1120才差多少AD,你把差值调到100左右,并且判断次数增加,比如这样
if(ADC12CTL0<0x424)//判断采样值是否大于1088
{
ADcount_V2 = 0;
ADcount_V1++;//自己定义
if(ADcount_V1 == 10)
{
ADcount_V1 = 0;
if(TA0CCR1<497)//判断占空比是否小于497
{
TA0CCR1 = TA0CCR1+5;//如果占空比小于497则加5
}
else
TA0CCR1 = 512;//否则直接赋值
}
}
else if(ADC12CTL0>0x488)
{
ADcount_V1 = 0;
ADcount_V2++;
if(ADcount_V2 == 10)
{
ADcount_V2 = 0;
if(TA0CCR1>10)
{
TA0CCR1 = TA0CCR1 - 10;
}
else
TA0CCR1 = 0;
}
}
|