Przeglądaj źródła

fix: pwm适配代码兼容idf5.1/5.2

Wendal Chen 1 rok temu
rodzic
commit
82c4850107
1 zmienionych plików z 2 dodań i 2 usunięć
  1. 2 2
      luatos/components/luat/port/luat_pwm_idf5.c

+ 2 - 2
luatos/components/luat/port/luat_pwm_idf5.c

@@ -39,7 +39,7 @@ static inline uint32_t ledc_calculate_divisor(uint32_t src_clk_freq, int freq_hz
 }
 
 // https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf#ledpwm
-static uint32_t ledc_find_suitable_duty_resolution(uint32_t src_clk_freq, uint32_t timer_freq)
+static uint32_t ledc_find_suitable_duty_resolution2(uint32_t src_clk_freq, uint32_t timer_freq)
 {
     uint32_t div = (src_clk_freq + timer_freq / 2) / timer_freq; // rounded
     uint32_t duty_resolution = ilog2(div);
@@ -87,7 +87,7 @@ int luat_pwm_setup(luat_pwm_conf_t *conf){
     }
 
 
-    duty_resolution = ledc_find_suitable_duty_resolution(80*1000*1000, conf->period);
+    duty_resolution = ledc_find_suitable_duty_resolution2(80*1000*1000, conf->period);
     
     int duty = (conf->pulse * (1 << duty_resolution)) / conf->precision;
     // LLOGD("freq=%d, pulse=%d, precision=%d, resolution=%08X, duty=%08X", (int)conf->period, (int)conf->pulse, (int)conf->precision, (int)(1 << duty_resolution), (int)duty);