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)里的代码不知道是什么意思。请各位给说说整个程序是怎么回事。
展开
 我来答
一剑出血
高粉答主

2015-06-01 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
大概看了一下,基本上就是连续AD采样10次,将累加和进行分区间的处理。最后加上边界保护。

这程序的逻辑十分混乱,编程的人属于想到哪里写到哪里的状态,即使作为作业也是不合格的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式