由于大多数时候ADC值并不是很稳定,故而在一些检测中需要设置阈值。
下面是我自己做的0%-100%的写法,很简单,主要也用于自己备份自己的代码
//用于细分ADC的区域,可以增加
typedef enum
{
percent_0,
percent_10,
percent_20,
percent_30,
percent_40,
percent_50,
percent_60,
percent_70,
percent_80,
percent_90,
percent_100,
}led_condition;
/*
电池检测 缓冲
led_flag: adc各档位标志位 不需要改动
u_power_value: adc读值 变量名根据需要改动,不需要改动
数字: adc界限值 根据需求改变阈值
例如2.2和2.1指的是ad值经过计算后得到的具体数值,u_power_value是当前ad值计算后的数字(最好用多次取平均,不然一般情况adc读值跳变太大),led_flag是当前的ad值所在的区间
*/
switch(led_flag)
{
case percent_0:
if(u_power_value>2.2) led_flag=percent_10;
break;