flipperzero_gpio_interrupt_test.py 780 B

12345678910111213141516171819202122232425262728293031323334
  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(
  6. f0.GPIO_PIN_PC0,
  7. f0.GPIO_MODE_INTERRUPT_RISE,
  8. f0.GPIO_PULL_UP,
  9. f0.GPIO_SPEED_VERY_HIGH,
  10. )
  11. f0.gpio_init_pin(
  12. f0.GPIO_PIN_PC1,
  13. f0.GPIO_MODE_INTERRUPT_RISE,
  14. f0.GPIO_PULL_UP,
  15. f0.GPIO_SPEED_VERY_HIGH,
  16. )
  17. @f0.on_gpio
  18. def on_gpio(pin):
  19. if pin == f0.GPIO_PIN_PC0:
  20. f0.gpio_set_pin(f0.GPIO_PIN_PA7, True)
  21. if pin == f0.GPIO_PIN_PC1:
  22. f0.gpio_set_pin(f0.GPIO_PIN_PA7, False)
  23. for _ in range(1, 1500):
  24. time.sleep_ms(10)
  25. # reset pins
  26. f0.gpio_init_pin(f0.GPIO_PIN_PA7, f0.GPIO_MODE_ANALOG)
  27. f0.gpio_init_pin(f0.GPIO_PIN_PC0, f0.GPIO_MODE_ANALOG)
  28. f0.gpio_init_pin(f0.GPIO_PIN_PC1, f0.GPIO_MODE_ANALOG)