void AutoHandle(void)//自动模式处理函数,根据光线调节LED亮度 { u16 test_adc=0; u16 light=0; /////////////获取光线值 test_adc = Get_Adc_Average(ADC_Channel_9,10);//读取通道9的5次AD平均值 light = test_adc*99/4096;//转换成0-99百分比 light = light >= 99? 99: light;//最大只能到百分之99 if(mode==0)//在自动模式下,根据光线调节档位 { if(miao==0)GearTemp=0;//秒计时到0,说明没有人了,关闭LED else//否则根据光线调节 { if(light>=85)GearTemp=0; if(light<85)GearTemp=1; if(light<55)GearTemp=2; if(light<25)GearTemp=3; } } }
时间: 2023-12-12 07:03:23 浏览: 80
基于STM32F407单片机+ADC-CH16内部温度测试实验例程工程源码.zip
这段代码是一个自动模式处理函数,根据光线强度来节LED的亮度。首先获取光线值,然后将其转换成0-99百分比的形式。如果当前处于自动模式下,根据光线强度来调节LED的档位。如果光线强度大于等于85,就将档位设为0,即关闭LED。如果光线强度小于85且大于等于55,就将档位设为1;如果光线强度小于55且大于等于25,就将档位设为2;如果光线强度小于25,就将档位设为3。最后,根据档位来调节LED的亮度。
阅读全文