刚接触430,这里有两处if语句理解的不好,希望有人能来指点一二

2019-03-24 08:53发布

本帖最后由 fangkaixin 于 2016-10-20 09:06 编辑

不懂的地方已经标红,功能是提示开机时的电压等级,宏定义见棕 {MOD}字体部分,以下程序,谢谢了
if(is_audio_start_vbat_level_show == false)  //开机放电量提示滴音时不改变电量提示等级,在放滴音时要用到该等级 //true时表示目前处于提示电池电压等级的阶段    {        if(adc10_vbat_sample_value >= ADC10_VBAT_AUDIO_START_ERROR_2 && is_key_long_press_audio_close == false)        {            audio_start_vbat_level = 8;   //开机时用于提示电池电量的等级,开机时该值在响之前会改为正常等级            vbat_det_normal = false;        }        else if(adc10_vbat_sample_value >= ADC10_VBAT_AUDIO_START_3)        {            audio_start_vbat_level = 3;            vbat_det_normal = true;        }        else if(adc10_vbat_sample_value >= ADC10_VBAT_AUDIO_START_2)        {            audio_start_vbat_level = 2;            vbat_det_normal = true;        }        else if(adc10_vbat_sample_value < ADC10_VBAT_AUDIO_START_2)        {            audio_start_vbat_level = 1;            vbat_det_normal = true;        }        else if(adc10_vbat_sample_value < ADC10_VBAT_AUDIO_START_ERROR_1 && is_key_long_press_audio_close == false)        {            audio_start_vbat_level = 8;            vbat_det_normal = false;        }    }
    return;}bool is_audio_start_vbat_level_show = false;  //置true时表示目前处于提示电池电压等级的阶段unsigned int adc10_vbat_sample_value;  //adc10的电池电压的采样值#define ADC10_VBAT_AUDIO_START_ERROR_2     (ADC10_MAX * ADC10_VBAT_AUDIO_START_ERROR_2_VALUE * 100)/(ADC10_REF * 100)
#define ADC10_VBAT_AUDIO_START_ERROR_1     (ADC10_MAX * ADC10_VBAT_AUDIO_START_ERROR_1_VALUE * 100)/(ADC10_REF * 100)

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
strong161
2019-03-24 18:47
fangkaixin 发表于 2016-10-20 13:57
我是刚入门的小白,觉得句子稍有些复杂,能详细些说下吗?不胜感激。
您换了个表达方式我又遇到新问题  ...

就是一句话太长了,不好显示写到第二行的意思,等同于
((adc10_vbat_sample_value >= ADC10_VBAT_AUDIO_START_ERROR_2) && (is_key_long_press_audio_close == false))

一周热门 更多>

相关问题

    相关文章