@@ -71,15 +71,15 @@ STATIC ledc_timer_config_t timers[PWM_TIMER_MAX];
71
71
#define TIMER_IDX_TO_MODE (timer_idx ) (timer_idx / LEDC_TIMER_MAX)
72
72
#define TIMER_IDX_TO_TIMER (timer_idx ) (timer_idx % LEDC_TIMER_MAX)
73
73
74
- // Params for PW operation
74
+ // Params for PWM operation
75
75
// 5khz is default frequency
76
- #define PWFREQ (5000)
76
+ #define PWM_FREQ (5000)
77
77
78
78
// 10-bit resolution (compatible with esp8266 PWM)
79
- #define PWRES (LEDC_TIMER_10_BIT)
79
+ #define PWM_RES_10_BIT (LEDC_TIMER_10_BIT)
80
80
81
81
// Maximum duty value on 10-bit resolution
82
- #define MAX_DUTY_U10 ((1 << PWRES ) - 1)
82
+ #define MAX_DUTY_U10 ((1 << PWM_RES_10_BIT ) - 1)
83
83
// https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/ledc.html#supported-range-of-frequency-and-duty-resolutions
84
84
// duty() uses 10-bit resolution or less
85
85
// duty_u16() and duty_ns() use 16-bit resolution or less
@@ -111,7 +111,7 @@ typedef struct _machine_pwm_obj_t {
111
111
int mode ;
112
112
int channel ;
113
113
int timer ;
114
- int duty_x ; // PWRES if duty(), HIGHEST_PWM_RES if duty_u16(), -HIGHEST_PWM_RES if duty_ns()
114
+ int duty_x ; // PWM_RES_10_BIT if duty(), HIGHEST_PWM_RES if duty_u16(), -HIGHEST_PWM_RES if duty_ns()
115
115
int duty_u10 ; // stored values from previous duty setters
116
116
int duty_u16 ; // - / -
117
117
int duty_ns ; // - / -
@@ -264,7 +264,7 @@ STATIC void set_freq(machine_pwm_obj_t *self, unsigned int freq, ledc_timer_conf
264
264
// Save the same duty cycle when frequency is changed
265
265
if (self -> duty_x == HIGHEST_PWM_RES ) {
266
266
set_duty_u16 (self , self -> duty_u16 );
267
- } else if (self -> duty_x == PWRES ) {
267
+ } else if (self -> duty_x == PWM_RES_10_BIT ) {
268
268
set_duty_u10 (self , self -> duty_u10 );
269
269
} else if (self -> duty_x == - HIGHEST_PWM_RES ) {
270
270
set_duty_ns (self , self -> duty_ns );
@@ -352,8 +352,8 @@ STATIC void set_duty_u10(machine_pwm_obj_t *self, int duty) {
352
352
if ((duty < 0 ) || (duty > MAX_DUTY_U10 )) {
353
353
mp_raise_msg_varg (& mp_type_ValueError , MP_ERROR_TEXT ("duty must be from 0 to %u" ), MAX_DUTY_U10 );
354
354
}
355
- set_duty_u16 (self , duty << (HIGHEST_PWM_RES + UI_RES_SHIFT - PWRES ));
356
- self -> duty_x = PWRES ;
355
+ set_duty_u16 (self , duty << (UI_RES_16_BIT - PWM_RES_10_BIT ));
356
+ self -> duty_x = PWM_RES_10_BIT ;
357
357
self -> duty_u10 = duty ;
358
358
}
359
359
@@ -433,7 +433,7 @@ STATIC void mp_machine_pwm_print(const mp_print_t *print, mp_obj_t self_in, mp_p
433
433
if (self -> active ) {
434
434
mp_printf (print , ", freq=%u" , ledc_get_freq (self -> mode , self -> timer ));
435
435
436
- if (self -> duty_x == PWRES ) {
436
+ if (self -> duty_x == PWM_RES_10_BIT ) {
437
437
mp_printf (print , ", duty=%d" , get_duty_u10 (self ));
438
438
} else if (self -> duty_x == - HIGHEST_PWM_RES ) {
439
439
mp_printf (print , ", duty_ns=%d" , get_duty_ns (self ));
@@ -487,7 +487,7 @@ STATIC void mp_machine_pwm_init_helper(machine_pwm_obj_t *self,
487
487
freq = timers [chans [channel_idx ].timer_idx ].freq_hz ;
488
488
}
489
489
if (freq <= 0 ) {
490
- freq = PWFREQ ;
490
+ freq = PWM_FREQ ;
491
491
}
492
492
}
493
493
if ((freq <= 0 ) || (freq > 40000000 )) {
@@ -544,7 +544,7 @@ STATIC void mp_machine_pwm_init_helper(machine_pwm_obj_t *self,
544
544
} else if (duty != -1 ) {
545
545
set_duty_u10 (self , duty );
546
546
} else if (self -> duty_x == 0 ) {
547
- set_duty_u10 (self , (1 << PWRES ) / 2 ); // 50%
547
+ set_duty_u10 (self , (1 << PWM_RES_10_BIT ) / 2 ); // 50%
548
548
}
549
549
}
550
550
0 commit comments