Oliver Fabel 1 год назад
Родитель
Сommit
9fd53bc141
2 измененных файлов с 8 добавлено и 6 удалено
  1. 7 5
      mp_flipper_modflipperzero.c
  2. 1 1
      mp_flipper_modflipperzero.h

+ 7 - 5
mp_flipper_modflipperzero.c

@@ -470,18 +470,20 @@ static MP_DEFINE_CONST_FUN_OBJ_0(flipperzero_dialog_message_clear_obj, flipperze
 static void* mp_flipper_on_gpio_callback = NULL;
 
 static mp_obj_t flipperzero_gpio_init_pin(size_t n_args, const mp_obj_t* args) {
-    if(n_args != 2) {
-        return mp_const_none;
+    if(n_args < 2) {
+        return mp_const_false;
     }
 
     mp_int_t pin = mp_obj_get_int(args[0]);
     mp_int_t mode = mp_obj_get_int(args[1]);
+    mp_int_t pull = n_args > 2 ? mp_obj_get_int(args[2]) : MP_FLIPPER_GPIO_PULL_NO;
+    mp_int_t speed = n_args > 3 ? mp_obj_get_int(args[3]) : MP_FLIPPER_GPIO_SPEED_LOW;
 
-    mp_flipper_gpio_init_pin(pin, mode);
+    mp_flipper_gpio_init_pin(pin, mode, pull, speed);
 
-    return mp_const_none;
+    return mp_const_true;
 }
-static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(flipperzero_gpio_init_pin_obj, 2, 2, flipperzero_gpio_init_pin);
+static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(flipperzero_gpio_init_pin_obj, 2, 4, flipperzero_gpio_init_pin);
 
 static mp_obj_t flipperzero_gpio_set_pin(mp_obj_t pin_obj, mp_obj_t state_obj) {
     mp_int_t pin = mp_obj_get_int(pin_obj);

+ 1 - 1
mp_flipper_modflipperzero.h

@@ -225,7 +225,7 @@ void mp_flipper_dialog_message_clear();
 #define MP_FLIPPER_GPIO_SPEED_HIGH (2)
 #define MP_FLIPPER_GPIO_SPEED_VERY_HIGH (3)
 
-void mp_flipper_gpio_init_pin(uint8_t raw_pin, uint8_t raw_mode);
+void mp_flipper_gpio_init_pin(uint8_t raw_pin, uint8_t raw_mode, uint8_t raw_pull, uint8_t raw_speed);
 void mp_flipper_gpio_set_pin(uint8_t raw_pin, bool state);
 bool mp_flipper_gpio_get_pin(uint8_t raw_pin);
 void mp_flipper_on_gpio(void* ctx);