刚接触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
1楼-- · 2019-03-24 13:40
< ((adc10_vbat_sample_value >= ADC10_VBAT_AUDIO_START_ERROR_2)  
      && (is_key_long_press_audio_close == false))
这样会好理解一点
fangkaixin
2楼-- · 2019-03-24 18:37
 精彩回答 2  元偷偷看……
strong161
3楼-- · 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))
fangkaixin
4楼-- · 2019-03-24 22:35
strong161 发表于 2016-10-20 13:52
((adc10_vbat_sample_value >= ADC10_VBAT_AUDIO_START_ERROR_2)  
      && (is_key_long_press_aud ...

我所提问的原句 我看了优先级稍有些理解了,大致就是要同时满足前面采样电压值大于等于一个定义的值和后面的长按关闭音频是假同时成立时进行下一句。
您那句我现在又搞不懂了,老革命遇上新问题
fangkaixin
5楼-- · 2019-03-25 00:39
 精彩回答 2  元偷偷看……
strong161
6楼-- · 2019-03-25 03:04
fangkaixin 发表于 2016-10-20 14:38
好的,谢谢了!
顺便再请教一个问题,我现在涉及一个基于msp430的一个对讲机产品,程序中有关于运动报警 ...

运动报警有各种可能性吧,比如安全,比如船用防人摔倒,防保安偷懒,只有想不到的!

一周热门 更多>

相关问题

    相关文章