智能车制作

标题: 关于野火AD底库三次取中值ad_mid问题 [打印本页]

作者: 黯伤人    时间: 2014-2-24 21:44
标题: 关于野火AD底库三次取中值ad_mid问题
u16 ad_mid(ADCn adcn, ADC_Ch ch, ADC_nbit bit)
{
    u16 i, j, k, tmp;
    ASSERT( ((adcn == ADC0) && (ch >= AD8 && ch <= AD18)) || ((adcn == ADC1) && (ch >= AD4a && ch <= AD17)) ) ; //使用断言检测ADCn_CHn是否正常

    //3次ADC转换
    i = ad_once(adcn, ch, bit);
    j = ad_once(adcn, ch, bit);
    k = ad_once(adcn, ch, bit);

    //取中值
    tmp = i > j ? i : j;          //tmp取两者最大值
    return k > tmp ?    tmp :  (   k > i  ?    k   :     i  );
    //                k>tmp>i             tmp>k>i   tmp>i>k
}

当tmp=i的时候,即i>j;如果k>tmp,即k>i,此时k>i>j,返回tmp=i,正确;如果,k<tmp,即k<i,返回i,但是i>k,i>j,i并不是中值。




作者: 飞思迷    时间: 2014-2-24 22:12
那个是有bug的,火哥之前有个回复了说过的。需要加个变量存储最大最小值
作者: 黯伤人    时间: 2014-2-24 23:07
飞思迷 发表于 2014-2-24 22:12
那个是有bug的,火哥之前有个回复了说过的。需要加个变量存储最大最小值

恩恩,看来是我没有看到。。。

作者: 机器人没名字    时间: 2014-2-25 00:05
飞思迷 发表于 2014-2-24 22:12
那个是有bug的,火哥之前有个回复了说过的。需要加个变量存储最大最小值

大神啊 对野火这么熟悉,搞得小弟一直以为你是野火呢

作者: 飞思迷    时间: 2014-2-25 00:55
机器人没名字 发表于 2014-2-25 00:05
大神啊 对野火这么熟悉,搞得小弟一直以为你是野火呢

我是他的师弟,所以了解比较熟悉

作者: 黯伤人    时间: 2014-2-25 10:33
飞思迷 发表于 2014-2-25 00:55
我是他的师弟,所以了解比较熟悉

哇,好厉害





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2