PIC单片机AD转换算法问题,看得不是很明白 5
#defineT=36unsignedintfilter(){//unsignedcharN=12;unsignedchari=0;unsignedintnew_valu...
#define T=36
unsigned int filter()
{ //unsigned char N=12;
unsigned char i=0;
unsigned int new_value=0;
unsigned int value=0;
for(i=0;i<10;i++)
{
new_value+=gatad();
}
value=new_value;
return(value);
}
unsigned int pwm_conversation(unsigned int i)
{
unsigned int k;
if(i>49)
{
k=(i-49)*100/36;
if(k==0)k=1;
}
else
{
if(i>38)k=1;
else k=0;
}
if(k)
{
if(k<T)k=T;
if(k>1000)k=1000;
}
return(k);
}
void dim()
{
unsigned char i;
CLRWDT();
for(i=0;i<12;i++)
pwm=pwm_conversation(filter());
pwm_modulation(pwm);
}
PWM变量是设置PWM信号占空比的,整个程序是检测输入电压然后调整PWM信号,但整个程序看得不是很明白,特别是函数 pwm_conversation(unsigned int i)里的代码不知道是什么意思。请各位给说说整个程序是怎么回事。 展开
unsigned int filter()
{ //unsigned char N=12;
unsigned char i=0;
unsigned int new_value=0;
unsigned int value=0;
for(i=0;i<10;i++)
{
new_value+=gatad();
}
value=new_value;
return(value);
}
unsigned int pwm_conversation(unsigned int i)
{
unsigned int k;
if(i>49)
{
k=(i-49)*100/36;
if(k==0)k=1;
}
else
{
if(i>38)k=1;
else k=0;
}
if(k)
{
if(k<T)k=T;
if(k>1000)k=1000;
}
return(k);
}
void dim()
{
unsigned char i;
CLRWDT();
for(i=0;i<12;i++)
pwm=pwm_conversation(filter());
pwm_modulation(pwm);
}
PWM变量是设置PWM信号占空比的,整个程序是检测输入电压然后调整PWM信号,但整个程序看得不是很明白,特别是函数 pwm_conversation(unsigned int i)里的代码不知道是什么意思。请各位给说说整个程序是怎么回事。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询