请教下原子哥,关于ADC数据处理的问题

2019-10-14 23:44发布

这是ADC数据取平均的一段代码
u16 Get_Adc_Average(u8 ch,u8 times)
{
        u32 temp_val=0;
        u8 t;
        for(t=0;t<times;t++)
        {
                temp_val+=Get_Adc(ch);
                delay_ms(5);
        }
        return temp_val/times;
}          
各位大神们:这段代码中的,delay_ms(5); 是有什么作用?  同时在UOCII上怎么实现这个延时?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
xdzhang
1楼-- · 2019-10-15 22:00
我理解延时5ms是为了使ADC有住够的时间进行数据转换。
xdzhang
2楼-- · 2019-10-16 02:22
 精彩回答 2  元偷偷看……
操作系统
3楼-- · 2019-10-16 02:51
本帖最后由 操作系统 于 2017-2-22 22:23 编辑

延时有可能并不起作用,可以删除.Get_Adc(ch)这个函数里应该有 ADC还没有完成的话.应该死等它完成,再了出数据,返回.延时函数,如果没有的话,实现起来也好容易.这个不用具体说了吧,相信你懂的.
tao96
4楼-- · 2019-10-16 03:15
操作系统 发表于 2017-2-22 22:21
延时有可能并不起作用,可以删除.Get_Adc(ch)这个函数里应该有 ADC还没有完成的话.应该死等它完成,再了出数 ...

懂了,有些隐形的东西真的是实践才能知道,
tao96
5楼-- · 2019-10-16 08:24
xdzhang 发表于 2017-2-22 22:05
妈的,机器反应太慢。按多了。又不能删。

没事,懂了,谢谢
tao96
6楼-- · 2019-10-16 11:05
学习了,谢谢原子哥。

一周热门 更多>