flipperzero_gpio_interrupt_test.py 738 B

12345678910111213141516171819202122
  1. import flipperzero as f0
  2. import time
  3. # init pins
  4. f0.gpio_init_pin(f0.GPIO_PIN_PA7, f0.GPIO_MODE_OUTPUT_PUSH_PULL)
  5. f0.gpio_init_pin(f0.GPIO_PIN_PC0, f0.GPIO_MODE_INTERRUPT_RISE, f0.GPIO_PULL_UP, f0.GPIO_SPEED_VERY_HIGH)
  6. f0.gpio_init_pin(f0.GPIO_PIN_PC1, f0.GPIO_MODE_INTERRUPT_RISE, f0.GPIO_PULL_UP, f0.GPIO_SPEED_VERY_HIGH)
  7. @f0.on_gpio
  8. def on_gpio(pin):
  9. if pin == f0.GPIO_PIN_PC0:
  10. f0.gpio_set_pin(f0.GPIO_PIN_PA7, True)
  11. if pin == f0.GPIO_PIN_PC1:
  12. f0.gpio_set_pin(f0.GPIO_PIN_PA7, False)
  13. for _ in range(1, 1500):
  14. time.sleep_ms(10)
  15. # reset pins
  16. f0.gpio_init_pin(f0.GPIO_PIN_PA7, f0.GPIO_MODE_ANALOG)
  17. f0.gpio_init_pin(f0.GPIO_PIN_PC0, f0.GPIO_MODE_ANALOG)
  18. f0.gpio_init_pin(f0.GPIO_PIN_PC1, f0.GPIO_MODE_ANALOG)