《微孔雾化片单片机自动调整中心频率原理图和软件(共4页).docx》由会员分享,可在线阅读,更多相关《微孔雾化片单片机自动调整中心频率原理图和软件(共4页).docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上/*扫频函数*FileName:Frepuecy_Sweep.cProjectName:FunctionDesc:CreateDate:Version:Author:ModifyHistory:Remark:5ms执行一次*包含头文件*/#include Stdint_Sonix.h#include SysInit.h#include Frequency_Sweep.h#include adc.h/*定义全局变量*/*声明全局变量*/extern bit B_Moistrue;extern u8 r_adc1,r_adc2,r_adc3;bit B_SF_OK;/是否
2、已经扫过频标志/*定义常量*/#define PWM1_DUTY_MIN 3u#define PWM1_DUTY_MAX253u#define PWM1_CURRENT_MIN 10u/#define M1_Stop_500ms_Set_Value 100u/*IO口重定义*/*函数定义*/*Frepuecy_Sweep function*/扫频思路:求取AD值最大的5的占空比的值取最小值做为中心频率可抗四次大的干扰void Frequency_Sweep(void)static uint8_t PWM1_Duty,Temp1,Temp2,Temp3;static uint8_t PWM1_D
3、uty_OK;if(B_Moistrue)if(B_SF_OK = 0)/扫频位完成if (PWM1_Duty PWM1_DUTY_MAX)/加暂空比PWM1_Duty+;PWM1_Duty_Update(PWM1_Duty);Temp3 = Temp2;Temp2 = Temp1;if(r_adc1 r_adc2) Temp1 = r_adc1; r_adc1 = r_adc2; r_adc2 = Temp1; if(r_adc2 r_adc3) Temp1 = r_adc2; r_adc2 = r_adc3; r_adc3 = Temp1; if(r_adc1 = Temp2)if(Tem
4、p2 = Temp1)/连续递减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_t Tempa; Tempa+;if(Tempa = 1) PWM1_Duty_Update(PWM1_Duty_OK+1);else if(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;专心-专注-专业