| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /*!
- \file rc5_decode.h
- \brief the header file of rc5 infrared decoding
- */
- /*
- Copyright (C) 2017 GigaDevice
- 2017-06-06, V1.0.0, firmware for GD32F3x0
- */
- #ifndef RC5_DECODE_H
- #define RC5_DECODE_H
- #include "gd32f3x0.h"
- /* rc5 frame structure */
- typedef struct
- {
- __IO uint8_t field_bit; /*!< field bit */
- __IO uint8_t toggle_bit; /*!< toggle bit field */
- __IO uint8_t address; /*!< address field */
- __IO uint8_t command; /*!< command field */
- } rc5_frame_struct;
- /* rc5 packet structure */
- typedef struct
- {
- __IO uint16_t data; /*!< rc5 data */
- __IO uint8_t status; /*!< rc5 status */
- __IO uint8_t last_bit; /*!< rc5 last bit */
- __IO uint8_t bit_count; /*!< rc5 bit count */
- } trc5_packet_struct;
- /* rc5 last bit type enum */
- enum rc5_last_bit_type
- {
- RC5_ZER,
- RC5_ONE,
- RC5_NAN,
- RC5_INV
- };
- typedef enum rc5_last_bit_type trc5_last_bit_type;
- #define RC5_1T_TIME 0x00
- #define RC5_2T_TIME 0x01
- #define RC5_WRONG_TIME 0xFF
- #define RC5_TIME_OUT_US 3600
- /* half bit period */
- #define RC5_T_US 900
- /* tolerance time */
- #define RC5_T_TOLERANCE_US 270
- #define RC5_NUMBER_OF_VALID_PULSE_LENGTH 2
- /* total bits */
- #define RC5_PACKET_BIT_COUNT 13
- /* packet struct for reception */
- #define RC5_PACKET_STATUS_EMPTY (uint16_t)(1<<0)
- void menu_rc5decode_func(void);
- void rc5_decode_deinit(void);
- void rc5_decode_init(void);
- void rc5_decode(rc5_frame_struct *rc5_frame);
- void rc5_reset_packet(void);
- void rc5_data_sampling(uint16_t raw_pulse_length, uint8_t edge);
- #endif /* RC5_DECODE_H */
|