IRScan.h 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. /**************************** (C) COPYRIGHT 2015 Fortiortech shenzhen *****************************
  2. * File Name : IRScan.h
  3. * Author : Billy Long Fortiortech Market Dept
  4. * Version : V1.0
  5. * Date : 01/07/2015
  6. * Description : This file contains all the common data types used for Motor Control.
  7. ***************************************************************************************************
  8. * All Rights Reserved
  9. **************************************************************************************************/
  10. /* Define to prevent recursive inclusion --------------------------------------------------------*/
  11. #ifndef __IRSCAN_H_
  12. #define __IRSCAN_H_
  13. #include "FU68xx_5_MCU.h"
  14. #define ShortPressMode (0)
  15. #define LongPressMode (1)
  16. #define UserCodeStudyMode (LongPressMode) //遥控学习模式:ShortPressMode:短按某个键执行学习;
  17. //LongPressMode:长按某个键学习
  18. #define StudyCode (IRALLOFF) //对应执行学习功能的按键
  19. #define UserCodeLength (20) //定义遥控地址码长度
  20. #define DataCodeLength (8) //定义遥控数据码长度
  21. #define CheckCodeLengh (4)
  22. #define AllCodeLength (UserCodeLength+DataCodeLength+CheckCodeLengh) //定义遥控数据码长度
  23. /*IR Scan Parameter*/
  24. #define IRBitValue1TimeMax (1.7) // 数据为1时高电平长度最大值,单位ms 1.55ms
  25. #define IRBitValue1TimeMin (1.3) // 数据为1时高电平长度最小值,单位ms
  26. #define IRBitValue0TimeMax (0.7) // 数据为0时高电平长度最大值,单位ms 0.476ms
  27. #define IRBitValue0TimeMin (0.3) // 数据为0时高电平长度最小值,单位ms
  28. #define IRLeadCodeTimeMax (6.0) // 引导码周期长度最大值,单位ms 4.38ms
  29. #define IRLeadCodeTimeMin (2.0) // 引导码周期长度最小值,单位ms
  30. #define IRLeadCode0TimeMax (1.0) // 引导码周期长度最大值,单位ms 0.672ms
  31. #define IRLeadCode0TimeMin (0.4) // 引导码周期长度最小值,单位ms
  32. /*IR Scan*/
  33. #define TempBitValue1Max (uint16)(IRBitValue1TimeMax*TIM4_Fre)
  34. #define TempBitValue1Min (uint16)(IRBitValue1TimeMin*TIM4_Fre)
  35. #define TempBitValue0Max (uint16)(IRBitValue0TimeMax*TIM4_Fre)
  36. #define TempBitValue0Min (uint16)(IRBitValue0TimeMin*TIM4_Fre)
  37. #define TempLeadCodeMax (uint16)(IRLeadCodeTimeMax*TIM4_Fre)
  38. #define TempLeadCodeMin (uint16)(IRLeadCodeTimeMin*TIM4_Fre)
  39. #define TempLeadCode0Max (uint16)(IRLeadCode0TimeMax*TIM4_Fre)
  40. #define TempLeadCode0Min (uint16)(IRLeadCode0TimeMin*TIM4_Fre)
  41. /*遥控码定义*/
  42. #define IRALLOFF (0X0006)
  43. #define IRFRCW (0X0004)
  44. #define IRFRCCW (0X0011)
  45. #define IRSpeed1 (0X0010)
  46. #define IRSpeed2 (0X0012)
  47. #define IRSpeed3 (0X001C)
  48. #define IRSpeed4 (0X000A)
  49. #define IRSpeed5 (0X000F)
  50. #define IRSpeed6 (0X000C)
  51. #define IRAUTOPOWER1H (0X0002)
  52. #define IRAUTOPOWER2H (0X0009)
  53. #define IRAUTOPOWER4H (0X0019)
  54. #define IRNatureWind (0x0015)
  55. #define IRLED (0X0008)
  56. #define IRONOFF (0x0016)
  57. /* Exported types -------------------------------------------------------------------------------*/
  58. typedef struct
  59. {
  60. uint8 BYTE0;
  61. uint8 BYTE1;
  62. uint8 BYTE2;
  63. uint8 BYTE3;
  64. uint8 PID;
  65. uint8 B;
  66. uint32 BitValue;
  67. uint8 BitCnt;
  68. uint16 Bit0Cnt;
  69. uint32 ByteValue;
  70. uint32 UserCode;
  71. uint32 DataCode;
  72. uint16 CurrentUserCode;
  73. uint16 CurrentDataCode;
  74. uint8 DataCodeNum;
  75. uint16 TempDataCode[4];
  76. uint8 IRReceiveFlag;
  77. uint8 OldDataCodeMixTimes0;
  78. uint8 OldDataCodeMixTimes1;
  79. uint8 OverFlowStatus;
  80. uint32 UserCodeLengthCover;
  81. uint32 DataCodeLengthCover;
  82. } IRScan_TypeDef;
  83. typedef struct
  84. {
  85. uint8 NatureFlage;
  86. uint8 LEDONOFFStatus;
  87. uint8 FlagONOFF;
  88. uint8 ONOFFStatus;
  89. uint8 FlagFR;
  90. uint8 FlagSpeed;
  91. uint8 FlagLED;
  92. uint8 FlagNatureWind;
  93. uint8 FlagAutoPower;
  94. uint8 FlagUserCodeSave;
  95. uint8 FlagUserCodeSaveOFF;
  96. uint8 FlagUserCodeRead;
  97. uint8 FlagLED1Protect;
  98. uint8 FlagLED2Protect;
  99. uint16 RunTimeLong;
  100. uint16 TargetSpeed;
  101. uint16 SpeedLevel[10];
  102. } IRControl_TypeDef;
  103. typedef struct
  104. {
  105. uint8 FlagAutoPower;
  106. uint16 Timer10sec;
  107. uint16 ShutDowntime;
  108. uint16 CurrentTime;
  109. } IRControl_AutoPowerDef;
  110. extern IRControl_AutoPowerDef AutoPowerState;
  111. extern IRScan_TypeDef xdata IRScan;
  112. extern IRControl_TypeDef xdata IRControl;
  113. /* Exported functions ---------------------------------------------------------------------------*/
  114. extern void IRInit(void);
  115. extern void IRValue(void);
  116. extern void SetSpeed(uint8 SpeedLevel);
  117. extern void SetAutoPower(uint16 Time);
  118. extern void IRScanControl(void);
  119. extern void AutoPowerControl(void);
  120. extern uint8 GetUserCode(void);
  121. extern void IRONOFF_Control(void);
  122. extern void NatureWind(void);
  123. extern void LEDDisplay(void);
  124. #endif