您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微孔雾化片单片机自动调整中心频率原理图和软件
/****************扫频函数*************FileName:Frepuecy_Sweep.cProjectName:FunctionDesc:CreateDate:Version:Author:ModifyHistory:Remark:5ms执行一次*****************包含头文件**********************/#includeStdint_Sonix.h#includeSysInit.h#includeFrequency_Sweep.h#includeadc.h/*****************定义全局变量*******************//*****************声明全局变量*******************/externbitB_Moistrue;externu8r_adc1,r_adc2,r_adc3;bitB_SF_OK;//是否已经扫过频标志/*******************定义常量*********************/#definePWM1_DUTY_MIN3u#definePWM1_DUTY_MAX253u#definePWM1_CURRENT_MIN10u//#defineM1_Stop_500ms_Set_Value100u/*****************IO口重定义*********************//*******************函数定义*********************//*******************Frepuecy_Sweepfunction******///扫频思路:求取AD值最大的5的占空比的值取最小值做为中心频率可抗四次大的干扰voidFrequency_Sweep(void){staticuint8_tPWM1_Duty,Temp1,Temp2,Temp3;staticuint8_tPWM1_Duty_OK;if(B_Moistrue){if(B_SF_OK==0)//扫频位完成{if(PWM1_DutyPWM1_DUTY_MAX)//加暂空比{PWM1_Duty++;PWM1_Duty_Update(PWM1_Duty);Temp3=Temp2;Temp2=Temp1;if(r_adc1r_adc2){Temp1=r_adc1;r_adc1=r_adc2;r_adc2=Temp1;}if(r_adc2r_adc3){Temp1=r_adc2;r_adc2=r_adc3;r_adc3=Temp1;}if(r_adc1r_adc2){Temp1=r_adc1;r_adc1=r_adc2;r_adc2=Temp1;//三个数排大小,r_adc2为中间值}Temp1=r_adc2;if(Temp3=Temp2){if(Temp2=Temp1)//连续递减{if(Temp1Temp3)//并且第1次比第3次大{if(Temp1=PWM1_CURRENT_MIN)//并且都有一定电流{PWM1_Duty_OK=(PWM1_Duty-2);B_SF_OK=1;}}}}}else{if(B_SF_OK==0)//没扫到重来{PWM1_Duty=3;}}}else{staticuint8_tTempa;Tempa++;if(Tempa==1)PWM1_Duty_Update(PWM1_Duty_OK+1);elseif(Tempa==2)PWM1_Duty_Update(PWM1_Duty_OK+2);else{Tempa=0;PWM1_Duty_Update(PWM1_Duty_OK);}}}else{B_SF_OK=0;PWM1_Duty_OK=PWM1_DUTY_MIN;PWM1_Duty_Update(PWM1_DUTY_MIN);PWM1_Duty=PWM1_DUTY_MIN;Temp1=0;Temp2=0;Temp3=0;}}
本文标题:微孔雾化片单片机自动调整中心频率原理图和软件
链接地址:https://www.777doc.com/doc-6058632 .html