furi_hal_ibutton.c 600 B

123456789101112131415161718192021222324
  1. #include <furi_hal_ibutton.h>
  2. #include <furi_hal_resources.h>
  3. void furi_hal_ibutton_start() {
  4. furi_hal_ibutton_pin_high();
  5. hal_gpio_init(&ibutton_gpio, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow);
  6. }
  7. void furi_hal_ibutton_stop() {
  8. furi_hal_ibutton_pin_high();
  9. hal_gpio_init(&ibutton_gpio, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
  10. }
  11. void furi_hal_ibutton_pin_low() {
  12. hal_gpio_write(&ibutton_gpio, false);
  13. }
  14. void furi_hal_ibutton_pin_high() {
  15. hal_gpio_write(&ibutton_gpio, true);
  16. }
  17. bool furi_hal_ibutton_pin_get_level() {
  18. return hal_gpio_read(&ibutton_gpio);
  19. }