@@ -67,10 +67,20 @@ static machine_pwm_obj_t machine_pwm_obj[] = {
6767 {{& machine_pwm_type }, 6 , PWM_CHAN_B , 0 , DUTY_NOT_SET , 0 },
6868 {{& machine_pwm_type }, 7 , PWM_CHAN_A , 0 , DUTY_NOT_SET , 0 },
6969 {{& machine_pwm_type }, 7 , PWM_CHAN_B , 0 , DUTY_NOT_SET , 0 },
70+ #if NUM_PWM_SLICES == 12
71+ {{& machine_pwm_type }, 8 , PWM_CHAN_A , 0 , DUTY_NOT_SET , 0 },
72+ {{& machine_pwm_type }, 8 , PWM_CHAN_B , 0 , DUTY_NOT_SET , 0 },
73+ {{& machine_pwm_type }, 9 , PWM_CHAN_A , 0 , DUTY_NOT_SET , 0 },
74+ {{& machine_pwm_type }, 9 , PWM_CHAN_B , 0 , DUTY_NOT_SET , 0 },
75+ {{& machine_pwm_type }, 10 , PWM_CHAN_A , 0 , DUTY_NOT_SET , 0 },
76+ {{& machine_pwm_type }, 10 , PWM_CHAN_B , 0 , DUTY_NOT_SET , 0 },
77+ {{& machine_pwm_type }, 11 , PWM_CHAN_A , 0 , DUTY_NOT_SET , 0 },
78+ {{& machine_pwm_type }, 11 , PWM_CHAN_B , 0 , DUTY_NOT_SET , 0 },
79+ #endif
7080};
7181
7282static bool defer_start ;
73- static bool slice_freq_set [8 ];
83+ static bool slice_freq_set [NUM_PWM_SLICES ];
7484
7585static void mp_machine_pwm_freq_set (machine_pwm_obj_t * self , mp_int_t freq );
7686static void mp_machine_pwm_duty_set_u16 (machine_pwm_obj_t * self , mp_int_t duty_u16 );
@@ -155,7 +165,7 @@ static mp_obj_t mp_machine_pwm_make_new(const mp_obj_type_t *type, size_t n_args
155165
156166// Stop all active slices.
157167void machine_pwm_deinit_all (void ) {
158- for (int i = 0 ; i < 8 ; i ++ ) {
168+ for (int i = 0 ; i < NUM_PWM_SLICES ; i ++ ) {
159169 slice_freq_set [i ] = false;
160170 pwm_set_enabled (machine_pwm_obj [i ].slice , false);
161171 }
0 commit comments