#ifndef _pwm_module_H_ #define _pwm_module_H_ #include "lib_config.h" #include "light.h" #include "ozone_work.h" #include "port.h" #include "system_ES8P5066.h" typedef struct { uint32_t s_hardware_frequency; // 单位Khz,保存现在的PWM频率 uint32_t s_hardware_duty; // 保存现在的PWM占空比 uint32_t s_large_period; // 单位ms,保存现在的定时周期 uint32_t s_large_duty; // 保存现在的定时占空比 } pwm_message_t; typedef struct { uint32_t hardware_frequency; // 单位Khz,保存关机前的PWM频率 uint32_t hardware_duty; // 保存关机前的PWM占空比 uint32_t large_period; // 单位ms,保存关机前的定时周期 uint32_t large_duty; // 保存关机前的定时占空比 } shutdown_before_message_t; void HOOK_pwm_module_set_pwm_duty(uint32_t frequency, uint32_t duty); void HOOK_pwm_stop(void); bool HOOK_pwm_is_enable(void); void pwm_module_set_pwm_output_1(uint32_t large_period, uint32_t large_duty); void pwm_module_set_pwm_output_2(uint32_t hardware_period, uint32_t hardware_duty, uint32_t large_period, uint32_t large_duty); void ozone_pwm_control_set_pwm_duty(uint32_t frequency, uint32_t duty); void pwm_module_stop_pwm(void); void update_large_period(void); void pwm_module_loop(void); #endif // 2小时 // 50 // 80 // 3小时 // 1小时 // if(haspassed(beigin)/小时%2<=1){ // 关 // }else{ // }