111
111
//| :param bool backlight_on_high: If True, pulling the backlight pin high turns the backlight on.
112
112
//| :param bool SH1107_addressing: Special quirk for SH1107, use upper/lower column set and page set
113
113
//| :param int set_vertical_scroll: This parameter is accepted but ignored for backwards compatibility. It will be removed in a future release.
114
+ //| :param int backlight_pwm_frequency: The frequency to use to drive the PWM for backlight brightness control. Default is 50000.
114
115
//| """
115
116
//| ...
116
117
//|
@@ -123,7 +124,7 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a
123
124
ARG_set_vertical_scroll , ARG_backlight_pin , ARG_brightness_command ,
124
125
ARG_brightness , ARG_auto_brightness , ARG_single_byte_bounds , ARG_data_as_commands ,
125
126
ARG_auto_refresh , ARG_native_frames_per_second , ARG_backlight_on_high ,
126
- ARG_SH1107_addressing };
127
+ ARG_SH1107_addressing , ARG_backlight_pwm_frequency };
127
128
static const mp_arg_t allowed_args [] = {
128
129
{ MP_QSTR_display_bus , MP_ARG_REQUIRED | MP_ARG_OBJ },
129
130
{ MP_QSTR_init_sequence , MP_ARG_REQUIRED | MP_ARG_OBJ },
@@ -151,7 +152,8 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a
151
152
{ MP_QSTR_auto_refresh , MP_ARG_BOOL | MP_ARG_KW_ONLY , {.u_bool = true} },
152
153
{ MP_QSTR_native_frames_per_second , MP_ARG_INT | MP_ARG_KW_ONLY , {.u_int = 60 } },
153
154
{ MP_QSTR_backlight_on_high , MP_ARG_BOOL | MP_ARG_KW_ONLY , {.u_bool = true} },
154
- { MP_QSTR_SH1107_addressing , MP_ARG_BOOL | MP_ARG_KW_ONLY , {.u_bool = false} }
155
+ { MP_QSTR_SH1107_addressing , MP_ARG_BOOL | MP_ARG_KW_ONLY , {.u_bool = false} },
156
+ { MP_QSTR_backlight_pwm_frequency , MP_ARG_INT | MP_ARG_KW_ONLY , {.u_int = 50000 } }
155
157
};
156
158
mp_arg_val_t args [MP_ARRAY_SIZE (allowed_args )];
157
159
mp_arg_parse_all_kw_array (n_args , n_kw , all_args , MP_ARRAY_SIZE (allowed_args ), allowed_args , args );
@@ -200,7 +202,8 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a
200
202
args [ARG_auto_refresh ].u_bool ,
201
203
args [ARG_native_frames_per_second ].u_int ,
202
204
args [ARG_backlight_on_high ].u_bool ,
203
- sh1107_addressing
205
+ sh1107_addressing ,
206
+ args [ARG_backlight_pwm_frequency ].u_int
204
207
);
205
208
206
209
return self ;
0 commit comments