@@ -680,6 +680,20 @@ static mp_obj_t pin_value(size_t n_args, const mp_obj_t *args) {
680
680
}
681
681
static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (pin_value_obj , 1 , 2 , pin_value ) ;
682
682
683
+ // pin.toggle()
684
+ static mp_obj_t pin_toggle (mp_obj_t self_in ) {
685
+ pin_obj_t * self = self_in ;
686
+ if (self -> value ) {
687
+ self -> value = 0 ;
688
+ MAP_GPIOPinWrite (self -> port , self -> bit , 0 );
689
+ } else {
690
+ self -> value = 1 ;
691
+ MAP_GPIOPinWrite (self -> port , self -> bit , self -> bit );
692
+ }
693
+ return mp_const_none ;
694
+ }
695
+ static MP_DEFINE_CONST_FUN_OBJ_1 (pin_toggle_obj , pin_toggle ) ;
696
+
683
697
static mp_obj_t pin_id (mp_obj_t self_in ) {
684
698
pin_obj_t * self = self_in ;
685
699
return MP_OBJ_NEW_QSTR (self -> name );
@@ -902,6 +916,7 @@ static const mp_rom_map_elem_t pin_locals_dict_table[] = {
902
916
// instance methods
903
917
{ MP_ROM_QSTR (MP_QSTR_init ), MP_ROM_PTR (& pin_init_obj ) },
904
918
{ MP_ROM_QSTR (MP_QSTR_value ), MP_ROM_PTR (& pin_value_obj ) },
919
+ { MP_ROM_QSTR (MP_QSTR_toggle ), MP_ROM_PTR (& pin_toggle_obj ) },
905
920
{ MP_ROM_QSTR (MP_QSTR_id ), MP_ROM_PTR (& pin_id_obj ) },
906
921
{ MP_ROM_QSTR (MP_QSTR_mode ), MP_ROM_PTR (& pin_mode_obj ) },
907
922
{ MP_ROM_QSTR (MP_QSTR_pull ), MP_ROM_PTR (& pin_pull_obj ) },
0 commit comments