| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- /**
- * @file furi_hal_rfid.h
- * RFID HAL API
- */
- #pragma once
- #include <stdint.h>
- #include <stdbool.h>
- #include <stddef.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /** Initialize RFID subsystem
- */
- void furi_hal_rfid_init();
- /** Config rfid pins to reset state
- */
- void furi_hal_rfid_pins_reset();
- /** Config rfid pins to emulate state
- */
- void furi_hal_rfid_pins_emulate();
- /** Config rfid pins to read state
- */
- void furi_hal_rfid_pins_read();
- /** Release rfid pull pin
- */
- void furi_hal_rfid_pin_pull_release();
- /** Pulldown rfid pull pin
- */
- void furi_hal_rfid_pin_pull_pulldown();
- /** Config rfid timer to read state
- *
- * @param freq timer frequency
- * @param duty_cycle timer duty cycle, 0.0-1.0
- */
- void furi_hal_rfid_tim_read(float freq, float duty_cycle);
- /** Start read timer
- */
- void furi_hal_rfid_tim_read_start();
- /** Stop read timer
- */
- void furi_hal_rfid_tim_read_stop();
- /** Config rfid timer to emulate state
- *
- * @param freq timer frequency
- */
- void furi_hal_rfid_tim_emulate(float freq);
- typedef void (*FuriHalRfidEmulateCallback)(void* context);
- /** Start emulation timer
- */
- void furi_hal_rfid_tim_emulate_start(FuriHalRfidEmulateCallback callback, void* context);
- typedef void (*FuriHalRfidReadCaptureCallback)(bool level, uint32_t duration, void* context);
- void furi_hal_rfid_tim_read_capture_start(FuriHalRfidReadCaptureCallback callback, void* context);
- void furi_hal_rfid_tim_read_capture_stop();
- typedef void (*FuriHalRfidDMACallback)(bool half, void* context);
- void furi_hal_rfid_tim_emulate_dma_start(
- uint32_t* duration,
- uint32_t* pulse,
- size_t length,
- FuriHalRfidDMACallback callback,
- void* context);
- void furi_hal_rfid_tim_emulate_dma_stop();
- /** Stop emulation timer
- */
- void furi_hal_rfid_tim_emulate_stop();
- /** Config rfid timers to reset state
- */
- void furi_hal_rfid_tim_reset();
- /** Set emulation timer period
- *
- * @param period overall duration
- */
- void furi_hal_rfid_set_emulate_period(uint32_t period);
- /** Set emulation timer pulse
- *
- * @param pulse duration of high level
- */
- void furi_hal_rfid_set_emulate_pulse(uint32_t pulse);
- /** Set read timer period
- *
- * @param period overall duration
- */
- void furi_hal_rfid_set_read_period(uint32_t period);
- /** Set read timer pulse
- *
- * @param pulse duration of high level
- */
- void furi_hal_rfid_set_read_pulse(uint32_t pulse);
- /** Сhanges the configuration of the RFID timer "on a fly"
- *
- * @param freq new frequency
- * @param duty_cycle new duty cycle
- */
- void furi_hal_rfid_change_read_config(float freq, float duty_cycle);
- /** Start/Enable comparator */
- void furi_hal_rfid_comp_start();
- /** Stop/Disable comparator */
- void furi_hal_rfid_comp_stop();
- typedef void (*FuriHalRfidCompCallback)(bool level, void* context);
- /** Set comparator callback */
- void furi_hal_rfid_comp_set_callback(FuriHalRfidCompCallback callback, void* context);
- #ifdef __cplusplus
- }
- #endif
|