C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 1 C51 COMPILER V9.60.7.0, COMPILATION OF MODULE LT89XX_RF OBJECT MODULE PLACED IN .\Objects\lt89xx_rf.obj COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Src\lt89xx_rf.c OMF2 OPTIMIZE(8,SPEED) BROWSE INCDIR(.\Src;.\Task;.\Task\cp -u_port\S92F8003A;.\Task\cfg;.\Task\pt_thread;.\SC92F8003_Lib\Inc) DEBUG CODE LISTINCLUDE SYMBOLS PRINT(.\Listings\lt89xx -_rf.lst) PREPRINT(.\Listings\lt89xx_rf.i) OBJECT(.\Objects\lt89xx_rf.obj) line level source 1 2 #include "hal.h" 1 =1 #ifndef _HAL_H_ 2 =1 #define _HAL_H_ 3 =1 #include "sc92f8003.h" 1 =2 #ifndef _SC92F8003_H 2 =2 #define _SC92F8003_H 3 =2 4 =2 #include "SC92F8003_C.h" 1 =3 /*-------------------------------------------------------------------------- 2 =3 SC92F8003_C.H 3 =3 4 =3 C Header file for SC92F8003 microcontroller. 5 =3 Copyright (c) 2018 Shenzhen SinOne Chip Electronic CO., Ltd. 6 =3 All rights reserved. 7 =3 深圳市赛元微电子有限公司 8 =3 版本号: V1.0 9 =3 日期: 2018.05.02 10 =3 --------------------------------------------------------------------------*/ 11 =3 #ifndef _SC92F8003_H_ 12 =3 #define _SC92F8003_H_ 13 =3 14 =3 /* ------------------- 字节寄存器-------------------- */ 15 =3 ///*CPU*/ 16 =3 sfr ACC = 0xE0; //累加器A 17 =3 sfr B = 0xF0; //通用寄存器B 18 =3 sfr PSW = 0xD0; //程序状态字 19 =3 sfr DPH = 0x83; //数据指针高8位 20 =3 sfr DPL = 0x82; //数据指针低8位 21 =3 sfr SP = 0x81; //堆栈指针 22 =3 23 =3 24 =3 /*system*/ 25 =3 sfr PCON = 0x87; //电源管理控制寄存器 26 =3 27 =3 /*interrupt*/ 28 =3 sfr IP1 = 0XB9; //中断优先级控制寄存器1 29 =3 sfr IP = 0xB8; //中断优先权控制寄存器 30 =3 sfr IE = 0xA8; //中断控制寄存器 31 =3 sfr IE1 = 0XA9; //中断控制寄存器1 32 =3 33 =3 /*PORT*/ 34 =3 sfr P2PH = 0xA2; //P2口模式控制寄存器 35 =3 sfr P2CON = 0xA1; //P2口模式控制寄存器 36 =3 sfr P2 = 0xA0; //P2口数据寄存器 37 =3 sfr P1PH = 0x92; //P1口模式控制寄存器 38 =3 sfr P1CON = 0x91; //P1口模式控制寄存器 39 =3 sfr P1 = 0x90; //P1口数据寄存器 40 =3 sfr P0PH = 0x9B; //P0口模式控制寄存器 41 =3 sfr P0CON = 0x9A; //P0口模式控制寄存器 42 =3 sfr P0 = 0x80; //P0口数据寄存器 43 =3 44 =3 /*TIMER*/ C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 2 45 =3 sfr TMCON = 0x8E; //定时器频率控制寄存器 46 =3 sfr TH1 = 0x8D; //定时器1高8位 47 =3 sfr TH0 = 0x8C; //定时器0高8位 48 =3 sfr TL1 = 0x8B; //定时器1低8位 49 =3 sfr TL0 = 0x8A; //定时器0低8位 50 =3 sfr TMOD = 0x89; //定时器工作模式寄存器 51 =3 sfr TCON = 0x88; //定时器控制寄存器 52 =3 sfr T2CON = 0xC8; //定时器2控制寄存器 53 =3 sfr T2MOD = 0xC9; //定时器2工作模式寄存器 54 =3 sfr RCAP2L = 0xCA; //定时器2重载/捕捉低8位 55 =3 sfr RCAP2H = 0xCB; //定时器2重载/捕捉高8位 56 =3 sfr TL2 = 0xCC; //定时器2低8位 57 =3 sfr TH2 = 0xCD; //定时器2高8位 58 =3 59 =3 60 =3 /*ADC*/ 61 =3 sfr ADCCFG1 = 0xAA; //ADC功能配置寄存器0 62 =3 sfr ADCCFG0 = 0xAB; //ADC功能配置寄存器1 63 =3 sfr ADCCON = 0XAD; //ADC控制寄存器 64 =3 sfr ADCVL = 0xAE; //ADC 结果寄存器 65 =3 sfr ADCVH = 0xAF; //ADC 结果寄存器 66 =3 67 =3 /*PWM*/ 68 =3 sfr PWMCFG = 0xD1; //PWM设置寄存器 69 =3 sfr PWMCON0 = 0xD2; //PWM控制寄存器 70 =3 sfr PWMPRD = 0xD3; //PWM周期设置寄存器 71 =3 sfr PWMDTYA = 0xD4; //PWM占空比设置寄存器A 72 =3 sfr PWMDTY0 = 0xD5; //PWM0设置寄存器 73 =3 sfr PWMDTY1 = 0xD6; //PWM1设置寄存器 74 =3 sfr PWMDTY2 = 0xD7; //PWM2设置寄存器 75 =3 sfr PWMCON1 = 0xDA; //PWM控制寄存器 76 =3 sfr PWMDTYB = 0xDB; //PWM占空比设置寄存器B 77 =3 sfr PWMDTY3 = 0xDC; //PWM3设置寄存器 78 =3 sfr PWMDTY4 = 0xDD; //PWM4设置寄存器 79 =3 sfr PWMDTY5 = 0xDE; //PWM5设置寄存器 80 =3 sfr PWMDTY6 = 0xDF; //PWM6设置寄存器 81 =3 82 =3 83 =3 // 84 =3 ///*WatchDog*/ 85 =3 sfr BTMCON = 0XCE; //低频定时器控制寄存器 86 =3 sfr WDTCON = 0xCF; //WDT控制寄存器 87 =3 88 =3 89 =3 sfr OTCON = 0X8F; //输出控制寄存器 90 =3 91 =3 /*INT*/ 92 =3 sfr INT0F = 0XBA; //INT0 下降沿中断控制寄存器 93 =3 sfr INT0R = 0XBB; //INT0 上降沿中断控制寄存器 94 =3 sfr INT1F = 0XBC; //INT1 下降沿中断控制寄存器 95 =3 sfr INT1R = 0XBD; //INT1 上降沿中断控制寄存器 96 =3 sfr INT2F = 0XC6; //INT2 下降沿中断控制寄存器 97 =3 sfr INT2R = 0XC7; //INT2 上降沿中断控制寄存器 98 =3 99 =3 /*IAP */ 100 =3 sfr IAPCTL = 0xF6; //IAP控制寄存器 101 =3 sfr IAPDAT = 0xF5; //IAP数据寄存器 102 =3 sfr IAPADE = 0xF4; //IAP扩展地址寄存器 103 =3 sfr IAPADH = 0xF3; //IAP写入地址高位寄存器 104 =3 sfr IAPADL = 0xF2; //IAP写入地址低8位寄存器 105 =3 sfr IAPKEY = 0xF1; //IAP保护寄存器 106 =3 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 3 107 =3 /*uart0*/ 108 =3 sfr SCON = 0X98; //uart控制寄存器 109 =3 sfr SBUF = 0X99; //uart0数据寄存器 110 =3 111 =3 /*三合一*/ 112 =3 sfr SSCON0 = 0X9D; //SSI控制寄存器0 113 =3 sfr SSCON1 = 0X9E; //SSI控制寄存器1 114 =3 sfr SSCON2 = 0X95; //SSI控制寄存器2 115 =3 sfr SSDAT = 0X9F; //SSI数据寄存器 116 =3 117 =3 sfr OPINX = 0XFE; 118 =3 sfr OPREG = 0XFF; 119 =3 120 =3 /*Check Sum*/ 121 =3 sfr CHKSUML = 0XFC; //Check Sum结果寄存器低位 122 =3 sfr CHKSUMH = 0XFD; //Check Sum结果寄存器高位 123 =3 124 =3 sfr OPERCON = 0xEF; //运算控制寄存器 125 =3 126 =3 ///* ------------------- 位寄存器-------------------- */ 127 =3 /*PSW*/ 128 =3 sbit CY = PSW^7; //标志位 0:加法运算最高位无进位,或者减法运算最高位无借 -时 1:加法运算最高位有进位,或者减法运算最高位有借位时 129 =3 sbit AC = PSW^6; //进位辅助标志位 0:无借位、进位 1:加法运算时在bit3位有进位 -,或减法运算在bit3位有借位时 130 =3 sbit F0 = PSW^5; //用户标志位 131 =3 sbit RS1 = PSW^4; //工作寄存器组选择位 132 =3 sbit RS0 = PSW^3; //工作寄存器组选择位 133 =3 sbit OV = PSW^2; //溢出标志位 134 =3 sbit F1 = PSW^1; //F1标志 135 =3 sbit P = PSW^0; //奇偶标志位 0:ACC中1的个数为偶数(包括0个) 1:ACC中1的个数 -奇数 136 =3 137 =3 /*T2CON*/ 138 =3 sbit TF2 = T2CON^7; 139 =3 sbit EXF2 = T2CON^6; 140 =3 sbit RCLK = T2CON^5; 141 =3 sbit TCLK = T2CON^4; 142 =3 sbit EXEN2 = T2CON^3; 143 =3 sbit TR2 = T2CON^2; 144 =3 sbit T2 = T2CON^1; 145 =3 sbit CP = T2CON^0; 146 =3 147 =3 148 =3 /*IP*/ 149 =3 sbit IPADC = IP^6; //ADC中断优先控制位 0:设定 ADC的中断优先权是 “低” 1:设定 AD -C的中断优先权是 “高” 150 =3 sbit IPT2 = IP^5; //PWM中断优先控制位 0:设定 PWM的中断优先权是 “低” 1:设定 PW -M 的中断优先权是 “高” 151 =3 sbit IPUART = IP^4; //SIF中断优先控制位 0:设定 SIF的中断优先权是 “低” 1:设定 SI -F的中断优先权是 “高” 152 =3 sbit IPT1 = IP^3; //Timer1中断优先控制位 0:设定 Timer 1的中断优先权是 “低” 1:设 - Timer 1的中断优先权是 “高” 153 =3 sbit IPINT1 = IP^2; //32K Base Timer中断优先控制位 0:设定 32K的中断优先权是 “低” - 1:设定 32K的中断优先权是 “高” 154 =3 sbit IPT0 = IP^1; //Timer0中断优先控制位 0:设定 Timer 0的中断优先权是 “低” 1:设 - Timer 0的中断优先权是 “高” 155 =3 sbit IPINT0 = IP^0; 156 =3 157 =3 /*IE*/ 158 =3 sbit EA = IE^7; //中断使能的总控制 0:关闭所有的中断 1:打开所有的中断 159 =3 sbit EADC = IE^6; //ADC中断使能控制 0:关闭ADC中断 1:打开ADC中断 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 4 160 =3 sbit ET2 = IE^5; //PWM中断使能控制 0:关闭PWM中断 1:打开PWM中断 161 =3 sbit EUART = IE^4; //UART中断使能控制 0:关闭SIF中断 1:打开SIF中断 162 =3 sbit ET1 = IE^3; //Timer1中断使能控制 0:关闭TIMER1中断 1:打开TIMER1中断 163 =3 sbit EINT1 = IE^2; //32K Base Timer中断使能控制 0:关闭32K中断 1:打开32K中断 164 =3 sbit ET0 = IE^1; //Timer0中断使能控制 0:关闭TIMER0中断 1:打开TIMER0中断 165 =3 sbit EINT0 = IE^0; //TouchKey的中断使能控制 0:关闭TouchKey中断 1:打开TouchKey中断 166 =3 167 =3 /*TCON*/ 168 =3 sbit TF1 = TCON^7; //T1溢出中断请求标志位 T1产生溢出,发生中断时,硬件将TF1 -为“1”,申请中断,CPU响应时,硬件清“0”。 169 =3 sbit TR1 = TCON^6; //定时器T1的运行控制位 0:Timer1禁止计数 1:Timer1开始计数 170 =3 sbit TF0 = TCON^5; //T0溢出中断请求标志位 T0产生溢出,发生中断时,硬件将TF0 -为“1”,申请中断,CPU响应时,硬件清“0”。 171 =3 sbit TR0 = TCON^4; //定时器T0的运行控制位 0:Timer0禁止计数 1:Timer0开始计数 172 =3 173 =3 /*SCON*/ 174 =3 sbit SM0 = SCON^7; 175 =3 sbit SM1 = SCON^6; 176 =3 sbit SM2 = SCON^5; 177 =3 sbit REN = SCON^4; 178 =3 sbit TB8 = SCON^3; 179 =3 sbit RB8 = SCON^2; 180 =3 sbit TI = SCON^1; 181 =3 sbit RI = SCON^0; 182 =3 183 =3 /* P0 */ 184 =3 sbit P01 = P0^1; 185 =3 sbit P00 = P0^0; 186 =3 187 =3 /* P1 */ 188 =3 sbit P17 = P1^7; 189 =3 sbit P16 = P1^6; 190 =3 sbit P15 = P1^5; 191 =3 sbit P14 = P1^4; 192 =3 sbit P13 = P1^3; 193 =3 sbit P12 = P1^2; 194 =3 sbit P11 = P1^1; 195 =3 sbit P10 = P1^0; 196 =3 197 =3 /* P2 */ 198 =3 sbit P27 = P2^7; 199 =3 sbit P26 = P2^6; 200 =3 sbit P25 = P2^5; 201 =3 sbit P24 = P2^4; 202 =3 sbit P23 = P2^3; 203 =3 sbit P22 = P2^2; 204 =3 sbit P21 = P2^1; 205 =3 sbit P20 = P2^0; 206 =3 207 =3 #endif 5 =2 #include "stdint.h" 1 =3 #ifndef _STD_INT_H_ 2 =3 #define _STD_INT_H_ 3 =3 typedef signed long int32_t; 4 =3 typedef unsigned long uint32_t; 5 =3 typedef signed char int8_t; 6 =3 typedef unsigned char uint8_t; 7 =3 typedef signed int int16_t; 8 =3 typedef unsigned int uint16_t; 9 =3 #endif 6 =2 7 =2 #define enableInterrupts() EA=1 /** 开启总中断 **/ C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 5 8 =2 #define disableInterrupts() EA=0 /** 关闭总中断 **/ 9 =2 10 =2 #define __I volatile const /*!< defines 'read only' permissions */ 11 =2 #define __O volatile /*!< defines 'write only' permissions */ 12 =2 #define __IO volatile /*!< defines 'read / write' permissions */ 13 =2 /* 14 =2 //!< Signed integer types 15 =2 typedef signed char int8_t; 16 =2 typedef signed short int16_t; 17 =2 typedef signed long int32_t; 18 =2 19 =2 //!< Unsigned integer types 20 =2 typedef unsigned char uint8_t; 21 =2 typedef unsigned short uint16_t; 22 =2 typedef unsigned long uint32_t; 23 =2 24 =2 typedef int32_t s32; 25 =2 typedef int16_t s16; 26 =2 typedef int8_t s8; 27 =2 28 =2 typedef uint32_t u32; 29 =2 typedef uint16_t u16; 30 =2 typedef uint8_t u8; 31 =2 */ 32 =2 33 =2 34 =2 typedef enum {FALSE = 0, TRUE = !FALSE} bool; 35 =2 36 =2 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; 37 =2 38 =2 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; 39 =2 40 =2 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; 41 =2 42 =2 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; 43 =2 44 =2 #endif 4 =1 #include "sc92f8003_adc.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_adc.h 4 =2 // 作者 : 5 =2 // 模块功能 : ADC固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_ADC_H_ 13 =2 #define _SC92F8003_ADC_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 6 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 ADC_PRESSEL_FHRC_D32 = (uint8_t)0x00, //预分频 fADC = fHRC/32 19 =2 ADC_PRESSEL_FHRC_D24 = (uint8_t)0x01, //预分频 fADC = fHRC/24 20 =2 ADC_PRESSEL_FHRC_D16 = (uint8_t)0x02, //预分频 fADC = fHRC/16 21 =2 ADC_PRESSEL_FHRC_D12 = (uint8_t)0x03, //预分频 fADC = fHRC/12 22 =2 ADC_PRESSEL_FHRC_D8 = (uint8_t)0x04, //预分频 fADC = fHRC/8 23 =2 ADC_PRESSEL_FHRC_D6 = (uint8_t)0x05, //预分频 fADC = fHRC/6 24 =2 ADC_PRESSEL_FHRC_D4 = (uint8_t)0x06, //预分频 fADC = fHRC/4 25 =2 ADC_PRESSEL_FHRC_D3 = (uint8_t)0x07 //预分频 fADC = fHRC/3 26 =2 } ADC_PresSel_TypeDef; 27 =2 28 =2 typedef enum { 29 =2 ADC_Cycle_6Cycle = (uint8_t)0x00, //ADC采样时间为6个ADC采样时钟周期 30 =2 ADC_Cycle_36Cycle = (uint8_t)0x08 //ADC采样时间为36个ADC采样时钟周期 31 =2 } ADC_Cycle_TypeDef; 32 =2 33 =2 typedef enum { 34 =2 ADC_CHANNEL_0 = (uint8_t)0x00, //选择AIN0做AD输入口 35 =2 ADC_CHANNEL_1 = (uint8_t)0x01, //选择AIN1做AD输入口 36 =2 ADC_CHANNEL_2 = (uint8_t)0x02, //选择AIN2做AD输入口 37 =2 ADC_CHANNEL_3 = (uint8_t)0x03, //选择AIN3做AD输入口 38 =2 ADC_CHANNEL_4 = (uint8_t)0x04, //选择AIN4做AD输入口 39 =2 ADC_CHANNEL_5 = (uint8_t)0x05, //选择AIN5做AD输入口 40 =2 ADC_CHANNEL_6 = (uint8_t)0x06, //选择AIN6做AD输入口 41 =2 ADC_CHANNEL_VDD_D4 = (uint8_t)0x1f //选择内部1/4VDD做AD输入口 42 =2 } ADC_Channel_TypeDef; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 7 43 =2 44 =2 void ADC_DeInit(void); 45 =2 void ADC_Init(ADC_PresSel_TypeDef ADC_PrescalerSelection, ADC_Cycle_TypeDef ADC_Cycle); 46 =2 void ADC_ChannelConfig(ADC_Channel_TypeDef ADC_Channel, FunctionalState NewState); 47 =2 void ADC_Cmd(FunctionalState NewState); 48 =2 void ADC_StartConversion(void); 49 =2 uint16_t ADC_GetConversionValue(void); 50 =2 void ADC_ITConfig(FunctionalState NewState, PriorityStatus Priority); 51 =2 FlagStatus ADC_GetFlagStatus(void); 52 =2 void ADC_ClearFlag(void); 53 =2 54 =2 #endif 55 =2 56 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 5 =1 #include "sc92f8003_btm.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_btm.h 4 =2 // 作者 : 5 =2 // 模块功能 : BTM固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_BTM_H_ 13 =2 #define _SC92F8003_BTM_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 8 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 BTM_TIMEBASE_15_625MS = (uint8_t)0x00, //BTM每15.625MS产生一次中断 19 =2 BTM_TIMEBASE_31_25MS = (uint8_t)0x01, //BTM每31.25MS产生一次中断 20 =2 BTM_TIMEBASE_62_5MS = (uint8_t)0x02, //BTM每62.5MS产生一次中断 21 =2 BTM_TIMEBASE_125MS = (uint8_t)0x03, //BTM每125MS产生一次中断 22 =2 BTM_TIMEBASE_250MS = (uint8_t)0x04, //BTM每0.25S产生一次中断 23 =2 BTM_TIMEBASE_500MS = (uint8_t)0x05, //BTM每0.5S产生一次中断 24 =2 BTM_TIMEBASE_1S = (uint8_t)0x06, //BTM每1S产生一次中断 25 =2 BTM_TIMEBASE_2S = (uint8_t)0x07, //BTM每2S产生一次中断 26 =2 BTM_TIMEBASE_4S = (uint8_t)0x08 //BTM每4S产生一次中断 27 =2 } BTM_Timebase_TypeDef; 28 =2 29 =2 void BTM_DeInit(void); 30 =2 void BTM_Init(BTM_Timebase_TypeDef BTM_Timebase); 31 =2 void BTM_Cmd(FunctionalState NewState); 32 =2 void BTM_ITConfig(FunctionalState NewState, PriorityStatus Priority); 33 =2 FlagStatus BTM_GetFlagStatus(void); 34 =2 void BTM_ClearFlag(void); 35 =2 36 =2 #endif 37 =2 38 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 6 =1 #include "SC92F8003_C.h" 1 =2 /*-------------------------------------------------------------------------- 2 =2 SC92F8003_C.H 3 =2 4 =2 C Header file for SC92F8003 microcontroller. 5 =2 Copyright (c) 2018 Shenzhen SinOne Chip Electronic CO., Ltd. 6 =2 All rights reserved. 7 =2 深圳市赛元微电子有限公司 8 =2 版本号: V1.0 9 =2 日期: 2018.05.02 10 =2 --------------------------------------------------------------------------*/ 11 =2 #ifndef _SC92F8003_H_ =2 #define _SC92F8003_H_ =2 =2 /* ------------------- 字节寄存器-------------------- */ =2 ///*CPU*/ =2 sfr ACC = 0xE0; //累加器A =2 sfr B = 0xF0; //通用寄存器B =2 sfr PSW = 0xD0; //程序状态字 =2 sfr DPH = 0x83; //数据指针高8位 =2 sfr DPL = 0x82; //数据指针低8位 =2 sfr SP = 0x81; //堆栈指针 =2 =2 =2 /*system*/ =2 sfr PCON = 0x87; //电源管理控制寄存器 =2 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 9 =2 /*interrupt*/ =2 sfr IP1 = 0XB9; //中断优先级控制寄存器1 =2 sfr IP = 0xB8; //中断优先权控制寄存器 =2 sfr IE = 0xA8; //中断控制寄存器 =2 sfr IE1 = 0XA9; //中断控制寄存器1 =2 =2 /*PORT*/ =2 sfr P2PH = 0xA2; //P2口模式控制寄存器 =2 sfr P2CON = 0xA1; //P2口模式控制寄存器 =2 sfr P2 = 0xA0; //P2口数据寄存器 =2 sfr P1PH = 0x92; //P1口模式控制寄存器 =2 sfr P1CON = 0x91; //P1口模式控制寄存器 =2 sfr P1 = 0x90; //P1口数据寄存器 =2 sfr P0PH = 0x9B; //P0口模式控制寄存器 =2 sfr P0CON = 0x9A; //P0口模式控制寄存器 =2 sfr P0 = 0x80; //P0口数据寄存器 =2 =2 /*TIMER*/ =2 sfr TMCON = 0x8E; //定时器频率控制寄存器 =2 sfr TH1 = 0x8D; //定时器1高8位 =2 sfr TH0 = 0x8C; //定时器0高8位 =2 sfr TL1 = 0x8B; //定时器1低8位 =2 sfr TL0 = 0x8A; //定时器0低8位 =2 sfr TMOD = 0x89; //定时器工作模式寄存器 =2 sfr TCON = 0x88; //定时器控制寄存器 =2 sfr T2CON = 0xC8; //定时器2控制寄存器 =2 sfr T2MOD = 0xC9; //定时器2工作模式寄存器 =2 sfr RCAP2L = 0xCA; //定时器2重载/捕捉低8位 =2 sfr RCAP2H = 0xCB; //定时器2重载/捕捉高8位 =2 sfr TL2 = 0xCC; //定时器2低8位 =2 sfr TH2 = 0xCD; //定时器2高8位 =2 =2 =2 /*ADC*/ =2 sfr ADCCFG1 = 0xAA; //ADC功能配置寄存器0 =2 sfr ADCCFG0 = 0xAB; //ADC功能配置寄存器1 =2 sfr ADCCON = 0XAD; //ADC控制寄存器 =2 sfr ADCVL = 0xAE; //ADC 结果寄存器 =2 sfr ADCVH = 0xAF; //ADC 结果寄存器 =2 =2 /*PWM*/ =2 sfr PWMCFG = 0xD1; //PWM设置寄存器 =2 sfr PWMCON0 = 0xD2; //PWM控制寄存器 =2 sfr PWMPRD = 0xD3; //PWM周期设置寄存器 =2 sfr PWMDTYA = 0xD4; //PWM占空比设置寄存器A =2 sfr PWMDTY0 = 0xD5; //PWM0设置寄存器 =2 sfr PWMDTY1 = 0xD6; //PWM1设置寄存器 =2 sfr PWMDTY2 = 0xD7; //PWM2设置寄存器 =2 sfr PWMCON1 = 0xDA; //PWM控制寄存器 =2 sfr PWMDTYB = 0xDB; //PWM占空比设置寄存器B =2 sfr PWMDTY3 = 0xDC; //PWM3设置寄存器 =2 sfr PWMDTY4 = 0xDD; //PWM4设置寄存器 =2 sfr PWMDTY5 = 0xDE; //PWM5设置寄存器 =2 sfr PWMDTY6 = 0xDF; //PWM6设置寄存器 =2 =2 =2 // =2 ///*WatchDog*/ =2 sfr BTMCON = 0XCE; //低频定时器控制寄存器 =2 sfr WDTCON = 0xCF; //WDT控制寄存器 =2 =2 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 10 =2 sfr OTCON = 0X8F; //输出控制寄存器 =2 =2 /*INT*/ =2 sfr INT0F = 0XBA; //INT0 下降沿中断控制寄存器 =2 sfr INT0R = 0XBB; //INT0 上降沿中断控制寄存器 =2 sfr INT1F = 0XBC; //INT1 下降沿中断控制寄存器 =2 sfr INT1R = 0XBD; //INT1 上降沿中断控制寄存器 =2 sfr INT2F = 0XC6; //INT2 下降沿中断控制寄存器 =2 sfr INT2R = 0XC7; //INT2 上降沿中断控制寄存器 =2 =2 /*IAP */ =2 sfr IAPCTL = 0xF6; //IAP控制寄存器 =2 sfr IAPDAT = 0xF5; //IAP数据寄存器 =2 sfr IAPADE = 0xF4; //IAP扩展地址寄存器 =2 sfr IAPADH = 0xF3; //IAP写入地址高位寄存器 =2 sfr IAPADL = 0xF2; //IAP写入地址低8位寄存器 =2 sfr IAPKEY = 0xF1; //IAP保护寄存器 =2 =2 /*uart0*/ =2 sfr SCON = 0X98; //uart控制寄存器 =2 sfr SBUF = 0X99; //uart0数据寄存器 =2 =2 /*三合一*/ =2 sfr SSCON0 = 0X9D; //SSI控制寄存器0 =2 sfr SSCON1 = 0X9E; //SSI控制寄存器1 =2 sfr SSCON2 = 0X95; //SSI控制寄存器2 =2 sfr SSDAT = 0X9F; //SSI数据寄存器 =2 =2 sfr OPINX = 0XFE; =2 sfr OPREG = 0XFF; =2 =2 /*Check Sum*/ =2 sfr CHKSUML = 0XFC; //Check Sum结果寄存器低位 =2 sfr CHKSUMH = 0XFD; //Check Sum结果寄存器高位 =2 =2 sfr OPERCON = 0xEF; //运算控制寄存器 =2 =2 ///* ------------------- 位寄存器-------------------- */ =2 /*PSW*/ =2 sbit CY = PSW^7; //标志位 0:加法运算最高位无进位,或者减法运算最高位无借 -时 1:加法运算最高位有进位,或者减法运算最高位有借位时 =2 sbit AC = PSW^6; //进位辅助标志位 0:无借位、进位 1:加法运算时在bit3位有进位 -,或减法运算在bit3位有借位时 =2 sbit F0 = PSW^5; //用户标志位 =2 sbit RS1 = PSW^4; //工作寄存器组选择位 =2 sbit RS0 = PSW^3; //工作寄存器组选择位 =2 sbit OV = PSW^2; //溢出标志位 =2 sbit F1 = PSW^1; //F1标志 =2 sbit P = PSW^0; //奇偶标志位 0:ACC中1的个数为偶数(包括0个) 1:ACC中1的个数 -奇数 =2 =2 /*T2CON*/ =2 sbit TF2 = T2CON^7; =2 sbit EXF2 = T2CON^6; =2 sbit RCLK = T2CON^5; =2 sbit TCLK = T2CON^4; =2 sbit EXEN2 = T2CON^3; =2 sbit TR2 = T2CON^2; =2 sbit T2 = T2CON^1; =2 sbit CP = T2CON^0; =2 =2 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 11 =2 /*IP*/ =2 sbit IPADC = IP^6; //ADC中断优先控制位 0:设定 ADC的中断优先权是 “低” 1:设定 AD -C的中断优先权是 “高” =2 sbit IPT2 = IP^5; //PWM中断优先控制位 0:设定 PWM的中断优先权是 “低” 1:设定 PW -M 的中断优先权是 “高” =2 sbit IPUART = IP^4; //SIF中断优先控制位 0:设定 SIF的中断优先权是 “低” 1:设定 SI -F的中断优先权是 “高” =2 sbit IPT1 = IP^3; //Timer1中断优先控制位 0:设定 Timer 1的中断优先权是 “低” 1:设 - Timer 1的中断优先权是 “高” =2 sbit IPINT1 = IP^2; //32K Base Timer中断优先控制位 0:设定 32K的中断优先权是 “低” - 1:设定 32K的中断优先权是 “高” =2 sbit IPT0 = IP^1; //Timer0中断优先控制位 0:设定 Timer 0的中断优先权是 “低” 1:设 - Timer 0的中断优先权是 “高” =2 sbit IPINT0 = IP^0; =2 =2 /*IE*/ =2 sbit EA = IE^7; //中断使能的总控制 0:关闭所有的中断 1:打开所有的中断 =2 sbit EADC = IE^6; //ADC中断使能控制 0:关闭ADC中断 1:打开ADC中断 =2 sbit ET2 = IE^5; //PWM中断使能控制 0:关闭PWM中断 1:打开PWM中断 =2 sbit EUART = IE^4; //UART中断使能控制 0:关闭SIF中断 1:打开SIF中断 =2 sbit ET1 = IE^3; //Timer1中断使能控制 0:关闭TIMER1中断 1:打开TIMER1中断 =2 sbit EINT1 = IE^2; //32K Base Timer中断使能控制 0:关闭32K中断 1:打开32K中断 =2 sbit ET0 = IE^1; //Timer0中断使能控制 0:关闭TIMER0中断 1:打开TIMER0中断 =2 sbit EINT0 = IE^0; //TouchKey的中断使能控制 0:关闭TouchKey中断 1:打开TouchKey中断 =2 =2 /*TCON*/ =2 sbit TF1 = TCON^7; //T1溢出中断请求标志位 T1产生溢出,发生中断时,硬件将TF1 -为“1”,申请中断,CPU响应时,硬件清“0”。 =2 sbit TR1 = TCON^6; //定时器T1的运行控制位 0:Timer1禁止计数 1:Timer1开始计数 =2 sbit TF0 = TCON^5; //T0溢出中断请求标志位 T0产生溢出,发生中断时,硬件将TF0 -为“1”,申请中断,CPU响应时,硬件清“0”。 =2 sbit TR0 = TCON^4; //定时器T0的运行控制位 0:Timer0禁止计数 1:Timer0开始计数 =2 =2 /*SCON*/ =2 sbit SM0 = SCON^7; =2 sbit SM1 = SCON^6; =2 sbit SM2 = SCON^5; =2 sbit REN = SCON^4; =2 sbit TB8 = SCON^3; =2 sbit RB8 = SCON^2; =2 sbit TI = SCON^1; =2 sbit RI = SCON^0; =2 =2 /* P0 */ =2 sbit P01 = P0^1; =2 sbit P00 = P0^0; =2 =2 /* P1 */ =2 sbit P17 = P1^7; =2 sbit P16 = P1^6; =2 sbit P15 = P1^5; =2 sbit P14 = P1^4; =2 sbit P13 = P1^3; =2 sbit P12 = P1^2; =2 sbit P11 = P1^1; =2 sbit P10 = P1^0; =2 =2 /* P2 */ =2 sbit P27 = P2^7; =2 sbit P26 = P2^6; =2 sbit P25 = P2^5; =2 sbit P24 = P2^4; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 12 =2 sbit P23 = P2^3; =2 sbit P22 = P2^2; =2 sbit P21 = P2^1; =2 sbit P20 = P2^0; =2 =2 #endif 7 =1 #include "sc92f8003_chksum.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_chksum.h 4 =2 // 作者 : 5 =2 // 模块功能 : CHKSUM固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef __SC92F8003_CHKSUM_H 13 =2 #define __SC92F8003_CHKSUM_H 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 13 =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 void CHKSUM_DeInit(void); 18 =2 void CHKSUM_StartOperation(void); 19 =2 uint16_t CHKSUM_GetCheckValue(void); 20 =2 21 =2 #endif 22 =2 23 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 8 =1 #include "sc92f8003_exti.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_exti.h 4 =2 // 作者 : 5 =2 // 模块功能 : EXTI固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_EXTI_H_ 13 =2 #define _SC92F8003_EXTI_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 14 =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 EXTI_TRIGGER_RISE_ONLY = (uint8_t)0x01, //EXTI触发方式为上升沿 19 =2 EXTI_TRIGGER_FALL_ONLY = (uint8_t)0x02, //EXTI触发方式为下降沿 20 =2 EXTI_TRIGGER_RISE_FALL = (uint8_t)0x03, //EXTI触发方式为上升沿与下降沿 21 =2 EXTI_TRIGGER_DISABLE = (uint8_t)0x04 //关闭外部中断触发 22 =2 } EXTI_TriggerMode_Typedef; 23 =2 24 =2 typedef enum { 25 =2 INT0 = (uint8_t)0x00, //外部中断0 26 =2 INT1 = (uint8_t)0x01, //外部中断1 27 =2 INT2 = (uint8_t)0x02 //外部中断2 28 =2 } EXTIx_Typedef; 29 =2 30 =2 typedef enum { 31 =2 INT00 = (uint8_t)0x01, //将P00设置为INT0脚 32 =2 INT01 = (uint8_t)0x02 //将P01设置为INT0脚 33 =2 } EXTI0x_Typedef; 34 =2 35 =2 typedef enum { 36 =2 INT10 = (uint8_t)0x01, //将P10设置为INT1脚 37 =2 INT11 = (uint8_t)0x02, //将P11设置为INT1脚 38 =2 INT12 = (uint8_t)0x04, //将P12设置为INT1脚 39 =2 INT13 = (uint8_t)0x08, //将P13设置为INT1脚 40 =2 INT14 = (uint8_t)0x10, //将P14设置为INT1脚 41 =2 INT15 = (uint8_t)0x20, //将P15设置为INT1脚 42 =2 INT16 = (uint8_t)0x40 //将P16设置为INT1脚 43 =2 } EXTI1x_Typedef; 44 =2 45 =2 typedef enum { 46 =2 INT21 = (uint8_t)0x02, //将P21设置为INT2脚 47 =2 INT22 = (uint8_t)0x04, //将P22设置为INT2脚 48 =2 INT23 = (uint8_t)0x08, //将P23设置为INT2脚 49 =2 INT24 = (uint8_t)0x10, //将P24设置为INT2脚 50 =2 INT25 = (uint8_t)0x20, //将P25设置为INT2脚 51 =2 INT26 = (uint8_t)0x40, //将P26设置为INT2脚 52 =2 INT27 = (uint8_t)0x80 //将P27设置为INT2脚 53 =2 } EXTI2x_Typedef; 54 =2 55 =2 void EXTI_DeInit(EXTIx_Typedef INTx); 56 =2 void EXTI_SetExtInt0xTriggerMode(uint8_t INT0x,EXTI_TriggerMode_Typedef TriggerMode); 57 =2 void EXTI_SetExtInt1xTriggerMode(uint8_t INT1x,EXTI_TriggerMode_Typedef TriggerMode); 58 =2 void EXTI_SetExtInt2xTriggerMode(uint8_t INT2x,EXTI_TriggerMode_Typedef TriggerMode); 59 =2 void EXTI_ITConfig(EXTIx_Typedef INTx,FunctionalState NewState,PriorityStatus Priority); 60 =2 61 =2 #endif 62 =2 63 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 9 =1 #include "sc92f8003_gpio.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_gpio.h C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 15 4 =2 // 作者 : 5 =2 // 模块功能 : GPIO固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 #ifndef _SC92F8003_GPIO_H_ 12 =2 #define _SC92F8003_GPIO_H_ 13 =2 14 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 15 =2 16 =2 typedef enum { 17 =2 GPIO0 = (uint8_t)0x00, //GPIO0 18 =2 GPIO1 = (uint8_t)0x01, //GPIO1 19 =2 GPIO2 = (uint8_t)0x02, //GPIO2 20 =2 }GPIO_TypeDef; 21 =2 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 16 22 =2 typedef enum { 23 =2 GPIO_MODE_IN_HI = (uint8_t)0x00, //高阻输入模式 24 =2 GPIO_MODE_IN_PU = (uint8_t)0x01, //带上拉的输入模式 25 =2 GPIO_MODE_OUT_PP = (uint8_t)0x02 //强推挽输出模式 26 =2 }GPIO_Mode_TypeDef; 27 =2 28 =2 typedef enum { 29 =2 GPIO_PIN_0 = ((uint8_t)0x01), //IO管脚Px0 30 =2 GPIO_PIN_1 = ((uint8_t)0x02), //IO管脚Px1 31 =2 GPIO_PIN_2 = ((uint8_t)0x04), //IO管脚Px2 32 =2 GPIO_PIN_3 = ((uint8_t)0x08), //IO管脚Px3 33 =2 GPIO_PIN_4 = ((uint8_t)0x10), //IO管脚Px4 34 =2 GPIO_PIN_5 = ((uint8_t)0x20), //IO管脚Px5 35 =2 GPIO_PIN_6 = ((uint8_t)0x40), //IO管脚Px6 36 =2 GPIO_PIN_7 = ((uint8_t)0x80), //IO管脚Px7 37 =2 GPIO_PIN_LNIB = ((uint8_t)0x0F), //IO管脚Px0~3 38 =2 GPIO_PIN_HNIB = ((uint8_t)0xF0), //IO管脚Px4~7 39 =2 GPIO_PIN_ALL = ((uint8_t)0xFF) //IO管脚Px0~7 40 =2 }GPIO_Pin_TypeDef; 41 =2 42 =2 void GPIO_DeInit(void); 43 =2 void GPIO_Init(GPIO_TypeDef GPIOx, uint8_t PortPins, GPIO_Mode_TypeDef GPIO_Mode); 44 =2 void GPIO_Write(GPIO_TypeDef GPIOx, uint8_t PortVal); 45 =2 void GPIO_WriteHigh(GPIO_TypeDef GPIOx, uint8_t PortPins); 46 =2 void GPIO_WriteLow(GPIO_TypeDef GPIOx, uint8_t PortPins); 47 =2 uint8_t GPIO_ReadPort(GPIO_TypeDef GPIOx); 48 =2 BitStatus GPIO_ReadPin(GPIO_TypeDef GPIOx, GPIO_Pin_TypeDef PortPins); 49 =2 50 =2 #endif 51 =2 52 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 10 =1 #include "sc92f8003_iap.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_iap.h 4 =2 // 作者 : 5 =2 // 模块功能 : IAP固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_IAP_H_ 13 =2 #define _SC92F8003_IAP_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 17 =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 IAP_MEMTYPE_ROM = (uint8_t)0x00, //IAP操作区域为ROM 19 =2 IAP_MEMTYPE_IFB = (uint8_t)0x01, //IAP操作区域为IFB 20 =2 IAP_MEMTYPE_EEPROM = (uint8_t)0x02 //IAP操作区域为EEPROM 21 =2 } IAP_MemType_TypeDef; 22 =2 23 =2 typedef enum { 24 =2 IAP_HOLDTIME_6000US = (uint8_t)0x00, //设定CPU Hold Time为6MS 25 =2 IAP_HOLDTIME_3000US = (uint8_t)0x04, //设定CPU Hold Time为3MS 26 =2 IAP_HOLDTIME_1500US = (uint8_t)0x08 //设定CPU Hold Time为1.5MS 27 =2 } IAP_HoldTime_TypeDef; 28 =2 29 =2 void IAP_DeInit(void); 30 =2 void IAP_SetHoldTime(IAP_HoldTime_TypeDef IAP_HoldTime); 31 =2 void IAP_ProgramByte(uint16_t Address,uint8_t Data,IAP_MemType_TypeDef IAP_MemType,uint8_t WriteTimeLimit) -; 32 =2 uint8_t IAP_ReadByte(uint16_t Address,IAP_MemType_TypeDef IAP_MemType); 33 =2 34 =2 #endif 35 =2 36 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 11 =1 #include "sc92f8003_option.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_option.h 4 =2 // 作者 : 5 =2 // 模块功能 : Customer Option寄存器配置头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 18 11 =2 12 =2 #ifndef _SC92F8003_OPTION_H_ 13 =2 #define _SC92F8003_OPTION_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 SYSCLK_PRESSEL_FOSC_D1 = (uint8_t)0x00, //预分频 Fsys = Fosc/1 19 =2 SYSCLK_PRESSEL_FOSC_D2 = (uint8_t)0x10, //预分频 Fsys = Fosc/2 20 =2 SYSCLK_PRESSEL_FOSC_D4 = (uint8_t)0x20, //预分频 Fsys = Fosc/4 21 =2 SYSCLK_PRESSEL_FOSC_D12 = (uint8_t)0x30 //预分频 Fsys = Fosc/12 22 =2 } SYSCLK_PresSel_TypeDef; 23 =2 24 =2 typedef enum { 25 =2 LVR_INVALID = (uint8_t)0x04, //LVR无效 26 =2 LVR_2_3V = (uint8_t)0x00, //LVR 2.3V复位 27 =2 LVR_2_9V = (uint8_t)0x01, //LVR 2.9V复位 28 =2 LVR_3_7V = (uint8_t)0x02, //LVR 3.7V复位 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 19 29 =2 LVR_4_3V = (uint8_t)0x03 //LVR 4.3V复位 30 =2 } LVR_Config_TypeDef; 31 =2 32 =2 typedef enum { 33 =2 IAP_OPERATERANGE_ONLY_EEPROM = (uint8_t)0x00, //只允许EEPROM进行IAP操作 34 =2 IAP_OPERATERANGE__LAST_0_5K_CODEREGION = (uint8_t)0x04, //允许ROM最后0.5k和EEPROM进行IAP操作 35 =2 IAP_OPERATERANGE__LAST_1K_CODEREGION = (uint8_t)0x08, //允许ROM最后1k和EEPROM进行IAP操作 36 =2 IAP_OPERATERANGE__ALL_CODEREGION = (uint8_t)0x0c //允许ROM和EEPROM所有区域进行IAP操作 37 =2 } IAP_OperateRange_TypeDef; 38 =2 39 =2 typedef enum { 40 =2 XTIPLL_HIGHER_THAN_12M = (uint8_t)0x40, //外接晶振振荡频率大于等于12M 41 =2 XTIPLL_UNDER_12M = (uint8_t)0x00 //外接晶振振荡频率小于12M 42 =2 } XTIPLL_Range_TypeDef; 43 =2 44 =2 typedef enum { 45 =2 ADC_VREF_VDD = 0x00, //选择VDD做ADC参考电压 46 =2 ADC_VREF_2_4V = 0x80 //选择内部2.4V做ADC参考电压 47 =2 } ADC_Vref_TypeDef; 48 =2 49 =2 void OPTION_WDT_Cmd(FunctionalState NewState); 50 =2 void OPTION_XTIPLL_Cmd(FunctionalState NewState); 51 =2 void OPTION_XTIPLL_SetRange(XTIPLL_Range_TypeDef XTIPLL_Range); 52 =2 void OPTION_SYSCLK_Init(SYSCLK_PresSel_TypeDef SYSCLK_PresSel); 53 =2 void OPTION_RST_PIN_Cmd(FunctionalState NewState); 54 =2 void OPTION_LVR_Init(LVR_Config_TypeDef LVR_Config); 55 =2 void OPTION_ADC_VrefConfig(ADC_Vref_TypeDef ADC_Vref); 56 =2 void OPTION_IAP_SetOperateRange(IAP_OperateRange_TypeDef IAP_OperateRange); 57 =2 58 =2 #endif 12 =1 #include "sc92f8003_pwm.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_pwm.h 4 =2 // 作者 : 5 =2 // 模块功能 : PWM固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_PWM_H_ 13 =2 #define _SC92F8003_PWM_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 20 =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 PWM_PRESSEL_FOSC_D1 = (uint8_t)0x00, //PWM预分频为Fosc/1 19 =2 PWM_PRESSEL_FOSC_D2 = (uint8_t)0x10, //PWM预分频为Fosc/2 20 =2 PWM_PRESSEL_FOSC_D8 = (uint8_t)0x20, //PWM预分频为Fosc/8 21 =2 PWM_PRESSEL_FOSC_D32 = (uint8_t)0x30 //PWM预分频为Fosc/32 22 =2 } PWM_PresSel_TypeDef; 23 =2 24 =2 typedef enum { 25 =2 PWM0 = (uint8_t)0x01, //PWM输出通道选择:PWM0 26 =2 PWM1 = (uint8_t)0x02, //PWM输出通道选择:PWM1 27 =2 PWM2 = (uint8_t)0x04, //PWM输出通道选择:PWM2 28 =2 PWM3 = (uint8_t)0x08, //PWM输出通道选择:PWM3 29 =2 PWM4 = (uint8_t)0x10, //PWM输出通道选择:PWM4 30 =2 PWM5 = (uint8_t)0x20, //PWM输出通道选择:PWM5 31 =2 PWM6 = (uint8_t)0x40 //PWM输出通道选择:PWM6 32 =2 } PWM_OutputPin_TypeDef; 33 =2 34 =2 typedef enum { 35 =2 PWM0PWM3 = (uint8_t)0x00, //PWM互补模式通道选择:PWM0、PWM3 36 =2 PWM1PWM4 = (uint8_t)0x01, //PWM互补模式通道选择:PWM1、PWM4 37 =2 PWM2PWM5 = (uint8_t)0x02 //PWM互补模式通道选择:PWM2、PWM5 38 =2 } PWM_ComplementaryOutputPin_TypeDef; 39 =2 40 =2 typedef enum { 41 =2 PWM_OUTPUTSTATE_DISABLE = ((uint8_t)0x00), //该PIN脚作为GPIO 42 =2 PWM_OUTPUTSTATE_ENABLE = ((uint8_t)0x01) //该PIN脚作为PWM 43 =2 } PWM_OutputState_TypeDef; 44 =2 45 =2 typedef enum { 46 =2 PWM_POLARITY_NON_INVERT = ((uint8_t)0x00), //PWM输出不反向 47 =2 PWM_POLARITY_INVERT = ((uint8_t)0x01) //PWM输出反向 48 =2 } PWM_Polarity_TypeDef; 49 =2 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 21 50 =2 void PWM_DeInit(void); 51 =2 void PWM_Init(PWM_PresSel_TypeDef PWM_PresSel,uint16_t PWM_Period); 52 =2 void PWM_OutputStateConfig(uint8_t PWM_OutputPin,PWM_OutputState_TypeDef PWM_OutputState); 53 =2 void PWM_PolarityConfig(uint8_t PWM_OutputPin,PWM_Polarity_TypeDef PWM_Polarity); 54 =2 void PWM_IndependentModeConfig(PWM_OutputPin_TypeDef PWM_OutputPin, uint16_t PWM_DutyCycle); 55 =2 void PWM_ComplementaryModeConfig(PWM_ComplementaryOutputPin_TypeDef PWM_ComplementaryOutputPin,uint16_t PW -M_DutyCycle); 56 =2 void PWM_DeadTimeConfig(uint8_t PWM012_RisingDeadTime,uint8_t PWM345_fallingDeadTime); 57 =2 void PWM_Cmd(FunctionalState NewState); 58 =2 void PWM_ITConfig(FunctionalState NewState, PriorityStatus Priority); 59 =2 FlagStatus PWM_GetFlagStatus(void); 60 =2 void PWM_ClearFlag(void); 61 =2 62 =2 #endif 63 =2 64 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 13 =1 #include "sc92f8003_pwr.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_pwr.h 4 =2 // 作者 : 5 =2 // 模块功能 : PWR固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_PWR_H_ 13 =2 #define _SC92F8003_PWR_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 22 =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 #include 1 =3 /*-------------------------------------------------------------------------- 2 =3 INTRINS.H 3 =3 4 =3 Intrinsic functions for C51. 5 =3 Copyright (c) 1988-2010 Keil Elektronik GmbH and ARM Germany GmbH 6 =3 All rights reserved. 7 =3 --------------------------------------------------------------------------*/ 8 =3 9 =3 #ifndef __INTRINS_H__ 10 =3 #define __INTRINS_H__ 11 =3 12 =3 #pragma SAVE 13 =3 14 =3 #if defined (__CX2__) =3 #pragma FUNCTIONS(STATIC) =3 /* intrinsic functions are reentrant, but need static attribute */ =3 #endif 18 =3 19 =3 extern void _nop_ (void); 20 =3 extern bit _testbit_ (bit); 21 =3 extern unsigned char _cror_ (unsigned char, unsigned char); 22 =3 extern unsigned int _iror_ (unsigned int, unsigned char); 23 =3 extern unsigned long _lror_ (unsigned long, unsigned char); 24 =3 extern unsigned char _crol_ (unsigned char, unsigned char); 25 =3 extern unsigned int _irol_ (unsigned int, unsigned char); 26 =3 extern unsigned long _lrol_ (unsigned long, unsigned char); 27 =3 extern unsigned char _chkfloat_(float); 28 =3 #if defined (__CX2__) =3 extern int abs (int); =3 extern void _illop_ (void); =3 #endif 32 =3 #if !defined (__CX2__) 33 =3 extern void _push_ (unsigned char _sfr); 34 =3 extern void _pop_ (unsigned char _sfr); 35 =3 #endif 36 =3 37 =3 #pragma RESTORE 38 =3 39 =3 #endif 40 =3 17 =2 18 =2 void PWR_DeInit(void); 19 =2 void PWR_EnterSTOPMode(void); 20 =2 void PWR_EnterIDLEMode(void); 21 =2 22 =2 #endif 23 =2 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 23 24 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 14 =1 #include "sc92f8003_ssi.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_ssi.h 4 =2 // 作者 : 5 =2 // 模块功能 : SSI固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef __SC92F8003_SSI_H 13 =2 #define __SC92F8003_SSI_H 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 24 17 =2 typedef enum { 18 =2 SSI_PinSelection_P10P27P26 = (uint8_t)0x00, //SSI共用引脚为P10,P27,P26 19 =2 SSI_PinSelection_P21P22P23 = (uint8_t)0x20 //SSI共用引脚为P21,P22,P23 20 =2 } SSI_PinSelection_TypeDef; 21 =2 22 =2 typedef enum { 23 =2 SPI_FIRSTBIT_MSB = (uint8_t)0x00, //MSB优先发送 24 =2 SPI_FIRSTBIT_LSB = (uint8_t)0x04 //LSB优先发送 25 =2 } SPI_FirstBit_TypeDef; 26 =2 27 =2 typedef enum { 28 =2 SPI_BAUDRATEPRESCALER_4 = (uint8_t)0x00, //SPI时钟速率为Fsys/4 29 =2 SPI_BAUDRATEPRESCALER_8 = (uint8_t)0x01, //SPI时钟速率为Fsys/8 30 =2 SPI_BAUDRATEPRESCALER_16 = (uint8_t)0x02, //SPI时钟速率为Fsys/16 31 =2 SPI_BAUDRATEPRESCALER_32 = (uint8_t)0x03, //SPI时钟速率为Fsys/32 32 =2 SPI_BAUDRATEPRESCALER_64 = (uint8_t)0x04, //SPI时钟速率为Fsys/64 33 =2 SPI_BAUDRATEPRESCALER_128 = (uint8_t)0x05, //SPI时钟速率为Fsys/128 34 =2 SPI_BAUDRATEPRESCALER_256 = (uint8_t)0x06, //SPI时钟速率为Fsys/256 35 =2 SPI_BAUDRATEPRESCALER_512 = (uint8_t)0x07 //SPI时钟速率为Fsys/512 36 =2 } SPI_BaudRatePrescaler_TypeDef; 37 =2 38 =2 typedef enum { 39 =2 SPI_MODE_MASTER = (uint8_t)0x20, //SPI为主设备 40 =2 SPI_MODE_SLAVE = (uint8_t)0x00 //SPI为从设备 41 =2 } SPI_Mode_TypeDef; 42 =2 43 =2 typedef enum { 44 =2 SPI_CLOCKPOLARITY_LOW = (uint8_t)0x00, //SCK在空闲状态下为低电平 45 =2 SPI_CLOCKPOLARITY_HIGH = (uint8_t)0x10 //SCK在空闲状态下为高电平 46 =2 } SPI_ClockPolarity_TypeDef; 47 =2 48 =2 typedef enum { 49 =2 SPI_CLOCKPHASE_1EDGE = (uint8_t)0x00, //SCK的第一沿采集数据 50 =2 SPI_CLOCKPHASE_2EDGE = (uint8_t)0x08 //SCK的第二沿采集数据 51 =2 } SPI_ClockPhase_TypeDef; 52 =2 53 =2 typedef enum { 54 =2 SPI_TXE_DISINT = (uint8_t)0x00, //TXE为0时不允许发送中断 55 =2 SPI_TXE_ENINT = (uint8_t)0x01 //TXE为1时允许发送中断 56 =2 } SPI_TXE_INT_TypeDef; 57 =2 58 =2 59 =2 typedef enum { 60 =2 UART1_Mode_10B = 0X00, //UART1设置为10位模式 61 =2 UART1_Mode_11B = 0X80 //UART1设置为11位模式 62 =2 } UART1_Mode_TypeDef; 63 =2 64 =2 typedef enum { 65 =2 UART1_RX_ENABLE = 0X10, //UART1允许接收 66 =2 UART1_RX_DISABLE = 0X00 //UART1禁止接收 67 =2 } UART1_RX_TypeDef; 68 =2 69 =2 typedef enum { 70 =2 SPI_FLAG_SPIF = (uint8_t)0x80, //SPI数据传送标志位SPIF 71 =2 SPI_FLAG_WCOL = (uint8_t)0x40, //SPI写入冲突标志位WCOL 72 =2 SPI_FLAG_TXE = (uint8_t)0x08, //SPI发送缓存器空标志TXE 73 =2 TWI_FLAG_TWIF = (uint8_t)0x40, //TWI中断标志位TWIF 74 =2 TWI_FLAG_GCA = (uint8_t)0x10, //TWI通用地址响应标志位GCA 75 =2 UART1_FLAG_TI = (uint8_t)0x02, //UART1发送中断标志位TI 76 =2 UART1_FLAG_RI = (uint8_t)0x01 //UART1接收中断标志位RI 77 =2 } SSI_Flag_TypeDef; 78 =2 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 25 79 =2 void SSI_DeInit(void); 80 =2 void SSI_PinSelection(SSI_PinSelection_TypeDef PinSeletion); 81 =2 void SSI_SPI_Init(SPI_FirstBit_TypeDef FirstBit,SPI_BaudRatePrescaler_TypeDef BaudRatePrescaler,SPI_Mode_T -ypeDef Mode,SPI_ClockPolarity_TypeDef ClockPolarity,SPI_ClockPhase_TypeDef ClockPhase,SPI_TXE_INT_TypeDef SPI_TXE_INT); 82 =2 void SSI_SPI_Cmd(FunctionalState NewState); 83 =2 void SSI_SPI_SendData(uint8_t Data); 84 =2 uint8_t SSI_SPI_ReceiveData(void); 85 =2 void SSI_TWI_Init(uint8_t TWI_Address); 86 =2 void SSI_TWI_AcknowledgeConfig(FunctionalState NewState); 87 =2 void SSI_TWI_GeneralCallCmd(FunctionalState NewState); 88 =2 void SSI_TWI_Cmd(FunctionalState NewState); 89 =2 void SSI_TWI_SendData(uint8_t Data); 90 =2 uint8_t SSI_TWI_ReceiveData(void); 91 =2 void SSI_UART1_Init(uint32_t UART1Fsys, uint32_t BaudRate, UART1_Mode_TypeDef Mode, UART1_RX_TypeDef RxMod -e); 92 =2 void SSI_UART1_SendData8(uint8_t Data); 93 =2 uint8_t SSI_UART1_ReceiveData8(void); 94 =2 void SSI_UART1_SendData9(uint16_t Data); 95 =2 uint16_t SSI_UART1_ReceiveData9(void); 96 =2 void SSI_ITConfig(FunctionalState NewState, PriorityStatus Priority); 97 =2 FlagStatus SSI_GetFlagStatus(SSI_Flag_TypeDef SSI_FLAG); 98 =2 void SSI_ClearFlag(SSI_Flag_TypeDef SSI_FLAG); 99 =2 100 =2 #endif 101 =2 102 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 15 =1 #include "sc92f8003_timer0.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_timer0.h 4 =2 // 作者 : 5 =2 // 模块功能 : TIMER0固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_TIMER0_H_ 13 =2 #define _SC92F8003_TIMER0_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 26 =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 TIM0_PRESSEL_FSYS_D12 = ((uint8_t)0x00), //TIMER0计数源来自系统时钟12分频 19 =2 TIM0_PRESSEL_FSYS_D1 = ((uint8_t)0x01) //TIMER0计数源来自系统时钟 20 =2 }TIM0_PresSel_TypeDef; 21 =2 22 =2 typedef enum { 23 =2 TIM0_MODE_TIMER = ((uint8_t)0x01), //TIMER0做定时器 24 =2 TIM0_MODE_COUNTER = ((uint8_t)0x02) //TIMER0做计数器 25 =2 }TIM0_CountMode_TypeDef; 26 =2 27 =2 void TIM0_DeInit(void); 28 =2 void TIM0_TimeBaseInit(TIM0_PresSel_TypeDef TIM0_PrescalerSelection,TIM0_CountMode_TypeDef TIM0_CountMode) -; 29 =2 void TIM0_WorkMode0Config(uint16_t TIM0_SetCounter); 30 =2 void TIM0_WorkMode1Config(uint16_t TIM0_SetCounter); 31 =2 void TIM0_WorkMode2Config(uint8_t TIM0_SetCounter); 32 =2 void TIM0_WorkMode3Config(uint8_t TIM0_SetCounter, uint8_t TIM1_SetCounter); 33 =2 void TIM0_Mode0SetReloadCounter(uint16_t TIM0_SetCounter); 34 =2 void TIM0_Mode1SetReloadCounter(uint16_t TIM0_SetCounter); 35 =2 void TIM0_SetTL0Counter(uint8_t TIM0_SetCounter); 36 =2 void TIM0_SetTH0Counter(uint8_t TIM0_SetCounter); 37 =2 void TIM0_Cmd(FunctionalState NewState); 38 =2 void TIM0_ITConfig(FunctionalState NewState, PriorityStatus Priority); 39 =2 FlagStatus TIM0_GetFlagStatus(void); 40 =2 void TIM0_ClearFlag(void); 41 =2 42 =2 #endif 43 =2 44 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 16 =1 #include "sc92f8003_timer1.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_timer1.h 4 =2 // 作者 : 5 =2 // 模块功能 : TIMER1固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 27 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_TIMER1_H_ 13 =2 #define _SC92F8003_TIMER1_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 TIM1_PRESSEL_FSYS_D12 = ((uint8_t)0x00), //TIMER1计数源来自系统时钟12分频 19 =2 TIM1_PRESSEL_FSYS_D1 = ((uint8_t)0x01) //TIMER1计数源来自系统时钟 20 =2 }TIM1_PresSel_TypeDef; 21 =2 22 =2 typedef enum { 23 =2 TIM1_MODE_TIMER = ((uint8_t)0x01), //TIMER1做定时器 24 =2 TIM1_MODE_COUNTER = ((uint8_t)0x02) //TIMER1做计数器 25 =2 }TIM1_CountMode_TypeDef; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 28 26 =2 27 =2 void TIM1_DeInit(void); 28 =2 void TIM1_TimeBaseInit(TIM1_PresSel_TypeDef TIM1_PrescalerSelection,TIM1_CountMode_TypeDef TIM1_CountMode) -; 29 =2 void TIM1_WorkMode0Config(uint16_t TIM1_SetCounter); 30 =2 void TIM1_WorkMode1Config(uint16_t TIM1_SetCounter); 31 =2 void TIM1_WorkMode2Config(uint8_t TIM1_SetCounter); 32 =2 void TIM1_Mode0SetReloadCounter(uint16_t TIM1_SetCounter); 33 =2 void TIM1_Mode1SetReloadCounter(uint16_t TIM1_SetCounter); 34 =2 void TIM1_Cmd(FunctionalState NewState); 35 =2 void TIM1_ITConfig(FunctionalState NewState, PriorityStatus Priority); 36 =2 FlagStatus TIM1_GetFlagStatus(void); 37 =2 void TIM1_ClearFlag(void); 38 =2 39 =2 #endif 40 =2 41 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 17 =1 #include "sc92f8003_timer2.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_timer2.h 4 =2 // 作者 : 5 =2 // 模块功能 : TIMER2固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_TIMER2_H_ 13 =2 #define _SC92F8003_TIMER2_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 29 =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 TIM2_PRESSEL_FSYS_D12 = ((uint8_t)0x00), //TIMER0计数源来自系统时钟12分频 19 =2 TIM2_PRESSEL_FSYS_D1 = ((uint8_t)0x01) //TIMER0计数源来自系统时钟 20 =2 }TIM2_PresSel_TypeDef; 21 =2 22 =2 typedef enum { 23 =2 TIM2_MODE_TIMER = ((uint8_t)0x01), //TIMER0做定时器 24 =2 TIM2_MODE_COUNTER = ((uint8_t)0x02) //TIMER0做计数器 25 =2 }TIM2_CountMode_TypeDef; 26 =2 27 =2 typedef enum { 28 =2 TIM2_COUNTDIRECTION_UP = ((uint8_t)0x00), //向上计数模式 29 =2 TIM2_COUNTDIRECTION_DOWN_UP = ((uint8_t)0x10) //向上/向下计数模式 30 =2 }TIM2_CountDirection_TypeDef; 31 =2 32 =2 typedef enum { 33 =2 TIM2_FLAG_TF2 = (uint8_t)0x80, //中断标志位TF2 34 =2 TIM2_FLAG_EXF2 = (uint8_t)0x40 //中断标志位EXF2 35 =2 } TIM2_Flag_TypeDef; 36 =2 37 =2 void TIM2_DeInit(void); 38 =2 void TIM2_TimeBaseInit(TIM2_PresSel_TypeDef TIM2_PrescalerSelection, TIM2_CountMode_TypeDef TIM2_CountMode -, TIM2_CountDirection_TypeDef TIM2_CountDirection); 39 =2 void TIM2_WorkMode0Config(uint16_t TIM2_SetCounter); 40 =2 void TIM2_WorkMode1Config(uint16_t TIM2_SetCounter); 41 =2 void TIM2_WorkMode3Config(uint16_t TIM2_SetCounter); 42 =2 void TIM2_SetEXEN2(FunctionalState NewState); 43 =2 void TIM2_Cmd(FunctionalState NewState); 44 =2 void TIM2_ITConfig(FunctionalState NewState, PriorityStatus Priority); 45 =2 FlagStatus TIM2_GetFlagStatus(TIM2_Flag_TypeDef TIM2_Flag); 46 =2 void TIM2_ClearFlag(TIM2_Flag_TypeDef TIM2_Flag); 47 =2 48 =2 #endif 18 =1 #include "sc92f8003_uart0.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_uart0.h 4 =2 // 作者 : 5 =2 // 模块功能 : UART0固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef __SC92F8003_UART0_H C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 30 13 =2 #define __SC92F8003_UART0_H 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 #define UART0_BaudRate_FsysDIV12 0X00 //仅模式0可用,串行端口在系统时钟的1/12下运 - 18 =2 #define UART0_BaudRate_FsysDIV4 0X01 //仅模式0可用,串行端口在系统时钟的1/4下运行 19 =2 20 =2 typedef enum { 21 =2 UART0_PinSelection_P15P16 = (uint8_t)0x00, //UART0引脚为P15,P16 22 =2 UART0_PinSelection_P11P20 = (uint8_t)0x10 //UART0引脚为P11,P20 23 =2 } UART0_PinSelection_TypeDef; 24 =2 25 =2 typedef enum { 26 =2 UART0_CLOCK_TIMER1 = (uint8_t)0X00, //TIMER1做波特率发生器 27 =2 UART0_CLOCK_TIMER2 = (uint8_t)0X30 //TIMER2做波特率发生器 28 =2 } UART0_Clock_Typedef; 29 =2 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 31 30 =2 typedef enum { 31 =2 UART0_Mode_8B = 0X00, //UART工作模式:8位半双工 32 =2 UART0_Mode_10B = 0X40, //UART工作模式:10位全双工 33 =2 UART0_Mode_11B = 0XC0 //UART工作模式:11位全双工 34 =2 } UART0_Mode_Typedef; 35 =2 36 =2 typedef enum { 37 =2 UART0_RX_ENABLE = 0x10, //允许接收数据 38 =2 UART0_RX_DISABLE = 0x00 //不允许接收数据 39 =2 } UART0_RX_Typedef; 40 =2 41 =2 typedef enum { 42 =2 UART0_FLAG_RI = 0X01, //接收中断标志位RI 43 =2 UART0_FLAG_TI = 0X02 //发送中断标志位TI 44 =2 } UART0_Flag_Typedef; 45 =2 46 =2 void UART0_DeInit(void); 47 =2 void UART0_PinSelection(UART0_PinSelection_TypeDef PinSeletion); 48 =2 void UART0_Init(uint32_t Uart0Fsys, uint32_t BaudRate, UART0_Mode_Typedef Mode, 49 =2 UART0_Clock_Typedef ClockMode, UART0_RX_Typedef RxMode); 50 =2 void UART0_SendData8(uint8_t Data); 51 =2 uint8_t UART0_ReceiveData8(void); 52 =2 void UART0_SendData9(uint16_t Data); 53 =2 uint16_t UART0_ReceiveData9(void); 54 =2 void UART0_ITConfig(FunctionalState NewState, PriorityStatus Priority); 55 =2 FlagStatus UART0_GetFlagStatus(UART0_Flag_Typedef UART0_Flag); 56 =2 void UART0_ClearFlag(UART0_Flag_Typedef UART0_Flag); 57 =2 58 =2 #endif 59 =2 60 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 19 =1 #include "sc92f8003_wdt.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_wdt.h 4 =2 // 作者 : 5 =2 // 模块功能 : WDT固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_WDT_H_ 13 =2 #define _SC92F8003_WDT_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 32 =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 WDT_OverflowTime_500MS = (uint8_t)0x00, //WDT溢出时间为500MS 19 =2 WDT_OverflowTime_250MS = (uint8_t)0x01, //WDT溢出时间为250MS 20 =2 WDT_OverflowTime_125MS = (uint8_t)0x02, //WDT溢出时间为125MS 21 =2 WDT_OverflowTime_62_5MS = (uint8_t)0x03, //WDT溢出时间为62MS 22 =2 WDT_OverflowTime_31_5MS = (uint8_t)0x04, //WDT溢出时间为31MS 23 =2 WDT_OverflowTime_15_75MS = (uint8_t)0x05, //WDT溢出时间为15MS 24 =2 WDT_OverflowTime_7_88MS = (uint8_t)0x06, //WDT溢出时间为7MS 25 =2 WDT_OverflowTime_3_94MS = (uint8_t)0x07 //WDT溢出时间为4MS 26 =2 } WDT_OverflowTime_TypeDef; 27 =2 28 =2 void WDT_DeInit(void); 29 =2 void WDT_Init(WDT_OverflowTime_TypeDef OverflowTime); 30 =2 void WDT_SetReload(void); 31 =2 32 =2 #endif 33 =2 34 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 20 =1 21 =1 #define disable() { uint8_t pEA = EA; EA = 0; 22 =1 #define enable() EA = pEA;} 23 =1 #endif 3 #include "LT89xx_rf.h" 1 =1 #ifndef _LT89XX_RF_H_ 2 =1 #define _LT89XX_RF_H_ 3 =1 #include "stdint.h" 1 =2 #ifndef _STD_INT_H_ =2 #define _STD_INT_H_ =2 typedef signed long int32_t; =2 typedef unsigned long uint32_t; =2 typedef signed char int8_t; =2 typedef unsigned char uint8_t; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 33 =2 typedef signed int int16_t; =2 typedef unsigned int uint16_t; =2 #endif 4 =1 5 =1 #define SIMULATOR 0 6 =1 void InitLT89xxRF(void); 7 =1 uint8_t DecodePackage(uint8_t *pBuf,uint8_t len1); 8 =1 void TaskLT89xx_thread_entry(void *param ); 9 =1 10 =1 #endif 4 #include "LT89xx_def.h" 1 =1 #ifndef _LT89XX_DEF_H_ 2 =1 #define _LT89XX_DEF_H_ 3 =1 #include "stdint.h" 1 =2 #ifndef _STD_INT_H_ =2 #define _STD_INT_H_ =2 typedef signed long int32_t; =2 typedef unsigned long uint32_t; =2 typedef signed char int8_t; =2 typedef unsigned char uint8_t; =2 typedef signed int int16_t; =2 typedef unsigned int uint16_t; =2 #endif 4 =1 5 =1 6 =1 7 =1 //************************************* 8 =1 //变量与函数声明部分 不建议修改 9 =1 #define LT89xx_6dBm 0x4800 10 =1 #define LT89xx_2dBm 0X1840 11 =1 #define LT89xx_1_7dBm 0X18C0 12 =1 #define LT89xx_1dBm 0X1940 13 =1 #define LT89xx_n0_3dBm 0X19C0 14 =1 #define LT89xx_n1_4dBm 0X1A40 15 =1 #define LT89xx_n2_2dBm 0X1AC0 16 =1 #define LT89xx_n3dBm 0X1B40 17 =1 #define LT89xx_n4dBm 0X1BC0 18 =1 #define LT89xx_n6_5dBm 0X1C40 19 =1 #define LT89xx_n7_3dBm 0X1CC0 20 =1 #define LT89xx_n8_2dBm 0X1D40 21 =1 #define LT89xx_n9_5dBm 0X1DC0 22 =1 #define LT89xx_n10_7dBm 0X1E40 23 =1 #define LT89xx_n12_2dBm 0X1EC0 24 =1 #define LT89xx_n14_2dBm 0X1F40 25 =1 #define LT89xx_n17dBm 0X1FC0 26 =1 27 =1 28 =1 #define REG07_W_R_EN 0x07 29 =1 30 =1 #define REG36_SYNC_WORD_15_00 0x24 31 =1 #define REG37_SYNC_WORD_31_16 0x25 32 =1 #define REG38_SYNC_WORD_47_32 0x26 33 =1 #define REG39_SYNC_WORD_63_48 0x27 34 =1 35 =1 #define REG52_W_R_PTR 0x34 36 =1 37 =1 #define REG50_TXRX_FIFO 0x32 38 =1 39 =1 40 =1 typedef struct 41 =1 { 42 =1 uint8_t RegAddr; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 34 43 =1 uint16_t RegValue; 44 =1 }LT89XX_CFG; 45 =1 46 =1 typedef struct 47 =1 { 48 =1 uint16_t Sync_Word_15_00; 49 =1 uint16_t Sync_Word_63_48; 50 =1 }Sync_Word; 51 =1 52 =1 typedef struct 53 =1 { 54 =1 Sync_Word SyncWord; 55 =1 uint16_t Freq; 56 =1 }LT89XX_Sync_Word_Channel; 57 =1 58 =1 59 =1 #endif 5 #include "LT89xx_rf_cfg.h" 1 =1 #ifndef _LT89XX_RF_CFG_H_ 2 =1 #define _LT89XX_RF_CFG_H_ 3 =1 4 =1 5 =1 //#define RF_FREQ_USER 2410UL 6 =1 7 =1 8 =1 9 =1 #endif 6 #include "LT89xx.h" 1 =1 #ifndef _LT89XX_H_ 2 =1 #define _LT89XX_H_ 3 =1 4 =1 #include 1 =2 #ifndef _STD_INT_H_ =2 #define _STD_INT_H_ =2 typedef signed long int32_t; =2 typedef unsigned long uint32_t; =2 typedef signed char int8_t; =2 typedef unsigned char uint8_t; =2 typedef signed int int16_t; =2 typedef unsigned int uint16_t; =2 #endif 5 =1 6 =1 7 =1 void InitLT89xx(void); 8 =1 9 =1 uint16_t LT_ReadReg2(uint8_t reg); 10 =1 void LT_Readreg(uint8_t reg,uint8_t *RegH,uint8_t *RegL ); 11 =1 void LT_WriteReg(uint8_t reg, uint8_t RegH, uint8_t RegL); 12 =1 void LT_WriteReg2(uint8_t reg, uint16_t regValue); 13 =1 14 =1 uint8_t LT_ReadBuf(uint8_t reg, uint8_t *pBuf); 15 =1 void LT_WriteBuf(uint8_t reg, uint8_t *pBuf, uint8_t len); 16 =1 17 =1 18 =1 void LT8920_Sleep(void); 19 =1 uint8_t LT_GetPKT(void); 20 =1 #endif 21 =1 7 #include "V2RFEncoding.h" 1 =1 2 =1 3 =1 #ifndef _V2_RF_ENCODING_H C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 35 4 =1 #define _V2_RF_ENCODING_H 5 =1 #include "stdint.h" 1 =2 #ifndef _STD_INT_H_ =2 #define _STD_INT_H_ =2 typedef signed long int32_t; =2 typedef unsigned long uint32_t; =2 typedef signed char int8_t; =2 typedef unsigned char uint8_t; =2 typedef signed int int16_t; =2 typedef unsigned int uint16_t; =2 #endif 6 =1 #include "string.h" 1 =2 /*-------------------------------------------------------------------------- 2 =2 STRING.H 3 =2 4 =2 String functions. 5 =2 Copyright (c) 1988-2008 Keil Elektronik GmbH and Keil Software, Inc. 6 =2 Copyright (c) 2008-2016 ARM Germany GmbH 7 =2 All rights reserved. 8 =2 --------------------------------------------------------------------------*/ 9 =2 10 =2 #ifndef __STRING_H__ 11 =2 #define __STRING_H__ 12 =2 13 =2 #ifndef _SIZE_T 14 =2 #define _SIZE_T 15 =2 typedef unsigned int size_t; 16 =2 #endif 17 =2 18 =2 #ifndef NULL 19 =2 #define NULL ((void *)0) 20 =2 #endif 21 =2 22 =2 #pragma SAVE 23 =2 #pragma REGPARMS 24 =2 extern char *strcat (char *s1, const char *s2); 25 =2 extern char *strncat (char *s1, const char *s2, size_t n); 26 =2 27 =2 extern char strcmp (const char *s1, const char *s2); 28 =2 extern char strncmp (const char *s1, const char *s2, size_t n); 29 =2 30 =2 extern char *strcpy (char *s1, const char *s2); 31 =2 extern char *strncpy (char *s1, const char *s2, size_t n); 32 =2 33 =2 extern size_t strlen (const char *); 34 =2 35 =2 extern char *strchr (const char *s, char c); 36 =2 extern int strpos (const char *s, char c); 37 =2 extern char *strrchr (const char *s, char c); 38 =2 extern int strrpos (const char *s, char c); 39 =2 40 =2 extern size_t strspn (const char *s, const char *set); 41 =2 extern size_t strcspn (const char *s, const char *set); 42 =2 extern char *strpbrk (const char *s, const char *set); 43 =2 extern char *strrpbrk(const char *s, const char *set); 44 =2 extern char *strstr (const char *s, const char *sub); 45 =2 extern char *strtok (char *str, const char *set); 46 =2 47 =2 extern char memcmp (const void *s1, const void *s2, size_t n); 48 =2 extern void *memcpy (void *s1, const void *s2, size_t n); 49 =2 extern void *memchr (const void *s, char val, size_t n); 50 =2 extern void *memccpy (void *s1, const void *s2, char val, size_t n); C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 36 51 =2 extern void *memmove (void *s1, const void *s2, size_t n); 52 =2 extern void *memset (void *s, char val, size_t n); 53 =2 #pragma RESTORE 54 =2 55 =2 #endif 7 =1 8 =1 9 =1 #define TESTDECODE 0 10 =1 11 =1 #define V2_OFFSET_JUMP_START 0x54 12 =1 13 =1 void encodeV2Packet(uint8_t* packet); 14 =1 void decodeV2Packet(uint8_t* packet); 15 =1 uint8_t xorKey(uint8_t key); 16 =1 uint8_t encodeByte(uint8_t byte, uint8_t s1, uint8_t xorKey, uint8_t s2); 17 =1 uint8_t decodeByte(uint8_t byte, uint8_t s1, uint8_t xorKey, uint8_t s2); 18 =1 19 =1 void TestDecode(void); 20 =1 #endif 8 9 #include "pt_thread/pt_header.h" 1 =1 #ifndef _PT_HEADER_H_ 2 =1 #define _PT_HEADER_H_ 3 =1 4 =1 #include "pt_timer.h" 1 =2 #ifndef _PT_TIMER_H_ 2 =2 #define _PT_TIMER_H_ 3 =2 #include "pt.h" 1 =3 2 =3 #ifndef __PT_H__ 3 =3 #define __PT_H__ 4 =3 5 =3 #include "lc.h" 1 =4 #ifndef __LC_H__ 2 =4 #define __LC_H__ 3 =4 4 =4 5 =4 #ifdef LC_INCLUDE =4 #include LC_INCLUDE =4 #else 8 =4 #include "lc-switch.h" 1 =5 2 =5 3 =5 #ifndef __LC_SWITCH_H__ 4 =5 #define __LC_SWITCH_H__ 5 =5 6 =5 typedef unsigned short lc_t; 7 =5 8 =5 #define LC_INIT(s) s = 0; 9 =5 10 =5 #define LC_RESUME(s) switch(s) { case 0: 11 =5 12 =5 #define LC_SET(s) s = __LINE__; case __LINE__: 13 =5 14 =5 #define LC_END(s) } 15 =5 16 =5 #endif /* __LC_SWITCH_H__ */ 17 =5 18 =5 /** @} */ 9 =4 #endif 10 =4 11 =4 #endif C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 37 6 =3 7 =3 struct pt { 8 =3 lc_t lc; 9 =3 }; 10 =3 11 =3 12 =3 #ifndef UNUSED_PARAM 13 =3 #define UNUSED_PARAM(v) (void)(v) 14 =3 #endif 15 =3 16 =3 #define PT_WAITING 0 //等待 17 =3 #define PT_YIELDED 1 //锁死线程 18 =3 #define PT_EXITED 2 //退出 19 =3 #define PT_ENDED 3 //结束 20 =3 21 =3 22 =3 #define PT_BIND(pt1) {static idata struct pt pt_hide ;pt1 = &pt_hide;} 23 =3 24 =3 25 =3 #define PT_INIT(pt) LC_INIT((pt)->lc) 26 =3 #define PT_THREAD(name_args) int8_t name_args 27 =3 #define PT_BEGIN(pt) { int8_t PT_YIELD_FLAG = 1; LC_RESUME((pt)->lc) 28 =3 #define PT_END(pt) LC_END((pt)->lc); PT_YIELD_FLAG = 0; \ 29 =3 UNUSED_PARAM(PT_YIELD_FLAG );\ 30 =3 PT_INIT(pt); return PT_ENDED; } 31 =3 32 =3 33 =3 //等待条件成立,如果不成立,继续等待 34 =3 #define PT_WAIT_UNTIL(pt, condition) \ 35 =3 do { \ 36 =3 LC_SET((pt)->lc); \ 37 =3 if(!(condition)) { \ 38 =3 return PT_WAITING; \ 39 =3 } \ 40 =3 } while(0) 41 =3 42 =3 //一直等待,直到条件不成立 43 =3 #define PT_WAIT_WHILE(pt, cond) PT_WAIT_UNTIL((pt), !(cond)) 44 =3 //等待子线程退出 45 =3 #define PT_WAIT_THREAD(pt, thread) PT_WAIT_WHILE((pt), PT_SCHEDULE(thread)) 46 =3 47 =3 //启动子线程,等待子线程退出,如果不退出,在此阻塞 48 =3 #define PT_SPAWN(pt, child, thread) \ 49 =3 do { \ 50 =3 PT_INIT((child)); \ 51 =3 PT_WAIT_THREAD((pt), (thread)); \ 52 =3 } while(0) 53 =3 54 =3 //重新启动线程,从头开始 55 =3 #define PT_RESTART(pt) \ 56 =3 do { \ 57 =3 PT_INIT(pt); \ 58 =3 return PT_WAITING; \ 59 =3 } while(0) 60 =3 61 =3 //退出线程 62 =3 #define PT_EXIT(pt) \ 63 =3 do { \ 64 =3 PT_INIT(pt); \ 65 =3 return PT_EXITED; \ 66 =3 } while(0) 67 =3 //子线程是否退出 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 38 68 =3 #define PT_SCHEDULE(f) ((f) < PT_EXITED) 69 =3 70 =3 //锁死任务 71 =3 #define PT_YIELD(pt) \ 72 =3 do { \ 73 =3 PT_YIELD_FLAG = 0; \ 74 =3 LC_SET((pt)->lc); \ 75 =3 if(PT_YIELD_FLAG == 0) { \ 76 =3 return PT_YIELDED; \ 77 =3 } \ 78 =3 } while(0) 79 =3 80 =3 //锁死任务直到符合条件 81 =3 #define PT_YIELD_UNTIL(pt, cond) \ 82 =3 do { \ 83 =3 PT_YIELD_FLAG = 0; \ 84 =3 LC_SET((pt)->lc); \ 85 =3 if((PT_YIELD_FLAG == 0) || !(cond)) { \ 86 =3 return PT_YIELDED; \ 87 =3 } \ 88 =3 } while(0) 89 =3 90 =3 91 =3 #endif /* __PT_H__ */ 4 =2 5 =2 6 =2 struct timer { 7 =2 unsigned long start; //记录启动时的tick值 8 =2 unsigned long interval; //要定时的tick数 9 =2 }; 10 =2 11 =2 void timer_set(struct timer *t, unsigned long interval); 12 =2 unsigned char timer_expired(struct timer *t); 13 =2 void delay_ms(unsigned long t_ms); 14 =2 void Delay10us(void); 15 =2 void delay_us(unsigned int t); 16 =2 #endif 5 =1 #include "pt-sem.h" 1 =2 /* 2 =2 #include "pt-sem.h" 3 =2 4 =2 #define NUM_ITEMS 32 5 =2 #define BUFSIZE 8 6 =2 7 =2 static struct pt_sem mutex, full, empty; 8 =2 9 =2 PT_THREAD(producer(struct pt *pt)) 10 =2 { 11 =2 static int produced; 12 =2 13 =2 PT_BEGIN(pt); 14 =2 15 =2 for(produced = 0; produced < NUM_ITEMS; ++produced) { 16 =2 17 =2 PT_SEM_WAIT(pt, &full); 18 =2 19 =2 PT_SEM_WAIT(pt, &mutex); 20 =2 add_to_buffer(produce_item()); 21 =2 PT_SEM_SIGNAL(pt, &mutex); 22 =2 23 =2 PT_SEM_SIGNAL(pt, &empty); 24 =2 } C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 39 25 =2 26 =2 PT_END(pt); 27 =2 } 28 =2 29 =2 PT_THREAD(consumer(struct pt *pt)) 30 =2 { 31 =2 static int consumed; 32 =2 33 =2 PT_BEGIN(pt); 34 =2 35 =2 for(consumed = 0; consumed < NUM_ITEMS; ++consumed) { 36 =2 37 =2 PT_SEM_WAIT(pt, &empty); 38 =2 39 =2 PT_SEM_WAIT(pt, &mutex); 40 =2 consume_item(get_from_buffer()); 41 =2 PT_SEM_SIGNAL(pt, &mutex); 42 =2 43 =2 PT_SEM_SIGNAL(pt, &full); 44 =2 } 45 =2 46 =2 PT_END(pt); 47 =2 } 48 =2 49 =2 PT_THREAD(driver_thread(struct pt *pt)) 50 =2 { 51 =2 static struct pt pt_producer, pt_consumer; 52 =2 53 =2 PT_BEGIN(pt); 54 =2 55 =2 PT_SEM_INIT(&empty, 0); 56 =2 PT_SEM_INIT(&full, BUFSIZE); 57 =2 PT_SEM_INIT(&mutex, 1); 58 =2 59 =2 PT_INIT(&pt_producer); 60 =2 PT_INIT(&pt_consumer); 61 =2 62 =2 PT_WAIT_THREAD(pt, producer(&pt_producer) & 63 =2 consumer(&pt_consumer)); 64 =2 65 =2 PT_END(pt); 66 =2 } 67 =2 */ 68 =2 69 =2 #ifndef __PT_SEM_H__ 70 =2 #define __PT_SEM_H__ 71 =2 72 =2 #include "pt.h" 1 =3 2 =3 #ifndef __PT_H__ =3 #define __PT_H__ =3 =3 #include "lc.h" =3 =3 struct pt { =3 lc_t lc; =3 }; =3 =3 =3 #ifndef UNUSED_PARAM =3 #define UNUSED_PARAM(v) (void)(v) =3 #endif C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 40 =3 =3 #define PT_WAITING 0 //等待 =3 #define PT_YIELDED 1 //锁死线程 =3 #define PT_EXITED 2 //退出 =3 #define PT_ENDED 3 //结束 =3 =3 =3 #define PT_BIND(pt1) {static idata struct pt pt_hide ;pt1 = &pt_hide;} =3 =3 =3 #define PT_INIT(pt) LC_INIT((pt)->lc) =3 #define PT_THREAD(name_args) int8_t name_args =3 #define PT_BEGIN(pt) { int8_t PT_YIELD_FLAG = 1; LC_RESUME((pt)->lc) =3 #define PT_END(pt) LC_END((pt)->lc); PT_YIELD_FLAG = 0; \ =3 UNUSED_PARAM(PT_YIELD_FLAG );\ =3 PT_INIT(pt); return PT_ENDED; } =3 =3 =3 //等待条件成立,如果不成立,继续等待 =3 #define PT_WAIT_UNTIL(pt, condition) \ =3 do { \ =3 LC_SET((pt)->lc); \ =3 if(!(condition)) { \ =3 return PT_WAITING; \ =3 } \ =3 } while(0) =3 =3 //一直等待,直到条件不成立 =3 #define PT_WAIT_WHILE(pt, cond) PT_WAIT_UNTIL((pt), !(cond)) =3 //等待子线程退出 =3 #define PT_WAIT_THREAD(pt, thread) PT_WAIT_WHILE((pt), PT_SCHEDULE(thread)) =3 =3 //启动子线程,等待子线程退出,如果不退出,在此阻塞 =3 #define PT_SPAWN(pt, child, thread) \ =3 do { \ =3 PT_INIT((child)); \ =3 PT_WAIT_THREAD((pt), (thread)); \ =3 } while(0) =3 =3 //重新启动线程,从头开始 =3 #define PT_RESTART(pt) \ =3 do { \ =3 PT_INIT(pt); \ =3 return PT_WAITING; \ =3 } while(0) =3 =3 //退出线程 =3 #define PT_EXIT(pt) \ =3 do { \ =3 PT_INIT(pt); \ =3 return PT_EXITED; \ =3 } while(0) =3 //子线程是否退出 =3 #define PT_SCHEDULE(f) ((f) < PT_EXITED) =3 =3 //锁死任务 =3 #define PT_YIELD(pt) \ =3 do { \ =3 PT_YIELD_FLAG = 0; \ =3 LC_SET((pt)->lc); \ =3 if(PT_YIELD_FLAG == 0) { \ =3 return PT_YIELDED; \ C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 41 =3 } \ =3 } while(0) =3 =3 //锁死任务直到符合条件 =3 #define PT_YIELD_UNTIL(pt, cond) \ =3 do { \ =3 PT_YIELD_FLAG = 0; \ =3 LC_SET((pt)->lc); \ =3 if((PT_YIELD_FLAG == 0) || !(cond)) { \ =3 return PT_YIELDED; \ =3 } \ =3 } while(0) =3 =3 =3 #endif /* __PT_H__ */ 73 =2 74 =2 struct pt_sem { 75 =2 unsigned int count; 76 =2 }; 77 =2 78 =2 //信号量 79 =2 #define PT_SEM_INIT(s, c) (s)->count = c 80 =2 81 =2 //信号量等待 当信号量大于0 时继续,否则等待 82 =2 #define PT_SEM_WAIT(pt, s) \ 83 =2 do { \ 84 =2 PT_WAIT_UNTIL(pt, (s)->count > 0); \ 85 =2 --(s)->count; \ 86 =2 } while(0) 87 =2 88 =2 //写入信号量 89 =2 #define PT_SEM_SIGNAL(pt, s) ++(s)->count 90 =2 91 =2 #endif /* __PT_SEM_H__ */ 92 =2 93 =2 /** @} */ 94 =2 /** @} */ 95 =2 6 =1 7 =1 #endif 8 =1 10 #include "task.h" 1 =1 #ifndef _TASK_H_ 2 =1 #define _TASK_H_ 3 =1 4 =1 #include "cfg/task_header.h" 1 =2 #ifndef _TASK_HEADER_H 2 =2 #define _TASK_HEADER_H 3 =2 4 =2 #include "task_hal.h" 1 =3 #ifndef _TASK_HAL_H_ 2 =3 #define _TASK_HAL_H_ 3 =3 4 =3 5 =3 #include "stdint.h" 1 =4 #ifndef _STD_INT_H_ =4 #define _STD_INT_H_ =4 typedef signed long int32_t; =4 typedef unsigned long uint32_t; =4 typedef signed char int8_t; =4 typedef unsigned char uint8_t; =4 typedef signed int int16_t; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 42 =4 typedef unsigned int uint16_t; =4 #endif 6 =3 #include "intrins.h" 1 =4 /*-------------------------------------------------------------------------- 2 =4 INTRINS.H 3 =4 4 =4 Intrinsic functions for C51. 5 =4 Copyright (c) 1988-2010 Keil Elektronik GmbH and ARM Germany GmbH 6 =4 All rights reserved. 7 =4 --------------------------------------------------------------------------*/ 8 =4 9 =4 #ifndef __INTRINS_H__ =4 #define __INTRINS_H__ =4 =4 #pragma SAVE =4 =4 #if defined (__CX2__) =4 #pragma FUNCTIONS(STATIC) =4 /* intrinsic functions are reentrant, but need static attribute */ =4 #endif =4 =4 extern void _nop_ (void); =4 extern bit _testbit_ (bit); =4 extern unsigned char _cror_ (unsigned char, unsigned char); =4 extern unsigned int _iror_ (unsigned int, unsigned char); =4 extern unsigned long _lror_ (unsigned long, unsigned char); =4 extern unsigned char _crol_ (unsigned char, unsigned char); =4 extern unsigned int _irol_ (unsigned int, unsigned char); =4 extern unsigned long _lrol_ (unsigned long, unsigned char); =4 extern unsigned char _chkfloat_(float); =4 #if defined (__CX2__) =4 extern int abs (int); =4 extern void _illop_ (void); =4 #endif =4 #if !defined (__CX2__) =4 extern void _push_ (unsigned char _sfr); =4 extern void _pop_ (unsigned char _sfr); =4 #endif =4 =4 #pragma RESTORE =4 =4 #endif 40 =4 7 =3 #include "task_hal_cfg.h" 1 =4 #ifndef _TASK_HAL_CFG_H_ 2 =4 #define _TASK_HAL_CFG_H_ 3 =4 4 =4 5 =4 #include 1 =5 #ifndef _SC92F8003_H =5 #define _SC92F8003_H =5 =5 #include "SC92F8003_C.h" =5 #include "stdint.h" =5 =5 #define enableInterrupts() EA=1 /** 开启总中断 **/ =5 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =5 =5 #define __I volatile const /*!< defines 'read only' permissions */ =5 #define __O volatile /*!< defines 'write only' permissions */ =5 #define __IO volatile /*!< defines 'read / write' permissions */ =5 /* C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 43 =5 //!< Signed integer types =5 typedef signed char int8_t; =5 typedef signed short int16_t; =5 typedef signed long int32_t; =5 =5 //!< Unsigned integer types =5 typedef unsigned char uint8_t; =5 typedef unsigned short uint16_t; =5 typedef unsigned long uint32_t; =5 =5 typedef int32_t s32; =5 typedef int16_t s16; =5 typedef int8_t s8; =5 =5 typedef uint32_t u32; =5 typedef uint16_t u16; =5 typedef uint8_t u8; =5 */ =5 =5 =5 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =5 =5 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =5 =5 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =5 =5 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =5 =5 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =5 =5 #endif 6 =4 7 =4 #define INT_EXT0 0 8 =4 #define INT_T0 1 9 =4 #define INT_EXT1 2 10 =4 #define INT_T1 3 11 =4 #define INT_UART0 4 12 =4 #define INT_T2 5 13 =4 #define INT_ADC 6 14 =4 #define INT_SSI 7 15 =4 #define INT_PWM 8 16 =4 #define INT_BTM 9 17 =4 #define INT_EXT2 10 18 =4 19 =4 20 =4 21 =4 #define GPIOR GPIO1 22 =4 #define GPIOG GPIO2 23 =4 #define GPIOB GPIO2 24 =4 #define GPIOC GPIO2 25 =4 #define GPIOW GPIO2 26 =4 27 =4 #define LEDR GPIO_PIN_0 28 =4 #define LEDG GPIO_PIN_7 29 =4 #define LEDB GPIO_PIN_6 30 =4 #define LEDC GPIO_PIN_5 31 =4 #define LEDW GPIO_PIN_4 32 =4 33 =4 34 =4 35 =4 #define FOSC 12000000UL 36 =4 #define TICKPER1S 1000UL C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 44 37 =4 38 =4 39 =4 40 =4 #endif 8 =3 #include "al_helper.h" 1 =4 /* 2 =4 * al_helper.h 3 =4 * 4 =4 * Created on: 2023-4-20 5 =4 * Author: xukaiming 6 =4 */ 7 =4 8 =4 #ifndef _AL_HELPER_H_ 9 =4 #define _AL_HELPER_H_ 10 =4 11 =4 #include "stdint.h" 1 =5 #ifndef _STD_INT_H_ =5 #define _STD_INT_H_ =5 typedef signed long int32_t; =5 typedef unsigned long uint32_t; =5 typedef signed char int8_t; =5 typedef unsigned char uint8_t; =5 typedef signed int int16_t; =5 typedef unsigned int uint16_t; =5 #endif 12 =4 13 =4 #ifdef __cplusplus =4 extern "C" { =4 #endif 16 =4 17 =4 //#define AL_STATIC static 18 =4 #define AL_STATIC 19 =4 #define AL_INLINE inline 20 =4 21 =4 #define TASK_WITH_PT 1 22 =4 #define TASK_WITH_NAME 0 23 =4 24 =4 #define XDATA xdata 25 =4 #define IDATA idata 26 =4 #define CONST code 27 =4 //#define CONST xdata 28 =4 29 =4 30 =4 #ifndef UNUSED 31 =4 #define UNUSED(x) (void)(x) 32 =4 #endif 33 =4 34 =4 enum 35 =4 { 36 =4 false = 0, 37 =4 true =!false 38 =4 }; 39 =4 40 =4 #ifdef __cplusplus =4 } =4 #endif 43 =4 44 =4 #endif 45 =4 9 =3 #include "pt_header.h" 1 =4 #ifndef _PT_HEADER_H_ =4 #define _PT_HEADER_H_ C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 45 =4 =4 #include "pt_timer.h" =4 #include "pt-sem.h" =4 =4 #endif 8 =4 10 =3 11 =3 #include "LT89xx_rf.h" 1 =4 #ifndef _LT89XX_RF_H_ =4 #define _LT89XX_RF_H_ =4 #include "stdint.h" =4 =4 #define SIMULATOR 0 =4 void InitLT89xxRF(void); =4 uint8_t DecodePackage(uint8_t *pBuf,uint8_t len1); =4 void TaskLT89xx_thread_entry(void *param ); =4 =4 #endif 12 =3 #include "key.h" 1 =4 #ifndef _KEY_H_ 2 =4 #define _KEY_H_ 3 =4 #include "pt.h" 1 =5 2 =5 #ifndef __PT_H__ =5 #define __PT_H__ =5 =5 #include "lc.h" =5 =5 struct pt { =5 lc_t lc; =5 }; =5 =5 =5 #ifndef UNUSED_PARAM =5 #define UNUSED_PARAM(v) (void)(v) =5 #endif =5 =5 #define PT_WAITING 0 //等待 =5 #define PT_YIELDED 1 //锁死线程 =5 #define PT_EXITED 2 //退出 =5 #define PT_ENDED 3 //结束 =5 =5 =5 #define PT_BIND(pt1) {static idata struct pt pt_hide ;pt1 = &pt_hide;} =5 =5 =5 #define PT_INIT(pt) LC_INIT((pt)->lc) =5 #define PT_THREAD(name_args) int8_t name_args =5 #define PT_BEGIN(pt) { int8_t PT_YIELD_FLAG = 1; LC_RESUME((pt)->lc) =5 #define PT_END(pt) LC_END((pt)->lc); PT_YIELD_FLAG = 0; \ =5 UNUSED_PARAM(PT_YIELD_FLAG );\ =5 PT_INIT(pt); return PT_ENDED; } =5 =5 =5 //等待条件成立,如果不成立,继续等待 =5 #define PT_WAIT_UNTIL(pt, condition) \ =5 do { \ =5 LC_SET((pt)->lc); \ =5 if(!(condition)) { \ =5 return PT_WAITING; \ =5 } \ =5 } while(0) C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 46 =5 =5 //一直等待,直到条件不成立 =5 #define PT_WAIT_WHILE(pt, cond) PT_WAIT_UNTIL((pt), !(cond)) =5 //等待子线程退出 =5 #define PT_WAIT_THREAD(pt, thread) PT_WAIT_WHILE((pt), PT_SCHEDULE(thread)) =5 =5 //启动子线程,等待子线程退出,如果不退出,在此阻塞 =5 #define PT_SPAWN(pt, child, thread) \ =5 do { \ =5 PT_INIT((child)); \ =5 PT_WAIT_THREAD((pt), (thread)); \ =5 } while(0) =5 =5 //重新启动线程,从头开始 =5 #define PT_RESTART(pt) \ =5 do { \ =5 PT_INIT(pt); \ =5 return PT_WAITING; \ =5 } while(0) =5 =5 //退出线程 =5 #define PT_EXIT(pt) \ =5 do { \ =5 PT_INIT(pt); \ =5 return PT_EXITED; \ =5 } while(0) =5 //子线程是否退出 =5 #define PT_SCHEDULE(f) ((f) < PT_EXITED) =5 =5 //锁死任务 =5 #define PT_YIELD(pt) \ =5 do { \ =5 PT_YIELD_FLAG = 0; \ =5 LC_SET((pt)->lc); \ =5 if(PT_YIELD_FLAG == 0) { \ =5 return PT_YIELDED; \ =5 } \ =5 } while(0) =5 =5 //锁死任务直到符合条件 =5 #define PT_YIELD_UNTIL(pt, cond) \ =5 do { \ =5 PT_YIELD_FLAG = 0; \ =5 LC_SET((pt)->lc); \ =5 if((PT_YIELD_FLAG == 0) || !(cond)) { \ =5 return PT_YIELDED; \ =5 } \ =5 } while(0) =5 =5 =5 #endif /* __PT_H__ */ 4 =4 #include "al_helper.h" 1 =5 /* 2 =5 * al_helper.h 3 =5 * 4 =5 * Created on: 2023-4-20 5 =5 * Author: xukaiming 6 =5 */ 7 =5 8 =5 #ifndef _AL_HELPER_H_ =5 #define _AL_HELPER_H_ =5 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 47 =5 #include "stdint.h" =5 =5 #ifdef __cplusplus =5 extern "C" { =5 #endif =5 =5 //#define AL_STATIC static =5 #define AL_STATIC =5 #define AL_INLINE inline =5 =5 #define TASK_WITH_PT 1 =5 #define TASK_WITH_NAME 0 =5 =5 #define XDATA xdata =5 #define IDATA idata =5 #define CONST code =5 //#define CONST xdata =5 =5 =5 #ifndef UNUSED =5 #define UNUSED(x) (void)(x) =5 #endif =5 =5 enum =5 { =5 false = 0, =5 true =!false =5 }; =5 =5 #ifdef __cplusplus =5 } =5 #endif =5 =5 #endif 45 =5 5 =4 void InitKey(void); 6 =4 7 =4 #if TASK_WITH_PT 8 =4 PT_THREAD(TaskScanKey(struct pt *pt1 )) ; 9 =4 #else =4 PT_THREAD(TaskScanKey(void)) ; =4 #endif 12 =4 extern XDATA unsigned char gcKey; 13 =4 unsigned char GetKey(void) ; 14 =4 #endif 13 =3 #include "BulbId.h" 1 =4 #ifndef _BULBLD_H_ 2 =4 #define _BULBLD_H_ 3 =4 4 =4 #include "BulbId_def.h" 1 =5 #ifndef _BULBLD_DEF_H_ 2 =5 #define _BULBLD_DEF_H_ 3 =5 #include "stdint.h" 1 =6 #ifndef _STD_INT_H_ =6 #define _STD_INT_H_ =6 typedef signed long int32_t; =6 typedef unsigned long uint32_t; =6 typedef signed char int8_t; =6 typedef unsigned char uint8_t; =6 typedef signed int int16_t; =6 typedef unsigned int uint16_t; =6 #endif C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 48 4 =5 5 =5 6 =5 #define V2_PACKET_LEN 9 7 =5 8 =5 #define V2_PROTOCOL_ID_INDEX 1 9 =5 #define V2_ID_HI_INDEX 2 10 =5 #define V2_ID_LOW_INDEX 3 11 =5 #define V2_COMMAND_INDEX 4 12 =5 #define V2_ARGUMENT_INDEX 5 13 =5 14 =5 #define V2_GRP_INDEX 7 15 =5 16 =5 17 =5 #define FUT089_COLOR_OFFSET 0 18 =5 19 =5 enum MiLightFUT089Command 20 =5 { 21 =5 FUT089_ON = 0x01, 22 =5 FUT089_OFF = 0x01, 23 =5 FUT089_COLOR = 0x02, 24 =5 FUT089_BRIGHTNESS = 0x05, 25 =5 FUT089_MODE = 0x06, 26 =5 FUT089_KELVIN = 0x07, // Controls Kelvin when in White mode 27 =5 FUT089_SATURATION = 0x07 // Controls Saturation when in Color mode 28 =5 }; 29 =5 30 =5 enum MiLightFUT089Arguments 31 =5 { 32 =5 FUT089_MODE_SPEED_UP = 0x12, 33 =5 FUT089_MODE_SPEED_DOWN = 0x13, 34 =5 FUT089_WHITE_MODE = 0x14 35 =5 }; 36 =5 37 =5 enum MiLightRemoteType 38 =5 { 39 =5 REMOTE_TYPE_UNKNOWN = 255, 40 =5 REMOTE_TYPE_RGBW = 0, 41 =5 REMOTE_TYPE_CCT = 1, 42 =5 REMOTE_TYPE_RGB_CCT = 2, 43 =5 REMOTE_TYPE_RGB = 3, 44 =5 REMOTE_TYPE_FUT089 = 4, 45 =5 REMOTE_TYPE_FUT091 = 5, 46 =5 REMOTE_TYPE_FUT020 = 6 47 =5 }; 48 =5 49 =5 // MiLight CCT bulbs range from 2700K-6500K, or ~370.3-153.8 mireds. 50 =5 #define COLOR_TEMP_MAX_MIREDS 370 51 =5 #define COLOR_TEMP_MIN_MIREDS 153 52 =5 53 =5 54 =5 55 =5 enum BulbMode { 56 =5 BULB_MODE_WHITE, 57 =5 BULB_MODE_COLOR, 58 =5 BULB_MODE_SCENE, 59 =5 BULB_MODE_NIGHT 60 =5 }; 61 =5 62 =5 enum IncDIR{ 63 =5 INCREASE = 1, 64 =5 DECREASE = -1U 65 =5 }; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 49 66 =5 67 =5 68 =5 enum eCommands { 69 =5 UNPAIR , 70 =5 PAIR , 71 =5 SET_WHITE , 72 =5 NIGHT_MODE , 73 =5 LEVEL_UP , 74 =5 LEVEL_DOWN , 75 =5 TEMPERATURE_UP , 76 =5 TEMPERATURE_DOWN, 77 =5 NEXT_MODE , 78 =5 PREVIOUS_MODE , 79 =5 MODE_SPEED_DOWN , 80 =5 MODE_SPEED_UP , 81 =5 TOGGLE , 82 =5 TRANSITION 83 =5 }; 84 =5 85 =5 86 =5 enum LEDState 87 =5 { 88 =5 OFF = 0, 89 =5 ON 90 =5 }; 91 =5 92 =5 struct Result 93 =5 { 94 =5 uint8_t button_id ; 95 =5 uint8_t argument ; 96 =5 uint8_t STATE ; 97 =5 uint8_t STATUS ; 98 =5 uint8_t BRIGHTNESS ; 99 =5 uint8_t LEVEL ; 100 =5 uint8_t HUE ; 101 =5 uint8_t SATURATION ; 102 =5 uint8_t COLOR ; 103 =5 uint8_t MODE ; 104 =5 uint8_t KELVIN ; 105 =5 uint8_t TEMPERATURE ; 106 =5 uint8_t COLOR_TEMP ; 107 =5 uint8_t BULB_MODE ; 108 =5 uint8_t COMPUTED_COLOR ; 109 =5 uint8_t EFFECT ; 110 =5 uint8_t DEVICE_ID ; 111 =5 uint8_t GROUP_ID ; 112 =5 uint8_t DEVICE_TYPE ; 113 =5 uint8_t OH_COLOR ; 114 =5 uint8_t HEX_COLOR ; 115 =5 uint8_t COMMAND ; 116 =5 uint8_t COMMANDS ; 117 =5 uint8_t COLOR_MODE ; 118 =5 }; 119 =5 120 =5 struct BulbId 121 =5 { 122 =5 enum MiLightRemoteType deviceType; 123 =5 uint8_t groupId; 124 =5 uint16_t deviceId; 125 =5 uint16_t PWM_Value[5]; 126 =5 127 =5 uint8_t bENPWM :1; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 50 128 =5 uint8_t bInit :1; 129 =5 uint8_t repeatCnt; 130 =5 131 =5 struct Result result; 132 =5 }; 133 =5 #endif 5 =4 #include "al_helper.h" 1 =5 /* 2 =5 * al_helper.h 3 =5 * 4 =5 * Created on: 2023-4-20 5 =5 * Author: xukaiming 6 =5 */ 7 =5 8 =5 #ifndef _AL_HELPER_H_ =5 #define _AL_HELPER_H_ =5 =5 #include "stdint.h" =5 =5 #ifdef __cplusplus =5 extern "C" { =5 #endif =5 =5 //#define AL_STATIC static =5 #define AL_STATIC =5 #define AL_INLINE inline =5 =5 #define TASK_WITH_PT 1 =5 #define TASK_WITH_NAME 0 =5 =5 #define XDATA xdata =5 #define IDATA idata =5 #define CONST code =5 //#define CONST xdata =5 =5 =5 #ifndef UNUSED =5 #define UNUSED(x) (void)(x) =5 #endif =5 =5 enum =5 { =5 false = 0, =5 true =!false =5 }; =5 =5 #ifdef __cplusplus =5 } =5 #endif =5 =5 #endif 45 =5 6 =4 #include "pt_header.h" 1 =5 #ifndef _PT_HEADER_H_ =5 #define _PT_HEADER_H_ =5 =5 #include "pt_timer.h" =5 #include "pt-sem.h" =5 =5 #endif 8 =5 7 =4 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 51 8 =4 9 =4 void SetBulbInfo(uint8_t *pBulbInfo,uint8_t len1); 10 =4 void InitOrUninit(void* p); 11 =4 void waitForInitOrUnInit(void); 12 =4 13 =4 14 =4 #if TASK_WITH_PT 15 =4 PT_THREAD(TaskBlinLed(struct pt * pt1 )) ; 16 =4 #else =4 PT_THREAD(TaskBlinLed(void)) ; =4 #endif 19 =4 20 =4 #endif 14 =3 15 =3 typedef void (* func )(void); 16 =3 17 =3 void Idle(void); 18 =3 void Init(void); 19 =3 void InitWdt(void); 20 =3 void InitPort(void); 21 =3 22 =3 23 =3 void SysTick_Handler(void); 24 =3 void Task_SysTick_Handler(void); 25 =3 26 =3 27 =3 #if TASK_WITH_PT 28 =3 PT_THREAD(TaskWDT(struct pt * pt1 )) ; 29 =3 #else =3 PT_THREAD(TaskWDT(void )) ; =3 #endif 32 =3 int InitTaskStack(void); 33 =3 int InitTimerStack(void); 34 =3 #endif 5 =2 #endif 6 =2 5 =1 #include "task_def.h" 1 =2 #ifndef _TASK_DEF_H_ 2 =2 #define _TASK_DEF_H_ 3 =2 4 =2 5 =2 #define TASK_ID(FUNC) TASK_ID_##FUNC 6 =2 7 =2 #if(TASK_WITH_NAME) =2 #define TASK_NAME(FUNC) #FUNC =2 #else 10 =2 #define TASK_NAME(FUNC) 0 11 =2 #endif 12 =2 13 =2 14 =2 #ifndef UNUSED_PARAM =2 #define UNUSED_PARAM(p) (void)(p) =2 #endif 17 =2 18 =2 19 =2 #ifndef NULL =2 #define NULL (void*)0 =2 #endif 22 =2 23 =2 24 =2 #ifndef UNUSED =2 #define UNUSED(x) (void)(x) C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 52 =2 #endif 27 =2 28 =2 #endif 6 =1 7 =1 #ifdef __cplusplus =1 extern "C" { =1 #endif 10 =1 11 =1 12 =1 13 =1 enum TASK_ID { 14 =1 TASK_ID(TaskTimer), 15 =1 #include "cfg/taskid.h" 1 =2 TASK_ID(TaskBlinLed), 2 =2 TASK_ID(TaskWDT), 3 =2 TASK_ID(TaskScanKey), 4 =2 5 =2 16 =1 }; 17 =1 18 =1 19 =1 20 =1 enum TASK_MODE 21 =1 { 22 =1 TASK_MODE_ONCE, 23 =1 TASK_MODE_PERIOD 24 =1 }; 25 =1 26 =1 enum TIMER_MODE 27 =1 { 28 =1 TIMER_MODE_TIMER = 0, 29 =1 TIMER_MODE_ONCEROUTINE, 30 =1 TIMER_MODE_CYCROUTINE 31 =1 }; 32 =1 33 =1 void InitT0(void); 34 =1 void InitTask(void); 35 =1 void TaskProc(void) ; 36 =1 37 =1 38 =1 int8_t ActiveTask(int8_t cTaskID, int32_t lPeriod); 39 =1 int8_t SuspendTask(int8_t cTaskID); 40 =1 41 =1 void ActiveTaskNow(int8_t cTaskID, int32_t lPeriod); 42 =1 int8_t SetTaskLastTime(int8_t cTaskID,int32_t lLastTime); 43 =1 44 =1 45 =1 int8_t StartTimer2(int8_t *TimerID,int8_t cMode,uint32_t lPeriod,void (* routine)(void * Param1),void * - Param1); 46 =1 int8_t StartTimer( int8_t cMode,int32_t lPeriod,void (* routine)(void * Param1),void * - Param1); 47 =1 int8_t StopTimer ( int8_t * pcTimerNumber ); 48 =1 void StopAllTimer(void); 49 =1 50 =1 uint32_t get_system_ms(void); 51 =1 void ResetTimer(void); 52 =1 //////////////// 53 =1 54 =1 55 =1 56 =1 // function prototype 57 =1 #if TASK_WITH_PT C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 53 58 =1 PT_THREAD(TaskTimer(struct pt *pt1 )); 59 =1 #else =1 PT_THREAD(TaskTimer(void)); =1 #endif 62 =1 63 =1 #ifdef __cplusplus =1 } =1 #endif 66 =1 #endif 67 =1 11 12 #include "BulbId.h" 1 =1 #ifndef _BULBLD_H_ =1 #define _BULBLD_H_ =1 =1 #include "BulbId_def.h" =1 #include "al_helper.h" =1 #include "pt_header.h" =1 =1 =1 void SetBulbInfo(uint8_t *pBulbInfo,uint8_t len1); =1 void InitOrUninit(void* p); =1 void waitForInitOrUnInit(void); =1 =1 =1 #if TASK_WITH_PT =1 PT_THREAD(TaskBlinLed(struct pt * pt1 )) ; =1 #else =1 PT_THREAD(TaskBlinLed(void)) ; =1 #endif =1 =1 #endif 13 14 #define RF_FREQ_0 2402UL 15 //通信要注意频率 同步字 16 //服务端软件要注意Google CDN 的JQuery.js被封锁导致界面限制不正常 17 //需要下载Google CDN Replace插件 18 19 20 //发送SYNC_WORD 21 CONST Sync_Word Tx_Sync_Word = 22 { 23 0x7236, 24 0x1809, 25 }; 26 27 //发送频率 28 CONST uint16_t Tx_Freq[] = {RF_FREQ_0+0x0F,RF_FREQ_0+0x23, RF_FREQ_0+0x37}; 29 30 //接收同步字和频率 31 //接收通道 6个 32 CONST LT89XX_Sync_Word_Channel Rx_Sync_Word_Channel[] = 33 { 34 35 { 36 0x7236, 37 0x1809, 38 RF_FREQ_0+0x88-0x80 //RF_FREQ_0+0x08 39 }, 40 //Dual white FUT091 41 //8 mode FUT089 42 //99 mode C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 54 43 44 { 45 0x147A, 46 0x258B, 47 RF_FREQ_0+0x89-0x80 //RF_FREQ_0+0x09 48 }, 49 50 { 51 0x7236, 52 0x1809, 53 RF_FREQ_0+0xA7-0x80 //RF_FREQ_0+0x27 54 }, 55 56 { 57 0x147A, 58 0x258B, 59 RF_FREQ_0+0xA8-0x80 //RF_FREQ_0+0x28 60 }, 61 62 { 63 0x7236, 64 0x1809, 65 RF_FREQ_0+0xC6-0x80 //RF_FREQ_0+0x46 66 }, 67 68 { 69 0x147A, 70 0x258B, 71 RF_FREQ_0+0xC7-0x80 //RF_FREQ_0+0x47 72 }, 73 74 }; 75 76 77 void StartTaskLT89XX(void); 78 79 void SetSyncWord(uint16_t Sync_word_High,uint16_t Sync_word_Low) 80 { 81 1 LT_WriteReg2(REG36_SYNC_WORD_15_00,Sync_word_Low); //SYNC_WORD 82 1 LT_WriteReg2(REG39_SYNC_WORD_63_48,Sync_word_High); 83 1 } 84 85 void Reset_FIFO_PTR(void) 86 { 87 1 LT_WriteReg(REG52_W_R_PTR, 0x80, 0x80); //收发FIFO 指针数据复位 88 1 } 89 90 void LT8920_TxData(uint8_t* pBuf,uint8_t len ,uint16_t FreqChannel) 91 { 92 1 FreqChannel-=RF_FREQ_0; 93 1 LT_WriteReg(REG07_W_R_EN, 0x00, 00); //停止收发, 94 1 Reset_FIFO_PTR(); 95 1 LT_WriteBuf(REG50_TXRX_FIFO,pBuf,len); 96 1 LT_WriteReg(REG07_W_R_EN, 0x01, FreqChannel); //启动接收 ,写入频率 97 1 } 98 99 //void StartRxData(uint16_t FreqChannel,uint16_t Sync_word_High,uint16_t Sync_word_Low) 100 101 void StartRxData(LT89XX_Sync_Word_Channel *Key) 102 { 103 1 uint16_t FreqChannel = Key->Freq; 104 1 uint16_t Sync_word_High = Key->SyncWord.Sync_Word_63_48; C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 55 105 1 uint16_t Sync_word_Low = Key->SyncWord.Sync_Word_15_00; 106 1 FreqChannel-=RF_FREQ_0; 107 1 LT_WriteReg(REG07_W_R_EN, 0x00, 00); //停止收发, 108 1 109 1 SetSyncWord(Sync_word_High,Sync_word_Low); 110 1 Reset_FIFO_PTR(); 111 1 LT_WriteReg(REG07_W_R_EN, 0x00, FreqChannel|0x80); //启动接收 ,写入频率 112 1 //REG07_W_R_EN 收发和频率 113 1 //0X24 36 //SYNC_WORD[15:0] 114 1 //0X27 39 //SYNC_WORD[63:48] 115 1 //0X34 52 //清除收发FIFO 116 1 } 117 118 119 void StopTxRxData(void) 120 { 121 1 LT_WriteReg(REG07_W_R_EN, 0x00, 00); //停止收发, 122 1 } 123 124 125 uint8_t LT8920_RxData(uint8_t* pBuf,uint8_t *len ) 126 { 127 1 uint8_t RegH,RegL; 128 1 int result = LT_GetPKT(); 129 1 if(result) 130 1 { 131 2 LT_Readreg(48,&RegH,&RegL); 132 2 if((RegH&0x80)==0) 133 2 { 134 3 result = LT_ReadBuf(REG50_TXRX_FIFO,pBuf); 135 3 *len = result; 136 3 //收到数据退出 137 3 _nop_(); 138 3 } 139 2 } 140 1 return result; 141 1 } 142 143 144 AL_STATIC XDATA uint8_t RxData[16] = {0xEE, 0xB9, 0x81, 0x21, 0x9E, 0x7c, 0x5a, 0x60, 0x0d }; 145 146 147 PT_THREAD(TaskLT89xxRxData(struct pt *pt1, 152 LT89XX_Sync_Word_Channel *key, 152 uint8_t* pBuf, 152 uint8_t *len1, 152 uint8_t TimeOut 152 )) 153 { 154 1 static idata uint8_t Rx_TimeOut = 0; 155 1 _nop_(); 156 1 PT_BEGIN(pt1); 157 3 Rx_TimeOut = 0; 158 3 while(1) 159 3 { 160 4 _nop_(); 161 4 //StartRxData(FreqChannel,Sync_word_High,Sync_word_Low); 162 4 StartRxData(key); 163 4 *len1 = 0; 164 4 while(1) 165 4 { 166 5 _nop_(); C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 56 167 5 delay_us(200); 168 5 if(LT_GetPKT()) 169 5 { 170 6 uint8_t RegH,RegL; 171 6 LT_Readreg(48,&RegH,&RegL); 172 6 173 6 if((RegH&0x80)==0) 174 6 { 175 7 *len1 = LT_ReadBuf(REG50_TXRX_FIFO,pBuf); 176 7 DecodePackage(pBuf,*len1); 177 7 } 178 6 179 6 PT_EXIT(pt1); 180 6 //收到数据退出 181 6 } 182 5 Rx_TimeOut++; 183 5 if(Rx_TimeOut>TimeOut) //下一次是2ms后 184 5 { 185 6 PT_EXIT(pt1); 186 6 //长期没有收到数据,重新开始 187 6 } 188 5 else 189 5 { 190 6 Delay10us( ); 191 6 //PT_YIELD(pt1); //记录下次进入点,下次从此开始 192 6 } 193 5 } 194 4 195 4 } 196 3 197 3 PT_END(pt1); *** WARNING C275 IN LINE 197 OF Src\lt89xx_rf.c: expression with possibly no effect 198 1 } 199 200 void Broadcast(uint8_t* pBuf,uint8_t len) 201 { 202 1 uint16_t j = 0; 203 1 uint16_t count = 0; 204 1 uint16_t freq = 0; 205 1 uint16_t sync_word_high = 0; 206 1 uint16_t sync_word_low = 0; 207 1 StopTxRxData(); 208 1 sync_word_high = Tx_Sync_Word.Sync_Word_63_48; 209 1 sync_word_low = Tx_Sync_Word.Sync_Word_15_00; 210 1 SetSyncWord(sync_word_high,sync_word_low); 211 1 StopTxRxData(); 212 1 Reset_FIFO_PTR(); 213 1 214 1 215 1 do 216 1 { 217 2 for(j=0;j0) 258 4 { 259 5 Broadcast(RxData,len); 260 5 } 261 4 _nop_(); 262 4 } 263 3 PT_END(pt1); *** WARNING C275 IN LINE 263 OF Src\lt89xx_rf.c: expression with possibly no effect 264 1 } 265 266 #ifndef TASK_WITH_NAME #errror "please include al_helper.h" #endif 269 270 void TaskLT89xx_thread_entry(void *param ) 271 { 272 1 struct pt *pt1 ; 273 1 PT_BIND(pt1); 274 1 TaskLT89xx_thread(pt1); 275 1 UNUSED(param); *** WARNING C275 IN LINE 275 OF Src\lt89xx_rf.c: expression with possibly no effect 276 1 } 277 278 XDATA int8_t TimerLT89xxRX = -1; 279 void StartTaskLT89XX(void) 280 { 281 1 if(TimerLT89xxRX==-1) 282 1 StartTimer2(&TimerLT89xxRX,TIMER_MODE_CYCROUTINE,1,TaskLT89xx_thread_entry,NULL); 283 1 } 284 void InitLT89xxRF(void) 285 { 286 1 InitLT89xx(); C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 58 287 1 StartTaskLT89XX(); 288 1 } 289 290 291 uint8_t DecodePackage(uint8_t *pBuf,uint8_t len1) 292 { 293 1 uint8_t i; 294 1 if(len1==9) 295 1 { 296 2 xdata uint8_t Package[9]; 297 2 memcpy(Package, pBuf, len1); 298 2 decodeV2Packet(Package); 299 2 SetBulbInfo(Package,len1); 300 2 /* 301 2 printf("decode Info:"); 302 2 for(i=0;i<9;i++) 303 2 { 304 2 printf("0x%02x ",Package[i]); 305 2 } 306 2 printf("\r\n"); 307 2 */ 308 2 _nop_(); 309 2 } 310 1 311 1 UNUSED(i); *** WARNING C275 IN LINE 311 OF Src\lt89xx_rf.c: expression with possibly no effect 312 1 return len1 ; 313 1 } 314 315 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 59 ASSEMBLY LISTING OF GENERATED OBJECT CODE ; FUNCTION _SetSyncWord (BEGIN) ; SOURCE LINE # 79 0000 8E00 R MOV Sync_word_High,R6 0002 8F00 R MOV Sync_word_High+01H,R7 ;---- Variable 'Sync_word_Low' assigned to Register 'R4/R5' ---- ; SOURCE LINE # 80 ; SOURCE LINE # 81 0004 7F24 MOV R7,#024H 0006 120000 E LCALL _LT_WriteReg2 ; SOURCE LINE # 82 0009 AD00 R MOV R5,Sync_word_High+01H 000B AC00 R MOV R4,Sync_word_High 000D 7F27 MOV R7,#027H 000F 020000 E LJMP _LT_WriteReg2 ; FUNCTION _SetSyncWord (END) ; FUNCTION Reset_FIFO_PTR (BEGIN) ; SOURCE LINE # 85 ; SOURCE LINE # 86 ; SOURCE LINE # 87 0000 7B80 MOV R3,#080H 0002 7D80 MOV R5,#080H 0004 7F34 MOV R7,#034H 0006 020000 E LJMP _LT_WriteReg ; FUNCTION Reset_FIFO_PTR (END) ; FUNCTION _LT8920_TxData (BEGIN) ; SOURCE LINE # 90 0000 8B00 R MOV pBuf,R3 0002 8A00 R MOV pBuf+01H,R2 0004 8900 R MOV pBuf+02H,R1 0006 8D00 R MOV len,R5 ; SOURCE LINE # 91 ; SOURCE LINE # 92 0008 749E MOV A,#09EH 000A 2500 R ADD A,FreqChannel+01H 000C F500 R MOV FreqChannel+01H,A 000E 74F6 MOV A,#0F6H 0010 3500 R ADDC A,FreqChannel 0012 F500 R MOV FreqChannel,A ; SOURCE LINE # 93 0014 E4 CLR A 0015 FB MOV R3,A 0016 FD MOV R5,A 0017 7F07 MOV R7,#07H 0019 120000 E LCALL _LT_WriteReg ; SOURCE LINE # 94 001C 120000 R LCALL Reset_FIFO_PTR ; SOURCE LINE # 95 001F AB00 R MOV R3,pBuf 0021 AA00 R MOV R2,pBuf+01H 0023 A900 R MOV R1,pBuf+02H 0025 850000 E MOV ?_LT_WriteBuf?BYTE+04H,len 0028 7F32 MOV R7,#032H 002A 120000 E LCALL _LT_WriteBuf ; SOURCE LINE # 96 002D AB00 R MOV R3,FreqChannel+01H 002F 7D01 MOV R5,#01H 0031 7F07 MOV R7,#07H C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 60 0033 020000 E LJMP _LT_WriteReg ; FUNCTION _LT8920_TxData (END) ; FUNCTION _StartRxData (BEGIN) ; SOURCE LINE # 101 ;---- Variable 'Key' assigned to Register 'R1/R2/R3' ---- ; SOURCE LINE # 102 ; SOURCE LINE # 103 0000 900004 MOV DPTR,#04H 0003 120000 E LCALL ?C?ILDOPTR 0006 F500 R MOV FreqChannel+01H,A 0008 85F000 R MOV FreqChannel,B ; SOURCE LINE # 104 000B 900002 MOV DPTR,#02H 000E 120000 E LCALL ?C?ILDOPTR 0011 F500 R MOV Sync_word_High+01H,A 0013 85F000 R MOV Sync_word_High,B ; SOURCE LINE # 105 0016 120000 E LCALL ?C?ILDPTR 0019 F500 R MOV Sync_word_Low+01H,A 001B 85F000 R MOV Sync_word_Low,B ; SOURCE LINE # 106 001E 749E MOV A,#09EH 0020 2500 R ADD A,FreqChannel+01H 0022 F500 R MOV FreqChannel+01H,A 0024 74F6 MOV A,#0F6H 0026 3500 R ADDC A,FreqChannel 0028 F500 R MOV FreqChannel,A ; SOURCE LINE # 107 002A E4 CLR A 002B FB MOV R3,A 002C FD MOV R5,A 002D 7F07 MOV R7,#07H 002F 120000 E LCALL _LT_WriteReg ; SOURCE LINE # 109 0032 AD00 R MOV R5,Sync_word_Low+01H 0034 AC00 R MOV R4,Sync_word_Low 0036 AF00 R MOV R7,Sync_word_High+01H 0038 AE00 R MOV R6,Sync_word_High 003A 120000 R LCALL _SetSyncWord ; SOURCE LINE # 110 003D 120000 R LCALL Reset_FIFO_PTR ; SOURCE LINE # 111 0040 E500 R MOV A,FreqChannel+01H 0042 4480 ORL A,#080H 0044 FB MOV R3,A 0045 E4 CLR A 0046 FD MOV R5,A 0047 7F07 MOV R7,#07H 0049 020000 E LJMP _LT_WriteReg ; FUNCTION _StartRxData (END) ; FUNCTION StopTxRxData (BEGIN) ; SOURCE LINE # 119 ; SOURCE LINE # 120 ; SOURCE LINE # 121 0000 E4 CLR A 0001 FB MOV R3,A 0002 FD MOV R5,A 0003 7F07 MOV R7,#07H 0005 020000 E LJMP _LT_WriteReg ; FUNCTION StopTxRxData (END) C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 61 ; FUNCTION _LT8920_RxData (BEGIN) ; SOURCE LINE # 125 0000 8B00 R MOV pBuf,R3 0002 8A00 R MOV pBuf+01H,R2 0004 8900 R MOV pBuf+02H,R1 ; SOURCE LINE # 126 ; SOURCE LINE # 128 0006 120000 E LCALL LT_GetPKT 0009 750000 R MOV result,#00H 000C 8F00 R MOV result+01H,R7 ; SOURCE LINE # 129 000E E500 R MOV A,result+01H 0010 4500 R ORL A,result 0012 6034 JZ ?C0006 ; SOURCE LINE # 130 ; SOURCE LINE # 131 0014 750000 E MOV ?_LT_Readreg?BYTE+04H,#00H 0017 750000 R MOV ?_LT_Readreg?BYTE+05H,#HIGH RegL 001A 750000 R MOV ?_LT_Readreg?BYTE+06H,#LOW RegL 001D 7B00 MOV R3,#00H 001F 7A00 R MOV R2,#HIGH RegH 0021 7900 R MOV R1,#LOW RegH 0023 7F30 MOV R7,#030H 0025 120000 E LCALL _LT_Readreg ; SOURCE LINE # 132 0028 E500 R MOV A,RegH 002A 20E71B JB ACC.7,?C0006 ; SOURCE LINE # 133 ; SOURCE LINE # 134 002D AB00 R MOV R3,pBuf 002F AA00 R MOV R2,pBuf+01H 0031 A900 R MOV R1,pBuf+02H 0033 7F32 MOV R7,#032H 0035 120000 E LCALL _LT_ReadBuf 0038 750000 R MOV result,#00H 003B 8F00 R MOV result+01H,R7 ; SOURCE LINE # 135 003D AB00 R MOV R3,len 003F AA00 R MOV R2,len+01H 0041 A900 R MOV R1,len+02H 0043 EF MOV A,R7 0044 120000 E LCALL ?C?CSTPTR ; SOURCE LINE # 137 0047 00 NOP ; SOURCE LINE # 138 ; SOURCE LINE # 139 0048 ?C0006: ; SOURCE LINE # 140 0048 AF00 R MOV R7,result+01H ; SOURCE LINE # 141 004A 22 RET ; FUNCTION _LT8920_RxData (END) ; FUNCTION _TaskLT89xxRxData (BEGIN) ; SOURCE LINE # 152 0000 8B00 R MOV pt1,R3 0002 8A00 R MOV pt1+01H,R2 0004 8900 R MOV pt1+02H,R1 ; SOURCE LINE # 153 ; SOURCE LINE # 155 0006 00 NOP C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 62 ; SOURCE LINE # 156 0007 750001 R MOV PT_YIELD_FLAG,#01H 000A 120000 E LCALL ?C?ILDPTR 000D 6003 JZ $ + 5H 000F 020000 R LJMP ?C0009 0012 E5F0 MOV A,B 0014 6003 JZ $ + 5H 0016 020000 R LJMP ?C0009 0019 ?C0010: ; SOURCE LINE # 157 0019 E4 CLR A 001A 7800 R MOV R0,#LOW Rx_TimeOut 001C F6 MOV @R0,A ; SOURCE LINE # 158 ; SOURCE LINE # 159 ; SOURCE LINE # 160 001D 00 NOP ; SOURCE LINE # 162 001E AB00 R MOV R3,key 0020 AA00 R MOV R2,key+01H 0022 A900 R MOV R1,key+02H 0024 120000 R LCALL _StartRxData ; SOURCE LINE # 163 0027 AB00 R MOV R3,len1 0029 AA00 R MOV R2,len1+01H 002B A900 R MOV R1,len1+02H 002D E4 CLR A 002E 120000 E LCALL ?C?CSTPTR 0031 ?C0013: ; SOURCE LINE # 164 ; SOURCE LINE # 165 ; SOURCE LINE # 166 0031 00 NOP ; SOURCE LINE # 167 0032 7FC8 MOV R7,#0C8H 0034 7E00 MOV R6,#00H 0036 120000 E LCALL _delay_us ; SOURCE LINE # 168 0039 120000 E LCALL LT_GetPKT 003C EF MOV A,R7 003D 6043 JZ ?C0015 ; SOURCE LINE # 169 ; SOURCE LINE # 171 003F 750000 E MOV ?_LT_Readreg?BYTE+04H,#00H 0042 750000 R MOV ?_LT_Readreg?BYTE+05H,#HIGH RegL 0045 750000 R MOV ?_LT_Readreg?BYTE+06H,#LOW RegL 0048 7B00 MOV R3,#00H 004A 7A00 R MOV R2,#HIGH RegH 004C 7900 R MOV R1,#LOW RegH 004E 7F30 MOV R7,#030H 0050 120000 E LCALL _LT_Readreg ; SOURCE LINE # 173 0053 E500 R MOV A,RegH 0055 20E733 JB ACC.7,?C0058 ; SOURCE LINE # 174 ; SOURCE LINE # 175 0058 AB00 R MOV R3,pBuf 005A AA00 R MOV R2,pBuf+01H 005C A900 R MOV R1,pBuf+02H 005E 7F32 MOV R7,#032H 0060 120000 E LCALL _LT_ReadBuf 0063 AB00 R MOV R3,len1 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 63 0065 AA00 R MOV R2,len1+01H 0067 A900 R MOV R1,len1+02H 0069 EF MOV A,R7 006A 120000 E LCALL ?C?CSTPTR ; SOURCE LINE # 176 006D AB00 R MOV R3,len1 006F AA00 R MOV R2,len1+01H 0071 A900 R MOV R1,len1+02H 0073 120000 E LCALL ?C?CLDPTR 0076 FD MOV R5,A 0077 AB00 R MOV R3,pBuf 0079 AA00 R MOV R2,pBuf+01H 007B A900 R MOV R1,pBuf+02H 007D 120000 R LCALL _DecodePackage ; SOURCE LINE # 177 0080 ?C0019: ; SOURCE LINE # 179 0080 8009 SJMP ?C0058 ; SOURCE LINE # 181 0082 ?C0015: ; SOURCE LINE # 182 0082 7800 R MOV R0,#LOW Rx_TimeOut 0084 06 INC @R0 ; SOURCE LINE # 183 0085 E6 MOV A,@R0 0086 D3 SETB C 0087 9500 R SUBB A,TimeOut 0089 400F JC ?C0021 ; SOURCE LINE # 184 ; SOURCE LINE # 185 008B ?C0058: 008B AB00 R MOV R3,pt1 008D AA00 R MOV R2,pt1+01H 008F A900 R MOV R1,pt1+02H 0091 E4 CLR A 0092 F5F0 MOV B,A 0094 120000 E LCALL ?C?ISTPTR 0097 7F02 MOV R7,#02H 0099 22 RET ; SOURCE LINE # 187 009A ?C0021: ; SOURCE LINE # 189 ; SOURCE LINE # 190 009A 120000 E LCALL Delay10us ; SOURCE LINE # 192 ; SOURCE LINE # 193 009D 8092 SJMP ?C0013 ; SOURCE LINE # 195 ; SOURCE LINE # 197 009F ?C0009: 009F E4 CLR A 00A0 F500 R MOV PT_YIELD_FLAG,A 00A2 AB00 R MOV R3,pt1 00A4 AA00 R MOV R2,pt1+01H 00A6 A900 R MOV R1,pt1+02H 00A8 F5F0 MOV B,A 00AA 120000 E LCALL ?C?ISTPTR 00AD 7F03 MOV R7,#03H ; SOURCE LINE # 198 00AF ?C0020: 00AF 22 RET ; FUNCTION _TaskLT89xxRxData (END) C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 64 ; FUNCTION _Broadcast (BEGIN) ; SOURCE LINE # 200 0000 8B00 R MOV pBuf,R3 0002 8A00 R MOV pBuf+01H,R2 0004 8900 R MOV pBuf+02H,R1 0006 8D00 R MOV len,R5 ; SOURCE LINE # 201 ; SOURCE LINE # 202 0008 E4 CLR A 0009 F500 R MOV j,A 000B F500 R MOV j+01H,A ; SOURCE LINE # 203 000D F500 R MOV count,A 000F F500 R MOV count+01H,A ; SOURCE LINE # 204 0011 F500 R MOV freq,A 0013 F500 R MOV freq+01H,A ; SOURCE LINE # 205 ;---- Variable 'sync_word_high' assigned to Register 'R6/R7' ---- 0015 FF MOV R7,A 0016 FE MOV R6,A ; SOURCE LINE # 206 ;---- Variable 'sync_word_low' assigned to Register 'R4/R5' ---- 0017 FD MOV R5,A 0018 FC MOV R4,A ; SOURCE LINE # 207 0019 120000 R LCALL StopTxRxData ; SOURCE LINE # 208 001C 900000 R MOV DPTR,#Tx_Sync_Word+02H 001F E4 CLR A 0020 93 MOVC A,@A+DPTR 0021 FE MOV R6,A 0022 7401 MOV A,#01H 0024 93 MOVC A,@A+DPTR 0025 FF MOV R7,A ; SOURCE LINE # 209 0026 900000 R MOV DPTR,#Tx_Sync_Word 0029 E4 CLR A 002A 93 MOVC A,@A+DPTR 002B FC MOV R4,A 002C 7401 MOV A,#01H 002E 93 MOVC A,@A+DPTR 002F FD MOV R5,A ; SOURCE LINE # 210 0030 120000 R LCALL _SetSyncWord ; SOURCE LINE # 211 0033 120000 R LCALL StopTxRxData ; SOURCE LINE # 212 0036 120000 R LCALL Reset_FIFO_PTR 0039 ?C0028: ; SOURCE LINE # 216 ; SOURCE LINE # 217 0039 E4 CLR A 003A F500 R MOV j,A 003C F500 R MOV j+01H,A 003E ?C0029: ; SOURCE LINE # 220 ; SOURCE LINE # 221 003E E500 R MOV A,j+01H 0040 25E0 ADD A,ACC 0042 FF MOV R7,A C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 65 0043 E500 R MOV A,j 0045 33 RLC A 0046 FE MOV R6,A 0047 7400 R MOV A,#LOW Tx_Freq 0049 2F ADD A,R7 004A F582 MOV DPL,A 004C 7400 R MOV A,#HIGH Tx_Freq 004E 3E ADDC A,R6 004F F583 MOV DPH,A 0051 E4 CLR A 0052 93 MOVC A,@A+DPTR 0053 F500 R MOV freq,A 0055 7401 MOV A,#01H 0057 93 MOVC A,@A+DPTR 0058 F500 R MOV freq+01H,A ; SOURCE LINE # 223 005A AB00 R MOV R3,pBuf 005C AA00 R MOV R2,pBuf+01H 005E A900 R MOV R1,pBuf+02H 0060 850000 R MOV ?_LT8920_TxData?BYTE+04H,freq 0063 F500 R MOV ?_LT8920_TxData?BYTE+05H,A 0065 AD00 R MOV R5,len 0067 120000 R LCALL _LT8920_TxData ; SOURCE LINE # 224 006A 00 NOP 006B 00 NOP 006C 00 NOP 006D ?C0032: ; SOURCE LINE # 226 006D 120000 E LCALL LT_GetPKT 0070 EF MOV A,R7 0071 7003 JNZ ?C0033 ; SOURCE LINE # 227 ; SOURCE LINE # 228 0073 00 NOP ; SOURCE LINE # 229 0074 80F7 SJMP ?C0032 0076 ?C0033: ; SOURCE LINE # 230 0076 00 NOP 0077 00 NOP 0078 00 NOP ; SOURCE LINE # 231 0079 0500 R INC j+01H 007B E500 R MOV A,j+01H 007D 7002 JNZ ?C0055 007F 0500 R INC j 0081 ?C0055: 0081 C3 CLR C 0082 9403 SUBB A,#03H 0084 E500 R MOV A,j 0086 9400 SUBB A,#00H 0088 40B4 JC ?C0029 008A ?C0030: ; SOURCE LINE # 232 008A 0500 R INC count+01H 008C E500 R MOV A,count+01H 008E 7002 JNZ ?C0056 0090 0500 R INC count 0092 ?C0056: ; SOURCE LINE # 233 0092 00 NOP C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 66 ; SOURCE LINE # 234 ; SOURCE LINE # 235 0093 C3 CLR C 0094 9421 SUBB A,#021H 0096 E500 R MOV A,count 0098 9400 SUBB A,#00H 009A 409D JC ?C0028 ; SOURCE LINE # 236 009C E4 CLR A 009D F500 R MOV count,A 009F F500 R MOV count+01H,A ; SOURCE LINE # 237 00A1 22 RET ; FUNCTION _Broadcast (END) ; FUNCTION _TaskLT89xx_thread (BEGIN) ; SOURCE LINE # 239 0000 8B00 R MOV pt1,R3 0002 8A00 R MOV pt1+01H,R2 0004 8900 R MOV pt1+02H,R1 ; SOURCE LINE # 240 ; SOURCE LINE # 241 0006 750009 R MOV len,#09H ; SOURCE LINE # 244 0009 00 NOP ; SOURCE LINE # 245 000A 750001 R MOV PT_YIELD_FLAG,#01H 000D 120000 E LCALL ?C?ILDPTR 0010 FF MOV R7,A 0011 E5F0 MOV A,B 0013 6003 JZ $ + 5H 0015 020000 R LJMP ?C0035 0018 EF MOV A,R7 0019 2403 ADD A,#03H 001B 6025 JZ ?C0043 001D 24FD ADD A,#0FDH 001F 6003 JZ $ + 5H 0021 020000 R LJMP ?C0035 0024 ?C0036: ; SOURCE LINE # 247 0024 E4 CLR A 0025 900000 R MOV DPTR,#i 0028 F0 MOVX @DPTR,A 0029 A3 INC DPTR 002A F0 MOVX @DPTR,A ; SOURCE LINE # 249 002B 900000 R MOV DPTR,#i 002E F0 MOVX @DPTR,A 002F A3 INC DPTR 0030 F0 MOVX @DPTR,A 0031 ?C0037: ; SOURCE LINE # 250 ; SOURCE LINE # 251 0031 E4 CLR A 0032 F500 R MOV ptRxData,A 0034 F500 R MOV ptRxData+01H,A ; SOURCE LINE # 253 0036 AB00 R MOV R3,pt1 0038 AA00 R MOV R2,pt1+01H 003A A900 R MOV R1,pt1+02H 003C 75F0FD MOV B,#0FDH 003F 120000 E LCALL ?C?ISTPTR C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 67 0042 ?C0043: 0042 900000 R MOV DPTR,#i 0045 E0 MOVX A,@DPTR 0046 FE MOV R6,A 0047 A3 INC DPTR 0048 E0 MOVX A,@DPTR 0049 FF MOV R7,A 004A 7C00 MOV R4,#00H 004C 7D06 MOV R5,#06H 004E 120000 E LCALL ?C?IMUL 0051 7400 R MOV A,#LOW Rx_Sync_Word_Channel 0053 2F ADD A,R7 0054 F9 MOV R1,A 0055 7400 R MOV A,#HIGH Rx_Sync_Word_Channel 0057 3E ADDC A,R6 0058 7500FF R MOV ?_TaskLT89xxRxData?BYTE+03H,#0FFH 005B F500 R MOV ?_TaskLT89xxRxData?BYTE+04H,A 005D 8900 R MOV ?_TaskLT89xxRxData?BYTE+05H,R1 005F 750001 R MOV ?_TaskLT89xxRxData?BYTE+06H,#01H 0062 750000 R MOV ?_TaskLT89xxRxData?BYTE+07H,#HIGH RxData 0065 750000 R MOV ?_TaskLT89xxRxData?BYTE+08H,#LOW RxData 0068 750000 R MOV ?_TaskLT89xxRxData?BYTE+09H,#00H 006B 750000 R MOV ?_TaskLT89xxRxData?BYTE+0AH,#HIGH len 006E 750000 R MOV ?_TaskLT89xxRxData?BYTE+0BH,#LOW len 0071 750064 R MOV ?_TaskLT89xxRxData?BYTE+0CH,#064H 0074 7B00 MOV R3,#00H 0076 7A00 R MOV R2,#HIGH ptRxData 0078 7900 R MOV R1,#LOW ptRxData 007A 120000 R LCALL _TaskLT89xxRxData 007D C3 CLR C 007E EF MOV A,R7 007F 6480 XRL A,#080H 0081 9482 SUBB A,#082H 0083 5002 JNC ?C0045 0085 8001 SJMP ?C0046 0087 ?C0045: 0087 C3 CLR C 0088 ?C0046: 0088 5003 JNC ?C0041 008A 7F00 MOV R7,#00H 008C 22 RET 008D ?C0041: ; SOURCE LINE # 256 008D 120000 E LCALL Delay10us ; SOURCE LINE # 257 0090 E500 R MOV A,len 0092 D3 SETB C 0093 9400 SUBB A,#00H 0095 400B JC ?C0048 ; SOURCE LINE # 258 ; SOURCE LINE # 259 0097 7B01 MOV R3,#01H 0099 7A00 R MOV R2,#HIGH RxData 009B 7900 R MOV R1,#LOW RxData 009D AD00 R MOV R5,len 009F 120000 R LCALL _Broadcast ; SOURCE LINE # 260 00A2 ?C0048: ; SOURCE LINE # 261 00A2 00 NOP ; SOURCE LINE # 262 00A3 900000 R MOV DPTR,#i+01H C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 68 00A6 E0 MOVX A,@DPTR 00A7 04 INC A 00A8 F0 MOVX @DPTR,A 00A9 7006 JNZ ?C0057 00AB 900000 R MOV DPTR,#i 00AE E0 MOVX A,@DPTR 00AF 04 INC A 00B0 F0 MOVX @DPTR,A 00B1 ?C0057: 00B1 C3 CLR C 00B2 900000 R MOV DPTR,#i+01H 00B5 E0 MOVX A,@DPTR 00B6 9406 SUBB A,#06H 00B8 900000 R MOV DPTR,#i 00BB E0 MOVX A,@DPTR 00BC 9400 SUBB A,#00H 00BE 5003 JNC $ + 5H 00C0 020000 R LJMP ?C0037 ; SOURCE LINE # 263 00C3 ?C0035: 00C3 E4 CLR A 00C4 F500 R MOV PT_YIELD_FLAG,A 00C6 AB00 R MOV R3,pt1 00C8 AA00 R MOV R2,pt1+01H 00CA A900 R MOV R1,pt1+02H 00CC F5F0 MOV B,A 00CE 120000 E LCALL ?C?ISTPTR 00D1 7F03 MOV R7,#03H ; SOURCE LINE # 264 00D3 ?C0047: 00D3 22 RET ; FUNCTION _TaskLT89xx_thread (END) ; FUNCTION _TaskLT89xx_thread_entry (BEGIN) ; SOURCE LINE # 270 0000 8B00 R MOV param,R3 0002 8A00 R MOV param+01H,R2 0004 8900 R MOV param+02H,R1 ; SOURCE LINE # 271 ; SOURCE LINE # 272 ; SOURCE LINE # 273 0006 7B00 MOV R3,#00H 0008 7A00 R MOV R2,#HIGH pt_hide 000A 7900 R MOV R1,#LOW pt_hide ;---- Variable 'pt1' assigned to Register 'R1/R2/R3' ---- ; SOURCE LINE # 274 000C 020000 R LJMP _TaskLT89xx_thread ; FUNCTION _TaskLT89xx_thread_entry (END) ; FUNCTION StartTaskLT89XX (BEGIN) ; SOURCE LINE # 279 ; SOURCE LINE # 280 ; SOURCE LINE # 281 0000 900000 R MOV DPTR,#TimerLT89xxRX 0003 E0 MOVX A,@DPTR 0004 B4FF24 CJNE A,#0FFH,?C0051 ; SOURCE LINE # 282 0007 E4 CLR A 0008 750001 E MOV ?_StartTimer2?BYTE+07H,#01H 000B F500 E MOV ?_StartTimer2?BYTE+06H,A 000D F500 E MOV ?_StartTimer2?BYTE+05H,A 000F F500 E MOV ?_StartTimer2?BYTE+04H,A C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 69 0011 7500FF E MOV ?_StartTimer2?BYTE+08H,#0FFH 0014 750000 R MOV ?_StartTimer2?BYTE+09H,#HIGH _TaskLT89xx_thread_entry 0017 750000 R MOV ?_StartTimer2?BYTE+0AH,#LOW _TaskLT89xx_thread_entry 001A F500 E MOV ?_StartTimer2?BYTE+0BH,A 001C F500 E MOV ?_StartTimer2?BYTE+0CH,A 001E F500 E MOV ?_StartTimer2?BYTE+0DH,A 0020 7B01 MOV R3,#01H 0022 7A00 R MOV R2,#HIGH TimerLT89xxRX 0024 7900 R MOV R1,#LOW TimerLT89xxRX 0026 7D02 MOV R5,#02H 0028 120000 E LCALL _StartTimer2 ; SOURCE LINE # 283 002B ?C0051: 002B 22 RET ; FUNCTION StartTaskLT89XX (END) ; FUNCTION InitLT89xxRF (BEGIN) ; SOURCE LINE # 284 ; SOURCE LINE # 285 ; SOURCE LINE # 286 0000 120000 E LCALL InitLT89xx ; SOURCE LINE # 287 0003 020000 R LJMP StartTaskLT89XX ; FUNCTION InitLT89xxRF (END) ; FUNCTION _DecodePackage (BEGIN) ; SOURCE LINE # 291 0000 8D00 R MOV len1,R5 ;---- Variable 'pBuf' assigned to Register 'R1/R2/R3' ---- ; SOURCE LINE # 292 ; SOURCE LINE # 294 0002 E500 R MOV A,len1 0004 6409 XRL A,#09H 0006 7021 JNZ ?C0053 ; SOURCE LINE # 295 ; SOURCE LINE # 297 0008 AF00 R MOV R7,len1 000A FE MOV R6,A 000B 7800 R MOV R0,#LOW Package 000D 7C00 R MOV R4,#HIGH Package 000F 7D01 MOV R5,#01H 0011 120000 E LCALL ?C?COPY ; SOURCE LINE # 298 0014 7B01 MOV R3,#01H 0016 7A00 R MOV R2,#HIGH Package 0018 7900 R MOV R1,#LOW Package 001A 120000 E LCALL _decodeV2Packet ; SOURCE LINE # 299 001D 7B01 MOV R3,#01H 001F 7A00 R MOV R2,#HIGH Package 0021 7900 R MOV R1,#LOW Package 0023 AD00 R MOV R5,len1 0025 120000 E LCALL _SetBulbInfo ; SOURCE LINE # 308 0028 00 NOP ; SOURCE LINE # 309 0029 ?C0053: ; SOURCE LINE # 311 ; SOURCE LINE # 312 0029 AF00 R MOV R7,len1 ; SOURCE LINE # 313 002B 22 RET C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 70 ; FUNCTION _DecodePackage (END) C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 71 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== uint16_t . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2 OPREG. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FFH 1 MODE_SPEED_UP. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 LEVEL_UP . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_FLAG_WCOL. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_LNIB. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1 UART0_Flag_Typedef . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 SSDAT. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009FH 1 P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1 FUT089_SATURATION. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PresSel_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1 Result . . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 24 button_id. . . . . . . . . . . . . . MEMBER ----- U_CHAR 0000H 1 argument . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0001H 1 STATE. . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0002H 1 STATUS . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0003H 1 BRIGHTNESS . . . . . . . . . . . . . MEMBER ----- U_CHAR 0004H 1 LEVEL. . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0005H 1 HUE. . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0006H 1 SATURATION . . . . . . . . . . . . . MEMBER ----- U_CHAR 0007H 1 COLOR. . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0008H 1 MODE . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0009H 1 KELVIN . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 000AH 1 TEMPERATURE. . . . . . . . . . . . . MEMBER ----- U_CHAR 000BH 1 COLOR_TEMP . . . . . . . . . . . . . MEMBER ----- U_CHAR 000CH 1 BULB_MODE. . . . . . . . . . . . . . MEMBER ----- U_CHAR 000DH 1 COMPUTED_COLOR . . . . . . . . . . . MEMBER ----- U_CHAR 000EH 1 EFFECT . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 000FH 1 DEVICE_ID. . . . . . . . . . . . . . MEMBER ----- U_CHAR 0010H 1 GROUP_ID . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0011H 1 DEVICE_TYPE. . . . . . . . . . . . . MEMBER ----- U_CHAR 0012H 1 OH_COLOR . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0013H 1 HEX_COLOR. . . . . . . . . . . . . . MEMBER ----- U_CHAR 0014H 1 COMMAND. . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0015H 1 COMMANDS . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0016H 1 COLOR_MODE . . . . . . . . . . . . . MEMBER ----- U_CHAR 0017H 1 NIGHT_MODE . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 MiLightFUT089Arguments . . . . . . . . * TAG * ----- ENUM ----- ----- UART0_RX_ENABLE. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EUART. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1 TMCON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008EH 1 UART1_RX_ENABLE. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1 SPI_BAUDRATEPRESCALER_32 . . . . . . . E_CONST ----- U_CHAR ----- 1 FlagStatus . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 RESET. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 OTCON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008FH 1 TIM0_MODE_TIMER. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_OutputState_TypeDef. . . . . . . . TYPEDEF ----- U_CHAR ----- 1 EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1 T2 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1 REMOTE_TYPE_RGBW . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 REMOTE_TYPE_UNKNOWN. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 FUT089_MODE_SPEED_DOWN . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM1_MODE_TIMER. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 72 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== SPI_BAUDRATEPRESCALER_16 . . . . . . . E_CONST ----- U_CHAR ----- 1 int32_t. . . . . . . . . . . . . . . . TYPEDEF ----- LONG ----- 4 PWMCON0. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D2H 1 PREVIOUS_MODE. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM2_MODE_TIMER. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_CLOCKPOLARITY_LOW. . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWMCON1. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DAH 1 TASK_ID_TaskWDT. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_POLARITY_INVERT. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_0 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 int16_t. . . . . . . . . . . . . . . . TYPEDEF ----- INT ----- 2 TIMER_MODE . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- BULB_MODE_NIGHT. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 MiLightFUT089Command . . . . . . . . . * TAG * ----- ENUM ----- ----- SPI_BAUDRATEPRESCALER_64 . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_1 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_Timebase_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAP_MEMTYPE_EEPROM . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_2 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EXTI_TRIGGER_DISABLE . . . . . . . . . E_CONST ----- U_CHAR ----- 1 pt_sem . . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 2 count. . . . . . . . . . . . . . . . MEMBER ----- U_INT 0000H 2 UART0_Mode_Typedef . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 GPIO_PIN_3 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ERROR. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 _TaskLT89xx_thread_entry . . . . . . . PUBLIC CODE PROC 0000H ----- param. . . . . . . . . . . . . . . . AUTO DATA VOID_PTR 0000H 3 pt_hide. . . . . . . . . . . . . . . STATIC IDATA STRUCT 0001H 2 pt1. . . . . . . . . . . . . . . . . * REG * DATA PTR 0001H 3 TWI_FLAG_TWIF. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_4 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 false. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_PRESSEL_FOSC_D32 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_OPERATERANGE_ONLY_EEPROM . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_5 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EADC . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AEH 1 IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1 BulbMode . . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- BULB_MODE_COLOR. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_6 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TRANSITION . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 FUT089_ON. . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM2_Flag_TypeDef. . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 TIM2_FLAG_EXF2 . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART1_RX_TypeDef . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 SPI_FirstBit_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 GPIO_PIN_7 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 OPINX. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FEH 1 BULB_MODE_WHITE. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_TIMEBASE_62_5MS. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2 IAP_MEMTYPE_IFB. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_MODE_OUT_PP . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 LT_GetPKT. . . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- CP . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1 MODE_SPEED_DOWN. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 LEVEL_DOWN . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 73 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== PWM_ComplementaryOutputPin_TypeDef . . TYPEDEF ----- U_CHAR ----- 1 SYSCLK_PresSel_TypeDef . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 ErrorStatus. . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 EXF2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CEH 1 CHKSUMH. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FDH 1 IAP_OperateRange_TypeDef . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAP_MemType_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 XTIPLL_HIGHER_THAN_12M . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWMDTY0. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D5H 1 _Broadcast . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- pBuf . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3 len. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0003H 1 j. . . . . . . . . . . . . . . . . . AUTO DATA U_INT 0004H 2 count. . . . . . . . . . . . . . . . AUTO DATA U_INT 0006H 2 freq . . . . . . . . . . . . . . . . AUTO DATA U_INT 0008H 2 sync_word_high . . . . . . . . . . . * REG * DATA U_INT 0006H 2 sync_word_low. . . . . . . . . . . . * REG * DATA U_INT 0004H 2 FUT089_MODE. . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_BaudRatePrescaler_TypeDef. . . . . TYPEDEF ----- U_CHAR ----- 1 OPERCON. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00EFH 1 PWMDTY1. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D6H 1 P0PH . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009BH 1 IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1 TIM0_PRESSEL_FSYS_D1 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 CHKSUML. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FCH 1 PWMDTY2. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D7H 1 P1PH . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0092H 1 InitLT89xx . . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- TIM1_PRESSEL_FSYS_D1 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EXTI0x_Typedef . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1 PWMDTY3. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DCH 1 P2PH . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A2H 1 TIM2_PRESSEL_FSYS_D1 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EXTI1x_Typedef . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 INT0 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SUCCESS. . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1 PWMDTY4. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DDH 1 _LT8920_RxData . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- pBuf . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3 len. . . . . . . . . . . . . . . . . AUTO DATA PTR 0003H 3 RegH . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0006H 1 RegL . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0007H 1 result . . . . . . . . . . . . . . . AUTO DATA INT 0008H 2 TASK_ID_TaskTimer. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ON . . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 eCommands. . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- TWI_FLAG_GCA . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_VREF_VDD . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_OPERATERANGE__ALL_CODEREGION . . . E_CONST ----- U_CHAR ----- 1 EXTI2x_Typedef . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 INT1 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1 PWMDTY5. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DEH 1 _LT_ReadBuf. . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- Sync_Word. . . . . . . . . . . . . . . TYPEDEF ----- STRUCT ----- 4 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 74 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== Sync_Word_15_00. . . . . . . . . . . MEMBER ----- U_INT 0000H 2 Sync_Word_63_48. . . . . . . . . . . MEMBER ----- U_INT 0002H 2 INT2 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IPT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1 PWMDTY6. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DFH 1 _LT8920_TxData . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- pBuf . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3 len. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0003H 1 FreqChannel. . . . . . . . . . . . . AUTO DATA U_INT 0004H 2 FunctionalState. . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IPT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1 SPI_TXE_ENINT. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IPT2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BDH 1 GPIO_MODE_IN_HI. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 HIGH . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TASK_ID. . . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- SPI_TXE_INT_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 RCAP2H . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CBH 1 SPI_MODE_MASTER. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0081H 1 timer. . . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 8 start. . . . . . . . . . . . . . . . MEMBER ----- U_LONG 0000H 4 interval . . . . . . . . . . . . . . MEMBER ----- U_LONG 0004H 4 lc_t . . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2 PWM_OUTPUTSTATE_DISABLE. . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM0 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1 TIM0_CountMode_TypeDef . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 TIM0_MODE_COUNTER. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SSI_PinSelection_P21P22P23 . . . . . . E_CONST ----- U_CHAR ----- 1 PWM1 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_Cycle_6Cycle . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ITStatus . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAPADE . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F4H 1 RCAP2L . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CAH 1 TIM1_CountMode_TypeDef . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 TIM1_MODE_COUNTER. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM2 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D3. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM2_CountMode_TypeDef . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 TIM2_MODE_COUNTER. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM3 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D4. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM4 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_TIMEBASE_500MS . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ENABLE . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BitStatus. . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAPADH . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F3H 1 PWMDTYA. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D4H 1 PWM_OutputPin_TypeDef. . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 PWM5 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D6. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWMDTYB. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DBH 1 ADCCON . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00ADH 1 PWM6 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_TIMEBASE_250MS . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SSI_PinSelection_P10P27P26 . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 75 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== BTM_TIMEBASE_125MS . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D8. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PAIR . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_ClockPolarity_TypeDef. . . . . . . TYPEDEF ----- U_CHAR ----- 1 RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1 IAPADL . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F2H 1 func . . . . . . . . . . . . . . . . . TYPEDEF ----- PTR ----- 3 REMOTE_TYPE_CCT. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 _LT_WriteBuf . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- PWM_PresSel_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 GPIO_Mode_TypeDef. . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 bool . . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 REMOTE_TYPE_RGB. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 _LT_WriteReg . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- UART0_RX_Typedef . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAP_MEMTYPE_ROM. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1 UART0_Mode_8B. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P00. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0080H 1 P10. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1 P01. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0081H 1 SBUF . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0099H 1 PCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0087H 1 ADC_Cycle_TypeDef. . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 P20. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A0H 1 P11. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1 GPIO_PIN_ALL . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EXTI_TriggerMode_Typedef . . . . . . . TYPEDEF ----- U_CHAR ----- 1 P21. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A1H 1 P12. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0092H 1 TimerLT89xxRX. . . . . . . . . . . . . PUBLIC XDATA CHAR 0002H 1 InitLT89xxRF . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- P22. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A2H 1 P13. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0093H 1 SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1 BulbId . . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 40 deviceType . . . . . . . . . . . . . MEMBER ----- U_CHAR 0000H 1 groupId. . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0001H 1 deviceId . . . . . . . . . . . . . . MEMBER ----- U_INT 0002H 2 PWM_Value. . . . . . . . . . . . . . MEMBER ----- ARRAY 0004H 10 bENPWM . . . . . . . . . . . . . . . MEMBER ----- FIELD 000EH 1.0 bInit. . . . . . . . . . . . . . . . MEMBER ----- FIELD 000EH 1.1 repeatCnt. . . . . . . . . . . . . . MEMBER ----- U_CHAR 000FH 1 result . . . . . . . . . . . . . . . MEMBER ----- STRUCT 0010H 24 TIM2_COUNTDIRECTION_UP . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_MODE_IN_PU. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_CHANNEL_0. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P23. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A3H 1 P14. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0094H 1 IAPDAT . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F5H 1 TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1 TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1 SPI_CLOCKPOLARITY_HIGH . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_CHANNEL_1. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P24. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A4H 1 P15. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0095H 1 IPINT0 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 76 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== TASK_ID_TaskBlinLed. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_31_5MS. . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_CHANNEL_2. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P25. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A5H 1 P16. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0096H 1 IPINT1 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1 SPI_BAUDRATEPRESCALER_512. . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_CHANNEL_3. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P26. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A6H 1 P17. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0097H 1 SSCON0 . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009DH 1 ADC_CHANNEL_4. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P27. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A7H 1 SSCON1 . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009EH 1 UART0_PinSelection_TypeDef . . . . . . TYPEDEF ----- U_CHAR ----- 1 ADC_CHANNEL_5. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SSCON2 . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0095H 1 TIMER_MODE_ONCEROUTINE . . . . . . . . E_CONST ----- U_CHAR ----- 1 TASK_MODE. . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- WDT_OverflowTime_62_5MS. . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_FLAG_TXE . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_BAUDRATEPRESCALER_128. . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_CHANNEL_6. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SSI_PinSelection_TypeDef . . . . . . . TYPEDEF ----- U_CHAR ----- 1 Tx_Freq. . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 0004H 6 Delay10us. . . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- SPI_BAUDRATEPRESCALER_256. . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_CHANNEL_VDD_D4 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 StopTxRxData . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- FUT089_KELVIN. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_3_94MS. . . . . . . . E_CONST ----- U_CHAR ----- 1 DECREASE . . . . . . . . . . . . . . . E_CONST ----- CHAR ----- 1 _LT_Readreg. . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- BTM_TIMEBASE_31_25MS . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAPCTL . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F6H 1 IE1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A9H 1 SYSCLK_PRESSEL_FOSC_D1 . . . . . . . . E_CONST ----- U_CHAR ----- 1 SYSCLK_PRESSEL_FOSC_D2 . . . . . . . . E_CONST ----- U_CHAR ----- 1 TRUE . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 B. . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F0H 1 TASK_MODE_ONCE . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 true . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SYSCLK_PRESSEL_FOSC_D4 . . . . . . . . E_CONST ----- U_CHAR ----- 1 _SetBulbInfo . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- TOGGLE . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_7_88MS. . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_Polarity_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 LVR_Config_TypeDef . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAPKEY . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F1H 1 BTMCON . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CEH 1 TIM2_FLAG_TF2. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 XTIPLL_Range_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 GPIO_TypeDef . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 PWMCFG . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D1H 1 RxData . . . . . . . . . . . . . . . . PUBLIC XDATA ARRAY 0003H 16 NEXT_MODE. . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_ClockPhase_TypeDef . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 77 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== ACC. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00E0H 1 _StartTimer2 . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- MiLightRemoteType. . . . . . . . . . . * TAG * ----- ENUM ----- ----- TIM2_CountDirection_TypeDef. . . . . . TYPEDEF ----- U_CHAR ----- 1 EXTI_TRIGGER_RISE_FALL . . . . . . . . E_CONST ----- U_CHAR ----- 1 ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1 TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1 ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1 ADCCFG0. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00ABH 1 IP1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B9H 1 Tx_Sync_Word . . . . . . . . . . . . . PUBLIC CODE STRUCT 0000H 4 TASK_ID_TaskScanKey. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1 ET2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ADH 1 ADCCFG1. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00AAH 1 TIM0_PRESSEL_FSYS_D12. . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT00. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1 TF2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CFH 1 TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1 INCREASE . . . . . . . . . . . . . . . E_CONST ----- CHAR ----- 1 _decodeV2Packet. . . . . . . . . . . . EXTERN CODE PROC ----- ----- TIM1_PRESSEL_FSYS_D12. . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT10. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT01. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TH1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008DH 1 FUT089_OFF . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM2_PRESSEL_FSYS_D12. . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM0PWM3 . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT11. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1 TH2. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CDH 1 TIM2_COUNTDIRECTION_DOWN_UP. . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_Pin_TypeDef . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 INT21. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT12. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 uint8_t. . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1 SET_WHITE. . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_RX_DISABLE . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM1PWM4 . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT22. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT13. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1 TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1 UNPAIR . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_CLOCK_TIMER1 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART1_RX_DISABLE . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_MODE_SLAVE . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 XTIPLL_UNDER_12M . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT23. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT14. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1 WDTCON . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CFH 1 TL1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008BH 1 WDT_OverflowTime_TypeDef . . . . . . . TYPEDEF ----- U_CHAR ----- 1 UART0_CLOCK_TIMER2 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 78 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== PWM2PWM5 . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT24. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT15. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1 TL2. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CCH 1 WDT_OverflowTime_500MS . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_BAUDRATEPRESCALER_4. . . . . . . . E_CONST ----- U_CHAR ----- 1 INT25. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT16. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM0_PresSel_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 ADC_Vref_TypeDef . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 INT26. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_250MS . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM1_PresSel_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 PWM_POLARITY_NON_INVERT. . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_OPERATERANGE__LAST_1K_CODEREGION . E_CONST ----- U_CHAR ----- 1 INT27. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1 REMOTE_TYPE_FUT020 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_125MS . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM2_PresSel_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1 RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1 SPI_CLOCKPHASE_1EDGE . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_BAUDRATEPRESCALER_8. . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_OUTPUTSTATE_ENABLE . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D12 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1 IPUART . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1 SPI_CLOCKPHASE_2EDGE . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EXTI_TRIGGER_FALL_ONLY . . . . . . . . E_CONST ----- U_CHAR ----- 1 TR2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CAH 1 _StartRxData . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- Key. . . . . . . . . . . . . . . . . * REG * DATA PTR 0001H 3 FreqChannel. . . . . . . . . . . . . AUTO DATA U_INT 0000H 2 Sync_word_High . . . . . . . . . . . AUTO DATA U_INT 0002H 2 Sync_word_Low. . . . . . . . . . . . AUTO DATA U_INT 0004H 2 TEMPERATURE_UP . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_Mode_10B . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_PRESSEL_FOSC_D1. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_Cycle_36Cycle. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D32 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 int8_t . . . . . . . . . . . . . . . . TYPEDEF ----- CHAR ----- 1 LEDState . . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- UART0_Mode_11B . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART1_Mode_10B . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_PRESSEL_FOSC_D2. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_VREF_2_4V. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D24 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 OFF. . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 _delay_us. . . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- UART1_Mode_11B . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D16 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWMPRD . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D3H 1 DPH. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0083H 1 REMOTE_TYPE_FUT091 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 LVR_INVALID. . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 79 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== LT89XX_Sync_Word_Channel . . . . . . . TYPEDEF ----- STRUCT ----- 6 SyncWord . . . . . . . . . . . . . . MEMBER ----- STRUCT 0000H 4 Freq . . . . . . . . . . . . . . . . MEMBER ----- U_INT 0004H 2 PWM_PRESSEL_FOSC_D8. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO0. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 DPL. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0082H 1 TASK_MODE_PERIOD . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 _LT_WriteReg2. . . . . . . . . . . . . EXTERN CODE PROC ----- ----- GPIO1. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EINT0. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1 P0CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009AH 1 _TaskLT89xxRxData. . . . . . . . . . . PUBLIC CODE PROC 0000H ----- pt1. . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3 key. . . . . . . . . . . . . . . . . AUTO DATA PTR 0003H 3 pBuf . . . . . . . . . . . . . . . . AUTO DATA PTR 0006H 3 len1 . . . . . . . . . . . . . . . . AUTO DATA PTR 0009H 3 TimeOut. . . . . . . . . . . . . . . AUTO DATA U_CHAR 000CH 1 RegH . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 000EH 1 RegL . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 000FH 1 PT_YIELD_FLAG. . . . . . . . . . . . AUTO DATA CHAR 000DH 1 Rx_TimeOut . . . . . . . . . . . . . STATIC IDATA U_CHAR 0000H 1 SSI_Flag_TypeDef . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAP_HOLDTIME_3000US. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO2. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EINT1. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1 IPADC. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BEH 1 INT0F. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00BAH 1 P1CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0091H 1 Reset_FIFO_PTR . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- EXEN2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CBH 1 INT1F. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00BCH 1 P2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A1H 1 pt . . . . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 2 lc . . . . . . . . . . . . . . . . . MEMBER ----- U_INT 0000H 2 INT2F. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C6H 1 REMOTE_TYPE_FUT089 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_FLAG_RI. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_HOLDTIME_1500US. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_HOLDTIME_6000US. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1 UART1_FLAG_RI. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 Rx_Sync_Word_Channel . . . . . . . . . PUBLIC CODE ARRAY 000AH 36 UART0_FLAG_TI. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADCVH. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00AFH 1 T2MOD. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C9H 1 T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1 UART1_FLAG_TI. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_OPERATERANGE__LAST_0_5K_CODEREGION E_CONST ----- U_CHAR ----- 1 REMOTE_TYPE_RGB_CCT. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_PinSelection_P11P20. . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_Mode_TypeDef . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 EXTIx_Typedef. . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 StartTaskLT89XX. . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- ADCVL. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00AEH 1 _SetSyncWord . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- Sync_word_High . . . . . . . . . . . AUTO DATA U_INT 0000H 2 Sync_word_Low. . . . . . . . . . . . * REG * DATA U_INT 0004H 2 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 80 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== UART1_Mode_TypeDef . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAP_HoldTime_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 EXTI_TRIGGER_RISE_ONLY . . . . . . . . E_CONST ----- U_CHAR ----- 1 SET. . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 FALSE. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIMER_MODE_TIMER . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TEMPERATURE_DOWN . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_TXE_DISINT . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT0R. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00BBH 1 INT1R. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00BDH 1 FUT089_BRIGHTNESS. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_15_75MS . . . . . . . E_CONST ----- U_CHAR ----- 1 LVR_2_3V . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PriorityStatus . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 INT2R. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C7H 1 FUT089_MODE_SPEED_UP . . . . . . . . . E_CONST ----- U_CHAR ----- 1 LVR_4_3V . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SYSCLK_PRESSEL_FOSC_D12. . . . . . . . E_CONST ----- U_CHAR ----- 1 LOW. . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 FUT089_COLOR . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_Clock_Typedef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 UART0_PinSelection_P15P16. . . . . . . E_CONST ----- U_CHAR ----- 1 TIMER_MODE_CYCROUTINE. . . . . . . . . E_CONST ----- U_CHAR ----- 1 LT89XX_CFG . . . . . . . . . . . . . . TYPEDEF ----- STRUCT ----- 3 RegAddr. . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0000H 1 RegValue . . . . . . . . . . . . . . MEMBER ----- U_INT 0001H 2 LVR_3_7V . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1 _TaskLT89xx_thread . . . . . . . . . . PUBLIC CODE PROC 0000H ----- pt1. . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3 PT_YIELD_FLAG. . . . . . . . . . . . AUTO DATA CHAR 0004H 1 len. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0003H 1 i. . . . . . . . . . . . . . . . . . STATIC XDATA U_INT 0000H 2 ptRxData . . . . . . . . . . . . . . STATIC DATA STRUCT 0000H 2 LVR_2_9V . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_TIMEBASE_1S. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 DISABLE. . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 F1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D1H 1 BTM_TIMEBASE_2S. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_TIMEBASE_15_625MS. . . . . . . . . E_CONST ----- U_CHAR ----- 1 _DecodePackage . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- pBuf . . . . . . . . . . . . . . . . * REG * DATA PTR 0001H 3 len1 . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1 Package. . . . . . . . . . . . . . . AUTO XDATA ARRAY 0000H 9 i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1 BTM_TIMEBASE_4S. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_FIRSTBIT_LSB . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1 IncDIR . . . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- SPI_FIRSTBIT_MSB . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_HNIB. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 FUT089_WHITE_MODE. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_FLAG_SPIF. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_Channel_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 uint32_t . . . . . . . . . . . . . . . TYPEDEF ----- U_LONG ----- 4 BULB_MODE_SCENE. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 LT89XX_RF 08/17/2024 22:06:33 PAGE 81 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 899 ---- CONSTANT SIZE = 46 ---- XDATA SIZE = 19 9 PDATA SIZE = ---- ---- DATA SIZE = 2 60 IDATA SIZE = 3 ---- BIT SIZE = ---- ---- EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- XDATA CONST SIZE = ---- ---- FAR CONST SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 4 WARNING(S), 0 ERROR(S)