mcu_ab568x/userboot240328/app/platform/bsp/bsp_ir.h
2025-05-30 18:03:10 +08:00

43 lines
1.8 KiB
C

#ifndef _BSP_IR_H
#define _BSP_IR_H
///硬件IR receiver参数
#define IR32KSEL_EN 0 //IR clock source select 32K
#if IR32KSEL_EN
#define RPTERR_CNT 33 //配置11.25ms ± (RPTERR_CNT + 1)*32K的repeat code允许范围
#define DATERR_CNT 33 //配置13.5ms ± (DATERR_CNT + 1)*32K引导码允许范围
#define ONEERR_CNT 7 //配置2.25ms ± (ONEERR_CNT + 1)*32K的logic "1"允许范围
#define ZEROERR_CNT 3 //配置1.12ms ± (ONEERR_CNT + 1)*32K数logic "0"允许范围
#define TOPR_CNT 55 //IR time out length = (TOPR + 1) * 64 *32K
#else
#define RPTERR_CNT 1000 //配置11.25ms ± (RPTERR_CNT + 1)us的repeat code允许范围
#define DATERR_CNT 1000 //配置13.5ms ± (DATERR_CNT + 1)us引导码允许范围
#define ONEERR_CNT 250 //配置2.25ms ± (ONEERR_CNT + 1)us的logic "1"允许范围
#define ZEROERR_CNT 125 //配置1.12ms ± (ONEERR_CNT + 1)us数logic "0"允许范围
#define TOPR_CNT 1718 //IR time out length = (TOPR + 1) * 64 us
#endif // IR32KSEL_EN
///红外遥控器地址码
#define IR_ADDR_FF00 0xFF00
#define IR_ADDR_BF00 0xBF00
#define IR_ADDR_FD02 0xFD02
#define IR_ADDR_FE01 0xFE01
#define IR_ADDR_7F80 0x7F80
extern const u8 ir_tbl_FF00[96];
extern const u8 ir_tbl_BF00[32];
extern const u8 ir_tbl_FD02[32];
extern const u8 ir_tbl_FE01[32];
extern const u8 ir_tbl_7F80[32];
void irrx_hw_init(void);
void irrx_irq_init(void);
void timer3_irq_init(void);
void irrx_sw_init(void);
void timer1_irq_init(void);
void ir_key_clr(void);
u8 get_irkey(void);
#endif // _BSP_IR_H