12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #include "pwm.h"
- #include "gpio.h"
- #include "OSAL.h"
- #include "log.h"
- #include "pwm_light.h"
- #include "light.h"
- uint32_t _light_total = 10000;
- light_data_t light_data = {6500, 0};
- int light_init(){
- LOG("[light_init]\n");
-
- int ret = 0;
-
- ret = pwm_light_init(WARM_CH, GPIO_WARM, _light_total, _light_total, 5, PWM_CLK_DIV_16);
- if(ret != 0){
- LOG("[light_init] pwm_light_init warm failed %d \n", ret);
- return ret;
- }
- ret = pwm_light_init(COLD_CH, GPIO_COLD, _light_total, _light_total, 5, PWM_CLK_DIV_16);
- if(ret != 0){
- LOG("[light_init] pwm_light_init cold failed %d \n", ret);
- return ret;
- }
- return ret;
- }
- int light_ch_set(uint8_t ch, uint16_t val){
-
- int ret = pwm_light_set_val(ch, val);
- return ret;
- }
- int comLightVal(){
- int light_val = light_data.light, temp_val = light_data.temp;
-
-
-
-
-
- int tmp_warm_val = _light_total * (temp_val - 2500) / (6500 - 2500);
- int tmp_cold_val = _light_total - tmp_warm_val;
- int warm_val = light_val * tmp_warm_val / 100;
- int cold_val = light_val * tmp_cold_val / 100;
- LOG("[comLightVal] light: %d temp: %d warm_val %d, cold_val %d \n", light_val, temp_val, warm_val, cold_val);
- light_ch_set(WARM_CH, warm_val);
- light_ch_set(COLD_CH, cold_val);
- return 0;
- }
- int light_set(uint8_t val){
-
-
- light_data.light = val;
- comLightVal();
- return 0;
- }
- int temp_set(int temp){
-
- light_data.temp = temp;
- comLightVal();
- return 0;
- }
|