micropython 273 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. commit bcdb22c8be76c4e8651571a1447ebb2767a0e5b9
  2. Author: Oliver Fabel <28701799+ofabel@users.noreply.github.com>
  3. Date: Sat Sep 7 14:27:38 2024 +0200
  4. library update
  5. diff --git a/genhdr/qstrdefs.generated.h b/genhdr/qstrdefs.generated.h
  6. index b72c71759..e48c33345 100644
  7. --- a/genhdr/qstrdefs.generated.h
  8. +++ b/genhdr/qstrdefs.generated.h
  9. @@ -410,6 +410,9 @@ QDEF1(MP_QSTR_module, 191, 6, "module")
  10. QDEF1(MP_QSTR_oct, 253, 3, "oct")
  11. QDEF1(MP_QSTR_on_gpio, 106, 7, "on_gpio")
  12. QDEF1(MP_QSTR_on_input, 141, 8, "on_input")
  13. +QDEF1(MP_QSTR_pwm_is_running, 82, 14, "pwm_is_running")
  14. +QDEF1(MP_QSTR_pwm_start, 240, 9, "pwm_start")
  15. +QDEF1(MP_QSTR_pwm_stop, 200, 8, "pwm_stop")
  16. QDEF1(MP_QSTR_random, 190, 6, "random")
  17. QDEF1(MP_QSTR_rb, 213, 2, "rb")
  18. QDEF1(MP_QSTR_reversed, 161, 8, "reversed")
  19. diff --git a/mp_flipper_modflipperzero.c b/mp_flipper_modflipperzero.c
  20. index e00aad419..343fd31b0 100644
  21. --- a/mp_flipper_modflipperzero.c
  22. +++ b/mp_flipper_modflipperzero.c
  23. @@ -479,9 +479,9 @@ static mp_obj_t flipperzero_gpio_init_pin(size_t n_args, const mp_obj_t* args) {
  24. mp_int_t pull = n_args > 2 ? mp_obj_get_int(args[2]) : MP_FLIPPER_GPIO_PULL_NO;
  25. mp_int_t speed = n_args > 3 ? mp_obj_get_int(args[3]) : MP_FLIPPER_GPIO_SPEED_LOW;
  26. - mp_flipper_gpio_init_pin(pin, mode, pull, speed);
  27. + bool success = mp_flipper_gpio_init_pin(pin, mode, pull, speed);
  28. - return mp_const_true;
  29. + return success ? mp_const_true : mp_const_false;
  30. }
  31. static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(flipperzero_gpio_init_pin_obj, 2, 4, flipperzero_gpio_init_pin);
  32. @@ -548,6 +548,33 @@ static mp_obj_t flipperzero_adc_read_pin_voltage(mp_obj_t pin_obj) {
  33. }
  34. static MP_DEFINE_CONST_FUN_OBJ_1(flipperzero_adc_read_pin_voltage_obj, flipperzero_adc_read_pin_voltage);
  35. +static mp_obj_t flipperzero_pwm_start(mp_obj_t pin_obj, mp_obj_t frequency_obj, mp_obj_t duty_obj) {
  36. + mp_int_t pin = mp_obj_get_int(pin_obj);
  37. + mp_int_t frequency = mp_obj_get_int(frequency_obj);
  38. + mp_int_t duty = mp_obj_get_int(duty_obj);
  39. +
  40. + bool success = mp_flipper_pwm_start(pin, frequency, duty);
  41. +
  42. + return success ? mp_const_true : mp_const_false;
  43. +}
  44. +static MP_DEFINE_CONST_FUN_OBJ_3(flipperzero_pwm_start_obj, flipperzero_pwm_start);
  45. +
  46. +static mp_obj_t flipperzero_pwm_stop(mp_obj_t pin_obj) {
  47. + mp_int_t pin = mp_obj_get_int(pin_obj);
  48. +
  49. + mp_flipper_pwm_stop(pin);
  50. +
  51. + return mp_const_none;
  52. +}
  53. +static MP_DEFINE_CONST_FUN_OBJ_1(flipperzero_pwm_stop_obj, flipperzero_pwm_stop);
  54. +
  55. +static mp_obj_t flipperzero_pwm_is_running(mp_obj_t pin_obj) {
  56. + mp_int_t pin = mp_obj_get_int(pin_obj);
  57. +
  58. + return mp_flipper_pwm_is_running(pin) ? mp_const_true : mp_const_false;
  59. +}
  60. +static MP_DEFINE_CONST_FUN_OBJ_1(flipperzero_pwm_is_running_obj, flipperzero_pwm_is_running);
  61. +
  62. static const mp_rom_map_elem_t flipperzero_module_globals_table[] = {
  63. // light
  64. {MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_flipperzero)},
  65. @@ -769,6 +796,10 @@ for octave in range(9):
  66. // adc - functions
  67. {MP_ROM_QSTR(MP_QSTR_adc_read_pin_value), MP_ROM_PTR(&flipperzero_adc_read_pin_value_obj)},
  68. {MP_ROM_QSTR(MP_QSTR_adc_read_pin_voltage), MP_ROM_PTR(&flipperzero_adc_read_pin_voltage_obj)},
  69. + // pwm - functions
  70. + {MP_ROM_QSTR(MP_QSTR_pwm_start), MP_ROM_PTR(&flipperzero_pwm_start_obj)},
  71. + {MP_ROM_QSTR(MP_QSTR_pwm_stop), MP_ROM_PTR(&flipperzero_pwm_stop_obj)},
  72. + {MP_ROM_QSTR(MP_QSTR_pwm_is_running), MP_ROM_PTR(&flipperzero_pwm_is_running_obj)},
  73. };
  74. static MP_DEFINE_CONST_DICT(flipperzero_module_globals, flipperzero_module_globals_table);
  75. diff --git a/mp_flipper_modflipperzero.h b/mp_flipper_modflipperzero.h
  76. index d40f14242..598d1c185 100644
  77. --- a/mp_flipper_modflipperzero.h
  78. +++ b/mp_flipper_modflipperzero.h
  79. @@ -227,7 +227,7 @@ void mp_flipper_dialog_message_clear();
  80. #define MP_FLIPPER_GPIO_SPEED_HIGH (2)
  81. #define MP_FLIPPER_GPIO_SPEED_VERY_HIGH (3)
  82. -void mp_flipper_gpio_init_pin(uint8_t raw_pin, uint8_t raw_mode, uint8_t raw_pull, uint8_t raw_speed);
  83. +bool mp_flipper_gpio_init_pin(uint8_t raw_pin, uint8_t raw_mode, uint8_t raw_pull, uint8_t raw_speed);
  84. void mp_flipper_gpio_deinit_pin(uint8_t raw_pin);
  85. void mp_flipper_gpio_set_pin(uint8_t raw_pin, bool state);
  86. bool mp_flipper_gpio_get_pin(uint8_t raw_pin);
  87. @@ -235,3 +235,7 @@ void mp_flipper_on_gpio(void* ctx);
  88. uint16_t mp_flipper_adc_read_pin(uint8_t raw_pin);
  89. float mp_flipper_adc_convert_to_voltage(uint16_t value);
  90. +
  91. +bool mp_flipper_pwm_start(uint8_t raw_pin, uint32_t frequency, uint8_t duty);
  92. +void mp_flipper_pwm_stop(uint8_t raw_pin);
  93. +bool mp_flipper_pwm_is_running(uint8_t raw_pin);