@@ -72,6 +72,20 @@ STATIC mp_obj_t touchpad_config(mp_obj_t num_obj, mp_obj_t threshold_obj) {
72
72
}
73
73
STATIC MP_DEFINE_CONST_FUN_OBJ_2 (touchpad_config_obj , touchpad_config );
74
74
75
+ STATIC mp_obj_t touchpad_autoconfig (mp_obj_t num_obj ) {
76
+ touch_pad_t num = mp_obj_get_int (num_obj );
77
+ uint16_t threshold = 0 ;
78
+ for (int i = 0 ; i < 5 ; i ++ ) {
79
+ uint16_t value = 0 ;
80
+ touch_pad_read (num , & value );
81
+ threshold += value * 2 / 3 / 5 ;
82
+ }
83
+ esp_err_t err = touch_pad_config (num , threshold );
84
+ if (err != ESP_OK ) ESP_LOGD ("touchpad_config" , "%d" , err );
85
+ return MP_OBJ_NEW_SMALL_INT (threshold );
86
+ }
87
+ STATIC MP_DEFINE_CONST_FUN_OBJ_1 (touchpad_autoconfig_obj , touchpad_autoconfig );
88
+
75
89
STATIC mp_obj_t touchpad_read (mp_obj_t num_obj ) {
76
90
touch_pad_t num = mp_obj_get_int (num_obj );
77
91
uint16_t value = 0 ;
@@ -105,6 +119,7 @@ STATIC const mp_rom_map_elem_t touchpad_module_globals_table[] = {
105
119
{ MP_ROM_QSTR (MP_QSTR___name__ ), MP_ROM_QSTR (MP_QSTR_touchpad ) },
106
120
{ MP_ROM_QSTR (MP_QSTR___init__ ), MP_ROM_PTR (& touchpad_init_obj ) },
107
121
{ MP_ROM_QSTR (MP_QSTR_config ), MP_ROM_PTR (& touchpad_config_obj ) },
122
+ { MP_ROM_QSTR (MP_QSTR_autoconfig ), MP_ROM_PTR (& touchpad_autoconfig_obj ) },
108
123
{ MP_ROM_QSTR (MP_QSTR_read ), MP_ROM_PTR (& touchpad_read_obj ) },
109
124
{ MP_ROM_QSTR (MP_QSTR_poll ), MP_ROM_PTR (& touchpad_poll_obj ) },
110
125
{ MP_ROM_QSTR (MP_QSTR_pollall ), MP_ROM_PTR (& touchpad_pollall_obj ) },
0 commit comments