From 7477a2507067c0dc615f5a013400960f59048258 Mon Sep 17 00:00:00 2001 From: lhye200 Date: Sun, 31 Aug 2025 21:37:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .clangd | 38 + AddFile.py | 154 + Header/PCA9685_driver.h | 40 + Header/STC32G.H | 1460 +++ Header/button.h | 38 + Header/clock_init.h | 61 + Header/command.h | 12 + Header/common.h | 12 + Header/delay.h | 10 + Header/exti.h | 36 + Header/fifo.h | 72 + Header/gpio.h | 41 + Header/hx711.h | 23 + Header/iic.h | 34 + Header/iic_soft.h | 20 + Header/isr.h | 9 + Header/pwm.h | 69 + Header/stc32_stc8_usb.h | 89 + Header/tim.h | 38 + Header/types.h | 26 + Header/uart.h | 65 + Lib/stc_usb_cdc_32g_interrupt.LIB | Bin 0 -> 86205 bytes Objects/stc32g_all | Bin 0 -> 112688 bytes Objects/stc32g_all.hex | 1194 +++ STC32G12K128.cfg | 17 + Source/PCA9685_driver.c | 91 + Source/button.c | 69 + Source/clock_init.c | 200 + Source/command.c | 141 + Source/delay.c | 51 + Source/exti.c | 38 + Source/fifo.c | 523 + Source/gpio.c | 313 + Source/hx711.c | 91 + Source/iic.c | 349 + Source/iic_soft.c | 134 + Source/isr.c | 172 + Source/main.c | 18 + Source/pwm.c | 437 + Source/stc32_stc8_usb.c | 24 + Source/tim.c | 218 + Source/uart.c | 229 + compile_commands.json | 15028 ++++++++++++++++++++++++++++ stc32g_all.uvopt | 640 ++ stc32g_all.uvproj | 528 + 45 files changed, 22852 insertions(+) create mode 100644 .clangd create mode 100644 AddFile.py create mode 100644 Header/PCA9685_driver.h create mode 100644 Header/STC32G.H create mode 100644 Header/button.h create mode 100644 Header/clock_init.h create mode 100644 Header/command.h create mode 100644 Header/common.h create mode 100644 Header/delay.h create mode 100644 Header/exti.h create mode 100644 Header/fifo.h create mode 100644 Header/gpio.h create mode 100644 Header/hx711.h create mode 100644 Header/iic.h create mode 100644 Header/iic_soft.h create mode 100644 Header/isr.h create mode 100644 Header/pwm.h create mode 100644 Header/stc32_stc8_usb.h create mode 100644 Header/tim.h create mode 100644 Header/types.h create mode 100644 Header/uart.h create mode 100644 Lib/stc_usb_cdc_32g_interrupt.LIB create mode 100644 Objects/stc32g_all create mode 100644 Objects/stc32g_all.hex create mode 100644 STC32G12K128.cfg create mode 100644 Source/PCA9685_driver.c create mode 100644 Source/button.c create mode 100644 Source/clock_init.c create mode 100644 Source/command.c create mode 100644 Source/delay.c create mode 100644 Source/exti.c create mode 100644 Source/fifo.c create mode 100644 Source/gpio.c create mode 100644 Source/hx711.c create mode 100644 Source/iic.c create mode 100644 Source/iic_soft.c create mode 100644 Source/isr.c create mode 100644 Source/main.c create mode 100644 Source/pwm.c create mode 100644 Source/stc32_stc8_usb.c create mode 100644 Source/tim.c create mode 100644 Source/uart.c create mode 100644 compile_commands.json create mode 100644 stc32g_all.uvopt create mode 100644 stc32g_all.uvproj diff --git a/.clangd b/.clangd new file mode 100644 index 0000000..ff4dfbf --- /dev/null +++ b/.clangd @@ -0,0 +1,38 @@ +CompileFlags: + Add: + - '--target=arm-none-eabi' + - '-Ic:/Keil_v5/C251/INC' + - '-Ic:/Keil_v5/C251/INC/STC' + - '-Id:/lhy/Projects/Smart_Trash/New_STC32G_All_Board/Header' + - '-D__C251__' + - '-D__VSCODE_C251__' + - '-Dreentrant=' + - '-Dcompact=' + - '-Dsmall=' + - '-Dlarge=' + - '-Ddata=' + - '-Didata=' + - '-Dpdata=' + - '-Dbdata=' + - '-Dedata=' + - '-Dxdata=' + - '-Dcode=' + - '-Dbit=char' + - '-Dsbit=char' + - '-Dsfr=char' + - '-Dsfr16=int' + - '-Dsfr32=int' + - '-Dinterrupt=' + - '-Dusing=' + - '-Dfar=' + - '-D_at_=' + - '-D_priority_=' + - '-D_task_=' + Compiler: C:/Keil_v5/C251/bin/C251.EXE + + +--- +If: + PathMatch: */CMSIS/.* +Diagnostics: + Suppress: ["*", undeclared_var_use_suggest] \ No newline at end of file diff --git a/AddFile.py b/AddFile.py new file mode 100644 index 0000000..cad577d --- /dev/null +++ b/AddFile.py @@ -0,0 +1,154 @@ +############################################################################################################ +# Author: LHYe200 +# Date: 2025-02-03 +# Version: 1.1 +# Usage: python AddFile.py +# 注意: 请将本文件放在uvproj文件同一目录下运行 +# Note: Please run this file in the same directory as the uvproj file +# 描述: 添加文件,自动修改uvproj文件,添加文件到指定组 +# Description: Add files, automatically modify the uvproj file, and add files to the specified group +# 警告: 请注意备份uvproj文件及相关项目文件,以免出现意外,使用风险自负 +# Warning: Please backup the uvproj file and related project files to avoid accidents, USE AT YOUR OWN RISK +############################################################################################################ + +import os +import re +import xml.dom.minidom + +# 使用前请根据情况修改 +source_file_path = "./Source" +header_file_path = "./Header" +source_group_name = "Source" +header_group_name = "Header" +auto_include_in_source = 0 +auto_include_in_header = '#include "common.h"' +include_h_in_c_relative_path = False # 是否使用相对路径包含头文件 +change_to_create_hex_file = True + + + +def AddFileToAGroup(file_name, path_name, group_name,DOMTree): + collection = DOMTree.documentElement + groups = collection.getElementsByTagName("Group") + group = None + for group_t in groups: + # ad = group_t.getElementsByTagName("GroupName") + if group_t.getElementsByTagName("GroupName")[0].childNodes[0].data == group_name: + group = group_t + break + else: + group_t = DOMTree.createElement("Group") + group_t.appendChild(DOMTree.createElement("GroupName")) + group_t.getElementsByTagName("GroupName")[0].appendChild(DOMTree.createTextNode(group_name)) + group_t.appendChild(DOMTree.createElement("Files")) + collection.getElementsByTagName("Groups")[0].appendChild(group_t) + group = group_t + + ruled_path = ".\\"+os.path.normpath(os.path.join(path_name, file_name)) + for file_path_C in group.getElementsByTagName("FilePath"): + if file_path_C.childNodes[0].data == ruled_path: + input("The file has already existed!") + exit(-1) + files = group.getElementsByTagName("Files")[0] + file = DOMTree.createElement("File") + file.appendChild(DOMTree.createElement("FileName")) + file.getElementsByTagName("FileName")[0].appendChild(DOMTree.createTextNode(file_name)) + file.appendChild(DOMTree.createElement("FileType")) + if file_name.endswith(".c"): + file.getElementsByTagName("FileType")[0].appendChild(DOMTree.createTextNode("1")) + elif file_name.endswith(".h"): + file.getElementsByTagName("FileType")[0].appendChild(DOMTree.createTextNode("5")) + file.appendChild(DOMTree.createElement("FilePath")) + file.getElementsByTagName("FilePath")[0].appendChild(DOMTree.createTextNode(ruled_path)) + files.appendChild(file) + print("Add file to group success!") + +def createHeaderFile(header_file_name): + if not os.path.exists(header_file_path): + os.makedirs(header_file_path) + if not os.path.exists(os.path.join(header_file_path , header_file_name)): + with open(os.path.join(header_file_path , header_file_name), "w") as f: + f.write("#ifndef __" + header_file_name[:-2].upper() + "_H__\n") + f.write("#define __" + header_file_name[:-2].upper() + "_H__\n\n") + if auto_include_in_header: + f.write(auto_include_in_header + "\n\n\n") + f.write("#endif\n") + print("Create header file success!") + +def createSourceFile(file_name,has_header): + if not os.path.exists(source_file_path): + os.makedirs(source_file_path) + if not os.path.exists(os.path.join(source_file_path , file_name)): + with open(os.path.join(source_file_path , file_name), "w") as f: + if auto_include_in_source: + f.write(auto_include_in_source + "\n") + # f.write(auto_include_in_source + "\n") + if has_header: + if include_h_in_c_relative_path: + f.write("#include \"./"+str(os.path.normpath(os.path.relpath(os.path.join(header_file_path, file_name)[:-2] + ".h",os.path.join(source_file_path, file_name)).replace("..",".",1))).replace("\\","/")+ "\"\n") + else: + f.write("#include \""+file_name[:-2] + ".h\"\n") + print("Create source file success!") + + + +if __name__ == "__main__": + file_name = input("Please input the file name: ").strip() + header_file_name = "" + if file_name.lower().endswith(".c"): + if_create_header = input("Do you want to create a header file for this file?([y]/n): ").strip() + if not if_create_header.lower() == "n": + header_file_name = file_name[:-1] + "h" + + elif file_name.lower().endswith(".h"): + header_file_name = file_name + file_name = "" + + else: + input("The file type is not support!") + exit(-1) + + uvproj_files = [] + + for file in os.listdir(os.path.abspath(os.path.dirname(__file__))): + file = file.lower() + if file.endswith(".uvproj") or file.endswith(".uvprojx"): + uvproj_files.append(file) + if len(uvproj_files) == 0: + input("No UV project file found!") + # input("Press any key to exit...") + exit(-1) + elif len(uvproj_files) > 1: + input("More than one UV project file found!") + exit(-1) + uvproj_file = uvproj_files[0] + xml_str = "" + with open(uvproj_file, "r", encoding="utf-8") as f: + xml_str = f.readlines() + xml_str = [x for x in xml_str if x.strip()] + xml_str = "".join(xml_str) + xml_str = xml_str.replace("\n", "") + xml_str = xml_str.replace("\t", "") + + DOMTree = xml.dom.minidom.parseString(xml_str) + + collection = DOMTree.documentElement + + if change_to_create_hex_file: + collection.getElementsByTagName("CreateHexFile")[0].childNodes[0].data = "1" + + if file_name != "": + createSourceFile(file_name,header_file_name != "") + AddFileToAGroup(file_name, source_file_path, source_group_name,DOMTree) + + if header_file_name != "": + createHeaderFile(header_file_name) + AddFileToAGroup(header_file_name, header_file_path, header_group_name,DOMTree) + + xml_str = DOMTree.toprettyxml().replace("\t"," ") + xml_str = re.sub(r'<(\w+)([^>]*)/>', r'<\1\2>', xml_str) + with open(uvproj_file, "w", encoding="utf-8") as f: + # DOMTree.writexml(f, addindent=" ", newl="\n", ) + f.write(xml_str) + print("Modify uvproj file success!") + input("Add file success! Press any key to exit...") \ No newline at end of file diff --git a/Header/PCA9685_driver.h b/Header/PCA9685_driver.h new file mode 100644 index 0000000..80793b1 --- /dev/null +++ b/Header/PCA9685_driver.h @@ -0,0 +1,40 @@ +#ifndef __PCA9685_DRIVER_H__ +#define __PCA9685_DRIVER_H__ + +#include "common.h" + +#define PCA9685_I2C_ADDR 0x40 // PCA9685 I2C地址 + +#define PCA9685_USE_SOFT_IIC 1 // 使用软件IIC + +#if PCA9685_USE_SOFT_IIC == 1 + +#define PCA9685_SOFT_IIC_SCL_PIN P1_5 +#define PCA9685_SOFT_IIC_SDA_PIN P1_4 + +#else + +#define PCA9685_I2C_SCL_PIN IIC1_SCL_P15 +#define PCA9685_I2C_SDA_PIN IIC1_SDA_P14 + +#endif + +#define PCA9685_MODE1 0x00 +#define PCA9685_PRESCALE 0xFE +#define PCA9685_LED0_ON_L 0x06 +#define PCA9685_LED0_ON_H 0x07 +#define PCA9685_LED0_OFF_L 0x08 +#define PCA9685_LED0_OFF_H 0x09 +#define PCA9685_ALL_LED_ON_L 0xFA +#define PCA9685_ALL_LED_ON_H 0xFB +#define PCA9685_ALL_LED_OFF_L 0xFC +#define PCA9685_ALL_LED_OFF_H 0xFD + +#define PCA9685_DEF_FREQ 50 // 默认频率为50Hz + +void pca9685_init(); +void pca9685_deinit(); +void pca9685_set_frequency(uint16 frequency); +void pca9685_set_pwm(uint8 channel, uint16 on, uint16 off); + +#endif diff --git a/Header/STC32G.H b/Header/STC32G.H new file mode 100644 index 0000000..ca9c7f6 --- /dev/null +++ b/Header/STC32G.H @@ -0,0 +1,1460 @@ +#ifndef __STC32G_H__ +#define __STC32G_H__ + +///////////////////////////////////////////////// + +//包含本头文件后,不用另外再包含"REG51.H" + +sfr P0 = 0x80; + sbit P00 = P0^0; + sbit P01 = P0^1; + sbit P02 = P0^2; + sbit P03 = P0^3; + sbit P04 = P0^4; + sbit P05 = P0^5; + sbit P06 = P0^6; + sbit P07 = P0^7; + +sfr SP = 0x81; +sfr DPL = 0x82; +sfr DPH = 0x83; +sfr DPXL = 0x84; +sfr SPH = 0x85; + +sfr PCON = 0x87; + sbit SMOD = PCON^7; + sbit SMOD0 = PCON^6; + sbit LVDF = PCON^5; + sbit POF = PCON^4; + sbit GF1 = PCON^3; + sbit GF0 = PCON^2; + sbit PD = PCON^1; + sbit IDL = PCON^0; + +sfr TCON = 0x88; + sbit TF1 = TCON^7; + sbit TR1 = TCON^6; + sbit TF0 = TCON^5; + sbit TR0 = TCON^4; + sbit IE1 = TCON^3; + sbit IT1 = TCON^2; + sbit IE0 = TCON^1; + sbit IT0 = TCON^0; + +sfr TMOD = 0x89; + sbit T1_GATE = TMOD^7; + sbit T1_CT = TMOD^6; + sbit T1_M1 = TMOD^5; + sbit T1_M0 = TMOD^4; + sbit T0_GATE = TMOD^3; + sbit T0_CT = TMOD^2; + sbit T0_M1 = TMOD^1; + sbit T0_M0 = TMOD^0; + +sfr TL0 = 0x8a; +sfr TL1 = 0x8b; +sfr TH0 = 0x8c; +sfr TH1 = 0x8d; + +sfr AUXR = 0x8e; + sbit T0x12 = AUXR^7; + sbit T1x12 = AUXR^6; + sbit S1M0x6 = AUXR^5; + sbit T2R = AUXR^4; + sbit T2_CT = AUXR^3; + sbit T2x12 = AUXR^2; + sbit EXTRAM = AUXR^1; + sbit S1BRT = AUXR^0; + +sfr INTCLKO = 0x8f; + sbit EX4 = INTCLKO^6; + sbit EX3 = INTCLKO^5; + sbit EX2 = INTCLKO^4; + sbit T2CLKO = INTCLKO^2; + sbit T1CLKO = INTCLKO^1; + sbit T0CLKO = INTCLKO^0; + +sfr P1 = 0x90; + sbit P10 = P1^0; + sbit P11 = P1^1; + sbit P12 = P1^2; + sbit P13 = P1^3; + sbit P14 = P1^4; + sbit P15 = P1^5; + sbit P16 = P1^6; + sbit P17 = P1^7; + +sfr P1M1 = 0x91; +sfr P1M0 = 0x92; +sfr P0M1 = 0x93; +sfr P0M0 = 0x94; +sfr P2M1 = 0x95; +sfr P2M0 = 0x96; + +sfr AUXR2 = 0x97; + sbit CANSEL = AUXR2^3; + sbit CAN2EN = AUXR2^2; + sbit CANEN = AUXR2^1; + sbit LINEN = AUXR2^0; + +sfr SCON = 0x98; + sbit SM0 = SCON^7; + sbit SM1 = SCON^6; + sbit SM2 = SCON^5; + sbit REN = SCON^4; + sbit TB8 = SCON^3; + sbit RB8 = SCON^2; + sbit TI = SCON^1; + sbit RI = SCON^0; + +sfr SBUF = 0x99; + +sfr S2CON = 0x9a; + sbit S2SM0 = S2CON^7; + sbit S2SM1 = S2CON^6; + sbit S2SM2 = S2CON^5; + sbit S2REN = S2CON^4; + sbit S2TB8 = S2CON^3; + sbit S2RB8 = S2CON^2; + sbit S2TI = S2CON^1; + sbit S2RI = S2CON^0; + +sfr S2BUF = 0x9b; + +sfr IRCBAND = 0x9d; + sbit USBCKS = IRCBAND^7; + sbit USBCKS2 = IRCBAND^6; + sbit HIRCSEL1 = IRCBAND^1; + sbit HIRCSEL0 = IRCBAND^0; + +sfr LIRTRIM = 0x9e; +sfr IRTRIM = 0x9f; + +sfr P2 = 0xa0; + sbit P20 = P2^0; + sbit P21 = P2^1; + sbit P22 = P2^2; + sbit P23 = P2^3; + sbit P24 = P2^4; + sbit P25 = P2^5; + sbit P26 = P2^6; + sbit P27 = P2^7; + +sfr BUS_SPEED = 0xa1; + +sfr P_SW1 = 0xa2; + sbit S1_S1 = P_SW1^7; + sbit S1_S0 = P_SW1^6; + sbit CAN_S1 = P_SW1^5; + sbit CAN_S0 = P_SW1^4; + sbit SPI_S1 = P_SW1^3; + sbit SPI_S0 = P_SW1^2; + sbit LIN_S1 = P_SW1^1; + sbit LIN_S0 = P_SW1^0; + +sfr V33TRIM = 0xa3; +sfr BGTRIM = 0xa5; +sfr VRTRIM = 0xa6; + +sfr IE = 0xa8; + sbit EA = IE^7; + sbit ELVD = IE^6; + sbit EADC = IE^5; + sbit ES = IE^4; + sbit ET1 = IE^3; + sbit EX1 = IE^2; + sbit ET0 = IE^1; + sbit EX0 = IE^0; + +sfr SADDR = 0xa9; +sfr WKTCL = 0xaa; +sfr WKTCH = 0xab; + +sfr S3CON = 0xac; + sbit S3SM0 = S3CON^7; + sbit S3ST3 = S3CON^6; + sbit S3SM2 = S3CON^5; + sbit S3REN = S3CON^4; + sbit S3TB8 = S3CON^3; + sbit S3RB8 = S3CON^2; + sbit S3TI = S3CON^1; + sbit S3RI = S3CON^0; + +sfr S3BUF = 0xad; +sfr TA = 0xae; + +sfr IE2 = 0xaf; + sbit EUSB = IE2^7; + sbit ET4 = IE2^6; + sbit ET3 = IE2^5; + sbit ES4 = IE2^4; + sbit ES3 = IE2^3; + sbit ET2 = IE2^2; + sbit ESPI = IE2^1; + sbit ES2 = IE2^0; + +sfr P3 = 0xb0; + sbit P30 = P3^0; + sbit P31 = P3^1; + sbit P32 = P3^2; + sbit P33 = P3^3; + sbit P34 = P3^4; + sbit P35 = P3^5; + sbit P36 = P3^6; + sbit P37 = P3^7; + + sbit RD = P3^7; + sbit WR = P3^6; + sbit T1 = P3^5; + sbit T0 = P3^4; + sbit INT1 = P3^3; + sbit INT0 = P3^2; + sbit TXD = P3^1; + sbit RXD = P3^0; + +sfr P3M1 = 0xb1; +sfr P3M0 = 0xb2; +sfr P4M1 = 0xb3; +sfr P4M0 = 0xb4; + +sfr IP2 = 0xb5; + sbit PUSB = IP2^7; + sbit PI2C = IP2^6; + sbit PCMP = IP2^5; + sbit PX4 = IP2^4; + sbit PPWMB = IP2^3; + sbit PPWMA = IP2^2; + sbit PSPI = IP2^1; + sbit PS2 = IP2^0; + +sfr IP2H = 0xb6; + sbit PUSBH = IP2H^7; + sbit PI2CH = IP2H^6; + sbit PCMPH = IP2H^5; + sbit PX4H = IP2H^4; + sbit PPWMBH = IP2H^3; + sbit PPWMAH = IP2H^2; + sbit PSPIH = IP2H^1; + sbit PS2H = IP2H^0; + +sfr IPH = 0xb7; + sbit PLVDH = IPH^6; + sbit PADCH = IPH^5; + sbit PSH = IPH^4; + sbit PT1H = IPH^3; + sbit PX1H = IPH^2; + sbit PT0H = IPH^1; + sbit PX0H = IPH^0; + +sfr IP = 0xb8; + sbit PLVD = IP^6; + sbit PADC = IP^5; + sbit PS = IP^4; + sbit PT1 = IP^3; + sbit PX1 = IP^2; + sbit PT0 = IP^1; + sbit PX0 = IP^0; + +sfr SADEN = 0xb9; + +sfr P_SW2 = 0xba; + sbit EAXFR = P_SW2^7; + sbit I2C_S1 = P_SW2^5; + sbit I2C_S0 = P_SW2^4; + sbit CMPO_S = P_SW2^3; + sbit S4_S = P_SW2^2; + sbit S3_S = P_SW2^1; + sbit S2_S = P_SW2^0; + +sfr P_SW3 = 0xbb; + sbit I2S_S1 = P_SW3^7; + sbit I2S_S0 = P_SW3^6; + sbit S2SPI_S1 = P_SW3^5; + sbit S2SPI_S0 = P_SW3^4; + sbit S1SPI_S1 = P_SW3^3; + sbit S1SPI_S0 = P_SW3^2; + sbit CAN2_S1 = P_SW3^1; + sbit CAN2_S0 = P_SW3^0; + +sfr ADC_CONTR = 0xbc; + sbit ADC_POWER = ADC_CONTR^7; + sbit ADC_START = ADC_CONTR^6; + sbit ADC_FLAG = ADC_CONTR^5; + sbit ADC_EPWMT = ADC_CONTR^4; + +sfr ADC_RES = 0xbd; +sfr ADC_RESL = 0xbe; + +sfr P4 = 0xc0; + sbit P40 = P4^0; + sbit P41 = P4^1; + sbit P42 = P4^2; + sbit P43 = P4^3; + sbit P44 = P4^4; + sbit P45 = P4^5; + sbit P46 = P4^6; + sbit P47 = P4^7; + +sfr WDT_CONTR = 0xc1; + sbit WDT_FLAG = WDT_CONTR^7; + sbit EN_WDT = WDT_CONTR^5; + sbit CLR_WDT = WDT_CONTR^4; + sbit IDL_WDT = WDT_CONTR^3; + +sfr IAP_DATA = 0xc2; +sfr IAP_ADDRH = 0xc3; +sfr IAP_ADDRL = 0xc4; +sfr IAP_CMD = 0xc5; +sfr IAP_TRIG = 0xc6; + +sfr IAP_CONTR = 0xc7; + sbit IAPEN = IAP_CONTR^7; + sbit SWBS = IAP_CONTR^6; + sbit SWRST = IAP_CONTR^5; + sbit CMD_FAIL = IAP_CONTR^4; + +sfr P5 = 0xc8; + sbit P50 = P5^0; + sbit P51 = P5^1; + sbit P52 = P5^2; + sbit P53 = P5^3; + sbit P54 = P5^4; + sbit P55 = P5^5; + sbit P56 = P5^6; + sbit P57 = P5^7; + +sfr P5M1 = 0xc9; +sfr P5M0 = 0xca; +sfr P6M1 = 0xcb; +sfr P6M0 = 0xcc; + +sfr SPSTAT = 0xcd; + sbit SPIF = SPSTAT^7; + sbit WCOL = SPSTAT^6; + +sfr SPCTL = 0xce; + sbit SSIG = SPCTL^7; + sbit SPEN = SPCTL^6; + sbit DORD = SPCTL^5; + sbit MSTR = SPCTL^4; + sbit CPOL = SPCTL^3; + sbit CPHA = SPCTL^2; + sbit SPR1 = SPCTL^1; + sbit SPR0 = SPCTL^0; + +sfr SPDAT = 0xcf; + +sfr PSW = 0xd0; + sbit CY = PSW^7; + sbit AC = PSW^6; + sbit F0 = PSW^5; + sbit RS1 = PSW^4; + sbit RS0 = PSW^3; + sbit OV = PSW^2; + sbit P = PSW^0; + +sfr PSW1 = 0xd1; + +sfr T4H = 0xd2; +sfr T4L = 0xd3; +sfr T3H = 0xd4; +sfr T3L = 0xd5; +sfr T2H = 0xd6; +sfr T2L = 0xd7; + +sfr T3T4M = 0xdd; +sfr TH4 = 0xd2; +sfr TL4 = 0xd3; +sfr TH3 = 0xd4; +sfr TL3 = 0xd5; +sfr TH2 = 0xd6; +sfr TL2 = 0xd7; + +sfr USBCLK = 0xdc; + +sfr T4T3M = 0xdd; + sbit T4R = T4T3M^7; + sbit T4_CT = T4T3M^6; + sbit T4x12 = T4T3M^5; + sbit T4CLKO = T4T3M^4; + sbit T3R = T4T3M^3; + sbit T3_CT = T4T3M^2; + sbit T3x12 = T4T3M^1; + sbit T3CLKO = T4T3M^0; + +sfr ADCCFG = 0xde; + sbit RESFMT = ADCCFG^5; + +sfr IP3 = 0xdf; + sbit PI2S = IP3^3; + sbit PRTC = IP3^2; + sbit PS4 = IP3^1; + sbit PS3 = IP3^0; + +sfr ACC = 0xe0; +sfr P7M1 = 0xe1; +sfr P7M0 = 0xe2; +sfr DPS = 0xe3; +sfr DPL1 = 0xe4; +sfr DPH1 = 0xe5; + +sfr CMPCR1 = 0xe6; + sbit CMPEN = CMPCR1^7; + sbit CMPIF = CMPCR1^6; + sbit PIE = CMPCR1^5; + sbit NIE = CMPCR1^4; + sbit CMPOE = CMPCR1^1; + sbit CMPRES = CMPCR1^0; + +sfr CMPCR2 = 0xe7; + sbit INVCMPO = CMPCR2^7; + sbit DISFLT = CMPCR2^6; + +sfr P6 = 0xe8; + sbit P60 = P6^0; + sbit P61 = P6^1; + sbit P62 = P6^2; + sbit P63 = P6^3; + sbit P64 = P6^4; + sbit P65 = P6^5; + sbit P66 = P6^6; + sbit P67 = P6^7; + +sfr WTST = 0xe9; +sfr CKCON = 0xea; +sfr MXAX = 0xeb; +sfr USBDAT = 0xec; +sfr DMAIR = 0xed; + +sfr IP3H = 0xee; + sbit PI2SH = IP3H^3; + sbit PRTCH = IP3H^2; + sbit PS4H = IP3H^1; + sbit PS3H = IP3H^0; + +sfr AUXINTIF = 0xef; + sbit INT4IF = AUXINTIF^6; + sbit INT3IF = AUXINTIF^5; + sbit INT2IF = AUXINTIF^4; + sbit T4IF = AUXINTIF^2; + sbit T3IF = AUXINTIF^1; + sbit T2IF = AUXINTIF^0; + +sfr B = 0xf0; + +sfr CANICR = 0xf1; + sbit PCAN2H = CANICR^7; + sbit CAN2IF = CANICR^6; + sbit CAN2IE = CANICR^5; + sbit PCAN2L = CANICR^4; + sbit PCANH = CANICR^3; + sbit CANIF = CANICR^2; + sbit CANIE = CANICR^1; + sbit PCANL = CANICR^0; + +sfr USBCON = 0xf4; + sbit ENUSB = USBCON^7; + sbit ENUSBRST = USBCON^6; + sbit PS2M = USBCON^5; + sbit PUEN = USBCON^4; + sbit PDEN = USBCON^3; + sbit DFREC = USBCON^2; + sbit DP = USBCON^1; + sbit DM = USBCON^0; + +sfr IAP_TPS = 0xf5; +sfr IAP_ADDRE = 0xf6; +sfr ICHECR = 0xf7; + +sfr P7 = 0xf8; + sbit P70 = P7^0; + sbit P71 = P7^1; + sbit P72 = P7^2; + sbit P73 = P7^3; + sbit P74 = P7^4; + sbit P75 = P7^5; + sbit P76 = P7^6; + sbit P77 = P7^7; + +sfr LINICR = 0xf9; + sbit PLINH = LINICR^3; + sbit LINIF = LINICR^2; + sbit LINIE = LINICR^1; + sbit PLINL = LINICR^0; + +sfr LINAR = 0xfa; +sfr LINDR = 0xfb; +sfr USBADR = 0xfc; + +sfr S4CON = 0xfd; + sbit S4SM0 = S4CON^7; + sbit S4ST4 = S4CON^6; + sbit S4SM2 = S4CON^5; + sbit S4REN = S4CON^4; + sbit S4TB8 = S4CON^3; + sbit S4RB8 = S4CON^2; + sbit S4TI = S4CON^1; + sbit S4RI = S4CON^0; + +sfr S4BUF = 0xfe; + +sfr RSTCFG = 0xff; + sbit ENLVR = RSTCFG^6; + sbit P54RST = RSTCFG^4; + +//如下特殊功能寄存器位于扩展RAM区域 +//访问这些寄存器,需先将EAXFR设置为1,才可正常读写 +// EAXFR = 1; +//或者 +// P_SW2 |= 0x80; + +///////////////////////////////////////////////// +//7E:FF00H-7E:FFFFH +///////////////////////////////////////////////// + + + +///////////////////////////////////////////////// +//7E:FE00H-7E:FEFFH +///////////////////////////////////////////////// + +#define CLKSEL (*(unsigned char volatile far *)0x7efe00) +#define CLKDIV (*(unsigned char volatile far *)0x7efe01) +#define HIRCCR (*(unsigned char volatile far *)0x7efe02) +#define XOSCCR (*(unsigned char volatile far *)0x7efe03) +#define IRC32KCR (*(unsigned char volatile far *)0x7efe04) +#define MCLKOCR (*(unsigned char volatile far *)0x7efe05) +#define IRCDB (*(unsigned char volatile far *)0x7efe06) +#define IRC48MCR (*(unsigned char volatile far *)0x7efe07) +#define X32KCR (*(unsigned char volatile far *)0x7efe08) +#define IRC48ATRIM (*(unsigned char volatile far *)0x7efe09) +#define IRC48BTRIM (*(unsigned char volatile far *)0x7efe0a) +#define HSCLKDIV (*(unsigned char volatile far *)0x7efe0b) +#define HPLLCR (*(unsigned char volatile far *)0x7efe0c) +#define HPLLPSCR (*(unsigned char volatile far *)0x7efe0d) + +#define P0PU (*(unsigned char volatile far *)0x7efe10) +#define P1PU (*(unsigned char volatile far *)0x7efe11) +#define P2PU (*(unsigned char volatile far *)0x7efe12) +#define P3PU (*(unsigned char volatile far *)0x7efe13) +#define P4PU (*(unsigned char volatile far *)0x7efe14) +#define P5PU (*(unsigned char volatile far *)0x7efe15) +#define P6PU (*(unsigned char volatile far *)0x7efe16) +#define P7PU (*(unsigned char volatile far *)0x7efe17) +#define P0NCS (*(unsigned char volatile far *)0x7efe18) +#define P1NCS (*(unsigned char volatile far *)0x7efe19) +#define P2NCS (*(unsigned char volatile far *)0x7efe1a) +#define P3NCS (*(unsigned char volatile far *)0x7efe1b) +#define P4NCS (*(unsigned char volatile far *)0x7efe1c) +#define P5NCS (*(unsigned char volatile far *)0x7efe1d) +#define P6NCS (*(unsigned char volatile far *)0x7efe1e) +#define P7NCS (*(unsigned char volatile far *)0x7efe1f) +#define P0SR (*(unsigned char volatile far *)0x7efe20) +#define P1SR (*(unsigned char volatile far *)0x7efe21) +#define P2SR (*(unsigned char volatile far *)0x7efe22) +#define P3SR (*(unsigned char volatile far *)0x7efe23) +#define P4SR (*(unsigned char volatile far *)0x7efe24) +#define P5SR (*(unsigned char volatile far *)0x7efe25) +#define P6SR (*(unsigned char volatile far *)0x7efe26) +#define P7SR (*(unsigned char volatile far *)0x7efe27) +#define P0DR (*(unsigned char volatile far *)0x7efe28) +#define P1DR (*(unsigned char volatile far *)0x7efe29) +#define P2DR (*(unsigned char volatile far *)0x7efe2a) +#define P3DR (*(unsigned char volatile far *)0x7efe2b) +#define P4DR (*(unsigned char volatile far *)0x7efe2c) +#define P5DR (*(unsigned char volatile far *)0x7efe2d) +#define P6DR (*(unsigned char volatile far *)0x7efe2e) +#define P7DR (*(unsigned char volatile far *)0x7efe2f) +#define P0IE (*(unsigned char volatile far *)0x7efe30) +#define P1IE (*(unsigned char volatile far *)0x7efe31) +#define P2IE (*(unsigned char volatile far *)0x7efe32) +#define P3IE (*(unsigned char volatile far *)0x7efe33) +#define P4IE (*(unsigned char volatile far *)0x7efe34) +#define P5IE (*(unsigned char volatile far *)0x7efe35) +#define P6IE (*(unsigned char volatile far *)0x7efe36) +#define P7IE (*(unsigned char volatile far *)0x7efe37) +#define P0PD (*(unsigned char volatile far *)0x7efe40) +#define P1PD (*(unsigned char volatile far *)0x7efe41) +#define P2PD (*(unsigned char volatile far *)0x7efe42) +#define P3PD (*(unsigned char volatile far *)0x7efe43) +#define P4PD (*(unsigned char volatile far *)0x7efe44) +#define P5PD (*(unsigned char volatile far *)0x7efe45) +#define P6PD (*(unsigned char volatile far *)0x7efe46) +#define P7PD (*(unsigned char volatile far *)0x7efe47) + +#define LCMIFCFG (*(unsigned char volatile far *)0x7efe50) +#define LCMIFCFG2 (*(unsigned char volatile far *)0x7efe51) +#define LCMIFCR (*(unsigned char volatile far *)0x7efe52) +#define LCMIFSTA (*(unsigned char volatile far *)0x7efe53) +#define LCMIFDATL (*(unsigned char volatile far *)0x7efe54) +#define LCMIFDATH (*(unsigned char volatile far *)0x7efe55) + +#define RTCCR (*(unsigned char volatile far *)0x7efe60) +#define RTCCFG (*(unsigned char volatile far *)0x7efe61) +#define RTCIEN (*(unsigned char volatile far *)0x7efe62) +#define RTCIF (*(unsigned char volatile far *)0x7efe63) +#define ALAHOUR (*(unsigned char volatile far *)0x7efe64) +#define ALAMIN (*(unsigned char volatile far *)0x7efe65) +#define ALASEC (*(unsigned char volatile far *)0x7efe66) +#define ALASSEC (*(unsigned char volatile far *)0x7efe67) +#define INIYEAR (*(unsigned char volatile far *)0x7efe68) +#define INIMONTH (*(unsigned char volatile far *)0x7efe69) +#define INIDAY (*(unsigned char volatile far *)0x7efe6a) +#define INIHOUR (*(unsigned char volatile far *)0x7efe6b) +#define INIMIN (*(unsigned char volatile far *)0x7efe6c) +#define INISEC (*(unsigned char volatile far *)0x7efe6d) +#define INISSEC (*(unsigned char volatile far *)0x7efe6e) +#define YEAR (*(unsigned char volatile far *)0x7efe70) +#define MONTH (*(unsigned char volatile far *)0x7efe71) +#define DAY (*(unsigned char volatile far *)0x7efe72) +#define HOUR (*(unsigned char volatile far *)0x7efe73) +#define MIN (*(unsigned char volatile far *)0x7efe74) +#define SEC (*(unsigned char volatile far *)0x7efe75) +#define SSEC (*(unsigned char volatile far *)0x7efe76) + +#define I2CCFG (*(unsigned char volatile far *)0x7efe80) +#define I2CMSCR (*(unsigned char volatile far *)0x7efe81) +#define I2CMSST (*(unsigned char volatile far *)0x7efe82) +#define I2CSLCR (*(unsigned char volatile far *)0x7efe83) +#define I2CSLST (*(unsigned char volatile far *)0x7efe84) +#define I2CSLADR (*(unsigned char volatile far *)0x7efe85) +#define I2CTXD (*(unsigned char volatile far *)0x7efe86) +#define I2CRXD (*(unsigned char volatile far *)0x7efe87) +#define I2CMSAUX (*(unsigned char volatile far *)0x7efe88) + +#define SPFUNC (*(unsigned char volatile far *)0x7efe98) +#define RSTFLAG (*(unsigned char volatile far *)0x7efe99) +#define RSTCR0 (*(unsigned char volatile far *)0x7efe9a) +#define RSTCR1 (*(unsigned char volatile far *)0x7efe9b) +#define RSTCR2 (*(unsigned char volatile far *)0x7efe9c) +#define RSTCR3 (*(unsigned char volatile far *)0x7efe9d) +#define RSTCR4 (*(unsigned char volatile far *)0x7efe9e) +#define RSTCR5 (*(unsigned char volatile far *)0x7efe9f) + +#define TM0PS (*(unsigned char volatile far *)0x7efea0) +#define TM1PS (*(unsigned char volatile far *)0x7efea1) +#define TM2PS (*(unsigned char volatile far *)0x7efea2) +#define TM3PS (*(unsigned char volatile far *)0x7efea3) +#define TM4PS (*(unsigned char volatile far *)0x7efea4) +#define ADCTIM (*(unsigned char volatile far *)0x7efea8) +#define T3T4PS (*(unsigned char volatile far *)0x7efeac) +#define ADCEXCFG (*(unsigned char volatile far *)0x7efead) +#define CMPEXCFG (*(unsigned char volatile far *)0x7efeae) + +#define PWMA_ETRPS (*(unsigned char volatile far *)0x7efeb0) +#define PWMA_ENO (*(unsigned char volatile far *)0x7efeb1) +#define PWMA_PS (*(unsigned char volatile far *)0x7efeb2) +#define PWMA_IOAUX (*(unsigned char volatile far *)0x7efeb3) +#define PWMB_ETRPS (*(unsigned char volatile far *)0x7efeb4) +#define PWMB_ENO (*(unsigned char volatile far *)0x7efeb5) +#define PWMB_PS (*(unsigned char volatile far *)0x7efeb6) +#define PWMB_IOAUX (*(unsigned char volatile far *)0x7efeb7) + +#define CANAR (*(unsigned char volatile far *)0x7efebb) +#define CANDR (*(unsigned char volatile far *)0x7efebc) + +#define PWMA_CR1 (*(unsigned char volatile far *)0x7efec0) +#define PWMA_CR2 (*(unsigned char volatile far *)0x7efec1) +#define PWMA_SMCR (*(unsigned char volatile far *)0x7efec2) +#define PWMA_ETR (*(unsigned char volatile far *)0x7efec3) +#define PWMA_IER (*(unsigned char volatile far *)0x7efec4) +#define PWMA_SR1 (*(unsigned char volatile far *)0x7efec5) +#define PWMA_SR2 (*(unsigned char volatile far *)0x7efec6) +#define PWMA_EGR (*(unsigned char volatile far *)0x7efec7) +#define PWMA_CCMR1 (*(unsigned char volatile far *)0x7efec8) +#define PWMA_CCMR2 (*(unsigned char volatile far *)0x7efec9) +#define PWMA_CCMR3 (*(unsigned char volatile far *)0x7efeca) +#define PWMA_CCMR4 (*(unsigned char volatile far *)0x7efecb) +#define PWMA_CCER1 (*(unsigned char volatile far *)0x7efecc) +#define PWMA_CCER2 (*(unsigned char volatile far *)0x7efecd) +#define PWMA_CNTRH (*(unsigned char volatile far *)0x7efece) +#define PWMA_CNTRL (*(unsigned char volatile far *)0x7efecf) +#define PWMA_PSCRH (*(unsigned char volatile far *)0x7efed0) +#define PWMA_PSCRL (*(unsigned char volatile far *)0x7efed1) +#define PWMA_ARRH (*(unsigned char volatile far *)0x7efed2) +#define PWMA_ARRL (*(unsigned char volatile far *)0x7efed3) +#define PWMA_RCR (*(unsigned char volatile far *)0x7efed4) +#define PWMA_CCR1H (*(unsigned char volatile far *)0x7efed5) +#define PWMA_CCR1L (*(unsigned char volatile far *)0x7efed6) +#define PWMA_CCR2H (*(unsigned char volatile far *)0x7efed7) +#define PWMA_CCR2L (*(unsigned char volatile far *)0x7efed8) +#define PWMA_CCR3H (*(unsigned char volatile far *)0x7efed9) +#define PWMA_CCR3L (*(unsigned char volatile far *)0x7efeda) +#define PWMA_CCR4H (*(unsigned char volatile far *)0x7efedb) +#define PWMA_CCR4L (*(unsigned char volatile far *)0x7efedc) +#define PWMA_BKR (*(unsigned char volatile far *)0x7efedd) +#define PWMA_DTR (*(unsigned char volatile far *)0x7efede) +#define PWMA_OISR (*(unsigned char volatile far *)0x7efedf) +#define PWMB_CR1 (*(unsigned char volatile far *)0x7efee0) +#define PWMB_CR2 (*(unsigned char volatile far *)0x7efee1) +#define PWMB_SMCR (*(unsigned char volatile far *)0x7efee2) +#define PWMB_ETR (*(unsigned char volatile far *)0x7efee3) +#define PWMB_IER (*(unsigned char volatile far *)0x7efee4) +#define PWMB_SR1 (*(unsigned char volatile far *)0x7efee5) +#define PWMB_SR2 (*(unsigned char volatile far *)0x7efee6) +#define PWMB_EGR (*(unsigned char volatile far *)0x7efee7) +#define PWMB_CCMR1 (*(unsigned char volatile far *)0x7efee8) +#define PWMB_CCMR2 (*(unsigned char volatile far *)0x7efee9) +#define PWMB_CCMR3 (*(unsigned char volatile far *)0x7efeea) +#define PWMB_CCMR4 (*(unsigned char volatile far *)0x7efeeb) +#define PWMB_CCER1 (*(unsigned char volatile far *)0x7efeec) +#define PWMB_CCER2 (*(unsigned char volatile far *)0x7efeed) +#define PWMB_CNTRH (*(unsigned char volatile far *)0x7efeee) +#define PWMB_CNTRL (*(unsigned char volatile far *)0x7efeef) +#define PWMB_PSCRH (*(unsigned char volatile far *)0x7efef0) +#define PWMB_PSCRL (*(unsigned char volatile far *)0x7efef1) +#define PWMB_ARRH (*(unsigned char volatile far *)0x7efef2) +#define PWMB_ARRL (*(unsigned char volatile far *)0x7efef3) +#define PWMB_RCR (*(unsigned char volatile far *)0x7efef4) +#define PWMB_CCR5H (*(unsigned char volatile far *)0x7efef5) +#define PWMB_CCR5L (*(unsigned char volatile far *)0x7efef6) +#define PWMB_CCR6H (*(unsigned char volatile far *)0x7efef7) +#define PWMB_CCR6L (*(unsigned char volatile far *)0x7efef8) +#define PWMB_CCR7H (*(unsigned char volatile far *)0x7efef9) +#define PWMB_CCR7L (*(unsigned char volatile far *)0x7efefa) +#define PWMB_CCR8H (*(unsigned char volatile far *)0x7efefb) +#define PWMB_CCR8L (*(unsigned char volatile far *)0x7efefc) +#define PWMB_BKR (*(unsigned char volatile far *)0x7efefd) +#define PWMB_DTR (*(unsigned char volatile far *)0x7efefe) +#define PWMB_OISR (*(unsigned char volatile far *)0x7efeff) + +typedef struct TAG_PWM_STRUCT +{ + unsigned char CR1; + unsigned char CR2; + unsigned char SMCR; + unsigned char ETR; + unsigned char IER; + unsigned char SR1; + unsigned char SR2; + unsigned char EGR; + unsigned char CCMR1; + unsigned char CCMR2; + unsigned char CCMR3; + unsigned char CCMR4; + unsigned char CCER1; + unsigned char CCER2; + unsigned char CNTRH; + unsigned char CNTRL; + unsigned char PSCRH; + unsigned char PSCRL; + unsigned char ARRH; + unsigned char ARRL; + unsigned char RCR; + unsigned char CCR1H; + unsigned char CCR1L; + unsigned char CCR2H; + unsigned char CCR2L; + unsigned char CCR3H; + unsigned char CCR3L; + unsigned char CCR4H; + unsigned char CCR4L; + unsigned char BKR; + unsigned char DTR; + unsigned char OISR; +} PWM_STRUCT; + +//#define PWMA ((PWM_STRUCT volatile far *)0x7efec0) +//#define PWMB ((PWM_STRUCT volatile far *)0x7efee0) + +///////////////////////////////////////////////// +//7E:FD00H-7E:FDFFH +///////////////////////////////////////////////// + +#define P0INTE (*(unsigned char volatile far *)0x7efd00) +#define P1INTE (*(unsigned char volatile far *)0x7efd01) +#define P2INTE (*(unsigned char volatile far *)0x7efd02) +#define P3INTE (*(unsigned char volatile far *)0x7efd03) +#define P4INTE (*(unsigned char volatile far *)0x7efd04) +#define P5INTE (*(unsigned char volatile far *)0x7efd05) +#define P6INTE (*(unsigned char volatile far *)0x7efd06) +#define P7INTE (*(unsigned char volatile far *)0x7efd07) +#define P0INTF (*(unsigned char volatile far *)0x7efd10) +#define P1INTF (*(unsigned char volatile far *)0x7efd11) +#define P2INTF (*(unsigned char volatile far *)0x7efd12) +#define P3INTF (*(unsigned char volatile far *)0x7efd13) +#define P4INTF (*(unsigned char volatile far *)0x7efd14) +#define P5INTF (*(unsigned char volatile far *)0x7efd15) +#define P6INTF (*(unsigned char volatile far *)0x7efd16) +#define P7INTF (*(unsigned char volatile far *)0x7efd17) +#define P0IM0 (*(unsigned char volatile far *)0x7efd20) +#define P1IM0 (*(unsigned char volatile far *)0x7efd21) +#define P2IM0 (*(unsigned char volatile far *)0x7efd22) +#define P3IM0 (*(unsigned char volatile far *)0x7efd23) +#define P4IM0 (*(unsigned char volatile far *)0x7efd24) +#define P5IM0 (*(unsigned char volatile far *)0x7efd25) +#define P6IM0 (*(unsigned char volatile far *)0x7efd26) +#define P7IM0 (*(unsigned char volatile far *)0x7efd27) +#define P0IM1 (*(unsigned char volatile far *)0x7efd30) +#define P1IM1 (*(unsigned char volatile far *)0x7efd31) +#define P2IM1 (*(unsigned char volatile far *)0x7efd32) +#define P3IM1 (*(unsigned char volatile far *)0x7efd33) +#define P4IM1 (*(unsigned char volatile far *)0x7efd34) +#define P5IM1 (*(unsigned char volatile far *)0x7efd35) +#define P6IM1 (*(unsigned char volatile far *)0x7efd36) +#define P7IM1 (*(unsigned char volatile far *)0x7efd37) +#define P0WKUE (*(unsigned char volatile far *)0x7efd40) +#define P1WKUE (*(unsigned char volatile far *)0x7efd41) +#define P2WKUE (*(unsigned char volatile far *)0x7efd42) +#define P3WKUE (*(unsigned char volatile far *)0x7efd43) +#define P4WKUE (*(unsigned char volatile far *)0x7efd44) +#define P5WKUE (*(unsigned char volatile far *)0x7efd45) +#define P6WKUE (*(unsigned char volatile far *)0x7efd46) +#define P7WKUE (*(unsigned char volatile far *)0x7efd47) + +#define PINIPL (*(unsigned char volatile far *)0x7efd60) +#define PINIPH (*(unsigned char volatile far *)0x7efd61) + +#define UR1TOCR (*(unsigned char volatile far *)0x7efd70) +#define UR1TOSR (*(unsigned char volatile far *)0x7efd71) +#define UR1TOTH (*(unsigned char volatile far *)0x7efd72) +#define UR1TOTL (*(unsigned char volatile far *)0x7efd73) +#define UR2TOCR (*(unsigned char volatile far *)0x7efd74) +#define UR2TOSR (*(unsigned char volatile far *)0x7efd75) +#define UR2TOTH (*(unsigned char volatile far *)0x7efd76) +#define UR2TOTL (*(unsigned char volatile far *)0x7efd77) +#define UR3TOCR (*(unsigned char volatile far *)0x7efd78) +#define UR3TOSR (*(unsigned char volatile far *)0x7efd79) +#define UR3TOTH (*(unsigned char volatile far *)0x7efd7a) +#define UR3TOTL (*(unsigned char volatile far *)0x7efd7b) +#define UR4TOCR (*(unsigned char volatile far *)0x7efd7c) +#define UR4TOSR (*(unsigned char volatile far *)0x7efd7d) +#define UR4TOTH (*(unsigned char volatile far *)0x7efd7e) +#define UR4TOTL (*(unsigned char volatile far *)0x7efd7f) +#define SPITOCR (*(unsigned char volatile far *)0x7efd80) +#define SPITOSR (*(unsigned char volatile far *)0x7efd81) +#define SPITOTH (*(unsigned char volatile far *)0x7efd82) +#define SPITOTL (*(unsigned char volatile far *)0x7efd83) +#define I2CTOCR (*(unsigned char volatile far *)0x7efd84) +#define I2CTOSR (*(unsigned char volatile far *)0x7efd85) +#define I2CTOTH (*(unsigned char volatile far *)0x7efd86) +#define I2CTOTL (*(unsigned char volatile far *)0x7efd87) + +#define I2SCR (*(unsigned char volatile far *)0x7efd98) +#define I2SSR (*(unsigned char volatile far *)0x7efd99) +#define I2SDRH (*(unsigned char volatile far *)0x7efd9a) +#define I2SDRL (*(unsigned char volatile far *)0x7efd9b) +#define I2SPRH (*(unsigned char volatile far *)0x7efd9c) +#define I2SPRL (*(unsigned char volatile far *)0x7efd9d) +#define I2SCFGH (*(unsigned char volatile far *)0x7efd9e) +#define I2SCFGL (*(unsigned char volatile far *)0x7efd9f) +#define I2SMD (*(unsigned char volatile far *)0x7efda0) + +#define CRECR (*(unsigned char volatile far *)0x7efda8) +#define CRECNTH (*(unsigned char volatile far *)0x7efda9) +#define CRECNTL (*(unsigned char volatile far *)0x7efdaa) +#define CRERES (*(unsigned char volatile far *)0x7efdab) + +#define S2CFG (*(unsigned char volatile far *)0x7efdb4) +#define S2ADDR (*(unsigned char volatile far *)0x7efdb5) +#define S2ADEN (*(unsigned char volatile far *)0x7efdb6) +#define USARTCR1 (*(unsigned char volatile far *)0x7efdc0) +#define USARTCR2 (*(unsigned char volatile far *)0x7efdc1) +#define USARTCR3 (*(unsigned char volatile far *)0x7efdc2) +#define USARTCR4 (*(unsigned char volatile far *)0x7efdc3) +#define USARTCR5 (*(unsigned char volatile far *)0x7efdc4) +#define USARTGTR (*(unsigned char volatile far *)0x7efdc5) +#define USARTBRH (*(unsigned char volatile far *)0x7efdc6) +#define USARTBRL (*(unsigned char volatile far *)0x7efdc7) +#define USART2CR1 (*(unsigned char volatile far *)0x7efdc8) +#define USART2CR2 (*(unsigned char volatile far *)0x7efdc9) +#define USART2CR3 (*(unsigned char volatile far *)0x7efdca) +#define USART2CR4 (*(unsigned char volatile far *)0x7efdcb) +#define USART2CR5 (*(unsigned char volatile far *)0x7efdcc) +#define USART2GTR (*(unsigned char volatile far *)0x7efdcd) +#define USART2BRH (*(unsigned char volatile far *)0x7efdce) +#define USART2BRL (*(unsigned char volatile far *)0x7efdcf) + +#define CHIPID ( (unsigned char volatile far *)0x7efde0) + +#define CHIPID0 (*(unsigned char volatile far *)0x7efde0) +#define CHIPID1 (*(unsigned char volatile far *)0x7efde1) +#define CHIPID2 (*(unsigned char volatile far *)0x7efde2) +#define CHIPID3 (*(unsigned char volatile far *)0x7efde3) +#define CHIPID4 (*(unsigned char volatile far *)0x7efde4) +#define CHIPID5 (*(unsigned char volatile far *)0x7efde5) +#define CHIPID6 (*(unsigned char volatile far *)0x7efde6) +#define CHIPID7 (*(unsigned char volatile far *)0x7efde7) +#define CHIPID8 (*(unsigned char volatile far *)0x7efde8) +#define CHIPID9 (*(unsigned char volatile far *)0x7efde9) +#define CHIPID10 (*(unsigned char volatile far *)0x7efdea) +#define CHIPID11 (*(unsigned char volatile far *)0x7efdeb) +#define CHIPID12 (*(unsigned char volatile far *)0x7efdec) +#define CHIPID13 (*(unsigned char volatile far *)0x7efded) +#define CHIPID14 (*(unsigned char volatile far *)0x7efdee) +#define CHIPID15 (*(unsigned char volatile far *)0x7efdef) +#define CHIPID16 (*(unsigned char volatile far *)0x7efdf0) +#define CHIPID17 (*(unsigned char volatile far *)0x7efdf1) +#define CHIPID18 (*(unsigned char volatile far *)0x7efdf2) +#define CHIPID19 (*(unsigned char volatile far *)0x7efdf3) +#define CHIPID20 (*(unsigned char volatile far *)0x7efdf4) +#define CHIPID21 (*(unsigned char volatile far *)0x7efdf5) +#define CHIPID22 (*(unsigned char volatile far *)0x7efdf6) +#define CHIPID23 (*(unsigned char volatile far *)0x7efdf7) +#define CHIPID24 (*(unsigned char volatile far *)0x7efdf8) +#define CHIPID25 (*(unsigned char volatile far *)0x7efdf9) +#define CHIPID26 (*(unsigned char volatile far *)0x7efdfa) +#define CHIPID27 (*(unsigned char volatile far *)0x7efdfb) +#define CHIPID28 (*(unsigned char volatile far *)0x7efdfc) +#define CHIPID29 (*(unsigned char volatile far *)0x7efdfd) +#define CHIPID30 (*(unsigned char volatile far *)0x7efdfe) +#define CHIPID31 (*(unsigned char volatile far *)0x7efdff) + +///////////////////////////////////////////////// +//7E:FC00H-7E:FCFFH +///////////////////////////////////////////////// + + + +///////////////////////////////////////////////// +//7E:FB00H-7E:FBFFH +///////////////////////////////////////////////// + +#define HSPWMA_CFG (*(unsigned char volatile far *)0x7efbf0) +#define HSPWMA_ADR (*(unsigned char volatile far *)0x7efbf1) +#define HSPWMA_DAT (*(unsigned char volatile far *)0x7efbf2) + +#define HSPWMB_CFG (*(unsigned char volatile far *)0x7efbf4) +#define HSPWMB_ADR (*(unsigned char volatile far *)0x7efbf5) +#define HSPWMB_DAT (*(unsigned char volatile far *)0x7efbf6) + +#define HSSPI_CFG (*(unsigned char volatile far *)0x7efbf8) +#define HSSPI_CFG2 (*(unsigned char volatile far *)0x7efbf9) +#define HSSPI_STA (*(unsigned char volatile far *)0x7efbfa) + +//使用下面的宏,需先将EAXFR设置为1 +//使用方法: +// char val; +// +// EAXFR = 1; //使能访问XFR +// READ_HSPWMA(PWMA_CR1, val); //异步读PWMA组寄存器 +// val |= 0x01; +// WRITE_HSPWMA(PWMA_CR1, val); //异步写PWMA组寄存器 + +#define READ_HSPWMA(reg, dat) \ + { \ + while (HSPWMA_ADR & 0x80); \ + HSPWMA_ADR = ((char)&(reg)) | 0x80; \ + while (HSPWMA_ADR & 0x80); \ + (dat) = HSPWMA_DAT; \ + } + +#define WRITE_HSPWMA(reg, dat) \ + { \ + while (HSPWMA_ADR & 0x80); \ + HSPWMA_DAT = (dat); \ + HSPWMA_ADR = ((char)&(reg)) & 0x7f; \ + } + +#define READ_HSPWMB(reg, dat) \ + { \ + while (HSPWMB_ADR & 0x80); \ + HSPWMB_ADR = ((char)&(reg)) | 0x80; \ + while (HSPWMB_ADR & 0x80); \ + (dat) = HSPWMB_DAT; \ + } + +#define WRITE_HSPWMB(reg, dat) \ + { \ + while (HSPWMB_ADR & 0x80); \ + HSPWMB_DAT = (dat); \ + HSPWMB_ADR = ((char)&(reg)) & 0x7f; \ + } + +///////////////////////////////////////////////// +//7E:FA00H-7E:FAFFH +///////////////////////////////////////////////// + +#define DMA_M2M_CFG (*(unsigned char volatile far *)0x7efa00) +#define DMA_M2M_CR (*(unsigned char volatile far *)0x7efa01) +#define DMA_M2M_STA (*(unsigned char volatile far *)0x7efa02) +#define DMA_M2M_AMT (*(unsigned char volatile far *)0x7efa03) +#define DMA_M2M_DONE (*(unsigned char volatile far *)0x7efa04) +#define DMA_M2M_TXAH (*(unsigned char volatile far *)0x7efa05) +#define DMA_M2M_TXAL (*(unsigned char volatile far *)0x7efa06) +#define DMA_M2M_RXAH (*(unsigned char volatile far *)0x7efa07) +#define DMA_M2M_RXAL (*(unsigned char volatile far *)0x7efa08) + +#define DMA_ADC_CFG (*(unsigned char volatile far *)0x7efa10) +#define DMA_ADC_CR (*(unsigned char volatile far *)0x7efa11) +#define DMA_ADC_STA (*(unsigned char volatile far *)0x7efa12) +#define DMA_ADC_RXAH (*(unsigned char volatile far *)0x7efa17) +#define DMA_ADC_RXAL (*(unsigned char volatile far *)0x7efa18) +#define DMA_ADC_CFG2 (*(unsigned char volatile far *)0x7efa19) +#define DMA_ADC_CHSW0 (*(unsigned char volatile far *)0x7efa1a) +#define DMA_ADC_CHSW1 (*(unsigned char volatile far *)0x7efa1b) + +#define DMA_SPI_CFG (*(unsigned char volatile far *)0x7efa20) +#define DMA_SPI_CR (*(unsigned char volatile far *)0x7efa21) +#define DMA_SPI_STA (*(unsigned char volatile far *)0x7efa22) +#define DMA_SPI_AMT (*(unsigned char volatile far *)0x7efa23) +#define DMA_SPI_DONE (*(unsigned char volatile far *)0x7efa24) +#define DMA_SPI_TXAH (*(unsigned char volatile far *)0x7efa25) +#define DMA_SPI_TXAL (*(unsigned char volatile far *)0x7efa26) +#define DMA_SPI_RXAH (*(unsigned char volatile far *)0x7efa27) +#define DMA_SPI_RXAL (*(unsigned char volatile far *)0x7efa28) +#define DMA_SPI_CFG2 (*(unsigned char volatile far *)0x7efa29) + +#define DMA_UR1T_CFG (*(unsigned char volatile far *)0x7efa30) +#define DMA_UR1T_CR (*(unsigned char volatile far *)0x7efa31) +#define DMA_UR1T_STA (*(unsigned char volatile far *)0x7efa32) +#define DMA_UR1T_AMT (*(unsigned char volatile far *)0x7efa33) +#define DMA_UR1T_DONE (*(unsigned char volatile far *)0x7efa34) +#define DMA_UR1T_TXAH (*(unsigned char volatile far *)0x7efa35) +#define DMA_UR1T_TXAL (*(unsigned char volatile far *)0x7efa36) +#define DMA_UR1R_CFG (*(unsigned char volatile far *)0x7efa38) +#define DMA_UR1R_CR (*(unsigned char volatile far *)0x7efa39) +#define DMA_UR1R_STA (*(unsigned char volatile far *)0x7efa3a) +#define DMA_UR1R_AMT (*(unsigned char volatile far *)0x7efa3b) +#define DMA_UR1R_DONE (*(unsigned char volatile far *)0x7efa3c) +#define DMA_UR1R_RXAH (*(unsigned char volatile far *)0x7efa3d) +#define DMA_UR1R_RXAL (*(unsigned char volatile far *)0x7efa3e) + +#define DMA_UR2T_CFG (*(unsigned char volatile far *)0x7efa40) +#define DMA_UR2T_CR (*(unsigned char volatile far *)0x7efa41) +#define DMA_UR2T_STA (*(unsigned char volatile far *)0x7efa42) +#define DMA_UR2T_AMT (*(unsigned char volatile far *)0x7efa43) +#define DMA_UR2T_DONE (*(unsigned char volatile far *)0x7efa44) +#define DMA_UR2T_TXAH (*(unsigned char volatile far *)0x7efa45) +#define DMA_UR2T_TXAL (*(unsigned char volatile far *)0x7efa46) +#define DMA_UR2R_CFG (*(unsigned char volatile far *)0x7efa48) +#define DMA_UR2R_CR (*(unsigned char volatile far *)0x7efa49) +#define DMA_UR2R_STA (*(unsigned char volatile far *)0x7efa4a) +#define DMA_UR2R_AMT (*(unsigned char volatile far *)0x7efa4b) +#define DMA_UR2R_DONE (*(unsigned char volatile far *)0x7efa4c) +#define DMA_UR2R_RXAH (*(unsigned char volatile far *)0x7efa4d) +#define DMA_UR2R_RXAL (*(unsigned char volatile far *)0x7efa4e) + +#define DMA_UR3T_CFG (*(unsigned char volatile far *)0x7efa50) +#define DMA_UR3T_CR (*(unsigned char volatile far *)0x7efa51) +#define DMA_UR3T_STA (*(unsigned char volatile far *)0x7efa52) +#define DMA_UR3T_AMT (*(unsigned char volatile far *)0x7efa53) +#define DMA_UR3T_DONE (*(unsigned char volatile far *)0x7efa54) +#define DMA_UR3T_TXAH (*(unsigned char volatile far *)0x7efa55) +#define DMA_UR3T_TXAL (*(unsigned char volatile far *)0x7efa56) +#define DMA_UR3R_CFG (*(unsigned char volatile far *)0x7efa58) +#define DMA_UR3R_CR (*(unsigned char volatile far *)0x7efa59) +#define DMA_UR3R_STA (*(unsigned char volatile far *)0x7efa5a) +#define DMA_UR3R_AMT (*(unsigned char volatile far *)0x7efa5b) +#define DMA_UR3R_DONE (*(unsigned char volatile far *)0x7efa5c) +#define DMA_UR3R_RXAH (*(unsigned char volatile far *)0x7efa5d) +#define DMA_UR3R_RXAL (*(unsigned char volatile far *)0x7efa5e) + +#define DMA_UR4T_CFG (*(unsigned char volatile far *)0x7efa60) +#define DMA_UR4T_CR (*(unsigned char volatile far *)0x7efa61) +#define DMA_UR4T_STA (*(unsigned char volatile far *)0x7efa62) +#define DMA_UR4T_AMT (*(unsigned char volatile far *)0x7efa63) +#define DMA_UR4T_DONE (*(unsigned char volatile far *)0x7efa64) +#define DMA_UR4T_TXAH (*(unsigned char volatile far *)0x7efa65) +#define DMA_UR4T_TXAL (*(unsigned char volatile far *)0x7efa66) +#define DMA_UR4R_CFG (*(unsigned char volatile far *)0x7efa68) +#define DMA_UR4R_CR (*(unsigned char volatile far *)0x7efa69) +#define DMA_UR4R_STA (*(unsigned char volatile far *)0x7efa6a) +#define DMA_UR4R_AMT (*(unsigned char volatile far *)0x7efa6b) +#define DMA_UR4R_DONE (*(unsigned char volatile far *)0x7efa6c) +#define DMA_UR4R_RXAH (*(unsigned char volatile far *)0x7efa6d) +#define DMA_UR4R_RXAL (*(unsigned char volatile far *)0x7efa6e) + +#define DMA_LCM_CFG (*(unsigned char volatile far *)0x7efa70) +#define DMA_LCM_CR (*(unsigned char volatile far *)0x7efa71) +#define DMA_LCM_STA (*(unsigned char volatile far *)0x7efa72) +#define DMA_LCM_AMT (*(unsigned char volatile far *)0x7efa73) +#define DMA_LCM_DONE (*(unsigned char volatile far *)0x7efa74) +#define DMA_LCM_TXAH (*(unsigned char volatile far *)0x7efa75) +#define DMA_LCM_TXAL (*(unsigned char volatile far *)0x7efa76) +#define DMA_LCM_RXAH (*(unsigned char volatile far *)0x7efa77) +#define DMA_LCM_RXAL (*(unsigned char volatile far *)0x7efa78) + +#define DMA_M2M_AMTH (*(unsigned char volatile far *)0x7efa80) +#define DMA_M2M_DONEH (*(unsigned char volatile far *)0x7efa81) +#define DMA_SPI_AMTH (*(unsigned char volatile far *)0x7efa84) +#define DMA_SPI_DONEH (*(unsigned char volatile far *)0x7efa85) +#define DMA_LCM_AMTH (*(unsigned char volatile far *)0x7efa86) +#define DMA_LCM_DONEH (*(unsigned char volatile far *)0x7efa87) +#define DMA_UR1T_AMTH (*(unsigned char volatile far *)0x7efa88) +#define DMA_UR1T_DONEH (*(unsigned char volatile far *)0x7efa89) +#define DMA_UR1R_AMTH (*(unsigned char volatile far *)0x7efa8a) +#define DMA_UR1R_DONEH (*(unsigned char volatile far *)0x7efa8b) +#define DMA_UR2T_AMTH (*(unsigned char volatile far *)0x7efa8c) +#define DMA_UR2T_DONEH (*(unsigned char volatile far *)0x7efa8d) +#define DMA_UR2R_AMTH (*(unsigned char volatile far *)0x7efa8e) +#define DMA_UR2R_DONEH (*(unsigned char volatile far *)0x7efa8f) +#define DMA_UR3T_AMTH (*(unsigned char volatile far *)0x7efa90) +#define DMA_UR3T_DONEH (*(unsigned char volatile far *)0x7efa91) +#define DMA_UR3R_AMTH (*(unsigned char volatile far *)0x7efa92) +#define DMA_UR3R_DONEH (*(unsigned char volatile far *)0x7efa93) +#define DMA_UR4T_AMTH (*(unsigned char volatile far *)0x7efa94) +#define DMA_UR4T_DONEH (*(unsigned char volatile far *)0x7efa95) +#define DMA_UR4R_AMTH (*(unsigned char volatile far *)0x7efa96) +#define DMA_UR4R_DONEH (*(unsigned char volatile far *)0x7efa97) + +#define DMA_I2CT_CFG (*(unsigned char volatile far *)0x7efa98) +#define DMA_I2CT_CR (*(unsigned char volatile far *)0x7efa99) +#define DMA_I2CT_STA (*(unsigned char volatile far *)0x7efa9a) +#define DMA_I2CT_AMT (*(unsigned char volatile far *)0x7efa9b) +#define DMA_I2CT_DONE (*(unsigned char volatile far *)0x7efa9c) +#define DMA_I2CT_TXAH (*(unsigned char volatile far *)0x7efa9d) +#define DMA_I2CT_TXAL (*(unsigned char volatile far *)0x7efa9e) +#define DMA_I2CR_CFG (*(unsigned char volatile far *)0x7efaa0) +#define DMA_I2CR_CR (*(unsigned char volatile far *)0x7efaa1) +#define DMA_I2CR_STA (*(unsigned char volatile far *)0x7efaa2) +#define DMA_I2CR_AMT (*(unsigned char volatile far *)0x7efaa3) +#define DMA_I2CR_DONE (*(unsigned char volatile far *)0x7efaa4) +#define DMA_I2CR_RXAH (*(unsigned char volatile far *)0x7efaa5) +#define DMA_I2CR_RXAL (*(unsigned char volatile far *)0x7efaa6) + +#define DMA_I2CT_AMTH (*(unsigned char volatile far *)0x7efaa8) +#define DMA_I2CT_DONEH (*(unsigned char volatile far *)0x7efaa9) +#define DMA_I2CR_AMTH (*(unsigned char volatile far *)0x7efaaa) +#define DMA_I2CR_DONEH (*(unsigned char volatile far *)0x7efaab) + +#define DMA_I2C_CR (*(unsigned char volatile far *)0x7efaad) +#define DMA_I2C_ST1 (*(unsigned char volatile far *)0x7efaae) +#define DMA_I2C_ST2 (*(unsigned char volatile far *)0x7efaaf) + +#define DMA_I2ST_CFG (*(unsigned char volatile far *)0x7efab0) +#define DMA_I2ST_CR (*(unsigned char volatile far *)0x7efab1) +#define DMA_I2ST_STA (*(unsigned char volatile far *)0x7efab2) +#define DMA_I2ST_AMT (*(unsigned char volatile far *)0x7efab3) +#define DMA_I2ST_DONE (*(unsigned char volatile far *)0x7efab4) +#define DMA_I2ST_TXAH (*(unsigned char volatile far *)0x7efab5) +#define DMA_I2ST_TXAL (*(unsigned char volatile far *)0x7efab6) +#define DMA_I2SR_CFG (*(unsigned char volatile far *)0x7efab8) +#define DMA_I2SR_CR (*(unsigned char volatile far *)0x7efab9) +#define DMA_I2SR_STA (*(unsigned char volatile far *)0x7efaba) +#define DMA_I2SR_AMT (*(unsigned char volatile far *)0x7efabb) +#define DMA_I2SR_DONE (*(unsigned char volatile far *)0x7efabc) +#define DMA_I2SR_RXAH (*(unsigned char volatile far *)0x7efabd) +#define DMA_I2SR_RXAL (*(unsigned char volatile far *)0x7efabe) + +#define DMA_I2ST_AMTH (*(unsigned char volatile far *)0x7efac0) +#define DMA_I2ST_DONEH (*(unsigned char volatile far *)0x7efac1) +#define DMA_I2SR_AMTH (*(unsigned char volatile far *)0x7efac2) +#define DMA_I2SR_DONEH (*(unsigned char volatile far *)0x7efac3) + +#define DMA_ARB_CFG (*(unsigned char volatile far *)0x7efaf8) +#define DMA_ARB_STA (*(unsigned char volatile far *)0x7efaf9) + +///////////////////////////////////////////////// + +//sfr CANICR = 0xf1; +//#define CANAR (*(unsigned char volatile far *)0x7efebb) +//#define CANDR (*(unsigned char volatile far *)0x7efebc) + +//使用下面的宏,需先将EAXFR设置为1 +//使用方法: +// char dat; +// +// EAXFR = 1; //使能访问XFR +// dat = READ_CAN(RX_BUF0); //读CAN寄存器 +// WRITE_CAN(TX_BUF0, 0x55); //写CAN寄存器 + +#define READ_CAN(reg) (CANAR = (reg), CANDR) +#define WRITE_CAN(reg, dat) (CANAR = (reg), CANDR = (dat)) + +#define MR 0x00 +#define CMR 0x01 +#define SR 0x02 +#define ISR 0x03 +#define IMR 0x04 +#define RMC 0x05 +#define BTR0 0x06 +#define BTR1 0x07 +#define TM0 0x06 +#define TM1 0x07 +#define TX_BUF0 0x08 +#define TX_BUF1 0x09 +#define TX_BUF2 0x0a +#define TX_BUF3 0x0b +#define RX_BUF0 0x0c +#define RX_BUF1 0x0d +#define RX_BUF2 0x0e +#define RX_BUF3 0x0f +#define ACR0 0x10 +#define ACR1 0x11 +#define ACR2 0x12 +#define ACR3 0x13 +#define AMR0 0x14 +#define AMR1 0x15 +#define AMR2 0x16 +#define AMR3 0x17 +#define ECC 0x18 +#define RXERR 0x19 +#define TXERR 0x1a +#define ALC 0x1b + +///////////////////////////////////////////////// +//LIN Control Regiter +///////////////////////////////////////////////// + +//sfr LINICR = 0xf9; +//sfr LINAR = 0xfa; +//sfr LINDR = 0xfb; + +//使用方法: +// char dat; +// +// dat = READ_LIN(LBUF); //读CAN寄存器 +// WRITE_LIN(LBUF, 0x55); //写CAN寄存器 + +#define READ_LIN(reg) (LINAR = (reg), LINDR) +#define WRITE_LIN(reg, dat) (LINAR = (reg), LINDR = (dat)) + +#define LBUF 0x00 +#define LSEL 0x01 +#define LID 0x02 +#define LER 0x03 +#define LIE 0x04 +#define LSR 0x05 +#define LCR 0x05 +#define DLL 0x06 +#define DLH 0x07 +#define HDRL 0x08 +#define HDRH 0x09 +#define HDP 0x0A + +///////////////////////////////////////////////// +//USB Control Regiter +///////////////////////////////////////////////// + +//sfr USBCLK = 0xdc; +//sfr USBDAT = 0xec; +//sfr USBCON = 0xf4; +//sfr USBADR = 0xfc; + +//使用方法: +// char dat; +// +// READ_USB(CSR0, dat); //读USB寄存器 +// WRITE_USB(FADDR, 0x00); //写USB寄存器 + +#define READ_USB(reg, dat) \ + { \ + while (USBADR & 0x80); \ + USBADR = (reg) | 0x80; \ + while (USBADR & 0x80); \ + (dat) = USBDAT; \ + } + +#define WRITE_USB(reg, dat) \ + { \ + while (USBADR & 0x80); \ + USBADR = (reg) & 0x7f; \ + USBDAT = (dat); \ + } + +#define USBBASE 0 +#define FADDR (USBBASE + 0) +#define UPDATE 0x80 +#define POWER (USBBASE + 1) +#define ISOUD 0x80 +#define USBRST 0x08 +#define USBRSU 0x04 +#define USBSUS 0x02 +#define ENSUS 0x01 +#define INTRIN1 (USBBASE + 2) +#define EP5INIF 0x20 +#define EP4INIF 0x10 +#define EP3INIF 0x08 +#define EP2INIF 0x04 +#define EP1INIF 0x02 +#define EP0IF 0x01 +#define INTROUT1 (USBBASE + 4) +#define EP5OUTIF 0x20 +#define EP4OUTIF 0x10 +#define EP3OUTIF 0x08 +#define EP2OUTIF 0x04 +#define EP1OUTIF 0x02 +#define INTRUSB (USBBASE + 6) +#define SOFIF 0x08 +#define RSTIF 0x04 +#define RSUIF 0x02 +#define SUSIF 0x01 +#define INTRIN1E (USBBASE + 7) +#define EP5INIE 0x20 +#define EP4INIE 0x10 +#define EP3INIE 0x08 +#define EP2INIE 0x04 +#define EP1INIE 0x02 +#define EP0IE 0x01 +#define INTROUT1E (USBBASE + 9) +#define EP5OUTIE 0x20 +#define EP4OUTIE 0x10 +#define EP3OUTIE 0x08 +#define EP2OUTIE 0x04 +#define EP1OUTIE 0x02 +#define INTRUSBE (USBBASE + 11) +#define SOFIE 0x08 +#define RSTIE 0x04 +#define RSUIE 0x02 +#define SUSIE 0x01 +#define FRAME1 (USBBASE + 12) +#define FRAME2 (USBBASE + 13) +#define INDEX (USBBASE + 14) +#define INMAXP (USBBASE + 16) +#define CSR0 (USBBASE + 17) +#define SSUEND 0x80 +#define SOPRDY 0x40 +#define SDSTL 0x20 +#define SUEND 0x10 +#define DATEND 0x08 +#define STSTL 0x04 +#define IPRDY 0x02 +#define OPRDY 0x01 +#define INCSR1 (USBBASE + 17) +#define INCLRDT 0x40 +#define INSTSTL 0x20 +#define INSDSTL 0x10 +#define INFLUSH 0x08 +#define INUNDRUN 0x04 +#define INFIFONE 0x02 +#define INIPRDY 0x01 +#define INCSR2 (USBBASE + 18) +#define INAUTOSET 0x80 +#define INISO 0x40 +#define INMODEIN 0x20 +#define INMODEOUT 0x00 +#define INENDMA 0x10 +#define INFCDT 0x08 +#define OUTMAXP (USBBASE + 19) +#define OUTCSR1 (USBBASE + 20) +#define OUTCLRDT 0x80 +#define OUTSTSTL 0x40 +#define OUTSDSTL 0x20 +#define OUTFLUSH 0x10 +#define OUTDATERR 0x08 +#define OUTOVRRUN 0x04 +#define OUTFIFOFUL 0x02 +#define OUTOPRDY 0x01 +#define OUTCSR2 (USBBASE + 21) +#define OUTAUTOCLR 0x80 +#define OUTISO 0x40 +#define OUTENDMA 0x20 +#define OUTDMAMD 0x10 +#define COUNT0 (USBBASE + 22) +#define OUTCOUNT1 (USBBASE + 22) +#define OUTCOUNT2 (USBBASE + 23) +#define FIFO0 (USBBASE + 32) +#define FIFO1 (USBBASE + 33) +#define FIFO2 (USBBASE + 34) +#define FIFO3 (USBBASE + 35) +#define FIFO4 (USBBASE + 36) +#define FIFO5 (USBBASE + 37) +#define UTRKCTL (USBBASE + 48) +#define UTRKSTS (USBBASE + 49) + +///////////////////////////////////////////////// +//Interrupt Vector +///////////////////////////////////////////////// + +#define INT0_VECTOR 0 //0003H +#define TMR0_VECTOR 1 //000BH +#define INT1_VECTOR 2 //0013H +#define TMR1_VECTOR 3 //001BH +#define UART1_VECTOR 4 //0023H +#define ADC_VECTOR 5 //002BH +#define LVD_VECTOR 6 //0033H +//#define PCA_VECTOR 7 //003BH +#define UART2_VECTOR 8 //0043H +#define SPI_VECTOR 9 //004BH +#define INT2_VECTOR 10 //0053H +#define INT3_VECTOR 11 //005BH +#define TMR2_VECTOR 12 //0063H +#define USER_VECTOR 13 //006BH +#define BRK_VECTOR 14 //0073H +#define ICEP_VECTOR 15 //007BH +#define INT4_VECTOR 16 //0083H +#define UART3_VECTOR 17 //008BH +#define UART4_VECTOR 18 //0093H +#define TMR3_VECTOR 19 //009BH +#define TMR4_VECTOR 20 //00A3H +#define CMP_VECTOR 21 //00ABH +//#define PWM_VECTOR 22 //00B3H +//#define PWMFD_VECTOR 23 //00BBH +#define I2C_VECTOR 24 //00C3H +#define USB_VECTOR 25 //00CBH +#define PWMA_VECTOR 26 //00D3H +#define PWMB_VECTOR 27 //00DBH +#define CAN1_VECTOR 28 //00E3H +#define CAN2_VECTOR 29 //00EBH +#define LIN_VECTOR 30 //00F3H + +#define RTC_VECTOR 36 //0123H +#define P0INT_VECTOR 37 //012BH +#define P1INT_VECTOR 38 //0133H +#define P2INT_VECTOR 39 //013BH +#define P3INT_VECTOR 40 //0143H +#define P4INT_VECTOR 41 //014BH +#define P5INT_VECTOR 42 //0153H +#define P6INT_VECTOR 43 //015BH +#define P7INT_VECTOR 44 //0163H +#define DMA_M2M_VECTOR 47 //017BH +#define DMA_ADC_VECTOR 48 //0183H +#define DMA_SPI_VECTOR 49 //018BH +#define DMA_UR1T_VECTOR 50 //0193H +#define DMA_UR1R_VECTOR 51 //019BH +#define DMA_UR2T_VECTOR 52 //01A3H +#define DMA_UR2R_VECTOR 53 //01ABH +#define DMA_UR3T_VECTOR 54 //01B3H +#define DMA_UR3R_VECTOR 55 //01BBH +#define DMA_UR4T_VECTOR 56 //01C3H +#define DMA_UR4R_VECTOR 57 //01CBH +#define DMA_LCM_VECTOR 58 //01D3H +#define LCM_VECTOR 59 //01DBH +#define DMA_I2CT_VECTOR 60 //01E3H +#define DMA_I2CR_VECTOR 61 //01EBH +#define I2S_VECTOR 62 //01F3H +#define DMA_I2ST_VECTOR 63 //01FBH +#define DMA_I2SR_VECTOR 64 //0203H + +///////////////////////////////////////////////// +#define EAXSFR() EAXFR = 1 /* MOVX A,@DPTR/MOVX @DPTR,A指令的操作对象为扩展SFR(XSFR) */ +#define EAXRAM() EAXFR = 0 /* MOVX A,@DPTR/MOVX @DPTR,A指令的操作对象为扩展RAM(XRAM) */ + + +///////////////////////////////////////////////// +#define NOP1() _nop_() +#define NOP2() NOP1(),NOP1() +#define NOP3() NOP2(),NOP1() +#define NOP4() NOP3(),NOP1() +#define NOP5() NOP4(),NOP1() +#define NOP6() NOP5(),NOP1() +#define NOP7() NOP6(),NOP1() +#define NOP8() NOP7(),NOP1() +#define NOP9() NOP8(),NOP1() +#define NOP10() NOP9(),NOP1() +#define NOP11() NOP10(),NOP1() +#define NOP12() NOP11(),NOP1() +#define NOP13() NOP12(),NOP1() +#define NOP14() NOP13(),NOP1() +#define NOP15() NOP14(),NOP1() +#define NOP16() NOP15(),NOP1() +#define NOP17() NOP16(),NOP1() +#define NOP18() NOP17(),NOP1() +#define NOP19() NOP18(),NOP1() +#define NOP20() NOP19(),NOP1() +#define NOP21() NOP20(),NOP1() +#define NOP22() NOP21(),NOP1() +#define NOP23() NOP22(),NOP1() +#define NOP24() NOP23(),NOP1() +#define NOP25() NOP24(),NOP1() +#define NOP26() NOP25(),NOP1() +#define NOP27() NOP26(),NOP1() +#define NOP28() NOP27(),NOP1() +#define NOP29() NOP28(),NOP1() +#define NOP30() NOP29(),NOP1() +#define NOP31() NOP30(),NOP1() +#define NOP32() NOP31(),NOP1() +#define NOP33() NOP32(),NOP1() +#define NOP34() NOP33(),NOP1() +#define NOP35() NOP34(),NOP1() +#define NOP36() NOP35(),NOP1() +#define NOP37() NOP36(),NOP1() +#define NOP38() NOP37(),NOP1() +#define NOP39() NOP38(),NOP1() +#define NOP40() NOP39(),NOP1() +#define NOP(N) NOP##N() + + +#endif + diff --git a/Header/button.h b/Header/button.h new file mode 100644 index 0000000..0b768d2 --- /dev/null +++ b/Header/button.h @@ -0,0 +1,38 @@ +#ifndef __BUTTON_H__ +#define __BUTTON_H__ + +#include "common.h" +#include "gpio.h" + +#define BUTTON_NO_PIN P0_6 // 按钮引脚 +#define BUTTON_NC_PIN P0_7 // 按钮引脚 + +#define BUTTON_SHORT_PRESS_TIME 100 // 短按时间阈值,单位为毫秒 +#define BUTTON_LONG_PRESS_TIME 2000 // 长按时间阈值,单位为毫秒 + +typedef enum +{ + BUTTON_LED_OFF = 0, + BUTTON_LED_R = P3_7, + BUTTON_LED_G = P3_6, + BUTTON_LED_O = P3_5, +} button_led_enum; + +typedef enum +{ + BUTTON_NO_PRESS = 0, // 空闲状态 + BUTTON_SHORT_PRESS = 1, // 短按 + BUTTON_SHORT_PRESS_HANDLED = 2, // 短按已处理 + BUTTON_LONG_PRESS = 3, // 长按 +} button_status_enum; + + +extern uint32 button_press_time; + +void button_init(); +void button_1ms_callback(); // 1ms定时器回调函数 +button_status_enum button_get_status(); // 获取按钮状态 +void button_led_set(button_led_enum led); + + +#endif diff --git a/Header/clock_init.h b/Header/clock_init.h new file mode 100644 index 0000000..6b061cc --- /dev/null +++ b/Header/clock_init.h @@ -0,0 +1,61 @@ +#ifndef __CLOCK_INIT_H__ +#define __CLOCK_INIT_H__ + +#include "common.h" +//FOSC可选值:35000000, 33177600, 30000000, 27000000. 24000000, 22118400 + +// #define FOSC 0 // FOSC的值设置为0,则内核频率通过寄存器强制设置为33.1776Mhz, + // 不管STC-ISP软件下载时候选择多少,他都是33.1776Mhz。 + +#define FOSC 33177600 // FOSC的值设置为33.1776Mhz, + // 使用STC-ISP软件下载的时候, + // 此频率需要跟STC-ISP软件中的 <输入用户程序运行时的IRC频率>选项的频率一致。 + + +#define EXTERNAL_CRYSTA_ENABLE 0 // 使用外部晶振,0为不使用,1为使用(建议使用内部晶振) +#define PRINTF_ENABLE 1 // printf使能,0为失能,1为使能 +#define ENABLE_IAP 1 // 使能软件一键下载功能,0为失能,1为使能 + + +#define DEBUG_UART UART_1 +#define DEBUG_UART_BAUD 115200 +#define DEBUG_UART_RX_PIN UART1_RX_P30 +#define DEBUG_UART_TX_PIN UART1_TX_P31 +#define DEBUG_UART_TIM TIM_2 + +#define USE_USB_CDC 1 + +#if (1==PRINTF_ENABLE) + #if (1==USE_USB_CDC) + #include "stc32_stc8_usb.h" + #define printf printf_hid + #else + char putchar(char c); + #endif +#endif + +#define SET_P54_RESRT (RSTCFG |= 1<<4) //设置P54为复位引脚 + +extern int32 sys_clk; + +void board_init(void); +void DisableGlobalIRQ(void); +void EnableGlobalIRQ(void); + + +#define T22M_ADDR CHIPID11 //22.1184MHz +#define T24M_ADDR CHIPID12 //24MHz +#define T27M_ADDR CHIPID13 //27MHz +#define T30M_ADDR CHIPID14 //30MHz +#define T33M_ADDR CHIPID15 //33.1776MHz +#define T35M_ADDR CHIPID16 //35MHz +#define T36M_ADDR CHIPID17 //36.864MHz +#define T40M_ADDR CHIPID18 //40MHz +#define T44M_ADDR CHIPID19 //44.2368MHz +#define T48M_ADDR CHIPID20 //48MHz +#define VRT6M_ADDR CHIPID21 //VRTRIM_6M +#define VRT10M_ADDR CHIPID22 //VRTRIM_10M +#define VRT27M_ADDR CHIPID23 //VRTRIM_27M +#define VRT44M_ADDR CHIPID24 //VRTRIM_44M + +#endif diff --git a/Header/command.h b/Header/command.h new file mode 100644 index 0000000..a817414 --- /dev/null +++ b/Header/command.h @@ -0,0 +1,12 @@ +#ifndef __COMMAND_H__ +#define __COMMAND_H__ + +#include "common.h" + + +#define COMMAND_BUFFER_SIZE 64 // 命令缓冲区大小 + +void parseCommand(); +void command_uart_callback(uint8 dat); + +#endif diff --git a/Header/common.h b/Header/common.h new file mode 100644 index 0000000..1ad64ea --- /dev/null +++ b/Header/common.h @@ -0,0 +1,12 @@ +#ifndef __COMMON_H__ +#define __COMMON_H__ + + +#include +#include +#include +#include "intrins.h" +#include "types.h" +#include "clock_init.h" + +#endif diff --git a/Header/delay.h b/Header/delay.h new file mode 100644 index 0000000..060f8e1 --- /dev/null +++ b/Header/delay.h @@ -0,0 +1,10 @@ +#ifndef __DELAY_H__ +#define __DELAY_H__ + +#include "common.h" + +void delay_init(); +void delay_ms(uint16 x); +void delay_us(uint32 us); + +#endif diff --git a/Header/exti.h b/Header/exti.h new file mode 100644 index 0000000..cc17935 --- /dev/null +++ b/Header/exti.h @@ -0,0 +1,36 @@ +#ifndef __EXTI_H__ +#define __EXTI_H__ + +#include "common.h" + +//此枚举定义不允许用户修改 +typedef enum // 枚举ADC通道 +{ + INT0_P32 = 0, //支持边沿,下降沿中断 + INT1_P33, //支持边沿,下降沿中断 + INT2_P36, //支持下降沿中断 + INT3_P37, //支持下降沿中断 + INT4_P30, //支持下降沿中断 +}INTN_enum; + +#define INT0_CLEAR_FLAG (TCON &= (~(0x01 << 1))) //外部中断 0 中断请求标志。中断服务程序中,硬件自动清零。 +#define INT1_CLEAR_FLAG (TCON &= (~(0x01 << 3))) //外部中断 1 中断请求标志。中断服务程序中,硬件自动清零。 + +#define INT2_CLEAR_FLAG (AUXINTIF &= (~(0x10 << 0))) //外部中断 2 中断请求标志。中断服务程序中,硬件自动清零。 +#define INT3_CLEAR_FLAG (AUXINTIF &= (~(0x10 << 1))) //外部中断 3 中断请求标志。中断服务程序中,硬件自动清零。 +#define INT4_CLEAR_FLAG (AUXINTIF &= (~(0x10 << 2))) //外部中断 4 中断请求标志。中断服务程序中,硬件自动清零。 + + +typedef enum // 枚举ADC通道 +{ + BOTH, //边沿 + FALLING_EDGE, //下降沿 +// RISING_EDGE, //不支持上升沿 + +}INT_MODE_enum; + + +void exit_init(INTN_enum int_n,INT_MODE_enum mode); + + +#endif diff --git a/Header/fifo.h b/Header/fifo.h new file mode 100644 index 0000000..e6a20a0 --- /dev/null +++ b/Header/fifo.h @@ -0,0 +1,72 @@ +#ifndef __FIFO_H__ +#define __FIFO_H__ + +#include "common.h" + +typedef enum +{ + FIFO_SUCCESS, // FIFO 操作成功 + + FIFO_RESET_UNDO, // FIFO 重置操作未执行 + FIFO_CLEAR_UNDO, // FIFO 清空操作未执行 + FIFO_BUFFER_NULL, // FIFO 用户缓冲区异常 + FIFO_WRITE_UNDO, // FIFO 写入操作未执行 + FIFO_SPACE_NO_ENOUGH, // FIFO 写入操作 缓冲区空间不足 + FIFO_READ_UNDO, // FIFO 读取操作未执行 + FIFO_DATA_NO_ENOUGH, // FIFO 读取操作 数据长度不足 +}fifo_state_enum; // FIFO 操作结果 + +// 操作逻辑 +// 整体重置操作 将会强制清空 FIFO 谨慎使用 +// 数据写入操作 不能在重置以及写入操作时进行 +// 顺序读取操作 不能在清空和重置操作时进行 +// 尾部读取操作 不能在清空和重置以及写入操作时进行 +// 读取清空操作 不能在清空和重置以及读取操作时进行 +// 这是为了防止中断嵌套导致数据混乱 +typedef enum +{ + FIFO_IDLE = 0x00, // 空闲状态 + + FIFO_RESET = 0x01, // 正在执行重置缓冲区 + FIFO_CLEAR = 0x02, // 正在执行清空缓冲区 + FIFO_WRITE = 0x04, // 正在执行写入缓冲区 + FIFO_READ = 0x08, // 正在执行读取缓冲区 +}fifo_execution_enum; // FIFO 操作状态 为嵌套使用预留 无法完全避免误操作 + +typedef enum +{ + FIFO_READ_AND_CLEAN, // FIFO 读操作模式 读取后清空释放对应缓冲区 + FIFO_READ_ONLY, // FIFO 读操作模式 仅读取 +}fifo_operation_enum; + +typedef enum +{ + FIFO_DATA_8BIT, // FIFO 数据位宽 8bit + FIFO_DATA_16BIT, // FIFO 数据位宽 16bit + FIFO_DATA_32BIT, // FIFO 数据位宽 32bit +}fifo_data_type_enum; + +typedef struct +{ + uint8 execution; // 执行步骤 + fifo_data_type_enum type; // 数据类型 + void *buffer; // 缓存指针 + uint32 head; // 缓存头指针 总是指向空的缓存 + uint32 end; // 缓存尾指针 总是指向非空缓存(缓存全空除外) + uint32 reamin_size; // 缓存剩余大小 + uint32 max; // 缓存总大小 +}fifo_struct; + +fifo_state_enum fifo_clear (fifo_struct *fifo); +uint32 fifo_used (fifo_struct *fifo); + +fifo_state_enum fifo_write_element (fifo_struct *fifo, uint32 dat); +fifo_state_enum fifo_write_buffer (fifo_struct *fifo, void *dat, uint32 length); +fifo_state_enum fifo_read_element (fifo_struct *fifo, void *dat, fifo_operation_enum flag); +fifo_state_enum fifo_read_buffer (fifo_struct *fifo, void *dat, uint32 *length, fifo_operation_enum flag); +fifo_state_enum fifo_read_tail_buffer (fifo_struct *fifo, void *dat, uint32 *length, fifo_operation_enum flag); + +fifo_state_enum fifo_init (fifo_struct *fifo, fifo_data_type_enum type, void *buffer_addr, uint32 len); + + +#endif diff --git a/Header/gpio.h b/Header/gpio.h new file mode 100644 index 0000000..8974141 --- /dev/null +++ b/Header/gpio.h @@ -0,0 +1,41 @@ +#ifndef __GPIO_H__ +#define __GPIO_H__ + +#include "common.h" + +typedef enum +{ + NOPULL = 0, + PULLUP = 1, +}PULL_enum; + + +typedef enum +{ + P0_0 = 0x00, P0_1, P0_2, P0_3, P0_4, P0_5, P0_6, P0_7, + P1_0 = 0x10, P1_1, P1_2, P1_3, P1_4, P1_5, P1_6, P1_7, + P2_0 = 0x20, P2_1, P2_2, P2_3, P2_4, P2_5, P2_6, P2_7, + P3_0 = 0x30, P3_1, P3_2, P3_3, P3_4, P3_5, P3_6, P3_7, + P4_0 = 0x40, P4_1, P4_2, P4_3, P4_4, P4_5, P4_6, P4_7, + P5_0 = 0x50, P5_1, P5_2, P5_3, P5_4, P5_5, P5_6, P5_7, + P6_0 = 0x60, P6_1, P6_2, P6_3, P6_4, P6_5, P6_6, P6_7, + P7_0 = 0x70, P7_1, P7_2, P7_3, P7_4, P7_5, P7_6, P7_7, + +}PIN_enum; + +typedef enum +{ + //pnm1 pnm0 + GPIO = 0, //准双向口(弱上拉) + GPO_PP = 1, //推挽输出 + GPI_IMPEDANCE = 2, //高阻输入 + GPI_OD = 3, //开漏输出 +}GPIOMODE_enum; + + +void gpio_set_level(PIN_enum pin, uint8 level); +uint8 gpio_get_level(PIN_enum pin); +void gpio_pull_set(PIN_enum pin, PULL_enum pull); +void gpio_mode(PIN_enum pin, GPIOMODE_enum mode); + +#endif diff --git a/Header/hx711.h b/Header/hx711.h new file mode 100644 index 0000000..7c82bd7 --- /dev/null +++ b/Header/hx711.h @@ -0,0 +1,23 @@ +#ifndef __HX711_H__ +#define __HX711_H__ + +#include "common.h" + +#define HX711_DT_PIN P3_3 +#define HX711_SCK_PIN P3_4 + +typedef enum +{ + HX711_A_128 = 1, + HX711_B_32 = 2, + HX711_A_64 = 3, +} HX711_ch_enum; + +extern uint32 hx711_last_read_value[10]; // 用于存储最近读取的值 + +void hx711_init(); +uint32 hx711_read_set(HX711_ch_enum next_ch,uint8 avg_times); +uint8 hx711_single_read_non_blocking(HX711_ch_enum next_ch); // 非阻塞读取HX711数据 + + +#endif diff --git a/Header/iic.h b/Header/iic.h new file mode 100644 index 0000000..648a397 --- /dev/null +++ b/Header/iic.h @@ -0,0 +1,34 @@ +#ifndef __IIC_H__ +#define __IIC_H__ + +#include "common.h" + +typedef enum +{ + IIC_1 = 0, + IIC_2 = 1, + IIC_3 = 2, + IIC_4 = 3, + +} IICN_enum; + +// IO口是绑定死的,这里只是列出来 +typedef enum +{ + IIC1_SCL_P15 = 0x00, IIC1_SDA_P14, + IIC2_SCL_P25 = 0x10, IIC2_SDA_P24, + IIC3_SCL_P77 = 0x20, IIC3_SDA_P76, + IIC4_SCL_P32 = 0x30, IIC4_SDA_P33, +} IIC_PIN_enum; + + +#define IIC_SEND_OK 0 +#define IIC_SEND_FAIL 1 + +void iic_init(IICN_enum iic_n, uint8 wait_time); +uint8 iic_write_reg(uint8 dev_add, uint8 reg, uint8 dat); +uint8 iic_read_reg(uint8 dev_add, uint8 reg, uint8 *dat); +uint8 iic_read_reg_bytes(uint8 dev_add, uint8 reg, uint8 *dat, uint8 num); +void iic_change_pin(IICN_enum iic_n); + +#endif diff --git a/Header/iic_soft.h b/Header/iic_soft.h new file mode 100644 index 0000000..20ad471 --- /dev/null +++ b/Header/iic_soft.h @@ -0,0 +1,20 @@ +#ifndef __IIC_SOFT_H__ +#define __IIC_SOFT_H__ + +#include "common.h" +#include "gpio.h" + +typedef struct +{ + PIN_enum scl_pin; // SCL引脚 + PIN_enum sda_pin; // SDA引脚 + uint16 wait_time; // 等待时间,用于I2C总线速度控制 +} IIC_Soft_Config; + +void soft_iic_init(IIC_Soft_Config *config); + +uint8 soft_iic_read_reg(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg_addr, uint8 *dat); + +void soft_iic_write_reg(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg_addr, uint8 dat); + +#endif diff --git a/Header/isr.h b/Header/isr.h new file mode 100644 index 0000000..30bd884 --- /dev/null +++ b/Header/isr.h @@ -0,0 +1,9 @@ +#ifndef __ISR_H__ +#define __ISR_H__ + +#include "common.h" +#include "uart.h" +#include "exti.h" + + +#endif diff --git a/Header/pwm.h b/Header/pwm.h new file mode 100644 index 0000000..98fdcaa --- /dev/null +++ b/Header/pwm.h @@ -0,0 +1,69 @@ +#ifndef __PWM_H__ +#define __PWM_H__ + +#include "common.h" + +#define PWM_DUTY_MAX 10000 + + + +typedef enum +{ + //PWMA和PWMB是两组不同的PWM + + //以下是PWMA通道。 + //同一组PWM,同一时刻,只能有同一个PWM输出。 + //例如:PWMA_CH1P_P10 和 PWMA_CH1N_P11不能一起输出。 + PWMA_CH1P_P10 = 0x00,PWMA_CH1N_P11, + PWMA_CH1P_P20, PWMA_CH1N_P21, + PWMA_CH1P_P60, PWMA_CH1N_P61, + + PWMA_CH2P_P12 = 0x10,//该引脚已做 USB 内核电源稳压脚 + PWMA_CH2N_P13, + PWMA_CH2P_P22, PWMA_CH2N_P23, + PWMA_CH2P_P62, PWMA_CH2N_P63, + + PWMA_CH3P_P14 = 0x20,PWMA_CH3N_P15, + PWMA_CH3P_P24, PWMA_CH3N_P25, + PWMA_CH3P_P64, PWMA_CH3N_P65, + + PWMA_CH4P_P16 = 0x30,PWMA_CH4N_P17, + PWMA_CH4P_P26, PWMA_CH4N_P27, + PWMA_CH4P_P66, PWMA_CH4N_P67, + PWMA_CH4P_P34, PWMA_CH4N_P33, + + //以下是PWMB通道。 + //同一组PWM,同一时刻,只能有同一个PWM输出。 + //例如:PWMB_CH1_P20 和 PWMB_CH1_P17 不能同时输出 + //但是不同的通道可以同一时刻输出。 + //例如:PWMB_CH1_P20 和 PWMB_CH2_P21可以同时输出 + PWMB_CH1_P20 = 0x40, + PWMB_CH1_P17, + PWMB_CH1_P00, + PWMB_CH1_P74, + + PWMB_CH2_P21 = 0x50, + PWMB_CH2_P54, //该引脚为复位引脚 + PWMB_CH2_P01, + PWMB_CH2_P75, + + PWMB_CH3_P22 = 0x60, + PWMB_CH3_P33, + PWMB_CH3_P02, + PWMB_CH3_P76, + + PWMB_CH4_P23 = 0x70, + PWMB_CH4_P34, + PWMB_CH4_P03, + PWMB_CH4_P77, + +}PWMCH_enum; + + +void pwm_init(PWMCH_enum pwmch,uint32 freq, uint32 duty); +void pwm_duty(PWMCH_enum pwmch, uint32 duty); +void pwm_freq(PWMCH_enum pwmch, uint32 freq, uint32 duty); + + + +#endif diff --git a/Header/stc32_stc8_usb.h b/Header/stc32_stc8_usb.h new file mode 100644 index 0000000..3d2bef3 --- /dev/null +++ b/Header/stc32_stc8_usb.h @@ -0,0 +1,89 @@ +#ifndef __STC32_STC8_USB_H__ +#define __STC32_STC8_USB_H__ + +#include "common.h" + +//使用串口“printf”打印信息需屏蔽以下两个定义 +//#define PRINTF_SEGLED //printf输出重定向到ISP下载软件中的7段数码管 +//#define PRINTF_HID //printf输出直接重定向到USB HID接口 + +#ifndef NULL + #define NULL ((void *) 0) +#endif + +#define DEVSTATE_ATTACHED 0 +#define DEVSTATE_POWERED 1 +#define DEVSTATE_DEFAULT 2 +#define DEVSTATE_ADDRESS 3 +#define DEVSTATE_CONFIGURED 4 +#define DEVSTATE_SUSPENDED 5 + +void usb_init(); +//void usb_IN(); //USB HID +//void usb_IN(uint16 size); //USB CDC +void usb_OUT_done(); +void USB_SendData(uint8 *dat, int size); + +BOOL usb_OUT_callback(); //包含中断模式的CDC库时,需要编写此回调函数代码,查询模式则不需要 + +int SEG7_ShowString(const char *fmt, ...); +void SEG7_ShowLong(long n, char radix); +void SEG7_ShowFloat(float f); +void SEG7_ShowCode(uint8 *cod); + +void LED40_SendData(uint8 *dat, uint8 size); +void LED64_SendData(uint8 *dat, uint8 size); + +void LCD12864_DisplayOff(); +void LCD12864_DisplayOn(); +void LCD12864_CursorOff(); +void LCD12864_CursorOn(); +void LCD12864_CursorMoveLeft(); +void LCD12864_CursorMoveRight(); +void LCD12864_CursorReturnHome(); +void LCD12864_ScrollLeft(); +void LCD12864_ScrollRight(); +void LCD12864_ScrollUp(uint8 line); +void LCD12864_AutoWrapOff(); +void LCD12864_AutoWrapOn(); +void LCD12864_ReverseLine(uint8 line); +void LCD12864_DisplayClear(); +void LCD12864_ShowString(uint8 x, uint8 y, char *str); +void LCD12864_ShowPicture(uint8 x, uint8 y, uint8 cx, uint8 cy, uint8 *dat); + +void OLED12864_DisplayOff(); +void OLED12864_DisplayOn(); +void OLED12864_DisplayContent(); +void OLED12864_DisplayEntire(); +void OLED12864_HorizontalMirror(); +void OLED12864_VerticalMirror(); +void OLED12864_DisplayReverse(); +void OLED12864_SetContrast(uint8 bContrast); +void OLED12864_SetAddressMode(uint8 bMode); +void OLED12864_ScrollLeft(uint8 bPageStart, uint8 bPageEnd, uint16 nInterval); +void OLED12864_ScrollRight(uint8 bPageStart, uint8 bPageEnd, uint16 nInterval); +void OLED12864_ScrollUp(uint8 bPageStart, uint8 bPageEnd, uint16 nInterval); +void OLED12864_ScrollStart(); +void OLED12864_ScrollStop(); +void OLED12864_ShowPicture(uint8 x, uint8 y, uint8 cx, uint8 cy, uint8 *dat); + +int printf_hid (const char *fmt, ...); + +#if defined PRINTF_SEGLED +#define printf SEG7_ShowString +#elif defined PRINTF_HID +#define printf printf_hid +#endif + + +extern uint8 xdata UsbFeatureBuffer[64]; +extern uint8 xdata UsbInBuffer[64]; +extern uint8 xdata UsbOutBuffer[64]; +extern BOOL bUsbFeatureReady; +extern BOOL bUsbInBusy; +extern BOOL bUsbOutReady; +extern uint8 DeviceState; +extern uint8 OutNumber; + + +#endif diff --git a/Header/tim.h b/Header/tim.h new file mode 100644 index 0000000..482570d --- /dev/null +++ b/Header/tim.h @@ -0,0 +1,38 @@ +#ifndef __TIM_H__ +#define __TIM_H__ + +#include "common.h" + +typedef enum +{ + CTIM0_P34=0, + CTIM1_P35, + CTIM2_P12, + CTIM3_P04, + CTIM4_P06, +}CTIMN_enum; + + +typedef enum +{ + TIM_0, + TIM_1, + TIM_2, + TIM_3, + TIM_4, +}TIMN_enum; + + +#define TIM2_CLEAR_FLAG AUXINTIF &= ~0x01; +#define TIM3_CLEAR_FLAG AUXINTIF &= ~0x02; // 清中断标志 +#define TIM4_CLEAR_FLAG AUXINTIF &= ~0x04; // 清中断标志 + + +void ctimer_count_init(CTIMN_enum tim_n); +void ctimer_count_clean(CTIMN_enum tim_n); +uint16 ctimer_count_read(CTIMN_enum tim_n); + +void pit_timer_ms(TIMN_enum tim_n,uint16 time_ms); + + +#endif diff --git a/Header/types.h b/Header/types.h new file mode 100644 index 0000000..e66ae0a --- /dev/null +++ b/Header/types.h @@ -0,0 +1,26 @@ +#ifndef __TYPES_H__ +#define __TYPES_H__ + +//数据类型声明 +typedef unsigned char uint8 ; // 8 bits +typedef unsigned int uint16 ; // 16 bits +typedef unsigned long uint32 ; // 32 bits + + +typedef signed char int8 ; // 8 bits +typedef signed int int16 ; // 16 bits +typedef signed long int32 ; // 32 bits + + +typedef volatile int8 vint8 ; // 8 bits +typedef volatile int16 vint16 ; // 16 bits +typedef volatile int32 vint32 ; // 32 bits + + +typedef volatile uint8 vuint8 ; // 8 bits +typedef volatile uint16 vuint16; // 16 bits +typedef volatile uint32 vuint32; // 32 bits + +typedef bit BOOL; + +#endif diff --git a/Header/uart.h b/Header/uart.h new file mode 100644 index 0000000..d80de9e --- /dev/null +++ b/Header/uart.h @@ -0,0 +1,65 @@ +#ifndef __UART_H__ +#define __UART_H__ + +#include "common.h" +#include "tim.h" + +#define UART1_CLEAR_RX_FLAG (SCON &= ~0x01) +#define UART2_CLEAR_RX_FLAG (S2CON &= ~0x01) +#define UART3_CLEAR_RX_FLAG (S3CON &= ~0x01) +#define UART4_CLEAR_RX_FLAG (S4CON &= ~0x01) + +#define UART1_CLEAR_TX_FLAG (SCON &= ~0x02) +#define UART2_CLEAR_TX_FLAG (S2CON &= ~0x02) +#define UART3_CLEAR_TX_FLAG (S3CON &= ~0x02) +#define UART4_CLEAR_TX_FLAG (S4CON &= ~0x02) + + +#define UART1_GET_RX_FLAG (SCON & 0x01) +#define UART2_GET_RX_FLAG (S2CON & 0x01) +#define UART3_GET_RX_FLAG (S3CON & 0x01) +#define UART4_GET_RX_FLAG (S4CON & 0x01) + +#define UART1_GET_TX_FLAG (SCON & 0x02) +#define UART2_GET_TX_FLAG (S2CON & 0x02) +#define UART3_GET_TX_FLAG (S3CON & 0x02) +#define UART4_GET_TX_FLAG (S4CON & 0x02) + + +typedef enum //枚举串口号 +{ + UART_1, + UART_2, + UART_3, + UART_4, +}UARTN_enum; + +typedef enum //枚举串口引脚 +{ + UART1_RX_P30, UART1_TX_P31, //只能使用同一行的RX和TX引脚号。不允许混用 + UART1_RX_P36, UART1_TX_P37, //例如:UART1_RX_P30,UART1_TX_P37。这样不行。 + UART1_RX_P16, UART1_TX_P17, + UART1_RX_P43, UART1_TX_P44, + + UART2_RX_P10, UART2_TX_P11, + UART2_RX_P46, UART2_TX_P47, + + UART3_RX_P00, UART3_TX_P01, + UART3_RX_P50, UART3_TX_P51, + + UART4_RX_P02, UART4_TX_P03, + UART4_RX_P52, UART4_TX_P53, + + +}UARTPIN_enum; + +extern uint8 busy[5]; + + +void uart_init(UARTN_enum uart_n, UARTPIN_enum uart_rx_pin, UARTPIN_enum uart_tx_pin, uint32 baud,TIMN_enum tim_n); +void uart_putchar(UARTN_enum uart_n,uint8 dat); +void uart_putstr(UARTN_enum uart_n,uint8 *str); +void uart_putbuff(UARTN_enum uart_n,uint8 *p,uint32 len); + + +#endif diff --git a/Lib/stc_usb_cdc_32g_interrupt.LIB b/Lib/stc_usb_cdc_32g_interrupt.LIB new file mode 100644 index 0000000000000000000000000000000000000000..4e91f1d4c068db743d6ff8888879e684f80b368a GIT binary patch literal 86205 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 PgAYYvEb#^Or_BEYX+#Nv literal 0 HcmV?d00001 diff --git a/Objects/stc32g_all.hex b/Objects/stc32g_all.hex new file mode 100644 index 0000000..f004841 --- /dev/null +++ b/Objects/stc32g_all.hex @@ -0,0 +1,1194 @@ +:0200000400FFFB +:10000000023D6802000A53EFEF323202001A53EF4A +:10001000DF323202001253EFBF323202002253EFBE +:10002000FE3232023469801200000000000000003D +:10003000000000000000000000007D231B344D2262 +:1000400078E6220244B9E47AB3010B74117E704859 +:100050000248B702000653EFFD322202000E53EFB2 +:10006000FB322202001E74047E34FE817E24007E58 +:100070007A1BB0123BDA7E34FE877E24007E7E1B24 +:02008000B022AC +:06008300020016D2AF22BC +:06008B000244D3C2AF22C3 +:060093000244ED024927C2 +:06009B0002005602492795 +:1000A30002005E7F217F707F10800A7E2B307A1BD7 +:1000B300300B540B34691FFFFD7D011B04790FFFC7 +:1000C300FD4D1178E67F17220230E77EB30101BEB2 +:1000D300B00D50507EA003A49000DF73020106020E +:1000E300010902012702010C02012702010F02018B +:1000F3001202011502011802011B02011E02012155 +:100103000201240223A40229F4022C6802399E026C +:100113002A930200960237C602294F023DE50243A5 +:070123001F02009E024927A4 +:10012B000241C90204266E00807CB1337CB0336877 +:10013B000D0468EF7CB5337CB43378037F10220455 +:10014B0068E17D5092F77D457D51BF2140067C8053 +:10015B007F017F121203E97EA1D05CB004780320EB +:10016B00D5C17CB00478075002B2D502042E92D5CB +:10017B00BE80FF68F67CB89CB06C00602AB4180592 +:10018B007C4102040250FB80032F00047C9B5E9099 +:10019B000778F630E4067C437D106D0030E3087C75 +:1001AB00437C327C210A0030F5199F10780E220215 +:1001BB00042B1B8068F92F1150020B707CB530E7B4 +:1001CB00F1801B2D317CB5A5397C5B50110B8078F0 +:1001DB000302042E1E341350034E60801A2B0204AC +:1001EB00025D22680D5D0078122D220B4068099F7D +:1001FB0011222D000B0078F90204261203E95C8012 +:10020B000B806808248150072CB0500A02042E2C56 +:10021B00B0400302042B7C8B5D1178267CB17CA54E +:10022B00BE1080680A5D33780DA5BD80057F100276 +:10023B0004186D0080307F017C5B7CB17CA5AD1216 +:10024B0080245D337806A5BD80F080E1CA887D41AE +:10025B00AD437CB17CA5AD122D1450020B047C5B1D +:10026B00AD232F01DA88A42D05BE008040060B803C +:10027B00780480982F007C437C507C617C72020454 +:10028B0002BE24FFFF6806BE04FFFF7803020426AC +:10029B001203E95CB00468F57CB8A54868EF7CB83C +:1002AB0070039F1122A5B8000302042E2E0081506B +:1002BB00079C80380702042B9C8050ED0A51C2E743 +:1002CB004D5178030204187E5400807E901A6C0006 +:1002DB0080061B9068142F11BF1040049F104CAB6D +:1002EB000330E7EECAA86CAA80E8DA39DA587C4A00 +:1002FB00BE5080500A1B8068BC2F1150020B70023D +:10030B00040274F86CAA6E40806E0080BEB0FF6869 +:10031B00277C837C975C3B5C7BBF10682AF4400D89 +:10032B007C382D15F45C3B500F0B04800B7C792D26 +:10033B0035F45C7B50020B24BF10680B7CB020E7BC +:10034B00067CB420E701B3227EA020800C7EA01097 +:10035B0080057EA0086C556D333392D5500A6E34F0 +:10036B00FFFF6E24FFFF0B1CA5EC3340062F11D5AE +:10037B00F0F6227CBA247EA2D5137C767C65A5CCC4 +:10038B0092E77C5B227CB5337CB43392D54E5080A4 +:10039B00248140039F11227C457C567C676C77241B +:1003AB00E0500E7E1CFFFF221E341E2450034E60B5 +:1003BB00800478F430D50A6E34FFFF6E24FFFF0BF8 +:1003CB001C227F707F517E6F00947E9403DC0204AD +:1003DB00674005E47A7BB0227A7BB00B7C222D0040 +:1003EB0092D50E104E10807D422D445002B2D54E48 +:1003FB0050806C447CB8222C4450120B1C7E400065 +:10040B005E507FBE18000078040B806816A2D57C66 +:10041B00B8137C4B7CB592E77C5B227E1CFFFF22E2 +:10042B009F11227E24FF8020D5026C456D33225410 +:10043B000F2490D43440D430F30CBEB0414007BEEF +:10044B00B05B500224204CCC68021BC00B84D389B8 +:10045B00944CCC680B742012045180F5CA3B6D8808 +:10046B009F337CAE7E5BB00B5C7007C37D38DA3B91 +:10047B008994B42569C2F37E5BB00B5CA5F824D0DC +:10048B00BEB00A501B7E500A20F60DAC5CA52D7C2D +:10049B00CB70034EF00180DDAC5DA52D7CDB80D5F0 +:1004AB0024CFBEB01AA5E850055E00DFD2F390084A +:1004BB003CA3E4936011BCB078F77417934CAB304A +:1004CB00F6B34EF08080AEA3E4936010BCB078F727 +:1004DB007416937C3B7423937C2B89147CB0801310 +:1004EB00742012045120F205BEC00250F31B6D297B +:1004FB00B6000112045102045C1B6E691600020B5C +:10050B006A00BE08000078087E0400FF7E14495282 +:10051B0020F21E4CCC681A7F10E47E1B804C88683E +:10052B00070B1C04BCBD78F2C2F6CA0B12063BDAF1 +:10053B000B7E0BB060C0CA0B120451DA0B0B0C4CC8 +:10054B00DD68EE1BD078EA80ADD2F07E1010800310 +:10055B007E10085EB05F800AD2F67E100A80057EA0 +:10056B00100AC2F66D119F117E00201B6C7E6B7002 +:10057B0030F6021A3720F1051B6C7E6B6030F604E7 +:10058B001A261A2430F0051B6D0B6A20A5EC33825A +:10059B00F692F6500A7CEA9F229F217F127CAE4C8A +:1005AB0044780F7C457C567C676C772E00F878EF8F +:1005BB0080122F117CB3337C3B9CB140047C3B0BF2 +:1005CB0070A5D8EE7CB230E005DAB8C44C3BCA3823 +:1005DB000B207E00207E3000BE18000078C1BE10BC +:1005EB0008780730F404C2F480B5CA287CB2BCBDCD +:1005FB0038027CBD12063BDA28BC2D500A1BD0E416 +:10060B00CA2812043A80F07CB213DAB84004C4CA88 +:10061B00B8C4CA28BEF08040095CDD7805A5DA02B3 +:10062B0060065EF07F12043ADA28A5DADA02045C7F +:10063B00BEF001680F30F402240220F50620F70308 +:10064B0030F6010420F229BCBC5025CAB87CBF137C +:10065B00B0E67420501174307C8A5E80F06808120A +:10066B00067B5EA00F8003120451DAB8BCBC78DBAA +:10067B0030F40F7430120451745830F30274781242 +:10068B00045130F605742D020451742B20F5F874C7 +:10069B002020F7F3221B6C7E6BB010F1021B6C2039 +:1006AB00F60B30E704F404D2F27CCB800520E7058F +:1006BB007CDB0204805EF07F80F81B6E6916000203 +:1006CB000B6A0030F0076D221B0A200B0D1B0A80F2 +:1006DB0002046BE46C22BE3007500B7F1F2D312EB2 +:1006EB0034FFF77E39B0227CBF20E7A8742E4EF082 +:1006FB0080020451120825403D7CBD7003047CDB55 +:10070B0012093C7C3D4C3368101B307CBE20E40945 +:10071B001206DE70044C3378F07CBD7CD3BEA0FD9A +:10072B00481CBCAB5818E49CBA2CB31801E47CDB16 +:10073B000207C6120825406E7CBD0412093C7AFBE9 +:10074B00A07CAE7CBDA2F492F0C2F4400260010426 +:10075B00240512063B7E30FF0B301206DECA381220 +:10076B00043A20F0044CDD68031206F2DA38BC3D83 +:10077B0078E6740E12043A742B7EFBA030F70774E4 +:10078B002D6EA0FF0BA07AFBA01204517EA00A7E57 +:10079B00FBB0847AFBA012043A7EFBB012043A9EA3 +:1007AB00F8000802045CD2F27ED00002051B12088E +:1007BB002540F37CBA2CBD0412093C7AFBA07CBA11 +:1007CB007CAE30E701E40420F4044CDD6805D2F084 +:1007DB00C2F4042CBD12063B6C337EFBB0601B20B5 +:1007EB00E712147AFBB01206DECA3812043ADA3872 +:1007FB000B3080E6047AFBB01B301206DECA3812CF +:10080B00043A4CDD68071206F21BD080E19EF8001B +:10081B000930F0031206F202045C7CEA7CAF10F79D +:10082B00037ED0067CFA1B6E693600020B6A20022F +:10083B0008842D2B204C4248232E0053584F4449FB +:10084B004355502A4E4645470004208001020010B4 +:10085B004004565B6363F06A54A0C5B93EFF0505BF +:10086B0005050504050506060707064E614E002B18 +:10087B00494E46002D494E46007D522D557CBE9269 +:10088B00E67CEB7CBA601F0470287CB5C2E77E0463 +:10089B0000FF60067E140876D3227E14087F400486 +:1008AB007E14087AD322DA099F22CA2BCA2BC3CA19 +:1008BB0009220A0A7E144D10AD109E083AF09E10C4 +:1008CB00267CB5C2E77EA0567C9BA46E54FFFF2E00 +:1008DB0054C511ACA92D15E4A539CAB8CA1B20E71C +:1008EB000A1209AFDA1B12028C800AF4041209AF48 +:1008FB00DA1B1201ECDAA87CB5337CB4334E508092 +:10090B006C4424822F111478FBDA497407BE400A19 +:10091B0040099E400ACA0201140BA0CA486C442F1E +:10092B00117F012F112F112F101478EFCA48CA49CC +:10093B00227F0F20E73ABEB007400274070A0B2D47 +:10094B00109E1400097E19B02EB0FB501F4C11687D +:10095B0017E47A19B01B147E19B0047A19B0B40AD3 +:10096B000BE47A19B0A5D9ED0BA074017A19B0225A +:10097B005EE0BF223F8000004120000042C8000023 +:10098B00447A0000461C400047C3500049742400C1 +:10099B004B1896804CBEBC205A0E1BCA6753C21C08 +:1009AB00749DC5AE7C7B6006540768162323120921 +:1009BB00D47CB75438680A7F101209D11201EC7F2E +:1009CB0001227CB7543803241C6CAA2E54097F7E59 +:1009DB004400FF0B2A0069120002227D51AD037DFA +:1009EB00027D21AD052D12AD352D21226D00741028 +:1009FB004D00780B4D2278278D317D126D22227D93 +:100A0B00437D326D222F112D445002A50FBF104094 +:100A1B00049F100B901478ED7F016D227D34227DA5 +:100A2B00417D138D247D022F004004BD0440049DA5 +:100A3B00040B141478F17D237D317D106D0022C2DF +:100A4B00D57CB030E708B2D59F229F207F027CB4C3 +:100A5B0030E713B2D59F229F217F121209F99F22F3 +:100A6B009F207F0280031209F930D5069F229F2118 +:100A7B007F12227D127D234D116803020B8F7D3275 +:100A8B005E3400F0781A7CB5540F7E0400016005CB +:100A9B003E041478FB7CA16EA0FF7CBA5293529457 +:100AAB00BE340010781A7CB5540F7E04000160052B +:100ABB003E041478FB7CA16EA0FF7CBA529152923B +:100ACB00BE340020781A7CB5540F7E0400016005FB +:100ADB003E041478FB7CA16EA0FF7CBA5295529613 +:100AEB00BE340030781A7CB5540F7E0400016005CB +:100AFB003E041478FB7CA16EA0FF7CBA52B152B2BB +:100B0B00BE340040781A7CB5540F7E04000160059A +:100B1B003E041478FB7CA16EA0FF7CBA52B352B496 +:100B2B00BE340050781A7CB5540F7E04000160056A +:100B3B003E041478FB7CA16EA0FF7CBA52C952CA4A +:100B4B00BE340060781A7CB5540F7E04000160053A +:100B5B003E041478FB7CA16EA0FF7CBA52CB52CC26 +:100B6B00BE3400706803020E747CB5540F7E3400E3 +:100B7B000160053E341478FB7CA76EA0FF7CBA5253 +:100B8B00E152E222BE1400016803020C967D325E34 +:100B9B003400F078197CB5540F7E04000160053EDB +:100BAB00041478FB7CB164FF52937CB14294BE3445 +:100BBB00001078197CB5540F7E04000160053E04CB +:100BCB001478FB7CB164FF52917CB14292BE34002D +:100BDB002078197CB5540F7E04000160053E041487 +:100BEB0078FB7CB164FF52957CB14296BE340030E9 +:100BFB0078197CB5540F7E04000160053E0414780F +:100C0B00FB7CB164FF52B17CB142B2BE3400407880 +:100C1B00197CB5540F7E04000160053E041478FB6B +:100C2B007CB164FF52B37CB142B4BE34005078192E +:100C3B007CB5540F7E04000160053E041478FB7CE8 +:100C4B00B164FF52C97CB142CABE34006078197CD2 +:100C5B00B5540F7E04000160053E041478FB7CB193 +:100C6B0064FF52CB7CB142CCBE3400706803020EE1 +:100C7B00747CB5540F7E34000160053E341478FB50 +:100C8B007CA77CBA64FF52E1020E70BE14000268AE +:100C9B0003020D8D7D325E3400F078177CB5540F56 +:100CAB007E04000160053E041478FB7CB142936422 +:100CBB00FF5294BE34001078177CB5540F7E04009D +:100CCB000160053E041478FB7CB1429164FF5292A3 +:100CDB00BE34002078177CB5540F7E0400016005EC +:100CEB003E041478FB7CB1429564FF5296BE3400EF +:100CFB003078177CB5540F7E04000160053E041458 +:100D0B0078FB7CB142B164FF52B2BE34004078171D +:100D1B007CB5540F7E04000160053E041478FB7C07 +:100D2B00B142B364FF52B4BE34005078177CB55453 +:100D3B000F7E04000160053E041478FB7CB142C9B0 +:100D4B0064FF52CABE34006078177CB5540F7E0422 +:100D5B00000160053E041478FB7CB142CB64FF526A +:100D6B00CCBE3400706803020E747CB5540F7E3415 +:100D7B00000160053E341478FB7CB742E164FF52FE +:100D8B00E222BE1400036803020E747D325E34004F +:100D9B00F078157CB5540F7E14000160053E1414D9 +:100DAB0078FB7CB342934294BE34001078157CB52B +:100DBB00540F7E14000160053E141478FB7CB34283 +:100DCB00914292BE34002078157CB5540F7E1400EE +:100DDB000160053E141478FB7CB342954296BE34F9 +:100DEB00003078157CB5540F7E14000160053E145D +:100DFB001478FB7CB342B142B2BE34004078157C10 +:100E0B00B5540F7E14000160053E141478FB7CB3BF +:100E1B0042B342B4BE34005078157CB5540F7E14E7 +:100E2B00000160053E141478FB7CB342C942CABE74 +:100E3B0034006078157CB5540F7E14000160053EBC +:100E4B00141478FB7CB342CB42CCBE3400707819BF +:100E5B007CB5540F7E34000160053E341478FB7C66 +:100E6B00A77CBA42E17CBA42E222CA797A0F01220C +:100E7B007D7343BA801214357E1F001C7E0F012236 +:100E8B001209F97D126D007DD20B141209F77F71D7 +:100E9B001B7C7E1F0126BE182710681FE41203530C +:100EAB007E1440007E04461C12028C7F017F17E4E7 +:100EBB001203531201EC12039080047F170B1C7A60 +:100ECB001F012ABE7400405803020F9B7D570E541E +:100EDB000E540E540E541B563E547CAB7E14000124 +:100EEB0060053E141478FB7E34FEB57E24007E7EB6 +:100EFB001BB04CB37A1BB07D375E3400037CBA60F9 +:100F0B00053E341478FB7C677E14FEB67E04007EAF +:100F1B007E0B704C767A0B707D570E540E540E541C +:100F2B000E545E5400013E543E547E340001600565 +:100F3B003E341478FB7C677D170E140E140E140EC2 +:100F4B00140E141A021A007F202F202F222E440079 +:100F5B00FF2E28497E691200020B2A007E0B704C73 +:100F6B00767A0B707D1D0A127E34FEF07E24007E95 +:100F7B007A1B307D3D7C377E34FEF17A1B307480DA +:100F8B007E34FEFD7A1BB074017E34FEE0021071DC +:100F9B007D570E540E540E540E543E547CAB7CBFF6 +:100FAB0054017E3400017D2360053E241478FB7CC4 +:100FBB00BA60053E241478FB7E14FEB17E04007EDD +:100FCB007E0BB04CB57A0BB07D275E2400070E2448 +:100FDB007CBA60053E241478FB7C457E14FEB27E01 +:100FEB0004007E7E0B504C547A0B507D270E240E42 +:100FFB00240E240E245E2400013E243E247D575EE5 +:10100B005400013E542D5260053E341478FB7C672E +:10101B007D170E140E140E140E140E141A021A0051 +:10102B007F202F202F222E4400FF2E28497E69126D +:10103B0000020B2A007E0B704C767A0B707D1D0A1A +:10104B00127E34FED07E24007E7A1B307D3D7C37B1 +:10105B007E34FED17A1B3074807E34FEDD7A1BB079 +:10106B0074017E34FEC07E24007E7A1BB07D1F7D12 +:10107B00370E340E340E340E340E340E341A261A48 +:10108B00247F212F212F222E4400FF2E2849766901 +:10109B003200020B2A207A1B207D3F7D370E340E47 +:1010AB00340E340E340E340E341A261A247F212FAC +:1010BB00212F222E4400FF2E284976693200020B85 +:1010CB002A200B1C7A1B307E1F012A7C367D370EA3 +:1010DB00340E340E340E341A261A247F212F212F6E +:1010EB00222E4400FF2E284956693200020B2A207B +:1010FB007A1B307E2F012A7D370E340E340E340EC0 +:10110B00341A261A247F012F012F007F702EE40042 +:10111B00FF2E784956693700020B7A200B1C7A1B7D +:10112B00B02E0400FF2E08498E693000020B0A20F6 +:10113B007E1BB044607A1BB07D370E340E340E34F8 +:10114B000E341A261A247F012F012F002E0400FFC4 +:10115B002E08498E693000020B0A207E1BB0440812 +:10116B007A1BB0DA7922CA3B7A1F00EC7F306D33E1 +:10117B007A3700F69F007A0F00F87A0F00FC7E1F7B +:10118B0000EC4D23780B7E3400037A3700F6021403 +:10119B00117E3B700A375E34000768127E1F00F029 +:1011AB00791100021B1A007E3400060214237F0300 +:1011BB0012483D7F217A1F00FC7E0F00F069300042 +:1011CB00020B0A20BF1228267E1F00FC793000027A +:1011DB001B0A207E3400077A3700F67E1F00FC4D79 +:1011EB0023780B7E3BB054F77A3BB002142E7E3B38 +:1011FB00B044087A3BB06913000D6903000B6933E7 +:10120B00000969230007BF1038127E2F00F0691206 +:10121B0000020B2A00BF1050030212A46913000135 +:10122B001B1468201B14683D0B1568030214097E00 +:10123B002F00F0691200020B2A007D51CA599F1032 +:10124B007D1380447E1F00F0691100020B1A007F92 +:10125B00102F10CA3969330009692300079F107DCD +:10126B00133E1480237E1F00F0691100020B1A003D +:10127B007F102F102F11CA3969330009692300071A +:10128B009F107D133E143E14693300056923000340 +:10129B002D317E0F00EC0214046913000969030061 +:1012AB00077E2F00F0693200020B2A209F107A1F55 +:1012BB0000F8693300011B34686B1B34780302138D +:1012CB00960B3568030214097E0F00F87D31CA397D +:1012DB0069330015692300139F107D1369330005D3 +:1012EB00692300032D317E0F00EC1200A61BFD7E3F +:1012FB001F00F0695100020B1A407E0F00F87F129D +:10130B009F10CA3969330009692300079F127D5367 +:10131B0069330005692300032D357D517E0F00ECE9 +:10132B002D150214047E0F00F87D313E34CA396945 +:10133B00330015692300139F107D133E146933008E +:10134B0005692300032D317E0F00EC1200A61BFD57 +:10135B007E1F00F0695100020B1A407E0F00F87FD0 +:10136B00129F102F11CA3969330009692300079F97 +:10137B00127D533E5469330005692300032D357DDF +:10138B00513E547E0F00EC2D15806E7E0F00F87DC4 +:10139B00313E343E34CA3969330015692300139F3B +:1013AB00107D133E143E1469330005692300032D91 +:1013BB00317E0F00EC1200A61BFD7E1F00F0695161 +:1013CB0000020B1A407E0F00F87F129F102F112F77 +:1013DB0011CA3969330009692300079F127D533EF7 +:1013EB00543E5469330005692300032D357D513E6E +:1013FB00543E547E0F00EC2D151200A61BFD7E3BB8 +:10140B00B054F77A3BB07E3700F44D3378157E3B02 +:10141B00B0B40B0A7E3400027A3700F680057F03E6 +:10142B001233997E3700F6DA3B227D53BE5400749B +:10143B0040030216D57E340003AD532E54144C8951 +:10144B00540215A80215AF0215B60215BD0215C43C +:10145B000215CB0216D50216D50216D50216D502E9 +:10146B0016D50216D50216D50216D50216D50216BA +:10147B00D50215D20215D90215E00215E70215EEB9 +:10148B000215F50216D50216D50216D50216D5028F +:10149B0016D50216D50216D50216D50216D502168A +:1014AB00D50215FC02160202160802160E021614BD +:1014BB0002161A0216D50216D50216D50216D50239 +:1014CB0016D50216D50216D50216D50216D502165A +:1014DB00D502162002162602162C021632021638D8 +:1014EB0002163E02164402164A0216D50216D50201 +:1014FB0016D50216D50216D50216D50216D502162A +:10150B00D502165002165602165C0216600216D54C +:10151B000216D50216D50216D50216D50216D5021D +:10152B0016D50216D50216D50216D50216D50216F9 +:10153B00D502166602166C02167202167A0216D5C0 +:10154B000216D50216D50216D50216D50216D502ED +:10155B0016D50216D50216D50216D50216D50216C9 +:10156B00D502168402168E0216980216A20216D502 +:10157B000216D50216D50216D50216D50216D502BD +:10158B0016D50216D50216D50216D50216D5021699 +:10159B00D50216AC0216B60216C00216CA7E34006D +:1015AB001002167E7E34001102167E7E340020025D +:1015BB00167E7E34002102167E7E34006002167E7B +:1015CB007E34006102167E7E34001202167E7E345B +:1015DB00001302167E7E34002202167E7E34002318 +:1015EB0002167E7E34006202167E7E340063021683 +:1015FB007E7E340014807C7E34001580767E340031 +:10160B002480707E340025806A7E34006480647E82 +:10161B00340065805E7E34001680587E340017805F +:10162B00527E340026804C7E34002780467E340068 +:10163B006680407E340067803A7E34003480347E8E +:10164B00340033802E7E34002080287E34001780B7 +:10165B00226D33801E7E34007480187E340021800E +:10166B00127E340054800C7E2400017D3280587E23 +:10167B003400757E240001804E7E3400227E2400CF +:10168B000180447E3400337E240001803A7E340096 +:10169B00027E24000180307E3400767E240001809F +:1016AB00267E3400237E240001801C7E3400347E91 +:1016BB0024000180127E3400037E24000180087E0A +:1016CB003400777E240001020A7E22CA3B7A1F0077 +:1016DB00087F306D337A3700129F007A0F00147A2F +:1016EB000F00187E1F00084D23780B7E3400037A01 +:1016FB003700120218E87E3B700A375E340003682D +:10170B00127E1F000C791100021B1A007E3400069A +:10171B000218FA7F0312483D7F217A1F00187E0FB3 +:10172B00000C693000020B0A20BF1228237E1F0019 +:10173B0018793000021B0A207E3400077A3700121A +:10174B007E1F00184D2378087E3BB054F702193BDF +:10175B007E3BB044087A3BB06933000D6923000B24 +:10176B0069530015694300139F217A2F00147E7F64 +:10177B00000C691700020B7A00BF0238586953003E +:10178B00011B5468111B5468230B5568030218E0A6 +:10179B00CA197D13802E7E0F000C693000023E3477 +:1017AB00CA396933000D7D133E1480187E0F000C6F +:1017BB00693000023E343E34CA396933000D7D1363 +:1017CB003E143E1469330005692300032D317E0F4F +:1017DB0000080218DB693300011B3468511B347895 +:1017EB00030218870B3568030218E07E1F0014CA2A +:1017FB00396933000D7D1369330005692300032D0F +:10180B00317E0F00081200A61BFD7E1F000C691114 +:10181B0000020B1A007E1F00149F01CA197E0F00D5 +:10182B00082D1369330005692300030218DB7E1FA3 +:10183B0000142F11CA396933000D6923000B7D1376 +:10184B003E1469330005692300032D317E0F000818 +:10185B001200A61BFD7E1F000C691100020B1A0063 +:10186B007E1F00149F012F00CA193E347E0F000803 +:10187B002D13693300056923000380547E1F001468 +:10188B002F112F11CA396933000D6923000B7D13FA +:10189B003E143E1469330005692300032D317E0F7E +:1018AB0000081200A61BFD7E1F000C691100020B25 +:1018BB001A007E1F00149F012F002F00CA193E34FF +:1018CB003E347E0F00082D13693300056923000396 +:1018DB001200A61BFD7E3BB054F77A3BB07E37005F +:1018EB00104D33784E7E3BB0B40B0A7E3400027A37 +:1018FB00370012803E44027A3BB07F037E2F000CF0 +:10190B00693200020B2A20123B947E1F000C695196 +:10191B0000020B1A407F032E14000F693000020BDC +:10192B000A202F12793000021B0A207E3BB054FD97 +:10193B007A3BB07E370012DA3B22CA3B7A1F011486 +:10194B007F306D337A37011C9F117A1F011E7E1F6A +:10195B0001144D2378067E340003800F7E3BB00AC2 +:10196B003B5E340005680B7E3400047A37011C02A1 +:10197B001B9144047A3BB0693300116923000F7E3D +:10198B002F0118BF212803021B816933000969232A +:10199B00000769130015690300139F017A0F011EDD +:1019AB00BF203803021AD9691300011B1468551B99 +:1019BB00147803021A630B156803021B657E0F0173 +:1019CB001ECA1969130005690300032D137E1F013D +:1019DB00141200A61BFD7F037E1F011E123B4E7EC1 +:1019EB001F011E7E0F01189F01CA19691300096997 +:1019FB000300077D5169130005690300032D157D55 +:101A0B0053021ABF7E1F011E3E34CA3969330009C7 +:101A1B003E3469130005690300032D137E1F011467 +:101A2B001200A61BFD7F037E1F011E123B4E7E1F65 +:101A3B00011E7E0F01189F013E14CA19691300097C +:101A4B00690300077D513E546913000569030003C8 +:101A5B002D157D533E54805C7E1F011E3E343E345B +:101A6B00CA39693300093E343E34691300056903F2 +:101A7B0000032D137E1F01141200A61BFD7F037E96 +:101A8B001F011E123B4E7E1F011E7E0F01189F0170 +:101A9B003E143E14CA1969130009690300077D51EE +:101AAB003E543E5469130005690300032D157D5305 +:101ABB003E543E547E1F01142D351200A61BFD7F94 +:101ACB00037E2F011E7E1F01189F12021B626933BA +:101ADB0000011B34682D1B3468520B35787C7E1F3C +:101AEB000118CA396933000969130005690300033A +:101AFB002D137E1F01141200A61BFD7F037E1F01F9 +:101B0B001880547E1F01183E34CA39693300093ED0 +:101B1B003469130005690300032D137E1F01141292 +:101B2B0000A61BFD7F037E1F0118802B7E1F011853 +:101B3B003E343E34CA39693300093E343E346913AE +:101B4B000005690300032D137E1F01141200A61B51 +:101B5B00FD7F037E1F0118123B4E7E2F01187F0362 +:101B6B002E14000F693000020B0A209F12793000EF +:101B7B00021B0A2080087E3400057A37011C7E3B4D +:101B8B00B054FB7A3BB07E37011CDA3B227DD07D13 +:101B9B00F17DE27DC37E1F001C7E0F01601209F9EF +:101BAB0074027F011E141E0450034E20801478F41F +:101BBB006D337E2400019F101BC47803021C621B33 +:101BCB00C47803021CA31BC47803021CFA2EC400A6 +:101BDB00036803021D56BED40001781B439850E5E1 +:101BEB0089F5897CB7F58B0A56F58D438E40D28EDD +:101BFB00E47AB301798014BED40002780E43985076 +:101C0B007CB7F5D70A56F5D6438E1553A23F4DEE4A +:101C1B00780CBEF400017806E5A2F5A28031BEE493 +:101C2B000002780BBEF40003780543A2408020BE6F +:101C3B00E40004780BBEF40005780543A280800F06 +:101C4B00BEE400067809BEF40007780343A2C0E4A3 +:101C5B007AB30179D2AC22BED40002780E439A50EB +:101C6B007CB7F5D70A56F5D6438E1453BAFEBEE4AD +:101C7B000008780CBEF400097806E5BAF5BA800FB7 +:101C8B00BEE4000A7809BEF4000B780343BA0143A3 +:101C9B00AF01E47AB3017A22BED40002781043ACD0 +:101CAB00107CB7F5D70A56F5D6438E148014BED4E4 +:101CBB000003780E43AC507CB7F5D50A56F5D443E8 +:101CCB00DD0A53BAFDBEE4000C780CBEF4000D78AF +:101CDB0006E5BAF5BA800FBEE4000E7809BEF40033 +:101CEB000F780343BA0243AF08E47AB3017B22BEF9 +:101CFB00D40002781043FD107CB7F5D70A56F5D601 +:101D0B00438E148014BED40004780E43FD507CB770 +:101D1B00F5D30A56F5D243DDA053BAFBBEE400104F +:101D2B00780CBEF400117806E5BAF5BA8015BEE45E +:101D3B000012780FBEF40013780975CA0075C90438 +:101D4B0043BA0443AF10E47AB3017C227C3B7D237E +:101D5B005E3400F0782E4C3368147CB5540F7E241F +:101D6B00000160053E241478FB7CB54280227CB5D3 +:101D7B00540F7E24000160053E241478FB7CB5646F +:101D8B00FF528022BE340010782E4C3368147CB581 +:101D9B00540F7E24000160053E241478FB7CB54271 +:101DAB0090227CB5540F7E24000160053E241478EC +:101DBB00FB7CB564FF529022BE340020782E4C334E +:101DCB0068147CB5540F7E24000160053E24147802 +:101DDB00FB7CB542A0227CB5540F7E24000160052C +:101DEB003E241478FB7CB564FF52A022BE34003035 +:101DFB00782E4C3368147CB5540F7E24000160059B +:101E0B003E241478FB7CB542B0227CB5540F7E2463 +:101E1B00000160053E241478FB7CB564FF52B022B0 +:101E2B00BE340040782E4C3368147CB5540F7E249E +:101E3B00000160053E241478FB7CB542C0227CB5C2 +:101E4B00540F7E24000160053E241478FB7CB5649E +:101E5B00FF52C022BE340050782E4C3368147CB530 +:101E6B00540F7E24000160053E241478FB7CB542A0 +:101E7B00C8227CB5540F7E24000160053E241478E3 +:101E8B00FB7CB564FF52C822BE340060782E4C3305 +:101E9B0068147CB5540F7E24000160053E24147831 +:101EAB00FB7CB542E8227CB5540F7E240001600513 +:101EBB003E241478FB7CB564FF52E822BE340070DC +:101ECB00782D4C3368147CB5540F7E3400016005BB +:101EDB003E341478FB7CB742F8227CB5540F7E3429 +:101EEB00000160053E341478FB7CB764FF52F82286 +:101EFB007D235E3400F078237CB5540F7E440001C3 +:101F0B0060053E441478FBE5800A2B5D246807745A +:101F1B00017CAB02203B6CAA02203BBE3400107844 +:101F2B00237CB5540F7E44000160053E441478FBBE +:101F3B00E5900A2B5D24680774017CAB02203B6C97 +:101F4B00AA02203BBE34002078237CB5540F7E447C +:101F5B00000160053E441478FBE5A00A2B5D246864 +:101F6B000774017CAB02203B6CAA02203BBE340001 +:101F7B003078237CB5540F7E44000160053E441439 +:101F8B0078FBE5B00A2B5D24680774017CAB02205B +:101F9B003B6CAA02203BBE34004078217CB5540F29 +:101FAB007E44000160053E441478FBE5C00A2B5DBE +:101FBB0024680674017CAB80776CAA8073BE3400F6 +:101FCB005078217CB5540F7E44000160053E4414CB +:101FDB0078FBE5C80A2B5D24680674017CAB805046 +:101FEB006CAA804CBE34006078217CB5540F7E44C3 +:101FFB00000160053E441478FBE5E80A2B5D24687C +:10200B000674017CAB80296CAA8025BE34007078E5 +:10201B001F7CB5540F7E24000160053E241478FB11 +:10202B00E5F80A3B5D32680674017CAB80026CAA52 +:10203B007CBA227DF37E1F001C1209F97D126D0004 +:10204B007DE20B141209F77F611B6C7E1F018BBEA7 +:10205B001827106821E41203537E1440007E0446B7 +:10206B001C12028C7F017F16E41203531201EC1237 +:10207B0003907F5180047F560B5CBEF400404819DF +:10208B007D1E0A127E34FEF07E24007E7A1B307D8C +:10209B003E7C377E34FEF180177D1E0A127E34FEA5 +:1020AB00D07E24007E7A1B307D3E7C377E34FED181 +:1020BB007E24007E7A1B307D1D7D3F0E340E340E48 +:1020CB00340E340E340E341A261A247F212F212F6E +:1020DB00222E4400FF2E284976693200020B2A205B +:1020EB007A1B207D3D7D3F0E340E340E340E340EA4 +:1020FB00340E341A261A247F212F212F222E44002E +:10210B00FF2E284976693200020B2A200B1C7A1B02 +:10211B00307D1B7D3F0E340E340E340E341A261ACE +:10212B00247F212F212F222E4400FF2E2849566970 +:10213B003200020B2A207A1B207D3B7D3F0E340E92 +:10214B00340E340E341A261A247F212F212F222EDF +:10215B004400FF2E284956693200020B2A200B1C23 +:10216B007A1B302243BA807E3480007E2401517E5C +:10217B007F001CBF71781474047E34FE017E240032 +:10218B007E7A1BB07E14FDEB0222767E3436007E07 +:10219B0024016EBF71781474047E34FE017E24001A +:1021AB007E7A1BB07E14FDEC0222767E34FCC07E60 +:1021BB0024019BBF71781474047E34FE017E2400CD +:1021CB007E7A1BB07E14FDED0222767E34C3807EB8 +:1021DB002401C9BF71781374047E14FE017E0400C0 +:1021EB007E7A0BB07E54FDEE801D7E1440007E0483 +:1021FB0001FABF70782874047E14FE017E04007E01 +:10220B007A0BB07E54FDEF7E44007E7E2BB0F59FA3 +:10221B007E54FDF77E2BB0F5A6759D0280327E14A1 +:10222B000EC07E040216BF70782C74047E14FE015F +:10223B007E04007E7A0BB07E54FDF07E44007E7EE1 +:10224B002BB0F59F7E54FDF87E2BB0F5A6759D0344 +:10225B00E47A0BB0802E7A1F001C74047E34FE01CE +:10226B007E24007E7A1BB07E14FDEE7E04007E7E03 +:10227B000BB0F59F7E14FDF77E0BB0F5A6759D0296 +:10228B00E47A1BB07E1F001C22CA3B7A1F013A7FE7 +:10229B00306D337A3701407E1F013A4D23780B7E28 +:1022AB003400037A3701400223597E3B700A375EB4 +:1022BB0034000368077E34000602236B7F03124849 +:1022CB003DBE18000150077E34000702236B7E3B96 +:1022DB00B044087A3BB0693300011B3468241B34CB +:1022EB00683E0B3578606933000D7D13693300054B +:1022FB00692300032D317E1B307E1F013A7A1B3080 +:10230B0080446933000D7D133E1469330005692346 +:10231B0000032D310B1A107E1F013A1B1A10802659 +:10232B006933000D7D133E143E1469330005692398 +:10233B0000032D31691100020B1A007E1F013A793F +:10234B001100021B1A007E3BB054F77A3BB07E376C +:10235B00013E4D33783C7E3BB0B40B0A7E34000219 +:10236B007A370140802C44027A3BB07F037E180001 +:10237B0001123B947F032E14000F693000020B0AED +:10238B00200B1C793000021B0A207E3BB054FD7AD7 +:10239B003BB07E370140DA3B22CAF87EF301007C6A +:1023AB00BF5480B480167EB3010370307EB301023C +:1023BB00702A7E370106BE340002680302249C7C1F +:1023CB00BF540F14681B14683B0BB1680302249CA9 +:1023DB007EB3010570067EB30104601E02249C804F +:1023EB00197EB3010AB4040F7EB301056003022406 +:1023FB009C7EB30104600302249C7E34305A7E24FD +:10240B0000FF807D7EB3010AB404067EB301056034 +:10241B0002807E7E7301047CA75EA00F1B70683662 +:10242B002E707F68040B7078687E2400017CBA6084 +:10243B00053E241478FB7E7301126C665C754D337C +:10244B00680A7E34305C7E2400FF80357E34305A3F +:10245B007E2400FF802B7E2400017CBA60053E2485 +:10246B001478FB7E7301136C665C754D33680A7EC2 +:10247B0034305C7E2400FF80087E34305A7E24008A +:10248B00FF7A1F010E7E3400027A37010C80078021 +:10249B000012492780031248CADAF822CA3B7CDBB8 +:1024AB007D739F117A1F0193BED00A28037ED00A39 +:1024BB007E340034E4121D577E3400337401121D38 +:1024CB00577E340033121EFBBEB00168F46CCC7E19 +:1024DB003400347401121D577E1F01932F117A1F84 +:1024EB0001937E340033121EFBB4010B7E1F01934C +:1024FB004E70017A1F01937E340034E4121D570B8A +:10250B00C0BEC01878C96CCC80157E340034740101 +:10251B00121D5700007E340034E4121D570BC00A05 +:10252B003CBD3748E56CCC7404ACBC493500CA499A +:10253B002500C8593500C6592500C40BC0BEC009BB +:10254B0078E57E1F01937A1F00E89F117A1F019394 +:10255B006CCC80217404ACBC493500C6492500C441 +:10256B000A1D6D001209F97F017E1F01932F107A4E +:10257B001F01930BC0BCDC38DB7E1F0193DA3B22BF +:10258B00CA79740E7E70011248B774141248677CB6 +:10259B00FB30E60874147E70801248B77CBF20E0D5 +:1025AB000302265A7E1400407E0400017421123E61 +:1025BB00DA7AB301087E1F012E4D23780302264AD7 +:1025CB006CFF80737EB301091A3B7E0F012E2D31F8 +:1025DB007D207E1BA00A4F2E4400407A91827A8187 +:1025EB00837EEBE0BCEA7839047AB301097E730190 +:1025FB00091A372D317D207E1BB0703974146C771E +:10260B001248B775F40075DC00E47E34FE077E24B7 +:10261B00007E7A1BB07E34000A1247CC75C76080EF +:10262B00FE7E1F012E7E1B70BCE7780474018001B7 +:10263B00E47AB301090BF07E730108BC7F3885D2B5 +:10264B00001248A4500974146C771248B7C200DA10 +:10265B0079227F607DF30E340E340E340E340E343B +:10266B000E341A261A247F012F012F002E0400FF8F +:10267B002E084976693000020B0A200B1C7E1B705A +:10268B000AE7693000020B0A207E1B700A977D391E +:10269B007C676C777D934D9E6D88BE682710682391 +:1026AB007F16E41203537E1440007E04461C120274 +:1026BB008C7F017F14E41203531201EC1203907F01 +:1026CB005180047F540B5C7D1B7D3F0E340E340E0A +:1026DB00340E341A261A247F212F212F222E440048 +:1026EB00FF2E284956693200020B2A207A1B207DC7 +:1026FB003B7D3F0E340E340E340E341A261A247FD3 +:10270B00212F212F222E4400FF2E284956693200FB +:10271B00020B2A200B1C7A1B3022CA3B7F617F30B5 +:10272B006D337A3701B17E3BB00A3B5E34000568EE +:10273B000B7E3400047A3701B10227E644047A3B5E +:10274B00B0693300116923000FBE180001407C698A +:10275B003300011B3468211B3468340B35784B7DF7 +:10276B003D7C37693300097D03693300056923001C +:10277B00032D307A1B308032693300097D033E0410 +:10278B0069330005692300032D301B1AD0801B69A8 +:10279B003300097D133E143E146933000569230091 +:1027AB00032D3179D100021B1AC07F037E18000163 +:1027BB00123B4E7F032E14000F693000020B0A20D0 +:1027CB001B1C793000021B0A2080087E3400057A1E +:1027DB003701B17E3BB054FB7A3BB07E3701B1DAA7 +:1027EB003B22A9D7BA75EA0075E90043FF1075BA09 +:1027FB00807E3440007E2401FA7A1F001C123F8831 +:10280B0075E90043BA80E47E34FE017E24007E7AB3 +:10281B001BB07594007593007592007591007596B9 +:10282B000075950075B20075B10075B40075B300F5 +:10283B0075CA0075C90075CC0075CB0075E20075C3 +:10284B00E10075DE00758E00759800759A0075AC09 +:10285B000075FD0075A20075AF0075890043BA8045 +:10286B0053B2FC43B10374807E34FE077A1BB07EF7 +:10287B0034FE077E24007E7E1BB030E0F275DC0058 +:10288B0075F49012371443AF80D2AF7EB3010AB404 +:10289B0004F9020086CAD8CA797D739F117A1F0189 +:1028AB00977E340034E4121D577E340033740112CA +:1028BB001D577E340033121EFBB40104E402294A77 +:1028CB006CDD7E3400347401121D577E1F01972F6F +:1028DB00117A1F01977E340033121EFBB4010B7E5D +:1028EB001F01974E70017A1F01977E340034E4125A +:1028FB001D570BD0BED01878C96CDD80157E340007 +:10290B00347401121D5700007E340034E4121D573D +:10291B000BD00A3DBD3748E56CDD7404ACBD4935C1 +:10292B0000CA492500C8593500C6592500C40BD02B +:10293B00BED00978E57E1F01977A1F00E87401DA93 +:10294B0079DAD8227EB3010ABEB00268207EB301C9 +:10295B0000701A7EB3010370147EB30105700E7EF6 +:10296B00B3010470087E3701064D33680302492713 +:10297B007EB30102B4015F74047AB3010AE47AB343 +:10298B0001127AB30113740E7E70011248B77412E0 +:10299B007E70201248B774107E70081248B7740E00 +:1029AB007E70021248B774127E70201248B77410F2 +:1029BB007E70081248B7740E7E70011248B77412FD +:1029CB006C771248B774137E70081248B7740E6C8C +:1029DB00771248B7801074037AB3010A74FF7AB385 +:1029EB0001127AB301130200467EB3010AB4042428 +:1029FB007EB30100B4021D7EB301056003022A8D74 +:102A0B007EB30103707C7EB3010270767E370106C4 +:102A1B004D336802806C7E6301047C765E700F1B05 +:102A2B0060682F2E607F68040B6078567E2400014F +:102A3B007CB760053E241478FB7C656E60FF5E639B +:102A4B0001127A630112740E1248B774117E704032 +:102A5B0080247E2400017CB760053E241478FB7C27 +:102A6B00656E60FF5E6301137A630113740E124887 +:102A7B00B774147E70801248B7740E6C771248B717 +:102A8B0080030249270200467EB301005480BEB08A +:102A9B00806803022B1E7EB301031BB168191468F7 +:102AAB00280BB1786E7E3430057E2400FF7A1F012F +:102ABB000E7E34001280547E3430177E2400FF7A51 +:102ACB001F010E7E34004380427EB301021468194D +:102ADB001468280BB1783C7E3430017E2400FF7AD9 +:102AEB001F010E7E34000480227E34305E7E240073 +:102AFB00FF7A1F010E7E34000880107E342FE37E98 +:102B0B002400FF7A1F010E7E34001E7A37010C80E1 +:102B1B000580000249277E370106BE37010C5004A1 +:102B2B007A37010C0248CACA3B7A6301A57F307A17 +:102B3B007301A47AB301A31248DB60057401022B65 +:102B4B00CB7EB301A33EB01247FB600474018070CF +:102B5B001248EB6004740180677EB301A41247FB3B +:102B6B0060047401805A1248EB6004740180517E3A +:102B7B00B301A33EB044011247FB600474018040D3 +:102B8B001248EB60177401803780111200667A3B94 +:102B9B00B012479C6004740180260B747EB301A5B0 +:102BAB00147AB301A578E41200667A3BB012479C05 +:102BBB0060047401800A1248FB600474018001E414 +:102BCB00DA3B226D227EA001C203022C547EB3009D +:102BDB00210A4B09740022BE70206813BE703B683B +:102BEB000EBE700D6809BE700A6804A5BF000520F3 +:102BFB000366804CA5BF2D057EA0FF8043BE7030C1 +:102C0B004019BE70393814D2030AF77E14000AAD8E +:102C1B00127D212D2F9E2400308025A5BF2E1D80D7 +:102C2B00007EB30021047AB300210A3B09B30022D2 +:102C3B00BEB030400BBEB03928E780046D2280183F +:102C4B007EB30021047AB300217EB300210A3B0935 +:102C5B00B300226003022BD81A3AAD32227EB301A5 +:102C6B000AB404247EB30100B4021D7EB3010560D7 +:102C7B0003022CFB7EB3010370767EB301027070EE +:102C8B007E3701064D33680280667E6301047C76D5 +:102C9B005E700F1B60682C2E607F68040B60785091 +:102CAB007E2400017CB760053E241478FB7C654EC6 +:102CBB006301127A630112740E1248B774117E709D +:102CCB001080217E2400017CB760053E241478FB24 +:102CDB007C654E6301137A630113740E1248B7744B +:102CEB00147E70201248B7740E6C771248B78003AD +:102CFB00024927020046CA3B7A3701827F306D3387 +:102D0B007A370185807A74387AB301847E370182F1 +:102D1B00BE34003850047A7301841246897E7301E5 +:102D2B00840A572E540003900004F074CF900005D2 +:102D3B00F07E1701857E3400067E2400011B1A10DD +:102D4B007E7301840A37CA397F137E1400087E0410 +:102D5B0000011200A61BFD7EB30184240812419AC8 +:102D6B007E7301840A372D737E7301840A272E37F5 +:102D7B0001857A3701857E3701829D327A37018250 +:102D8B007E3701824D336803022D11DA3B22CA3B99 +:102D9B007A37017D7F306D337A370180807A7438D2 +:102DAB007AB3017F7E37017DBE34003850047A73CD +:102DBB00017F1246ED7E73017F0A572E540003905C +:102DCB000004F074AF900005F07E1701807E340094 +:102DDB00067E2400011B1A107E73017F0A37CA3945 +:102DEB007F137E1400087E0400011200A61BFD7EDB +:102DFB00B3017F240812419A7E73017F0A372D732A +:102E0B007E73017F0A272E3701807A3701807E3748 +:102E1B00017D9D327A37017D7E37017D4D3368030D +:102E2B00022DA9DA3B227DF37E3403E88D327E142A +:102E3B00000CAD136D007E1F001C120A4A7DE36E61 +:102E4B00E4FFFF0BE44DFF7813E589F5897D3E7CAC +:102E5B00B7F58A0A56F58CD28CD2A922BEF40001A2 +:102E6B007813E589F5897D3E7CB7F58B0A56F58D90 +:102E7B00D28ED2AB22BEF4000278117D3E7CB7F528 +:102E8B00D70A56F5D6438E1043AF0422BEF4000387 +:102E9B0078117D3E7CB7F5D50A56F5D443DD084352 +:102EAB00AF2022BEF4000478107D3E7CB7F5D30A28 +:102EBB0056F5D243DD8043AF4022CAF87D23E4129E +:102ECB0003587F017E34BC207E2445BE12028C7FCA +:102EDB00716D117E04404012030D50057EF003808E +:102EEB00336D117E04437F7F1712030D28057EF08F +:102EFB00FF80217F171203907CF77C47E412035D60 +:102F0B007F017F171201316D117E043F0012030DFB +:102F1B0040020BF07E08015374406C777E601012F8 +:102F2B003A797E08015374407E70FE7C6F123A79B9 +:102F3B007E08015374406C776C66123A797E0801F7 +:102F4B005374406C777E6080123A79DAF822CAF8B3 +:102F5B00740E6C771248B774111248677CFB30E221 +:102F6B000F74117C7F5E70FB1248B7E47AB3010BD0 +:102F7B007CBF30E40A74117C7F4E70801248B77EA0 +:102F8B00B3010B24FD68461468480BB278477CBF2D +:102F9B0030E0427E0801007420123EDA7E370106D3 +:102FAB0012409B7A3701067EB30100546024E0681F +:102FBB000D24E0680E2440780F1200CE80171244C7 +:102FCB009E801212494F800D12492780081234023D +:102FDB008003123907DAF8221E0353005400430012 +:102FEB002000550053004200200053006500720082 +:102FFB00690061006C000403090412010002020065 +:10300B000040BF3402FF000101020001090243002E +:10301B0002010080320904000001020201000524B4 +:10302B0000100105240100010424020205240600FE +:10303B0001070582034000FF09040100020A00009A +:10304B000007058102400000070501024000000057 +:10305B000001000803530054004300CA3B7AB3013C +:10306B00AF7F3069330002E4121D57E47AB301B02D +:10307B006933000412490B7E7301B00A477E54007A +:10308B00079D547E24000160053E241478FB7E735B +:10309B0001AF6C665C754D336808693300027401CF +:1030AB00800569330002E4121D570B3A307401128C +:1030BB001D576933000412490B0B3A30E4121D57AC +:1030CB007EB301B0047AB301B07E7301B0BE700859 +:1030DB00409E6933000412490BDA3B22CA7BCA6B50 +:1030EB00CA5BCA4BCA3BCA2BCA1BCA0BC0D0C08314 +:1030FB00C0827EF1FC74061248677CEB74021248A6 +:10310B00677CCB74041248677CDB7CBE30E1031216 +:10311B0000627CBE30E203123A317CBC30E0031219 +:10312B002F597CBC30E1031241F67CBC30E2031218 +:10313B0042507CBD30E10312258B7CBE30E0031284 +:10314B00005A7AF1FCD082D083D0D0DA0BDA1BDABA +:10315B002BDA3BDA4BDA5BDA6BDA7B32CA797A0F32 +:10316B00018F7CE77CFB1248DB60047401805F7C81 +:10317B00BF3EB01247FB6004740180521248EB60F3 +:10318B0004740180497CBE1247FB60047401803ECD +:10319B001248EB6004740180357CBF3EB0440112D1 +:1031AB0047FB6004740180261248EB6004740180B5 +:1031BB001D1200667E1F018F7A1BB012479C6004A4 +:1031CB007401800A1248FB600474018001E4DA790F +:1031DB0022CA3B7F30E47AB301AD6933000274013C +:1031EB00121D57E47AB301AE0B3A307401121D571E +:1031FB006933000412490B69330002121EFB601F76 +:10320B007E7301AE0A477E5400079D547E34000145 +:10321B0060053E341478FB4E7301AD7A7301AD0B30 +:10322B003A30E4121D576933000412490B7EB30187 +:10323B00AE047AB301AE7E7301AEBE700840A97EB8 +:10324B00B301ADDA3B22CA3B7A3700637F30A9C7A3 +:10325B00AF740E7E70011248B76D337A3700667EFD +:10326B00270063BE24004008057E704080027C75F9 +:10327B007A730065741112486720E0F87F032E17EC +:10328B0000667EB300657E70011248527E73006546 +:10329B000A277D322E3700667A3700667E37006349 +:1032AB009D327A3700637E730065BE704050B0A9C3 +:1032BB00D7AFDA3B227D127D23BE140001782E7C22 +:1032CB00B5540F7E34000160053E341478FB7C67E7 +:1032DB007D120E140E140E140E141A021A002E0464 +:1032EB00007E2E08FE107E0B704C7680324D1178CE +:1032FB00317CB5540F7E34000160053E341478FBED +:10330B007CB764FF7D120E140E140E140E141A02E9 +:10331B001A002E04007E2E08FE107E0B705C7B7A4A +:10332B000B7022CA69CAF87D627A3701AB7CFB7ECF +:10333B0008015374407C7F3E703E702E70067E27D2 +:10334B0001AB7C65123A797E08015374407C7F3E59 +:10335B00703E702E70077E2701AB0A247C65123AF3 +:10336B00797E08015374407C7F3E703E702E70084E +:10337B007C6D123A797E08015374407C7F3E703E1F +:10338B00702E70097C6C123A79DAF8DA6922CA3B32 +:10339B007F307E3BB044017A3BB09F1179330009FB +:1033AB00792300077933000D7923000B693300155E +:1033BB0069230013793300117923000F693300015E +:1033CB001B34680E1B3468120B35782269330015D9 +:1033DB008010693300153E348008693300153E3484 +:1033EB003E346913000569030003E412460BE47ACB +:1033FB003BB06D33DA3B22CAF8740E6C771248B7C8 +:10340B00741112486720E1537E37010CBE34004023 +:10341B0028057EF04080027CF77E0F010E7C7F74C6 +:10342B00201242F60A2F7E37010C9D327A37010C9F +:10343B000A157E1F010E2D317A1F010E7E37010CEE +:10344B004D33780F74117E700A1248B7E47AB301CA +:10345B000B800874117E70021248B7DAF822CA7B0F +:10346B00CA6BCA5BCA4BCA2BCA1BCA0BC0D0C08360 +:10347B00C082E59830E1085398FDE47AB30179E511 +:10348B009830E02A5398FE7EA199BEA07F78157ED6 +:10349B007301B57CB7047AB301B5BE7014280A75F5 +:1034AB00C7608005E47AB301B57CBA123FFAD082CB +:1034BB00D083D0D0DA0BDA1BDA2BDA4BDA5BDA6B90 +:1034CB00DA7B32CA3B7A73016D7AB3016C7F3012AF +:1034DB0043BA7F037EB3016C3EB01230667F03129A +:1034EB0041047F037EB3016D1230667F03124104EA +:1034FB007F031243BA7F037EB3016C3EB0440112CB +:10350B0030667F031241047F031231DC7E1F016E94 +:10351B007A1BB07F031240D07F031240317E1F0114 +:10352B006E7E1BB0DA3B227E340006121EFB701A35 +:10353B007E1F01740B1C7A1F0174BE182710401DCF +:10354B007E1827107A1F017480137E340007121E19 +:10355B00FB700A9F117A1F01747A3701727E1F016B +:10356B0074BE1807D040097E1400037A170172222B +:10357B00BE18006440127E370172BE340002680828 +:10358B007E3400017A370172227E3400377E2400AC +:10359B0001120A7E7E3400367E240001120A7E7EE2 +:1035AB003400357E240001120A7E7E340037E4128B +:1035BB001D577E340036E4121D577E340035E4125D +:1035CB001D577E3400067E2400011232C07E34006B +:1035DB00077E2400011232C07E3400066D22120ACF +:1035EB007E7E3400076D22020A7E7A1F014A7E34EA +:1035FB00014D7E2400007E1B307E34014E7E240064 +:10360B00007A1B307E34014C7E2400007E1B307E02 +:10361B0034014F7E2400007A1B307E34014B7E2414 +:10362B0000007E1B307E3401507E2400007A1B305C +:10363B007E34014A7E2400007E1B307E3401517E95 +:10364B002400007A1B307E1F014E22CAD8CA797C17 +:10365B00F67CE77CDB1248DB6004740180487CBDA0 +:10366B003EB01247FB60047401803B1248EB6004D0 +:10367B00740180327CBE1247FB60047401802712F8 +:10368B0048EB60047401801E7CBF1247FB6004741E +:10369B000180131248EB60047401800A1248FB602E +:1036AB000474018001E4DA79DAD8227CAB53BACF07 +:1036BB0043BA801B3468141B3468151B3468162EF0 +:1036CB003400037813E5BAF5BA800D43BA108008BD +:1036DB0043BA20800343BA307E14FE807E04007E02 +:1036EB007E0BB044407A0BB07E0BB044807A0BB0AB +:1036FB007CBA543F7E0B704C7B7A0B70E47E34FEAD +:10370B00827E24007E7A1BB022E46C771248B77459 +:10371B00017E70081248B774077E703F1248B77469 +:10372B00097E703F1248B7740B7E70071248B7744E +:10373B00016C771248B774027AB3010AE47AB301C9 +:10374B000B7AB301127AB301137E3401007E24008D +:10375B00C27A1F01597AB3015D7AB3015E74087A9C +:10376B00B3015FA9D7AF227CAB1B34681E1B346837 +:10377B002A1B3468362E340003783F7EB3017970F0 +:10378B00FA74017AB301797AA199227EB3017A7026 +:10379B00FA74017AB3017A7AA19B227EB3017B7012 +:1037AB00FA74017AB3017B7AA1AD227EB3017C70EE +:1037BB00FA74017AB3017C7AA1FE227EB30100B4C4 +:1037CB0080227EB30103701C7EB3010270167EB3A0 +:1037DB00010570107EB30104700A7E370106BE34FA +:1037EB00000168030249277EB3010AB4040A7E3440 +:1037FB00305C7E2400FF80087E34305A7E2400FF2C +:10380B007A1F010E7E3400017A37010C0248CA1B65 +:10381B0034681B1B3468221B34682B1B3468340B35 +:10382B0036783CC28C758C00758A00D28C22C28E85 +:10383B00758D00758B00D28E22538EEF75D6007569 +:10384B00D700438E102253DDF775D40075D5004396 +:10385B00DD082253DD7F75D20075D30043DD802256 +:10386B00CA3B7F707CF57CE67CD77CCBCA7B0A3667 +:10387B006D222F110A1F6D001209E6DA0B122D991A +:10388B001246ED7405900004F074A8900005F090BA +:10389B0000067AEBC09000077AEBD09000087AEB29 +:1038AB00E09000097AEBF0740A12419ADA3B227D20 +:1038BB00236D331B24681A1B2468201B2468261BCA +:1038CB0024682C0B267834E58C7C6B6C77E58A802E +:1038DB0026E58D7C6B6C77E58B801CE5D67C6B6C61 +:1038EB0077E5D78012E5D47C6B6C77E5D58008E55E +:1038FB00D27C6B6C77E5D30A2B4D3222740E6C772E +:10390B001248B7741112486730E03D7E0F010E74F8 +:10391B0020123EDA0A1B7E27010C9D217A27010C0F +:10392B007E1F010E2D317A1F010E7E37010C4D3398 +:10393B00780E74117E70481248B7E47AB3010B22EB +:10394B0074117E70400248B7221B34681C1B34680C +:10395B00241B34682A1B3468300B367835758A0083 +:10396B00758C00438904D28C22758B00758D0043B6 +:10397B008940D28E2275D70075D600438E182275DA +:10398B00D50075D40043DD0C2275D30075D20043EE +:10399B00DDC022CAF87EB3010070237EB30105702F +:1039AB001D7EB3010470177EB3010370117EF3010A +:1039BB0002BEF08050087E3701064D336805124970 +:1039CB00278017E47C7F1248B74CFF680474038090 +:1039DB000274027AB3010A120046DAF822CA797A23 +:1039EB000F00C01247837453900004F0E49000055D +:1039FB00F0900006F0900007F07E3400C07E2400AB +:103A0B00007A1F00947E1400087E0400017E1F00C4 +:103A1B00C01203CD7D732E7400087D570B541241D9 +:103A2B009A7D37DA7922E46C771248B774027AB34D +:103A3B00010AE47AB3010B740E7E70011248B7745D +:103A4B00117E70481248B7740E7E70021248B7741C +:103A5B00117E70481248B7740E7E70011248B7740D +:103A6B00147E70901248B7740E6C770248B7CA3B3D +:103A7B007A6301A87A7301A77AB301A67F30124348 +:103A8B00BA7F037EB301A63EB01230667F031241AC +:103A9B00047F037EB301A71230667F031241047FBC +:103AAB00037EB301A81230667F031241047F031219 +:103ABB004031DA3B22CAF87CFBBEF03B28037EF098 +:103ACB003B744C900000F07445900001F0744490EE +:103ADB000002F07428900003F09000047AEBF00AD7 +:103AEB003FCA397F107E1400057E0400011200A628 +:103AFB001BFD7CBF240512419ADAF822CAF87CFB25 +:103B0B00BEF03B28037EF03B744C900000F07445F4 +:103B1B00900001F07444900002F07440900003F0A8 +:103B2B009000047AEBF00A3FCA397F107E1400052F +:103B3B007E0400011200A61BFD7CBF240512419AD6 +:103B4B00DAF8227F617F702E140007693000020BB8 +:103B5B000A202F16801769570015694700137F0736 +:103B6B002E140007693000020B0A209F12793000D7 +:103B7B00021B0A206917000969070007693700153E +:103B8B0069270013BF1028CE227F617F702E14008F +:103B9B000B693000020B0A202F168017695700158E +:103BAB00694700137F072E14000B693000020B0AC4 +:103BBB00209F12793000021B0A206917000D69073C +:103BCB00000B6937001569270013BF1028CE22CAD6 +:103BDB0069CAF86D666CFF80167E340001124828A6 +:103BEB007D360B64BE34001E40057EF001800E7ED8 +:103BFB0034FE827E24007E7E1BB030E6DC7E34FEFB +:103C0B00827E24007E7E1BB054BF7A1BB07CBFDA51 +:103C1B00F8DA69227D437F707E1F014279370005F8 +:103C2B0079270003E47A7BB0794700019F1179373C +:103C3B000009792700077937000D7927000B7E1FC4 +:103C4B000146793700117927000F7E1F014679371E +:103C5B000015792700136D33227F717F607CAB6C6D +:103C6B007780310A170A2A2D217F062D127E0BB081 +:103C7B007E7B60BCB6680E7E0F019B7E0B609C67E3 +:103C8B007A0B60E4220BF47E0F019B7E0BB0047A5F +:103C9B000BB00B707E7BB070CA7401227EB30062D6 +:103CAB00603AE47EA300210A3A19B300227AB300EA +:103CBB00217E1800217A1F019B7E0800227E344A48 +:103CCB00327E2400FF123C647E144A297E0400FFDE +:103CDB00124223E47AB300217AB30062227EB3014D +:103CEB005270397E3400157A3701537E3400147AC2 +:103CFB003701557E34000A7A3701577E080153127B +:103D0B0042CD7E08015374406C776C66123A797E13 +:103D1B00340032122EC574017AB3015222CA3B7C95 +:103D2B00F57CE67CD77CCB7C7EAC7F122D011246DA +:103D3B00897405900004F074C8900005F09000069B +:103D4B007AEBC09000077AEBD09000087AEBE0900A +:103D5B0000097AEBF0740A12419ADA3B227584015E +:103D6B007E44041FE47A49B01B4478F97EF801B510 +:103D7B007E0400FF7E1449AE0B0A405D44681A694D +:103D8B002000020B0E0B44800A7E0BB07A29B00B7D +:103D9B00240B0C1B4478F280DF02427B7D127D23C7 +:103DAB004D23780CBE140000A9A1D1B39288D2A8E0 +:103DBB00BE24000178082E14FFFF928AD2AABE24DB +:103DCB0000027803438F10BE2400037803438F2037 +:103DDB00BE2400047803438F40227EB3010AB4044F +:103DEB001D7EB30100B481167EB3010370107EB348 +:103DFB000105700A7E370106BE34000168030249D3 +:103E0B00277E34305A7E2400FF7A1F010E7E340049 +:103E1B00017A37010C0248CACA797D737E340037A8 +:103E2B00BE740037780474018001E4121D577E3490 +:103E3B000036BE740036780474018001E4121D57FD +:103E4B007E340035BE740035780474018001E412B1 +:103E5B001D57DA7922CAF87CFB7A1F019F12478320 +:103E6B00744C900004F07401900005F09000067AF9 +:103E7B00EBF0E4900007F07E0F019F7E3400087E8C +:103E8B00240001791100021B1A00740C12419ADAFA +:103E9B00F822CA3B7F307A7301B47AB301B312496B +:103EAB00350B347F03122D991246ED7403900004E9 +:103EBB00F074A7900005F07EB301B3900006F07E7E +:103ECB00B301B4900007F0740812419ADA3B22CA8E +:103EDB003B7F30CAB80BFD74161248677AFBB039BA +:103EEB00BFFFFF800C29BFFFFE1248677A3BB00B68 +:103EFB00747EFBA07CBA147AFBB04CAA78E729BF7E +:103F0B00FFFF9EF80003DA3B22CA3B7D727CCB128B +:103F1B0046897406900004F074C6900005F0740195 +:103F2B00900006F09000077AEBC09000087AEB70D7 +:103F3B007E3400097E2400011B1A70740B12419A07 +:103F4B00DA3B22CA3B7D727CCB1246897406900009 +:103F5B0004F074C6900005F07402900006F0900017 +:103F6B00077AEBC09000087AEB707E3400097E2450 +:103F7B0000011B1A70740B12419ADA3B227E081750 +:103F8B00707E7F001C7F17120A4A7A3701877E14D6 +:103F9B00CFC07E04006A7F17120A4A7A3701897EE6 +:103FAB00341B007E2400B7BF71180A7E3701890BC2 +:103FBB00347A37018922CA3B7D727CCB12468974D5 +:103FCB0006900004F074C6900005F0E4900006F033 +:103FDB009000077AEBC09000087AEB707E340009F2 +:103FEB007E2400011B1A70740B12419ADA3B227C5F +:103FFB00AB7EB30062702E7E7300217CB7047AB364 +:10400B0000210A3719A300227EA300210A3A09B323 +:10401B000021B43B0674017AB30062BEA040400598 +:10402B00E47AB3002122CA3B7F3069330002E412E9 +:10403B001D576933000412490B0B3A307401121DE2 +:10404B00576933000412490B693300027401121DC6 +:10405B00576933000412490BDA3B22CA3B124783E0 +:10406B007443900004F0E4900005F0900006F0908B +:10407B000007F07E340008CA397F107E1400087EDA +:10408B000400011200A61BFD741012419ADA3B22A8 +:10409B007A3700637E3400647E2400007E1B307E02 +:1040AB003400657E2400007A1B307E3400637E244E +:1040BB0000007E1B307E3400667E2400007A1B30AD +:1040CB007E37006522CA3B7F3069330002740112D0 +:1040DB001D576933000412490B0B3A307401121D42 +:1040EB00576933000412490B0B3A30E4121D576920 +:1040FB0033000412490BDA3B22CA3B7F3069330091 +:10410B0002E4121D576933000412490B0B3A307449 +:10411B0001121D576933000412490B0B3A30E4129C +:10412B001D576933000412490BE4DA3B22CA3B7F6B +:10413B00311247837444900004F07401900005F031 +:10414B00E4900006F0900007F07E3400087E240017 +:10415B0001797100021B1A60740C12419ADA3B222E +:10416B0043BA8053BACF1B3468141B3468151B3405 +:10417B0068162E3400037813E5BAF5BA800D43BAEE +:10418B0010800843BA20800343BA3053BA7F22CA47 +:10419B00F87CFBA9C7AF740E7E70011248B774117F +:1041AB0012486720E0F87E1400007E0400017CBFFB +:1041BB007E7001124852D202A9D7AFDAF822CAB8E0 +:1041CB00CA1B7E34FD107E24007E7E1BB030E408BB +:1041DB007E1BB054EF7A1BB07E1BB030E5087E1B04 +:1041EB00B054DF7A1BB0DA1BDAB832CAF8740E7E21 +:1041FB0070011248B774111248677CFB30E50874E4 +:10420B00117E70401248B77CBF30E20774116C7797 +:10421B001248B7C202DAF822CA797A0F00907E34BC +:10422B0000907E2400007A1F00947E1400007E0410 +:10423B0000017E1F00901203CD7D737CB712419A53 +:10424B007D37DA7922CAF8740E7E70021248B77481 +:10425B00111248677CFB30E50874117E70401248E0 +:10426B00B77CBF30E20774116C771248B7DAF822CB +:10427B001227ED7E3403E81247E47E144A127E04C3 +:10428B0000FF1242237E3403E81247E47E1449FEFA +:10429B007E0400FF12422380ECCA3B7F307A370149 +:1042AB0066800C7E3701667E3BB00B741237727ED4 +:1042BB001F01687F011B0C7A0F01684D2378E4DA2C +:1042CB003B22CA3B7F300B3A306D22120A7E693398 +:1042DB0000026D22120A7E0B3A307401121D5769CF +:1042EB003300027401121D57DA3B22CA3BCA787F96 +:1042FB0030CAB8800B7EFBB07E3B700B741248B794 +:10430B0029AFFFFF7CBA1439BFFFFF4CAA78E61B1D +:10431B00FDDA3B227EB3010AB4041B7EB30100B469 +:10432B0001147EB30103700E7EB3010570087E3756 +:10433B0001064D336803024927020046CAF87CFB8D +:10434B001246ED7403900004F074A3900005F07412 +:10435B0002900006F09000077AEBF0740812419A75 +:10436B00DAF8227EB3010AB404097EB30100BEB0B1 +:10437B00A168030249277E1801597A1F010E7E3767 +:10438B0001067A37010C0248CA7EB3010AB404094C +:10439B007EB30100BEB02168030249277E18015984 +:1043AB007A1F010E7E3701067A37010C024919CAB2 +:1043BB003B7F3069330002E4121D5769330004124E +:1043CB00490B0B3A30E4121D576933000412490BA9 +:1043DB00DA3B227E3400336D22120A7E7E340034A7 +:1043EB006D22120A7E7E340034E4121D577E340097 +:1043FB00337401021D57CAF87CFB12468974029074 +:10440B000004F074C5900005F09000067AEBF07490 +:10441B000712419ADAF822CAF87CFB124689740219 +:10442B00900004F074C4900005F09000067AEBF055 +:10443B00740712419ADAF822CAF87CFB1246ED7423 +:10444B0002900004F074A5900005F09000067AEB42 +:10445B00F0740712419ADAF822CA3B7F307A37019F +:10446B00A9800C7E3701A97E3BB00B741237727E8C +:10447B003BB070EFDA3B227E370172BE340001781D +:10448B000D7E3400027A3701727E340001227E37B2 +:10449B000172227EB3010124DF680A14680A0BB192 +:1044AB00780902439402436E024812024927CAB8A4 +:1044BB00E59A30E108539AFDE47AB3017AE59A3034 +:1044CB00E003539AFEDAB832CAB8E5AC30E10853D0 +:1044DB00ACFDE47AB3017BE5AC30E00353ACFEDA20 +:1044EB00B832CAB8E5FD30E10853FDFDE47AB301FB +:1044FB007CE5FD30E00353FDFEDAB83212468974D9 +:10450B0002900004F074C7900005F074019000064F +:10451B00F0740702419A1246897402900004F074F9 +:10452B00C0900005F07401900006F0740702419AE8 +:10453B001246ED7402900004F074A3900005F07421 +:10454B0001900006F0740702419A1246ED74029036 +:10455B000004F074A4900005F07401900006F07450 +:10456B000702419A1246897402900004F074C290BB +:10457B000005F07401900006F0740702419A124690 +:10458B00ED7402900004F074A2900005F074029098 +:10459B000006F0740702419A1246897402900004D7 +:1045AB00F074C1900005F07401900006F0740702DE +:1045BB00419A1246ED7402900004F074A09000052D +:1045CB00F07401900006F0740702419A1246ED74E4 +:1045DB0002900004F074A2900005F07401900006A4 +:1045EB00F0740702419A1246ED7402900004F074C5 +:1045FB00A1900005F07401900006F0740702419A37 +:10460B00CAF87DF37CFB7F207F1080071BF47A2B8D +:10461B00F00B544DFF78F5DAF8227F017E370189D4 +:10462B007D231B247D3278F87F201B2C7F024D4588 +:10463B0078EA2274017E34FE827E24007E7A1BB0DF +:10464B0074057E34FE817A1BB0023BDACAF80A5B32 +:10465B002E540020123EDA7CFB74146C771248B790 +:10466B007CBFDAF8221246897402900004F074C001 +:10467B00900005F0E4900006F0740702419A744F25 +:10468B00900000F0744C900001F07445900002F023 +:10469B007480900003F0221246ED7402900004F037 +:1046AB0074A4900005F0E4900006F0740702419AA0 +:1046BB001246897402900004F074C7900005F0E470 +:1046CB00900006F0740702419A1246ED74029000B6 +:1046DB0004F074A0900005F0E4900006F07407025B +:1046EB00419A744C900000F07443900001F07444B4 +:1046FB00900002F07480900003F0221246ED7402D9 +:10470B00900004F074A3900005F0E4900006F074A0 +:10471B000702419A1246897402900004F074C29009 +:10472B000005F0E4900006F0740702419A124689E6 +:10473B007402900004F074C1900005F0E490000640 +:10474B00F0740702419A1246ED7402900004F07463 +:10475B00A1900005F0E4900006F0740702419A1254 +:10476B0046ED7402900004F074A2900005F0E49002 +:10477B000006F0740702419A7437900000F07453EE +:10478B00900001F07445900002F07447900003F024 +:10479B0022E47E34FE827E24007E7A1BB074057E7A +:1047AB0034FE817A1BB0023BDAA9C7AF740E7E7060 +:1047BB00011248B774146C771248B7C200A9D7AF6F +:1047CB0022CA797D7380077E3403E81200267D3779 +:1047DB001B744D3378F1DA79227D237E3701877D87 +:1047EB00131B147D3178F87D121B147D2178EC227C +:1047FB007E34FE867E24007E7A1BB074027E34FEED +:10480B00817A1BB0023BDA7EB3010AB404097EB392 +:10481B000100BEB0216803024927020046800A7ED0 +:10482B00A0097CBA147CAB78F97D231B344D22781C +:10483B00EE227F70691700116907000F69370015A9 +:10484B00692700139F10227CA77C7B0A5A2E5400E9 +:10485B00201242F674117E70010248B77CABE5FC66 +:10486B0020E7FB7CBA4480F5FCE5FC20E7FBE5EC9C +:10487B00221246ED7401900004F074A6900005F02E +:10488B00740602419A1246897401900004F074C3B5 +:10489B00900005F0740602419A7E1400407E0400DD +:1048AB00017E7301080A37123251D3227CA77C7B1D +:1048BB00E5FC20E7FB7CB7547FF5FC7AA1EC227476 +:1048CB00037AB3010B74117E70401248B7023402A5 +:1048DB0074017E34FE817E24007E7A1BB0023BDAAB +:1048EB0074037E34FE817E24007E7A1BB0023BDA99 +:1048FB0074067E34FE817E24007E7A1BB0023BDA86 +:10490B007D236D338003000B34BD2338F9227404EF +:10491B007AB3010B74117E70400248B774057AB3F9 +:10492B00010B74117E70600248B76D3380020B343B +:10493B007E0BB00B1470F7227EB301526005E47A44 +:10494B00B301522202492728302900007EFED500F0 +:10495B007EFED7007EFED9007EFEDB007EFEF500DC +:10496B007EFEF7007EFEF9007EFEFB007EFED2008F +:10497B007EFEF2007EFECC007EFECD007EFEEC00C5 +:10498B007EFEED007EFEC8007EFEC9007EFECA00E4 +:10499B007EFECB007EFEE8007EFEE9007EFEEA0096 +:1049AB007EFEEB0004001C01FA40000002018700B0 +:1049BB0000000201890000000101520000010021EA +:1049CB00000001006200000201720000000401748B +:1049DB00000000000004012E00FF4A3600040132E3 +:1049EB000000000000040136000000000001010976 +:1049FB0000000053797374656D2052756E6E696E8D +:104A0B00672E2E2E0D0A0053797374656D20496E37 +:104A1B0069742E2E2E0D0A004F4B210D0A00457284 +:104A2B00726F72210D0A00504F5700405354434987 +:044A3B0053502300B1 +:00000001FF diff --git a/STC32G12K128.cfg b/STC32G12K128.cfg new file mode 100644 index 0000000..3285eb8 --- /dev/null +++ b/STC32G12K128.cfg @@ -0,0 +1,17 @@ +[STC] +Version=V6.95Y +McuType=STC32G12K128 +Option=BFAFF77F3E3FFFFFFFFFFFFFFFFFFD5DB3 +Frequency=33.1776 +AutoReload=1 +ListenModify=1 +SoundTip=3 +U8WVcc=0 +U8WOnLinePower=1 +U8WAdcMin=5 +U8WAdcMax=15 +SelfDefineEnable=1 +SelfDefineBaud=9600 +SelfDefineFormat=0 +SelfDefineSize=8 +SelfDefineCommand=405354434953502339 diff --git a/Source/PCA9685_driver.c b/Source/PCA9685_driver.c new file mode 100644 index 0000000..c722faa --- /dev/null +++ b/Source/PCA9685_driver.c @@ -0,0 +1,91 @@ +#include "PCA9685_driver.h" +#include "delay.h" + +#if PCA9685_USE_SOFT_IIC == 1 +#include "iic_soft.h" +static IIC_Soft_Config config; +#else +#include "iic.h" +#endif + +static uint8 has_init = 0; + +void pca9685_init() +{ + if(has_init) return; // 如果已经初始化过,则直接返回 + #if PCA9685_USE_SOFT_IIC == 1 + config.scl_pin = PCA9685_SOFT_IIC_SCL_PIN; + config.sda_pin = PCA9685_SOFT_IIC_SDA_PIN; + config.wait_time = 10; + soft_iic_init(&config); // 初始化软件IIC + soft_iic_write_reg(&config, PCA9685_I2C_ADDR, PCA9685_MODE1, 0x00); // 设置PCA9685模式寄存器为正常模式 + #else + // 初始化I2C接口 + iic_init(IIC_1, 20); + iic_write_reg(PCA9685_I2C_ADDR, PCA9685_MODE1, 0x00); // 设置为正常模式 + #endif + + pca9685_set_frequency(PCA9685_DEF_FREQ); // 设置默认频率 + has_init = 1; +} + +void pca9685_deinit() +{ + if(!has_init) return; // 如果没有初始化过,则直接返回 + has_init = 0; // 标记为未初始化 +} + +void pca9685_set_frequency(uint16 frequency) +{ + // 计算预分频器值 + uint8 prescale = 0; + uint8 old_mode1 = 0; + double prescale_value = 0.0; + prescale_value = 6103.515625 / frequency; + if (prescale_value < 3.0) { + prescale = 3; // 最小预分频器值 + } else if (prescale_value > 255.0) { + prescale = 255; // 最大预分频器值 + } else { + prescale = (uint8)prescale_value; // 正常预分频器值 + if (prescale_value - prescale >= 0.5) { + prescale += 1; // 四舍五入 + } + } + #if PCA9685_USE_SOFT_IIC == 1 + // soft_iic_read_reg(&config, PCA9685_I2C_ADDR, PCA9685_MODE1, &old_mode1); // 读取当前模式寄存器 + soft_iic_write_reg(&config, PCA9685_I2C_ADDR, PCA9685_MODE1, (old_mode1 & 0x7F) | 0x10); // 进入睡眠模式 + soft_iic_write_reg(&config, PCA9685_I2C_ADDR, PCA9685_PRESCALE, prescale); // 设置预分频器 + soft_iic_write_reg(&config, PCA9685_I2C_ADDR, PCA9685_MODE1, old_mode1); // 恢复正常模式 + soft_iic_write_reg(&config, PCA9685_I2C_ADDR, PCA9685_MODE1, old_mode1 | 0x80); // 重启PCA9685 + #else + // P05 = 0; + // 设置预分频器 + // iic_read_reg(PCA9685_I2C_ADDR, PCA9685_MODE1, &old_mode1); + iic_write_reg(PCA9685_I2C_ADDR, PCA9685_MODE1, (old_mode1 & 0x7F) | 0x10); // 进入睡眠模式 + iic_write_reg(PCA9685_I2C_ADDR, PCA9685_PRESCALE, prescale); + // 恢复模式寄存器 + iic_write_reg(PCA9685_I2C_ADDR, PCA9685_MODE1, old_mode1); // 恢复正常模式 + delay_ms(5); // 等待模式寄存器更新 + iic_write_reg(PCA9685_I2C_ADDR, PCA9685_MODE1, old_mode1 | 0x80); // 重启PCA9685 + // P05 = 1; + #endif +} + +void pca9685_set_pwm(uint8 channel, uint16 on, uint16 off) +{ + // P05 = 0; // 开始I2C通信 + // 设置指定通道的PWM值 + #if PCA9685_USE_SOFT_IIC == 1 + soft_iic_write_reg(&config, PCA9685_I2C_ADDR, (PCA9685_LED0_ON_L + 4 * channel) & 0xFF, on & 0xFF); + soft_iic_write_reg(&config, PCA9685_I2C_ADDR, (PCA9685_LED0_ON_H + 4 * channel) & 0xFF, (on >> 8) & 0xFF); + soft_iic_write_reg(&config, PCA9685_I2C_ADDR, (PCA9685_LED0_OFF_L + 4 * channel) & 0xFF, off & 0xFF); + soft_iic_write_reg(&config, PCA9685_I2C_ADDR, (PCA9685_LED0_OFF_H + 4 * channel) & 0xFF, (off >> 8) & 0xFF); + #else + iic_write_reg(PCA9685_I2C_ADDR, (PCA9685_LED0_ON_L + 4 * channel) & 0xFF, on & 0xFF); + iic_write_reg(PCA9685_I2C_ADDR, (PCA9685_LED0_ON_H + 4 * channel) & 0xFF, (on >> 8) & 0xFF); + iic_write_reg(PCA9685_I2C_ADDR, (PCA9685_LED0_OFF_L + 4 * channel) & 0xFF, off & 0xFF); + iic_write_reg(PCA9685_I2C_ADDR, (PCA9685_LED0_OFF_H + 4 * channel) & 0xFF, (off >> 8) & 0xFF); + // P05 = 1; // 结束I2C通信 + #endif +} \ No newline at end of file diff --git a/Source/button.c b/Source/button.c new file mode 100644 index 0000000..deda6ec --- /dev/null +++ b/Source/button.c @@ -0,0 +1,69 @@ +#include "button.h" + +uint32 button_press_time = 0; // 按钮按下时间计数 +static volatile button_status_enum button_status = BUTTON_NO_PRESS; // 按钮LED状态 + +void button_init() +{ + gpio_mode(BUTTON_LED_R, GPO_PP); + gpio_mode(BUTTON_LED_G, GPO_PP); + gpio_mode(BUTTON_LED_O, GPO_PP); + gpio_set_level(BUTTON_LED_R, 0); + gpio_set_level(BUTTON_LED_G, 0); + gpio_set_level(BUTTON_LED_O, 0); + + gpio_pull_set(BUTTON_NO_PIN, PULLUP); // 设置按钮引脚 + gpio_pull_set(BUTTON_NC_PIN, PULLUP); // 设置按钮引脚 + gpio_mode(BUTTON_NO_PIN, GPIO); // 设置按钮引脚为输入模式 + gpio_mode(BUTTON_NC_PIN, GPIO); // 设置按钮引脚为输入模式 + // PINIPH |= 0x01; + // PINIPL |= 0x01; + // P0IM0 &= 0x3F; + // P0IM1 &= 0x3F; + // P0INTE |= 0xC0; +} + +void button_1ms_callback() +{ + if(gpio_get_level(BUTTON_NO_PIN) == 0) + { + button_press_time ++; + if(button_press_time >= 10000) // 防止溢出 + { + button_press_time = 10000; // 限制最大值 + } + } + else if(gpio_get_level(BUTTON_NC_PIN) == 0) + { + button_press_time = 0; + button_status = BUTTON_NO_PRESS; // 按钮未按下 + } + if(button_press_time >= BUTTON_LONG_PRESS_TIME) + { + button_status = BUTTON_LONG_PRESS; // 设置按钮状态为长按 + } + else if(button_press_time >= BUTTON_SHORT_PRESS_TIME && button_status != BUTTON_SHORT_PRESS_HANDLED) + { + button_status = BUTTON_SHORT_PRESS; // 设置按钮状态为短按 + } +} + +button_status_enum button_get_status() +{ + if(button_status == BUTTON_SHORT_PRESS) + { + button_status = BUTTON_SHORT_PRESS_HANDLED; // 短按已处理 + return BUTTON_SHORT_PRESS; + } + else + { + return button_status; + } +} + +void button_led_set(button_led_enum led) +{ + gpio_set_level(BUTTON_LED_R, led == BUTTON_LED_R); + gpio_set_level(BUTTON_LED_G, led == BUTTON_LED_G); + gpio_set_level(BUTTON_LED_O, led == BUTTON_LED_O); +} \ No newline at end of file diff --git a/Source/clock_init.c b/Source/clock_init.c new file mode 100644 index 0000000..e37bd1d --- /dev/null +++ b/Source/clock_init.c @@ -0,0 +1,200 @@ +#include "clock_init.h" +#include "delay.h" +#include "uart.h" + +//22.11MHz的IRC参数寄存器 0xFB +//24MHz的IRC参数寄存器 0xFB +#define IRC_22M (*((uint8 idata*)0xFA)) +#define IRC_24M (*((uint8 idata*)0xFB)) + + +//内核频率 +int32 sys_clk = FOSC; + + + +//------------------------------------------------------------------------------------------------------------------- +// @brief STC32G设置系统频率 +// @param NULL 空值 +// @return void 系统频率 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint32 set_clk(void) +{ + + P_SW2 |= 0x80; + + if(sys_clk == 22118400) + { + //选择 22.1184MHz + CLKDIV = 0x04; + IRTRIM = T22M_ADDR; + VRTRIM = VRT27M_ADDR; + IRCBAND = 0x02; + CLKDIV = 0x00; + } + else if(sys_clk == 24000000) + { + //选择 24MHz + CLKDIV = 0x04; + IRTRIM = T24M_ADDR; + VRTRIM = VRT27M_ADDR; + IRCBAND = 0x02; + CLKDIV = 0x00; + } + else if(sys_clk == 27000000) + { + //选择 27MHz + CLKDIV = 0x04; + IRTRIM = T27M_ADDR; + VRTRIM = VRT27M_ADDR; + IRCBAND = 0x02; + CLKDIV = 0x00; + } + else if(sys_clk == 30000000) + { + + //选择 30MHz + CLKDIV = 0x04; + IRTRIM = T30M_ADDR; + VRTRIM = VRT27M_ADDR; + IRCBAND = 0x02; + CLKDIV = 0x00; + } + else if(sys_clk == 33177600) + { + //选择 33.1776MHz + CLKDIV = 0x04; + IRTRIM = T33M_ADDR; + VRTRIM = VRT27M_ADDR; + IRCBAND = 0x02; + CLKDIV = 0x00; + } + else if(sys_clk == 35000000) + { + //选择 35MHz + CLKDIV = 0x04; + IRTRIM = T35M_ADDR; + VRTRIM = VRT44M_ADDR; + IRCBAND = 0x03; + CLKDIV = 0x00; + } + else + { + sys_clk = 30000000; + //选择 30MHz + CLKDIV = 0x04; + IRTRIM = T30M_ADDR; + VRTRIM = VRT27M_ADDR; + IRCBAND = 0x02; + CLKDIV = 0x00; + } + + return sys_clk; +} + + + + + +void board_init(void) +{ + EAXFR = 1; // 使能访问XFR + CKCON = 0x00; // 设置外部数据总线为最快 + WTST = 0; // 设置程序代码等待参数,赋值为0可将CPU执行程序的速度设置为最快 + SET_P54_RESRT; // 使P54为复位引脚 + P_SW2 = 0x80; // 开启特殊地址访问 + +#if (1 == EXTERNAL_CRYSTA_ENABLE) + XOSCCR = 0xc0; //启动外部晶振 + while (!(XOSCCR & 1)); //等待时钟稳定 + CLKDIV = 0x00; //时钟不分频 + CLKSEL = 0x01; //选择外部晶振 +#else + //自动设置系统频率 + #if (0 == FOSC) + sys_clk = set_clk(); + #else + sys_clk = FOSC; + #endif +#endif + + delay_init(); //延时函数初始化 + + WTST = 0; + P_SW2 |= 0x80; + CLKDIV = 0; //24MHz主频,分频设置 + + P0M0 = 0x00; + P0M1 = 0x00; + P1M0 = 0x00; + P1M1 = 0x00; + P2M0 = 0x00; + P2M1 = 0x00; + P3M0 = 0x00; + P3M1 = 0x00; + P4M0 = 0x00; + P4M1 = 0x00; + P5M0 = 0x00; + P5M1 = 0x00; + P6M0 = 0x00; + P6M1 = 0x00; + P7M0 = 0x00; + P7M1 = 0x00; + + ADCCFG = 0; + AUXR = 0; + SCON = 0; + S2CON = 0; + S3CON = 0; + S4CON = 0; + P_SW1 = 0; + IE2 = 0; + TMOD = 0; + + P_SW2 |= 0x80; + +#if (1 == USE_USB_CDC) + P3M0 &= ~0x03; + P3M1 |= 0x03; + + IRC48MCR = 0x80; + while (!(IRC48MCR & 0x01)); + + USBCLK = 0x00; + USBCON = 0x90; + usb_init(); + IE2 |= 0x80; + EA = 1; + while (DeviceState != DEVSTATE_CONFIGURED); //等待USB完成配置 +#else + uart_init(DEBUG_UART, DEBUG_UART_RX_PIN, DEBUG_UART_TX_PIN, DEBUG_UART_BAUD, DEBUG_UART_TIM); +#endif + EnableGlobalIRQ(); +} + + +#if (1 == PRINTF_ENABLE) + #if (1==USE_USB_CDC) + #else + //重定义printf 数字 只能输出uint16 + char putchar(char c) + { + uart_putchar(DEBUG_UART, c);//把自己实现的串口打印一字节数据的函数替换到这里 + + return c; + } + #endif +#endif + +void DisableGlobalIRQ(void) +{ + EA = 0; +} + + +void EnableGlobalIRQ(void) +{ + EA = 1; +} + diff --git a/Source/command.c b/Source/command.c new file mode 100644 index 0000000..a518eda --- /dev/null +++ b/Source/command.c @@ -0,0 +1,141 @@ +#include "command.h" + +uint8 command_buffer[COMMAND_BUFFER_SIZE]; // 命令缓冲区 +static uint8 command_buffer_index = 0; // 当前命令索引 +static vuint8 is_busy_command = 0; + +/************************************************************ +* 名称 :getIntFromStr() +* 功能 :从字符串中获取整数 +* 输入 :void +* 输出 :int +* 说明 :从字符串中获取整数,自动移动指针,遇到特殊字符停止 +************************************************************/ +int16 getIntFromStr() +{ + int16 result = 0; + int8 is_negative = 1; // 是否为负数 + bit has_get = 0; + while(command_buffer[command_buffer_index]) + { + if(command_buffer[command_buffer_index] == ' ' || command_buffer[command_buffer_index] == ';' || command_buffer[command_buffer_index] == '\r' || command_buffer[command_buffer_index] == '\n' || command_buffer[command_buffer_index] == '\0') + { + if(has_get) + { + break; + } + command_buffer_index++; + continue; + } + else if(command_buffer[command_buffer_index] == '-') + { + is_negative = -1; + } + else if(command_buffer[command_buffer_index] >= '0' && command_buffer[command_buffer_index] <= '9') + { + has_get = 1; + result = result*10 + command_buffer[command_buffer_index] - '0'; + } + else if(command_buffer[command_buffer_index] == '.') + { + command_buffer_index++; + while(command_buffer[command_buffer_index] >= '0' && command_buffer[command_buffer_index] <= '9')command_buffer_index++; + } + else + { + result = 0; + break; + } + command_buffer_index++; + } + return result * is_negative; // 返回结果 +} + + +/************************************************************ +* 名称 :startWith() +* 功能 :判断字符串是否以某个字符串开头 +* 输入 :uint8 *str,uint8 *cmd,uint8 offset +* 输出 uint8 +* 说明 :判断字符串是否以某个字符串开头 +************************************************************/ +uint8 startWith(uint8 *str, uint8 *cmd,uint8 offset,uint8 *counter) +{ + uint8 cou,k; + k = offset; + for(cou=0;*cmd;cou++) + { + if(*(str+cou+k) != *cmd) + { + (*counter) -= cou; + return 0; + } + cmd++; + (*counter) ++; + } + return 1; +} + + +/************************************************************ +* 名称 :parseCommand() +* 功能 :解析命令 +* 输入 :无 +* 输出 :无 +* 说明 :解析命令 +************************************************************/ +void parseCommand() +{ + uint8 cmd_state = 1; // 命令状态 + if(!is_busy_command) return; // 如果没有忙状态,直接返回 + command_buffer[command_buffer_index] = '\0'; + command_buffer_index = 0; + if(startWith(command_buffer,"POW",0,&command_buffer_index)) + { + // command_buffer_index += 2; + if(command_buffer[command_buffer_index] == ' ') + { + // int16 power_index = 1000; + // power_index = getIntFromStr(); + // if(startWith(command_buffer," ON",command_buffer_index,&command_buffer_index)) + // { + + // } + // else if(startWith(command_buffer," OFF",command_buffer_index,&command_buffer_index)) + // { + + // } + // if(command_buffer[command_buffer_index] == ';') + // { + // cmd_state = 0; // 命令成功 + // } + } + } + + + if(cmd_state) + { + printf("Error!\r\n"); + } + else + { + printf("OK!\r\n"); + } + command_buffer_index = 0; + is_busy_command = 0; +} + + +void command_uart_callback(uint8 dat) +{ + if(is_busy_command) return; + command_buffer[command_buffer_index++] = dat; + if(command_buffer[command_buffer_index-1] == ';') + { + is_busy_command = 1; // 设置忙状态,防止中断嵌套 + } + if(command_buffer_index >= COMMAND_BUFFER_SIZE) + { + command_buffer_index = 0; // 防止缓冲区溢出 + } +} diff --git a/Source/delay.c b/Source/delay.c new file mode 100644 index 0000000..7a0dbee --- /dev/null +++ b/Source/delay.c @@ -0,0 +1,51 @@ +#include "delay.h" + + +static vuint16 delay_ms_a = 0; +static vuint16 delay_us_a = 0; + +//------------------------------------------------------------------------------------------------------------------- +// @brief 软件延时函数初始化 +// @param NULL +// @return void +// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 +//------------------------------------------------------------------------------------------------------------------- +void delay_init(void) +{ + delay_ms_a = sys_clk / 6000; + delay_us_a = sys_clk / 7000000; + if(sys_clk <= 12000000) delay_us_a++; + +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 软件延时函数 +// @param x 需要延时的时间(ms) +// @return void +// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 +//------------------------------------------------------------------------------------------------------------------- +void delay_ms(uint16 ms) +{ + uint16 i; + do { + i = delay_ms_a; + //i = sys_clk/6000;//参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟. + while(--i); + }while(--ms); +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 软件延时函数(这是一个不准确的延时) +// @param x 需要延时的时间(us) +// @return void +// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 +//------------------------------------------------------------------------------------------------------------------- +void delay_us(uint32 us) +{ + uint16 i; + do { + i = delay_us_a; + //i = sys_clk/6000;//参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟. + while(--i); + }while(--us); +} diff --git a/Source/exti.c b/Source/exti.c new file mode 100644 index 0000000..557fe6a --- /dev/null +++ b/Source/exti.c @@ -0,0 +1,38 @@ +#include "exti.h" + +//------------------------------------------------------------------------------------------------------------------- +// @brief 外部中断初始化 +// @param NULL +// @return void +// Sample usage: exit_init(INT0_P32,BOTH) //初始化P32 作为外部中断引脚,双边沿触发。 +//------------------------------------------------------------------------------------------------------------------- +void exit_init(INTN_enum int_n,INT_MODE_enum mode) +{ + if(INT0_P32 == int_n) + { + IT0 = mode; + EX0 = 1; //使能INT0中断 + } + + if(INT1_P33 == int_n) + { + IT1 = mode; + EX1 = 1; //使能INT1中断 + } + + if(INT2_P36 == int_n) + { + INTCLKO |= 1<<4; //使能INT2中断 + } + + if(INT3_P37 == int_n) + { + INTCLKO |= 1<<5; //使能INT3中断 + } + + if(INT4_P30 == int_n) + { + INTCLKO |= 1<<6; //使能INT4中断 + } + +} \ No newline at end of file diff --git a/Source/fifo.c b/Source/fifo.c new file mode 100644 index 0000000..b6b98c0 --- /dev/null +++ b/Source/fifo.c @@ -0,0 +1,523 @@ +#include "fifo.h" + + +//------------------------------------------------------------------------------------------------------------------- +// 函数简介 FIFO 头指针位移 +// 参数说明 *fifo FIFO 对象指针 +// 参数说明 offset 偏移量 +// 返回参数 void +// 使用示例 fifo_head_offset(fifo, 1); +// 备注信息 本函数在文件内部调用 用户不用关注 也不可修改 +//------------------------------------------------------------------------------------------------------------------- +static void fifo_head_offset (fifo_struct *fifo, uint32 offset) +{ + fifo->head += offset; + + while(fifo->max <= fifo->head) // 如果范围超过则减缓冲区大小 直到小于最大缓冲区大小 + { + fifo->head -= fifo->max; + } +} + +//------------------------------------------------------------------------------------------------------------------- +// 函数简介 FIFO 尾指针位移 +// 参数说明 *fifo FIFO 对象指针 +// 参数说明 offset 偏移量 +// 返回参数 void +// 使用示例 fifo_end_offset(fifo, 1); +// 备注信息 本函数在文件内部调用 用户不用关注 也不可修改 +//------------------------------------------------------------------------------------------------------------------- +static void fifo_end_offset (fifo_struct *fifo, uint32 offset) +{ + fifo->end += offset; + + while(fifo->max <= fifo->end) // 如果范围超过则减缓冲区大小 直到小于最大缓冲区大小 + { + fifo->end -= fifo->max; + } +} + +//------------------------------------------------------------------------------------------------------------------- +// 函数简介 FIFO 重置缓冲器 +// 参数说明 *fifo FIFO 对象指针 +// 返回参数 void +// 使用示例 fifo_clear(fifo); +// 备注信息 清空当前 FIFO 对象的内存 +//------------------------------------------------------------------------------------------------------------------- +fifo_state_enum fifo_clear (fifo_struct *fifo) +{ + //zf_assert(NULL != fifo); + fifo_state_enum return_state = FIFO_SUCCESS; // 操作结果初值 + do + { +// if(FIFO_IDLE != fifo->execution) // 判断是否当前 FIFO 是否空闲 +// { +// return_state = FIFO_RESET_UNDO; // 重置操作未完成 +// break; +// } + fifo->execution |= FIFO_RESET; // 重置操作置位 + fifo->head = 0; // 重置 FIFO 所有数值复位 + fifo->end = 0; // 重置 FIFO 所有数值复位 + fifo->reamin_size = fifo->max; // 重置 FIFO 所有数值复位 + switch(fifo->type) + { + case FIFO_DATA_8BIT: memset(fifo->buffer, 0, (uint16)fifo->max); break; + case FIFO_DATA_16BIT: memset(fifo->buffer, 0, (uint16)fifo->max * 2); break; + case FIFO_DATA_32BIT: memset(fifo->buffer, 0, (uint16)fifo->max * 4); break; + } + fifo->execution = FIFO_IDLE; // 操作状态复位 + }while(0); + return return_state; +} + +//------------------------------------------------------------------------------------------------------------------- +// 函数简介 FIFO 查询当前数据个数 +// 参数说明 *fifo FIFO 对象指针 +// 返回参数 uint32 已使用长度 +// 使用示例 uint32 len = fifo_used(fifo); +// 备注信息 +//------------------------------------------------------------------------------------------------------------------- +uint32 fifo_used (fifo_struct *fifo) +{ + //zf_assert(fifo != NULL); + return (fifo->max - fifo->reamin_size); // 返回当前 FIFO 缓冲区中数据个数 +} + +//------------------------------------------------------------------------------------------------------------------- +// 函数简介 向 FIFO 中写入数据 +// 参数说明 *fifo FIFO 对象指针 +// 参数说明 dat 数据 +// 返回参数 fifo_state_enum 操作状态 +// 使用示例 zf_log(fifo_write_element(&fifo, data) == FIFO_SUCCESS, "fifo_write_byte error"); +// 备注信息 +//------------------------------------------------------------------------------------------------------------------- +fifo_state_enum fifo_write_element (fifo_struct *fifo, uint32 dat) +{ + //zf_assert(NULL != fifo); + fifo_state_enum return_state = FIFO_SUCCESS; // 操作结果初值 + + do + { + if((FIFO_RESET | FIFO_WRITE) & fifo->execution) // 不在写入与重置状态 避免写入竞争与指向错误 + { + return_state = FIFO_WRITE_UNDO; // 写入操作未完成 + break; + } + fifo->execution |= FIFO_WRITE; // 写入操作置位 + + if(1 <= fifo->reamin_size) // 剩余空间足够装下本次数据 + { + switch(fifo->type) + { + case FIFO_DATA_8BIT: ((uint8 *)fifo->buffer)[fifo->head] = dat; break; + case FIFO_DATA_16BIT: ((uint16 *)fifo->buffer)[fifo->head] = dat; break; + case FIFO_DATA_32BIT: ((uint32 *)fifo->buffer)[fifo->head] = dat; break; + } + fifo_head_offset(fifo, 1); // 头指针偏移 + fifo->reamin_size -= 1; // 缓冲区剩余长度减小 + } + else + { + return_state = FIFO_SPACE_NO_ENOUGH; // 当前 FIFO 缓冲区满 不能再写入数据 返回空间不足 + } + fifo->execution &= ~FIFO_WRITE; // 写入操作复位 + }while(0); + + return return_state; +} + +//------------------------------------------------------------------------------------------------------------------- +// 函数简介 向 FIFO 中写入数据 +// 参数说明 *fifo FIFO 对象指针 +// 参数说明 *dat 数据来源缓冲区指针 +// 参数说明 length 需要写入的数据长度 +// 返回参数 fifo_state_enum 操作状态 +// 使用示例 zf_log(fifo_write_buffer(&fifo, data, 32) == FIFO_SUCCESS, "fifo_write_buffer error"); +// 备注信息 +//------------------------------------------------------------------------------------------------------------------- +fifo_state_enum fifo_write_buffer (fifo_struct *fifo, void *dat, uint32 length) +{ + //zf_assert(NULL != fifo); + fifo_state_enum return_state = FIFO_SUCCESS; // 操作结果初值 + uint32 temp_length = 0; + + do + { + if(NULL == dat) + { + return_state = FIFO_BUFFER_NULL; // 用户缓冲区异常 + break; + } + if((FIFO_RESET | FIFO_WRITE) & fifo->execution) // 不在写入与重置状态 避免写入竞争与指向错误 + { + return_state = FIFO_WRITE_UNDO; // 写入操作未完成 + break; + } + fifo->execution |= FIFO_WRITE; // 写入操作置位 + + if(length <= fifo->reamin_size) // 剩余空间足够装下本次数据 + { + temp_length = fifo->max - fifo->head; // 计算头指针距离缓冲区尾还有多少空间 + + if(length > temp_length) // 距离缓冲区尾长度不足写入数据 环形缓冲区分段操作 + { + switch(fifo->type) + { + case FIFO_DATA_8BIT: + { + memcpy( + &(((uint8 *)fifo->buffer)[fifo->head]), + dat, (uint16)temp_length); // 拷贝第一段数据 + fifo_head_offset(fifo, temp_length); // 头指针偏移 + memcpy( + &(((uint8 *)fifo->buffer)[fifo->head]), + &(((uint8 *)dat)[temp_length]), + (uint16)(length - temp_length)); // 拷贝第二段数据 + fifo_head_offset(fifo, length - temp_length); // 头指针偏移 + }break; + case FIFO_DATA_16BIT: + { + memcpy( + &(((uint16 *)fifo->buffer)[fifo->head]), + dat, temp_length * 2); // 拷贝第一段数据 + fifo_head_offset(fifo, temp_length); // 头指针偏移 + memcpy( + &(((uint16 *)fifo->buffer)[fifo->head]), + &(((uint16 *)dat)[temp_length]), + (length - temp_length) * 2); // 拷贝第二段数据 + fifo_head_offset(fifo, length - temp_length); // 头指针偏移 + }break; + case FIFO_DATA_32BIT: + { + memcpy( + &(((uint32 *)fifo->buffer)[fifo->head]), + dat, temp_length * 4); // 拷贝第一段数据 + fifo_head_offset(fifo, temp_length); // 头指针偏移 + memcpy( + &(((uint32 *)fifo->buffer)[fifo->head]), + &(((uint32 *)dat)[temp_length]), + (length - temp_length) * 4); // 拷贝第二段数据 + fifo_head_offset(fifo, length - temp_length); // 头指针偏移 + }break; + } + } + else + { + switch(fifo->type) + { + case FIFO_DATA_8BIT: + { + memcpy( + &(((uint8 *)fifo->buffer)[fifo->head]), + dat, (uint16)length); // 一次完整写入 + fifo_head_offset(fifo, length); // 头指针偏移 + }break; + case FIFO_DATA_16BIT: + { + memcpy( + &(((uint16 *)fifo->buffer)[fifo->head]), + dat, length * 2); // 一次完整写入 + fifo_head_offset(fifo, length); // 头指针偏移 + }break; + case FIFO_DATA_32BIT: + { + memcpy( + &(((uint32 *)fifo->buffer)[fifo->head]), + dat, length * 4); // 一次完整写入 + fifo_head_offset(fifo, length); // 头指针偏移 + }break; + } + } + + fifo->reamin_size -= length; // 缓冲区剩余长度减小 + } + else + { + return_state = FIFO_SPACE_NO_ENOUGH; // 当前 FIFO 缓冲区满 不能再写入数据 返回空间不足 + } + fifo->execution &= ~FIFO_WRITE; // 写入操作复位 + }while(0); + + return return_state; +} + +//------------------------------------------------------------------------------------------------------------------- +// 函数简介 从 FIFO 读取数据 +// 参数说明 *fifo FIFO 对象指针 +// 参数说明 *dat 目标缓冲区指针 +// 参数说明 flag 是否变更 FIFO 状态 可选择是否清空读取的数据 +// 返回参数 fifo_state_enum 操作状态 +// 使用示例 zf_log(fifo_read_element(&fifo, data, FIFO_READ_ONLY) == FIFO_SUCCESS, "fifo_read_byte error"); +// 备注信息 +//------------------------------------------------------------------------------------------------------------------- +fifo_state_enum fifo_read_element (fifo_struct *fifo, void *dat, fifo_operation_enum flag) +{ + //zf_assert(NULL != fifo); + fifo_state_enum return_state = FIFO_SUCCESS; // 操作结果初值 + + do + { + if(NULL == dat) + { + return_state = FIFO_BUFFER_NULL; // 用户缓冲区异常 + } + else + { + if((FIFO_RESET | FIFO_CLEAR) & fifo->execution) // 判断是否当前 FIFO 是否在执行清空或重置操作 + { + return_state = FIFO_READ_UNDO; // 读取操作未完成 + break; + } + + if(1 > fifo_used(fifo)) + { + return_state = FIFO_DATA_NO_ENOUGH; // 缓冲区没有数据 返回数据长度不足 + break; // 直接退出操作 + } + + fifo->execution |= FIFO_READ; // 读操作置位 + switch(fifo->type) + { + case FIFO_DATA_8BIT: *((uint8 *)dat) = ((uint8 *)fifo->buffer)[fifo->end]; break; + case FIFO_DATA_16BIT: *((uint16 *)dat) = ((uint16 *)fifo->buffer)[fifo->end]; break; + case FIFO_DATA_32BIT: *((uint32 *)dat) = ((uint32 *)fifo->buffer)[fifo->end]; break; + } + fifo->execution &= ~FIFO_READ; // 读操作复位 + } + + if(FIFO_READ_AND_CLEAN == flag) // 如果选择读取并更改 FIFO 状态 + { + if((FIFO_RESET | FIFO_CLEAR | FIFO_READ) == fifo->execution) // 不在 重置 清空 读取 状态 避免异常 + { + return_state = FIFO_CLEAR_UNDO; // 清空操作未完成 + break; + } + fifo->execution |= FIFO_CLEAR; // 清空作置位 + fifo_end_offset(fifo, 1); // 移动 FIFO 头指针 + fifo->reamin_size += 1; // 释放对应长度空间 + fifo->execution &= ~FIFO_CLEAR; // 清空作复位 + } + }while(0); + + return return_state; +} + +//------------------------------------------------------------------------------------------------------------------- +// 函数简介 从 FIFO 读取数据 +// 参数说明 *fifo FIFO 对象指针 +// 参数说明 *dat 目标缓冲区指针 +// 参数说明 *length 读取的数据长度 如果没有这么多数据这里会被修改 +// 参数说明 flag 是否变更 FIFO 状态 可选择是否清空读取的数据 +// 返回参数 fifo_state_enum 操作状态 +// 使用示例 zf_log(fifo_read_buffer(&fifo, data, &length, FIFO_READ_ONLY) == FIFO_SUCCESS, "fifo_read_buffer error"); +// 备注信息 +//------------------------------------------------------------------------------------------------------------------- +fifo_state_enum fifo_read_buffer (fifo_struct *fifo, void *dat, uint32 *length, fifo_operation_enum flag) +{ + //zf_assert(NULL != fifo); + //zf_assert(NULL != length); + fifo_state_enum return_state = FIFO_SUCCESS; // 操作结果初值 + uint32 temp_length = 0; + uint32 fifo_data_length = 0; + + do + { + if(NULL == dat) + { + return_state = FIFO_BUFFER_NULL; + } + else + { + if((FIFO_RESET | FIFO_CLEAR) & fifo->execution) // 判断是否当前 FIFO 是否在执行清空或重置操作 + { + *length = fifo_data_length; // 纠正读取的长度 + return_state = FIFO_READ_UNDO; // 读取操作未完成 + break; + } + + fifo_data_length = fifo_used(fifo); // 获取当前数据有多少 + if(*length > fifo_data_length) // 判断长度是否足够 + { + *length = fifo_data_length; // 纠正读取的长度 + return_state = FIFO_DATA_NO_ENOUGH; // 标志数据不够 + if(0 == fifo_data_length) // 如果没有数据 就直接退出 + { + fifo->execution &= ~FIFO_READ; // 读操作复位 + break; + } + } + + fifo->execution |= FIFO_READ; // 读操作置位 + temp_length = fifo->max - fifo->end; // 计算尾指针距离缓冲区尾还有多少空间 + if(*length <= temp_length) // 足够一次性读取完毕 + { + switch(fifo->type) + { + case FIFO_DATA_8BIT: memcpy(dat, &(((uint8 *)fifo->buffer)[fifo->end]), (uint16)*length); break; + case FIFO_DATA_16BIT: memcpy(dat, &(((uint16 *)fifo->buffer)[fifo->end]), (uint16)*length * 2); break; + case FIFO_DATA_32BIT: memcpy(dat, &(((uint32 *)fifo->buffer)[fifo->end]), (uint16)*length * 4); break; + } + } + else + { + switch(fifo->type) + { + case FIFO_DATA_8BIT: + { + memcpy(dat, &(((uint8 *)fifo->buffer)[fifo->end]), (uint16)temp_length); + memcpy(&(((uint8 *)dat)[temp_length]), fifo->buffer, (uint16)(*length - temp_length)); + }break; + case FIFO_DATA_16BIT: + { + memcpy(dat, &(((uint16 *)fifo->buffer)[fifo->end]), (uint16)(temp_length * 2)); + memcpy(&(((uint16 *)dat)[temp_length]), fifo->buffer, (uint16)((*length - temp_length) * 2)); + }break; + case FIFO_DATA_32BIT: + { + memcpy(dat, &(((uint32 *)fifo->buffer)[fifo->end]), (uint16)(temp_length * 4)); + memcpy(&(((uint32 *)dat)[temp_length]), fifo->buffer, (uint16)((*length - temp_length) * 4)); + }break; + } + } + fifo->execution &= ~FIFO_READ; // 读操作复位 + } + + if(FIFO_READ_AND_CLEAN == flag) // 如果选择读取并更改 FIFO 状态 + { + if((FIFO_RESET | FIFO_CLEAR | FIFO_READ) == fifo->execution) // 不在 重置 清空 读取 状态 避免异常 + { + return_state = FIFO_CLEAR_UNDO; // 清空操作未完成 + break; + } + fifo->execution |= FIFO_CLEAR; // 清空作置位 + fifo_end_offset(fifo, *length); // 移动 FIFO 头指针 + fifo->reamin_size += *length; // 释放对应长度空间 + fifo->execution &= ~FIFO_CLEAR; // 清空作复位 + } + }while(0); + + return return_state; +} + +//------------------------------------------------------------------------------------------------------------------- +// 函数简介 从 FIFO 尾部读取指定长度 buffer +// 参数说明 *fifo FIFO 对象指针 +// 参数说明 *dat 目标缓冲区指针 +// 参数说明 *length 读取的数据长度 如果没有这么多数据这里会被修改 +// 参数说明 flag 是否变更 FIFO 状态 可选择是否清空读取的数据 +// 返回参数 fifo_state_enum 操作状态 +// 使用示例 zf_log(fifo_read_tail_buffer(&fifo, data, &length, FIFO_READ_ONLY) == FIFO_SUCCESS, "fifo_read_buffer error"); +// 备注信息 如果使用 FIFO_READ_AND_CLEAN 操作 将会丢弃所有数据并清空整个 FIFO +// 如果使用 FIFO_READ_AND_CLEAN 操作 将会丢弃所有数据并清空整个 FIFO +// 如果使用 FIFO_READ_AND_CLEAN 操作 将会丢弃所有数据并清空整个 FIFO +//------------------------------------------------------------------------------------------------------------------- +fifo_state_enum fifo_read_tail_buffer (fifo_struct *fifo, void *dat, uint32 *length, fifo_operation_enum flag) +{ + //zf_assert(NULL != fifo); + //zf_assert(NULL != length); + fifo_state_enum return_state = FIFO_SUCCESS; // 操作结果初值 + uint32 temp_length = 0; + uint32 fifo_data_length = 0; + + do + { + if(NULL == dat) + { + return_state = FIFO_BUFFER_NULL; + } + else + { + if((FIFO_RESET | FIFO_CLEAR | FIFO_WRITE) & fifo->execution) // 判断是否当前 FIFO 是否在执行清空或重置操作 + { + *length = fifo_data_length; // 纠正读取的长度 + return_state = FIFO_READ_UNDO; // 读取操作未完成 + break; + } + + fifo_data_length = fifo_used(fifo); // 获取当前数据有多少 + if(*length > fifo_data_length) // 判断长度是否足够 + { + *length = fifo_data_length; // 纠正读取的长度 + return_state = FIFO_DATA_NO_ENOUGH; // 标志数据不够 + if(0 == fifo_data_length) // 如果没有数据 就直接退出 + { + fifo->execution &= ~FIFO_READ; // 读操作复位 + break; + } + } + + fifo->execution |= FIFO_READ; // 读操作置位 + if((fifo->head > fifo->end) || (fifo->head >= *length)) + { + switch(fifo->type) + { + case FIFO_DATA_8BIT: memcpy(dat, &(((uint8 *)fifo->buffer)[fifo->head - *length]), (uint16)*length); break; + case FIFO_DATA_16BIT: memcpy(dat, &(((uint16 *)fifo->buffer)[fifo->head - *length]), (uint16)(*length * 2));break; + case FIFO_DATA_32BIT: memcpy(dat, &(((uint32 *)fifo->buffer)[fifo->head - *length]), (uint16)(*length * 4));break; + } + } + else + { + temp_length = *length - fifo->head; // 计算尾指针距离缓冲区尾还有多少空间 + switch(fifo->type) + { + case FIFO_DATA_8BIT: + { + memcpy(dat, &(((uint8 *)fifo->buffer)[fifo->max - temp_length]), (uint16)temp_length); + memcpy(&(((uint8 *)dat)[temp_length]), &(((uint8 *)fifo->buffer)[fifo->head - *length]), (uint16)(*length - temp_length)); + }break; + case FIFO_DATA_16BIT: + { + memcpy(dat, &(((uint16 *)fifo->buffer)[fifo->max - temp_length]), temp_length * 2); + memcpy(&(((uint16 *)dat)[temp_length]), &(((uint16 *)fifo->buffer)[fifo->head - *length]), (uint16)((*length - temp_length) * 2)); + }break; + case FIFO_DATA_32BIT: + { + memcpy(dat, &(((uint32 *)fifo->buffer)[fifo->max - temp_length]), temp_length * 4); + memcpy(&(((uint32 *)dat)[temp_length]), &(((uint32 *)fifo->buffer)[fifo->head - *length]), (uint16)((*length - temp_length) * 4)); + }break; + } + } + fifo->execution &= ~FIFO_READ; // 读操作复位 + } + + if(FIFO_READ_AND_CLEAN == flag) // 如果选择读取并更改 FIFO 状态 + { + if((FIFO_RESET | FIFO_CLEAR | FIFO_READ) == fifo->execution) // 不在 重置 清空 读取 状态 避免异常 + { + return_state = FIFO_CLEAR_UNDO; // 清空操作未完成 + break; + } + fifo_clear(fifo); + } + }while(0); + + return return_state; +} + +//------------------------------------------------------------------------------------------------------------------- +// 函数简介 FIFO 初始化 挂载对应缓冲区 +// 参数说明 *fifo FIFO 对象指针 +// 参数说明 type FIFO 数据位数 +// 参数说明 *buffer_addr 要挂载的缓冲区 +// 参数说明 size 缓冲区大小 +// 返回参数 fifo_state_enum 操作状态 +// 使用示例 fifo_init(&user_fifo, user_buffer, 64); +// 备注信息 +//------------------------------------------------------------------------------------------------------------------- +fifo_state_enum fifo_init (fifo_struct *fifo, fifo_data_type_enum type, void *buffer_addr, uint32 len) +{ + //zf_assert(NULL != fifo); + fifo_state_enum return_state = FIFO_SUCCESS; + do + { + fifo->buffer = buffer_addr; + fifo->execution = FIFO_IDLE; + fifo->type = type; + fifo->head = 0; + fifo->end = 0; + fifo->reamin_size = len; + fifo->max = len; + }while(0); + return return_state; +} diff --git a/Source/gpio.c b/Source/gpio.c new file mode 100644 index 0000000..c55cdac --- /dev/null +++ b/Source/gpio.c @@ -0,0 +1,313 @@ +#include "gpio.h" + + +#define PxPU_BASE_ADDR 0x7EFE10 + + +void gpio_set_level(PIN_enum pin, uint8 level) +{ + if(0x00 == (pin&0xF0)) //P0 + { + if(level) + P0 |= (1<<(pin&0xF)); + else + P0 &= ~(1<<(pin&0xF)); + } + else if(0x10 == (pin&0xF0)) //P1 + { + if(level) + P1 |= (1<<(pin&0xF)); + else + P1 &= ~(1<<(pin&0xF)); + } + else if(0x20 == (pin&0xF0)) //P2 + { + if(level) + P2 |= (1<<(pin&0xF)); + else + P2 &= ~(1<<(pin&0xF)); + } + else if(0x30 == (pin&0xF0)) //P3 + { + if(level) + P3 |= (1<<(pin&0xF)); + else + P3 &= ~(1<<(pin&0xF)); + } + else if(0x40 == (pin&0xF0)) //P4 + { + if(level) + P4 |= (1<<(pin&0xF)); + else + P4 &= ~(1<<(pin&0xF)); + } + else if(0x50 == (pin&0xF0)) //P5 + { + if(level) + P5 |= (1<<(pin&0xF)); + else + P5 &= ~(1<<(pin&0xF)); + } + else if(0x60 == (pin&0xF0)) //P6 + { + if(level) + P6 |= (1<<(pin&0xF)); + else + P6 &= ~(1<<(pin&0xF)); + } + else if(0x70 == (pin&0xF0)) //P7 + { + if(level) + P7 |= (1<<(pin&0xF)); + else + P7 &= ~(1<<(pin&0xF)); + } +} + +uint8 gpio_get_level(PIN_enum pin) +{ + uint8 level; + if(0x00 == (pin&0xF0)) //P0 + { + level = (P0 & (1<<(pin&0xF))) ? 1 : 0; + } + else if(0x10 == (pin&0xF0)) //P1 + { + level = (P1 & (1<<(pin&0xF))) ? 1 : 0; + } + else if(0x20 == (pin&0xF0)) //P2 + { + level = (P2 & (1<<(pin&0xF))) ? 1 : 0; + } + else if(0x30 == (pin&0xF0)) //P3 + { + level = (P3 & (1<<(pin&0xF))) ? 1 : 0; + } + else if(0x40 == (pin&0xF0)) //P4 + { + level = (P4 & (1<<(pin&0xF))) ? 1 : 0; + } + else if(0x50 == (pin&0xF0)) //P5 + { + level = (P5 & (1<<(pin&0xF))) ? 1 : 0; + } + else if(0x60 == (pin&0xF0)) //P6 + { + level = (P6 & (1<<(pin&0xF))) ? 1 : 0; + } + else if(0x70 == (pin&0xF0)) //P7 + { + level = (P7 & (1<<(pin&0xF))) ? 1 : 0; + } + return level; +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief GPIO设置引脚上拉电阻设置 +// @param pin 选择引脚(P0_0-P7_7) +// @param pull 设置上下拉电阻 NOPULL:不设置 PULLUP:上拉 +// @return void +// Sample usage: gpio_pull_set(P0_0,NOPULL); // 设置P0.0引脚没有上下拉电阻 +//------------------------------------------------------------------------------------------------------------------- +void gpio_pull_set(PIN_enum pin, PULL_enum pull) +{ + if(PULLUP == pull) + { + (*(unsigned char volatile far *)(PxPU_BASE_ADDR + (pin >> 4))) |= (1<<(pin&0x0F)); + } + else if(NOPULL == pull) + { + (*(unsigned char volatile far *)(PxPU_BASE_ADDR + (pin >> 4))) &= ~(1<<(pin&0x0F)); + } +} + + + +//------------------------------------------------------------------------------------------------------------------- +// @brief GPIO设置引脚模式 +// @param pin 选择引脚(P0_0-P5_4) +// @param mode 引脚模式 GPIO:准双向口, GPO_PP:推挽输出, GPI_IMPEDANCE:高阻输入, GPI_OD:开漏输出 +// @return void +// Sample usage: gpio_mode(P0_0,GPIO); // 设置P0.0设置为双向IO +//------------------------------------------------------------------------------------------------------------------- +void gpio_mode(PIN_enum pin, GPIOMODE_enum mode) +{ + if(GPIO == mode) + { + if(0x00 == (pin&0xF0)) //P0 + { + P0M1 &= ~(1<<(pin&0xF)); + P0M0 &= ~(1<<(pin&0xF)); + } + if(0x10 == (pin&0xF0)) //P1 + { + P1M1 &= ~(1<<(pin&0xF)); + P1M0 &= ~(1<<(pin&0xF)); + } + if(0x20 == (pin&0xF0)) //P2 + { + P2M1 &= ~(1<<(pin&0xF)); + P2M0 &= ~(1<<(pin&0xF)); + } + + if(0x30 == (pin&0xF0)) //P3 + { + P3M1 &= ~(1<<(pin&0xF)); + P3M0 &= ~(1<<(pin&0xF)); + } + if(0x40 == (pin&0xF0)) //P4 + { + P4M1 &= ~(1<<(pin&0xF)); + P4M0 &= ~(1<<(pin&0xF)); + } + if(0x50 == (pin&0xF0)) //P5 + { + P5M1 &= ~(1<<(pin&0xF)); + P5M0 &= ~(1<<(pin&0xF)); + } + if(0x60 == (pin&0xF0)) //P5 + { + P6M1 &= ~(1<<(pin&0xF)); + P6M0 &= ~(1<<(pin&0xF)); + } + if(0x70 == (pin&0xF0)) //P5 + { + P7M1 &= ~(1<<(pin&0xF)); + P7M0 &= ~(1<<(pin&0xF)); + } + } + else if(GPO_PP == mode) + { + if(0x00 == (pin&0xF0)) //P0 + { + P0M1 &= ~(1<<(pin&0xF)); + P0M0 |= (1<<(pin&0xF)); + } + if(0x10 == (pin&0xF0)) //P1 + { + P1M1 &= ~(1<<(pin&0xF)); + P1M0 |= (1<<(pin&0xF)); + } + if(0x20 == (pin&0xF0)) //P2 + { + P2M1 &= ~(1<<(pin&0xF)); + P2M0 |= (1<<(pin&0xF)); + } + + if(0x30 == (pin&0xF0)) //P3 + { + P3M1 &= ~(1<<(pin&0xF)); + P3M0 |= (1<<(pin&0xF)); + } + if(0x40 == (pin&0xF0)) //P4 + { + P4M1 &= ~(1<<(pin&0xF)); + P4M0 |= (1<<(pin&0xF)); + } + if(0x50 == (pin&0xF0)) //P5 + { + P5M1 &= ~(1<<(pin&0xF)); + P5M0 |= (1<<(pin&0xF)); + } + if(0x60 == (pin&0xF0)) //P4 + { + P6M1 &= ~(1<<(pin&0xF)); + P6M0 |= (1<<(pin&0xF)); + } + if(0x70 == (pin&0xF0)) //P5 + { + P7M1 &= ~(1<<(pin&0xF)); + P7M0 |= (1<<(pin&0xF)); + } + + } + else if(GPI_IMPEDANCE == mode) + { + if(0x00 == (pin&0xF0)) //P0 + { + P0M1 |= (1<<(pin&0xF)); + P0M0 &= ~(1<<(pin&0xF)); + } + if(0x10 == (pin&0xF0)) //P1 + { + P1M1 |= (1<<(pin&0xF)); + P1M0 &= ~(1<<(pin&0xF)); + } + if(0x20 == (pin&0xF0)) //P2 + { + P2M1 |= (1<<(pin&0xF)); + P2M0 &= ~(1<<(pin&0xF)); + } + + if(0x30 == (pin&0xF0)) //P3 + { + P3M1 |= (1<<(pin&0xF)); + P3M0 &= ~(1<<(pin&0xF)); + } + if(0x40 == (pin&0xF0)) //P4 + { + P4M1 |= (1<<(pin&0xF)); + P4M0 &= ~(1<<(pin&0xF)); + } + if(0x50 == (pin&0xF0)) //P5 + { + P5M1 |= (1<<(pin&0xF)); + P5M0 &= ~(1<<(pin&0xF)); + } + if(0x60 == (pin&0xF0)) //P5 + { + P6M1 |= (1<<(pin&0xF)); + P6M0 &= ~(1<<(pin&0xF)); + } + if(0x70 == (pin&0xF0)) //P5 + { + P7M1 |= (1<<(pin&0xF)); + P7M0 &= ~(1<<(pin&0xF)); + } + } + else if(GPI_OD == mode) + { + if(0x00 == (pin&0xF0)) //P0 + { + P0M1 |= (1<<(pin&0xF)); + P0M0 |= (1<<(pin&0xF)); + } + if(0x10 == (pin&0xF0)) //P1 + { + P1M1 |= (1<<(pin&0xF)); + P1M0 |= (1<<(pin&0xF)); + } + if(0x20 == (pin&0xF0)) //P2 + { + P2M1 |= (1<<(pin&0xF)); + P2M0 |= (1<<(pin&0xF)); + } + + if(0x30 == (pin&0xF0)) //P3 + { + P3M1 |= (1<<(pin&0xF)); + P3M0 |= (1<<(pin&0xF)); + } + if(0x40 == (pin&0xF0)) //P4 + { + P4M1 |= (1<<(pin&0xF)); + P4M0 |= (1<<(pin&0xF)); + } + if(0x50 == (pin&0xF0)) //P5 + { + P5M1 |= (1<<(pin&0xF)); + P5M0 |= (1<<(pin&0xF)); + } + if(0x60 == (pin&0xF0)) //P5 + { + P6M1 |= (1<<(pin&0xF)); + P6M0 |= (1<<(pin&0xF)); + } + if(0x70 == (pin&0xF0)) //P5 + { + P7M1 |= (1<<(pin&0xF)); + P7M0 |= (1<<(pin&0xF)); + } + } +} + diff --git a/Source/hx711.c b/Source/hx711.c new file mode 100644 index 0000000..b8f55f6 --- /dev/null +++ b/Source/hx711.c @@ -0,0 +1,91 @@ +#include "hx711.h" +#include "gpio.h" + +uint32 hx711_last_read_value[10]; + +void hx711_init() +{ + gpio_mode(HX711_DT_PIN, GPIO); // 设置DT引脚为推挽输出 + gpio_mode(HX711_SCK_PIN, GPIO); // 设置SCK引脚为推挽输出 + gpio_set_level(HX711_SCK_PIN, 0); // 初始化SCK为低电平 + gpio_set_level(HX711_DT_PIN, 1); // 初始化DT为高电平 +} + +uint32 hx711_read_set(HX711_ch_enum next_ch,uint8 avg_times) +{ + uint32 result = 0; + uint8 i; + + if(avg_times > 10) /* 限制平均次数最大值为10 */ + { + avg_times = 10; + } + gpio_set_level(HX711_SCK_PIN, 0); /* SCK低电平开始读数据 */ + gpio_set_level(HX711_DT_PIN, 1); /* 确保DT高电平,等待HX711准备好数据 */ + while(gpio_get_level(HX711_DT_PIN) == 1); /* 等待HX711准备好数据 */ + for(i = 0; i < 24; i++) + { + gpio_set_level(HX711_SCK_PIN, 1); /* SCK高电平 */ + result <<= 1; /* 左移一位 */ + if(gpio_get_level(HX711_DT_PIN) == 1) + { + result |= 0x01; /* 如果DT为高电平,设置最低位为1 */ + } + gpio_set_level(HX711_SCK_PIN, 0); /* SCK低电平 */ + } + for(i = 0; i < next_ch; i++) + { + gpio_set_level(HX711_SCK_PIN, 1); /* SCK高电平 */ + _nop_(); + _nop_(); + gpio_set_level(HX711_SCK_PIN, 0); /* SCK低电平 */ + } + for(i = 0; i < 9; i++) + { + hx711_last_read_value[i] = hx711_last_read_value[i + 1]; /* 将之前的读取值向前移动 */ + } + hx711_last_read_value[9] = result; /* 将当前读取的值存入最后一个位置 */ + result = 0; + for(i = 0; i < avg_times; i++) + { + result += hx711_last_read_value[i]/avg_times; /* 累加读取的值 */ + } + + return result; /* 返回读取到的数据 */ +} + + +uint8 hx711_single_read_non_blocking(HX711_ch_enum next_ch) +{ + uint32 result = 0; + uint8 i; + gpio_set_level(HX711_SCK_PIN, 0); /* SCK低电平开始读数据 */ + gpio_set_level(HX711_DT_PIN, 1); /* 确保DT高电平,等待HX711准备好数据 */ + if(gpio_get_level(HX711_DT_PIN) == 1) + { + return 0; /* 如果DT为高电平,表示HX711未准备好数据 */ + } + for(i = 0; i < 24; i++) + { + gpio_set_level(HX711_SCK_PIN, 1); /* SCK高电平 */ + result <<= 1; /* 左移一位 */ + if(gpio_get_level(HX711_DT_PIN) == 1) + { + result |= 0x01; /* 如果DT为高电平,设置最低位为1 */ + } + gpio_set_level(HX711_SCK_PIN, 0); /* SCK低电平 */ + } + for(i = 0; i < next_ch; i++) + { + gpio_set_level(HX711_SCK_PIN, 1); /* SCK高电平 */ + _nop_(); + _nop_(); + gpio_set_level(HX711_SCK_PIN, 0); /* SCK低电平 */ + } + for(i = 0; i < 9; i++) + { + hx711_last_read_value[i] = hx711_last_read_value[i + 1]; /* 将之前的读取值向前移动 */ + } + hx711_last_read_value[9] = result; /* 将当前读取的值存入最后一个位置 */ + return 1; +} \ No newline at end of file diff --git a/Source/iic.c b/Source/iic.c new file mode 100644 index 0000000..26baa41 --- /dev/null +++ b/Source/iic.c @@ -0,0 +1,349 @@ +#include "iic.h" + +//------------------------------------------------------------------------------------------------------------------- +// @brief 内部使用用户无需关心 +// @param NULL +// @return void +// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 +//------------------------------------------------------------------------------------------------------------------- +void iic_delay_us(uint16 x) //33.1776Mhz +{ + uint8 i; + while(x--) + { + i = 9; + while (--i); + } +} + + +//------------------------------------------------------------------------------------------------------------------- +// @brief 内部使用用户无需关心 +// @param NULL +// @return void +// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 +//------------------------------------------------------------------------------------------------------------------- +uint8 wait(void) +{ + uint16 count = 0; + uint8 ret = IIC_SEND_OK; + while (!(I2CMSST & 0x40)) + { + iic_delay_us(1); + if(count++ >= 30)//等待超过30us,则退出等待。 + { + ret = IIC_SEND_FAIL; + break; + } + } + I2CMSST &= ~0x40; + return ret; +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 内部使用用户无需关心 +// @param NULL +// @return void +// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 +//------------------------------------------------------------------------------------------------------------------- +uint8 start(void) +{ + uint8 ret; + I2CMSCR = 0x01; //发送start命令 + ret = wait(); + return ret; +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 内部使用用户无需关心 +// @param NULL +// @return void +// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 +//------------------------------------------------------------------------------------------------------------------- +uint8 send_data(char dat) +{ + uint8 ret; + I2CTXD = dat; //写数据到数据缓冲区 + I2CMSCR = 0x02; //发送SEND命令 + ret = wait(); + return ret; +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 内部使用用户无需关心 +// @param NULL +// @return void +// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 +//------------------------------------------------------------------------------------------------------------------- +uint8 recv_ack(void) +{ + uint8 ret; + I2CMSCR = 0x03; //发送读ACK命令 + ret = wait(); + return ret; +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 内部使用用户无需关心 +// @param NULL +// @return void +// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 +//------------------------------------------------------------------------------------------------------------------- +char recv_data(void) //接收数据 +{ + I2CMSCR = 0x04; //发送RECV命令 + wait(); + return I2CRXD; +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 内部使用用户无需关心 +// @param NULL +// @return void +// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 +//------------------------------------------------------------------------------------------------------------------- +uint8 send_ack(void) +{ + uint8 ret; + I2CMSST = 0x00; //设置ACK信号 + I2CMSCR = 0x05; //发送ACK命令 + ret = wait(); + return ret; +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 内部使用用户无需关心 +// @param NULL +// @return void +// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 +//------------------------------------------------------------------------------------------------------------------- +void send_nak(void) +{ + I2CMSST = 0x01; //设置NAK信号 + I2CMSCR = 0x05; //发送ACK命令 + wait(); +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 内部使用用户无需关心 +// @param NULL +// @return void +// Sample usage: 无需用户调用,用户请使用h文件中的宏定义 +//------------------------------------------------------------------------------------------------------------------- +uint8 stop(void) +{ + uint8 ret; + I2CMSCR = 0x06; //发送stop命令 + ret = wait(); + return ret; +} + + + + +//#define UNUSED(expr1, expr2) do { if(scl_pin == sda_pin); } while (0) +//------------------------------------------------------------------------------------------------------------------- +// @brief 硬件IIC初始化 +// @param iic_n 选择IIC模块 +// @param wait_time I2C总线速度(等待时钟数)控制: 速度设置为等待wait_time*2+1个时钟 +// @return void +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void iic_init(IICN_enum iic_n, uint8 wait_time) +{ + //UNUSED(scl_pin); + //__attribute__ ((unused))(sda_pin); + //UNUSED(scl_pin, sda_pin); + + P_SW2 &= ~(0x03<<4); + P_SW2 |= 1<<7; //将EAXFR寄存器置1,这样才能使用特殊功能寄存器为扩展SFR,访问逻辑地址位于 XDATA 区域 + switch(iic_n) + { + case IIC_1: + P_SW2 |= (0x00<<4); //SCL:P1.5 SDA:P1.4 + break; + case IIC_2: + P_SW2 |= (0x01<<4); //SCL:P2.5 SDA:P2.4 + break; + case IIC_3: + P_SW2 |= (0x02<<4); //SCL:P7.7 SDA:P7.6 + break; + case IIC_4: + P_SW2 |= (0x03<<4); //SCL:P3.2 SDA:P3.3 + break; + } + + I2CCFG |= 1<<6; //主机模式 + I2CCFG |= 1<<7; //使能IIC + I2CCFG |= wait_time&0x3F;//速度设置为等待wait_time*2+1个时钟 + I2CMSST = 0x00; //主机状态寄存器 + +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 写入一个字节数据到I2C设备指定寄存器地址 +// @param iic_n IIC模块(IIC_1,IIC_2,IIC_3,IIC_0) +// @param slaveid 从机地址(7位地址) +// @param reg 从机寄存器地址 +// @param dat 需要发送的数据 +// @return 返回的状态值 0:成功 1:失败 +// @since v2.0 +// Sample usage: iic_write_reg(0x2D, 0x50,2); //写入数据2到0x50地址,从机地址为0x2D +//------------------------------------------------------------------------------------------------------------------- +uint8 iic_write_reg(uint8 dev_add, uint8 reg, uint8 dat) +{ + if(start() != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(send_data((dev_add<<1) | 0x00) != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(recv_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(send_data(reg) != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(recv_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(send_data(dat) != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(recv_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(stop() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + + return IIC_SEND_OK; +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 读取I2C设备指定地址寄存器的数据 +// @param iic_n I2C通道号及引脚 +// @param dev_add 从机地址(7位地址) +// @param reg 从机寄存器地址 +// @param dat 数据地址 +// @return 读取的寄存器值 +// @since v1.0 +// Sample usage: uint8 value = iic_read_reg(i2c0, 0x2D, 0x50);//读取0x50地址的数据,从机地址为0x2D +//------------------------------------------------------------------------------------------------------------------- +uint8 iic_read_reg(uint8 dev_add, uint8 reg, uint8 *dat) +{ + if(start() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + if(send_data((dev_add<<1) | 0x00) != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(recv_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + if(send_data(reg) != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(recv_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + +// if(start() != IIC_SEND_OK) +// return IIC_SEND_FAIL; + + if(send_data((dev_add<<1) | 0x01) != IIC_SEND_OK) + return IIC_SEND_FAIL; + + if(recv_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + + *dat = recv_data(); //读取数据 + + + if(send_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + if(stop() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + return IIC_SEND_OK; +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 读取I2C设备指定地址寄存器的数据 +// @param iic_n I2C通道号及引脚 +// @param dev_add 从机地址(7位地址) +// @param reg 从机寄存器地址 +// @param dat 读取的数据存储的地址 +// @param num 读取字节数 +// @return void +// @since v1.0 +// Sample usage: uint8 value = i2c_read_reg(i2c0, 0x2D, 0x50, 10, buf);//读取0x50地址的数据,从机地址为0x2D开始的10个字节 +//------------------------------------------------------------------------------------------------------------------- +uint8 iic_read_reg_bytes(uint8 dev_add, uint8 reg + , uint8 *dat, uint8 num) +{ + + if(start() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + if(send_data((dev_add<<1) | 0x00) != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(recv_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + if(send_data(reg) != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(recv_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + if(send_data((dev_add<<1) | 0x01) != IIC_SEND_OK) + return IIC_SEND_FAIL; + if(recv_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + while(--num) + { + *dat = recv_data(); //读取数据 + if(send_ack() != IIC_SEND_OK) + { + return IIC_SEND_FAIL; + } + dat++; + } + + *dat = recv_data(); + + if(send_ack() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + if(stop() != IIC_SEND_OK) + return IIC_SEND_FAIL; + + return IIC_SEND_OK; +} + + +//------------------------------------------------------------------------------------------------------------------- +// @brief 硬件IIC引脚切换函数 +// @param iic_n I2C通道号及引脚 +// @param scl_pin 选择SCL引脚 +// @param sda_pin 选择SDA引脚 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void iic_change_pin(IICN_enum iic_n) +{ + P_SW2 |= 1<<7; //将EAXFR寄存器置1,这样才能使用特殊功能寄存器为扩展SFR,访问逻辑地址位于 XDATA 区域 + + P_SW2 &= ~(0x03<<4); //清除引脚切换位 + switch(iic_n) + { + case IIC_1: + P_SW2 |= (0x00<<4); //SCL:P1.5 SDA:P1.4 + break; + case IIC_2: + P_SW2 |= (0x01<<4); //SCL:P2.5 SDA:P2.4 + break; + case IIC_3: + P_SW2 |= (0x02<<4); //SCL:P7.7 SDA:P7.6 + break; + case IIC_4: + P_SW2 |= (0x03<<4); //SCL:P3.2 SDA:P3.3 + break; + } + + P_SW2 &= ~(1<<7); + +} diff --git a/Source/iic_soft.c b/Source/iic_soft.c new file mode 100644 index 0000000..9e1fcf1 --- /dev/null +++ b/Source/iic_soft.c @@ -0,0 +1,134 @@ +#include "iic_soft.h" + + + +void soft_iic_delay(uint16 delay_time) +{ + uint16 i; + // 简单的延时函数,可以根据实际需要调整 + for (i = 0; i < delay_time; i++) + { + _nop_(); // 空操作,延时 + } +} + +void soft_iic_init(IIC_Soft_Config *config) +{ + // 设置SCL和SDA引脚为推挽输出模式 + gpio_mode(config->scl_pin, GPIO); + gpio_mode(config->sda_pin, GPIO); + + // 初始化SCL和SDA引脚为高电平 + gpio_set_level(config->scl_pin, 1); + gpio_set_level(config->sda_pin, 1); +} + +void soft_iic_start(IIC_Soft_Config *config) +{ + gpio_set_level(config->sda_pin, 0); // SDA拉低 + soft_iic_delay(config->wait_time); // 等待一段时间 + gpio_set_level(config->scl_pin, 0); // SCL拉低 + soft_iic_delay(config->wait_time); // 等待一段时间 +} + +void soft_iic_stop(IIC_Soft_Config *config) +{ + gpio_set_level(config->sda_pin, 0); // SDA拉低 + soft_iic_delay(config->wait_time); // 等待一段时间 + gpio_set_level(config->scl_pin, 1); // SCL拉高 + soft_iic_delay(config->wait_time); // 等待一段时间 + gpio_set_level(config->sda_pin, 1); // SDA拉高 + soft_iic_delay(config->wait_time); // 等待一段时间 +} + +uint8 soft_iic_read(IIC_Soft_Config *config) +{ + uint8 dat = 0,i; + gpio_set_level(config->sda_pin, 1); // 设置SDA为输入模式 + for (i = 0; i < 8; i++) + { + gpio_set_level(config->scl_pin, 1); // SCL拉高 + soft_iic_delay(config->wait_time); // 等待一段时间 + if (gpio_get_level(config->sda_pin)) // 读取SDA的状态 + { + dat |= (1 << (7 - i)); // 将读取的位存入dat + } + gpio_set_level(config->scl_pin, 0); // SCL拉低 + soft_iic_delay(config->wait_time); // 等待一段时间 + } + return dat; +} + +void soft_iic_write(IIC_Soft_Config *config, uint8 dat) +{ + uint8 i; + gpio_set_level(config->sda_pin, 0); // 设置SDA为输出模式 + for (i = 0; i < 8; i++) + { + soft_iic_delay(config->wait_time); // 等待一段时间 + if (dat & (1 << (7 - i))) // 检查当前位 + { + gpio_set_level(config->sda_pin, 1); // 写入1 + } + else + { + gpio_set_level(config->sda_pin, 0); // 写入0 + } + gpio_set_level(config->scl_pin, 1); // SCL拉高 + soft_iic_delay(config->wait_time); // 等待一段时间 + gpio_set_level(config->scl_pin, 0); // SCL拉低 + } + soft_iic_delay(config->wait_time); // 等待一段时间 +} + +uint8 soft_iic_ack(IIC_Soft_Config *config) +{ + gpio_set_level(config->sda_pin, 0); // 发送ACK + soft_iic_delay(config->wait_time); // 等待一段时间 + gpio_set_level(config->scl_pin, 1); // SCL拉高 + soft_iic_delay(config->wait_time); // 等待一段时间 + gpio_set_level(config->scl_pin, 0); // SCL拉低 + soft_iic_delay(config->wait_time); // 等待一段时间 + return 0; // 返回ACK成功 +} + + +void soft_iic_nack(IIC_Soft_Config *config) +{ + gpio_set_level(config->sda_pin, 1); // 发送NACK + soft_iic_delay(config->wait_time); // 等待一段时间 + gpio_set_level(config->scl_pin, 1); // SCL拉高 + soft_iic_delay(config->wait_time); // 等待一段时间 + gpio_set_level(config->scl_pin, 0); // SCL拉低 + soft_iic_delay(config->wait_time); // 等待一段时间 +} + + + +void soft_iic_write_reg(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg, uint8 dat) +{ + soft_iic_start(config); // 发送起始信号 + soft_iic_write(config, (dev_addr << 1) | 0); // 发送设备地址和写命令 + soft_iic_ack(config); // 等待ACK + soft_iic_write(config, reg); // 发送寄存器地址 + soft_iic_ack(config); // 等待ACK + soft_iic_write(config, dat); // 发送数据 + soft_iic_ack(config); // 等待ACK + soft_iic_stop(config); // 发送停止信号 +} + +uint8 soft_iic_read_reg(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg, uint8 *dat) +{ + soft_iic_start(config); // 发送起始信号 + soft_iic_write(config, (dev_addr << 1) | 0); // 发送设备地址和写命令 + soft_iic_ack(config); // 等待ACK + soft_iic_write(config, reg); // 发送寄存器地址 + soft_iic_ack(config); // 等待ACK + soft_iic_start(config); // 重新发送起始信号 + soft_iic_write(config, (dev_addr << 1) | 1); // 发送设备地址和读命令 + soft_iic_ack(config); // 等待ACK + *dat = soft_iic_read(config); // 读取数据 + soft_iic_nack(config); // 发送NACK + soft_iic_stop(config); // 发送停止信号 + return *dat; // 返回读取的数据 +} \ No newline at end of file diff --git a/Source/isr.c b/Source/isr.c new file mode 100644 index 0000000..27be3f8 --- /dev/null +++ b/Source/isr.c @@ -0,0 +1,172 @@ +#include "isr.h" +#include "command.h" + + +//UART1中断 +void UART1_Isr() interrupt 4 +{ + uint8 res; + static uint8 dwon_count; + if(UART1_GET_TX_FLAG) + { + UART1_CLEAR_TX_FLAG; + busy[1] = 0; + } + if(UART1_GET_RX_FLAG) + { + UART1_CLEAR_RX_FLAG; + res = SBUF; + //程序自动下载 + if(res == 0x7F) + { + if(dwon_count++ > 20) + { + IAP_CONTR = 0x60; + } + } + else + { + dwon_count = 0; + } + command_uart_callback(res); + } +} + +//UART2中断 +void UART2_Isr() interrupt 8 +{ + if(UART2_GET_TX_FLAG) + { + UART2_CLEAR_TX_FLAG; + busy[2] = 0; + } + if(UART2_GET_RX_FLAG) + { + UART2_CLEAR_RX_FLAG; + //接收数据寄存器为:S2BUF + + } +} + + +//UART3中断 +void UART3_Isr() interrupt 17 +{ + if(UART3_GET_TX_FLAG) + { + UART3_CLEAR_TX_FLAG; + busy[3] = 0; + } + if(UART3_GET_RX_FLAG) + { + UART3_CLEAR_RX_FLAG; + //接收数据寄存器为:S3BUF + + } +} + + +//UART4中断 +void UART4_Isr() interrupt 18 +{ + if(UART4_GET_TX_FLAG) + { + UART4_CLEAR_TX_FLAG; + busy[4] = 0; + } + if(UART4_GET_RX_FLAG) + { + UART4_CLEAR_RX_FLAG; + + //接收数据寄存器为:S4BUF; + + } +} + +#define LED P52 +void INT0_Isr() interrupt 0 +{ + +} +void INT1_Isr() interrupt 2 +{ + +} +void INT2_Isr() interrupt 10 +{ + INT2_CLEAR_FLAG; //清除中断标志 +} +void INT3_Isr() interrupt 11 +{ + INT3_CLEAR_FLAG; //清除中断标志 +} + +void INT4_Isr() interrupt 16 +{ + INT4_CLEAR_FLAG; //清除中断标志 +} + +void TM0_Isr() interrupt 1 +{ + +} +void TM1_Isr() interrupt 3 +{ + +} +void TM2_Isr() interrupt 12 +{ + TIM2_CLEAR_FLAG; //清除中断标志 + +} +void TM3_Isr() interrupt 19 +{ + TIM3_CLEAR_FLAG; //清除中断标志 + +} + +void TM4_Isr() interrupt 20 +{ + TIM4_CLEAR_FLAG; //清除中断标志 + +} + +// void change_LED(); + +void P0_ISR() interrupt P0INT_VECTOR +{ + if(P0INTF & 0x10) //P0.4 + { + P0INTF &= ~0x10; + + } + if(P0INTF & 0x20) //P0.5 + { + P0INTF &= ~0x20; + + } +} + +//void INT0_Isr() interrupt 0; +//void TM0_Isr() interrupt 1; +//void INT1_Isr() interrupt 2; +//void TM1_Isr() interrupt 3; +//void UART1_Isr() interrupt 4; +//void ADC_Isr() interrupt 5; +//void LVD_Isr() interrupt 6; +//void PCA_Isr() interrupt 7; +//void UART2_Isr() interrupt 8; +//void SPI_Isr() interrupt 9; +//void INT2_Isr() interrupt 10; +//void INT3_Isr() interrupt 11; +//void TM2_Isr() interrupt 12; +//void INT4_Isr() interrupt 16; +//void UART3_Isr() interrupt 17; +//void UART4_Isr() interrupt 18; +//void TM3_Isr() interrupt 19; +//void TM4_Isr() interrupt 20; +//void CMP_Isr() interrupt 21; +//void I2C_Isr() interrupt 24; +//void USB_Isr() interrupt 25; +//void PWM1_Isr() interrupt 26; +//void PWM2_Isr() interrupt 27; \ No newline at end of file diff --git a/Source/main.c b/Source/main.c new file mode 100644 index 0000000..ec22798 --- /dev/null +++ b/Source/main.c @@ -0,0 +1,18 @@ +#include "common.h" +#include "delay.h" + + + +void main() +{ + + board_init(); // 初始化板子 + delay_ms(1000); + printf("System Init...\r\n"); + + while(1) + { + delay_ms(1000); + printf("System Running...\r\n"); + } +} \ No newline at end of file diff --git a/Source/pwm.c b/Source/pwm.c new file mode 100644 index 0000000..866b802 --- /dev/null +++ b/Source/pwm.c @@ -0,0 +1,437 @@ +#include "pwm.h" +#include "gpio.h" + +//捕获比较模式寄存器 +const uint32 PWM_CCMR_ADDR[] = {0x7efec8, 0x7efec9, 0x7efeca ,0x7efecb, + 0x7efee8, 0x7efee9, 0x7efeea, 0x7efeeb}; +//捕获比较使能寄存器 +const uint32 PWM_CCER_ADDR[] = {0x7efecc, 0x7efecd, + 0x7efeec ,0x7efeed}; +//控制寄存器,高8位地址 低8位地址 + 1即可 +const uint32 PWM_CCR_ADDR[] = {0x7efed5, 0x7efed7, 0x7efed9, 0x7efedb, + 0x7efef5, 0x7efef7, 0x7efef9, 0x7efefb}; + + //控制寄存器,高8位地址 低8位地址 + 1即可 +const uint32 PWM_ARR_ADDR[] = {0x7efed2,0x7efef2}; + +//------------------------------------------------------------------------------------------------------------------- +// @brief PWM_gpio初始化(内部使用用户无需关心) +// @param pwmch PWM通道号及引脚 +// @return void +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +void pwm_set_gpio(PWMCH_enum pwmch) +{ + switch(pwmch) + { + case PWMA_CH1P_P10: + { + gpio_mode(P1_0,GPO_PP); + break; + } + case PWMA_CH1N_P11: + { + gpio_mode(P1_1,GPO_PP); + break; + } + case PWMA_CH1P_P20: + { + gpio_mode(P2_0,GPO_PP); + break; + } + case PWMA_CH1N_P21: + { + gpio_mode(P2_1,GPO_PP); + break; + } + case PWMA_CH1P_P60: + { + gpio_mode(P6_0,GPO_PP); + break; + } + case PWMA_CH1N_P61: + { + gpio_mode(P6_1,GPO_PP); + break; + } + + case PWMA_CH2P_P12: + { + gpio_mode(P1_2,GPO_PP); + break; + } + case PWMA_CH2N_P13: + { + gpio_mode(P1_3,GPO_PP); + break; + } + case PWMA_CH2P_P22: + { + gpio_mode(P2_2,GPO_PP); + break; + } + case PWMA_CH2N_P23: + { + gpio_mode(P2_3,GPO_PP); + break; + } + case PWMA_CH2P_P62: + { + gpio_mode(P6_2,GPO_PP); + break; + } + case PWMA_CH2N_P63: + { + gpio_mode(P6_3,GPO_PP); + break; + } + + case PWMA_CH3P_P14: + { + gpio_mode(P1_4,GPO_PP); + break; + } + case PWMA_CH3N_P15: + { + gpio_mode(P1_5,GPO_PP); + break; + } + case PWMA_CH3P_P24: + { + gpio_mode(P2_4,GPO_PP); + break; + } + case PWMA_CH3N_P25: + { + gpio_mode(P2_5,GPO_PP); + break; + } + case PWMA_CH3P_P64: + { + gpio_mode(P6_4,GPO_PP); + break; + } + case PWMA_CH3N_P65: + { + gpio_mode(P6_5,GPO_PP); + break; + } + + + case PWMA_CH4P_P16: + { + gpio_mode(P1_6,GPO_PP); + break; + } + case PWMA_CH4N_P17: + { + gpio_mode(P1_7,GPO_PP); + break; + } + case PWMA_CH4P_P26: + { + gpio_mode(P2_6,GPO_PP); + break; + } + case PWMA_CH4N_P27: + { + gpio_mode(P2_7,GPO_PP); + break; + } + case PWMA_CH4P_P66: + { + gpio_mode(P6_6,GPO_PP); + break; + } + case PWMA_CH4N_P67: + { + gpio_mode(P6_7,GPO_PP); + break; + } + case PWMA_CH4P_P34: + { + gpio_mode(P3_4,GPO_PP); + break; + } + case PWMA_CH4N_P33: + { + gpio_mode(P3_3,GPO_PP); + break; + } + + + case PWMB_CH1_P20: + { + gpio_mode(P2_0,GPO_PP); + break; + } + case PWMB_CH1_P17: + { + gpio_mode(P1_7,GPO_PP); + break; + } + case PWMB_CH1_P00: + { + gpio_mode(P0_0,GPO_PP); + break; + } + case PWMB_CH1_P74: + { + gpio_mode(P7_4,GPO_PP); + break; + } + + case PWMB_CH2_P21: + { + gpio_mode(P2_1,GPO_PP); + break; + } + case PWMB_CH2_P54: + { + gpio_mode(P5_4,GPO_PP); + break; + } + case PWMB_CH2_P01: + { + gpio_mode(P0_1,GPO_PP); + break; + } + case PWMB_CH2_P75: + { + gpio_mode(P7_5,GPO_PP); + break; + } + + + case PWMB_CH3_P22: + { + gpio_mode(P2_2,GPO_PP); + break; + } + case PWMB_CH3_P33: + { + gpio_mode(P3_3,GPO_PP); + break; + } + case PWMB_CH3_P02: + { + gpio_mode(P0_2,GPO_PP); + break; + } + case PWMB_CH3_P76: + { + gpio_mode(P7_6,GPO_PP); + break; + } + + + case PWMB_CH4_P23: + { + gpio_mode(P2_3,GPO_PP); + break; + } + case PWMB_CH4_P34: + { + gpio_mode(P3_4,GPO_PP); + break; + } + case PWMB_CH4_P03: + { + gpio_mode(P0_3,GPO_PP); + break; + } + case PWMB_CH4_P77: + { + gpio_mode(P7_7,GPO_PP); + break; + } + + } + +} + + +//------------------------------------------------------------------------------------------------------------------- +// @brief PWM初始化 +// @param pwmch PWM通道号及引脚 +// @param freq PWM频率(10Hz-3MHz) +// @param duty PWM占空比 +// @return void +// Sample usage: +// pwm_init(PWM0_P00, 100, 5000); //初始化PWM0 使用引脚P0.0 输出PWM频率100HZ 占空比为百分之 5000/PWM_DUTY_MAX*100 +// PWM_DUTY_MAX在zf_pwm.h文件中 默认为10000 +//------------------------------------------------------------------------------------------------------------------- +void pwm_init(PWMCH_enum pwmch,uint32 freq, uint32 duty) +{ + + uint32 match_temp; + uint32 period_temp; + uint16 freq_div = 0; + + + P_SW2 |= 0x80; + + //GPIO需要设置为推挽输出 + pwm_set_gpio(pwmch); + + + //分频计算,周期计算,占空比计算 + freq_div = (sys_clk / freq) >> 16; //多少分频 + period_temp = sys_clk / freq ; + period_temp = period_temp / (freq_div + 1) - 1; //周期 + + if(duty != PWM_DUTY_MAX) + { + match_temp = period_temp * ((float)duty / PWM_DUTY_MAX); // 占空比 + } + else + { + match_temp = period_temp + 1; // duty为100% + } + + + if(PWMB_CH1_P20 <= pwmch) //PWM5-8 + { + //通道选择,引脚选择 + PWMB_ENO |= (1 << ((2 * ((pwmch >> 4) - 4)))); //使能通道 + PWMB_PS |= ((pwmch & 0x03) << ((2 * ((pwmch >> 4) - 4)))); //输出脚选择 + + // 配置通道输出使能和极性 + (*(unsigned char volatile far *) (PWM_CCER_ADDR[pwmch>>5])) |= (uint8)(1 << (((pwmch >> 4) & 0x01) * 4)); + + //设置预分频 + PWMB_PSCRH = (uint8)(freq_div>>8); + PWMB_PSCRL = (uint8)freq_div; + + PWMB_BKR = 0x80; //主输出使能 相当于总开关 + PWMB_CR1 = 0x01; //PWM开始计数 + } + else + { + PWMA_ENO |= (1 << (pwmch & 0x01)) << ((pwmch >> 4) * 2); //使能通道 + PWMA_PS |= ((pwmch & 0x07) >> 1) << ((pwmch >> 4) * 2); //输出脚选择 + + // 配置通道输出使能和极性 + (*(unsigned char volatile far *) (PWM_CCER_ADDR[pwmch>>5])) |= (1 << ((pwmch & 0x01) * 2 + ((pwmch >> 4) & 0x01) * 0x04)); + + + //设置预分频 + PWMA_PSCRH = (uint8)(freq_div>>8); + PWMA_PSCRL = (uint8)freq_div; + + PWMA_BKR = 0x80; // 主输出使能 相当于总开关 + PWMA_CR1 = 0x01; //PWM开始计数 + } + + //周期 + (*(unsigned char volatile far *) (PWM_ARR_ADDR[pwmch>>6])) = (uint8)(period_temp>>8); //高8位 + (*(unsigned char volatile far *) (PWM_ARR_ADDR[pwmch>>6] + 1)) = (uint8)period_temp; //低8位 + + //设置捕获值|比较值 + (*(unsigned char volatile far *) (PWM_CCR_ADDR[pwmch>>4])) = match_temp>>8; //高8位 + (*(unsigned char volatile far *) (PWM_CCR_ADDR[pwmch>>4] + 1)) = (uint8)match_temp; //低8位 + + //功能设置 + (*(unsigned char volatile far *) (PWM_CCMR_ADDR[pwmch>>4])) |= 0x06<<4; //设置为PWM模式1 + (*(unsigned char volatile far *) (PWM_CCMR_ADDR[pwmch>>4])) |= 1<<3; //开启PWM寄存器的预装载功 + + +// P_SW2 &= 0x7F; + +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief PWM占空比设置 +// @param pwmch PWM通道号及引脚 +// @param duty PWM占空比 +// @return void +// Sample usage: pwm_duty(PWM0_P00, 5000); //初始化PWM0 使用引脚P0.0 输出PWM频率50HZ 占空比为百分之 5000/PWM_DUTY_MAX*100 +// PWM_DUTY_MAX在fsl_pwm.h文件中 默认为10000 +//------------------------------------------------------------------------------------------------------------------- +void pwm_duty(PWMCH_enum pwmch, uint32 duty) +{ + uint32 match_temp; + uint32 arr = ((*(unsigned char volatile far *) (PWM_ARR_ADDR[pwmch>>6]))<<8) | (*(unsigned char volatile far *) (PWM_ARR_ADDR[pwmch>>6] + 1 )); + +// P_SW2 |= 0x80; + + if(duty != PWM_DUTY_MAX) + { + match_temp = arr * ((float)duty/PWM_DUTY_MAX); //占空比 + } + else + { + match_temp = arr + 1; + } + + + + //设置捕获值|比较值 + (*(unsigned char volatile far *) (PWM_CCR_ADDR[pwmch>>4])) = match_temp>>8; //高8位 + (*(unsigned char volatile far *) (PWM_CCR_ADDR[pwmch>>4] + 1)) = (uint8)match_temp; //低8位 + +// P_SW2 &= ~0x80; + +} + + +//------------------------------------------------------------------------------------------------------------------- +// @brief PWM频率设置 +// @param pwmch PWM通道号及引脚 +// @param freq PWM频率(10Hz-3MHz) +// @param duty PWM占空比 +// @return void +// Sample usage: pwm_freq(PWM0_P00, 50, 5000); //修改化PWM0 使用引脚P0.0 输出PWM频率50HZ 占空比为百分之 5000/PWM_DUTY_MAX*100 +//------------------------------------------------------------------------------------------------------------------- +void pwm_freq(PWMCH_enum pwmch, uint32 freq, uint32 duty) +{ + uint32 match_temp; + uint32 period_temp; + uint16 freq_div = 0; + + + + //分频计算,周期计算,占空比计算 + freq_div = (sys_clk / freq) >> 16; // 多少分频 + period_temp = sys_clk / freq; + period_temp = period_temp / (freq_div + 1) - 1; // 周期 + + if(duty != PWM_DUTY_MAX) + { + match_temp = period_temp * ((float)duty / PWM_DUTY_MAX); // 占空比 + } + else + { + match_temp = period_temp + 1; // duty为100% + } + + + + +// P_SW2 |= 0x80; + + if(PWMB_CH1_P20 <= pwmch) //PWM5-8 + { + //设置预分频 + PWMB_PSCRH = (uint8)(freq_div>>8); + PWMB_PSCRL = (uint8)freq_div; + } + else + { + //设置预分频 + PWMA_PSCRH = (uint8)(freq_div>>8); + PWMA_PSCRL = (uint8)freq_div; + } + + //周期 + (*(unsigned char volatile far *) (PWM_ARR_ADDR[pwmch>>6])) = (uint8)(period_temp>>8); //高8位 + (*(unsigned char volatile far *) (PWM_ARR_ADDR[pwmch>>6] + 1)) = (uint8)period_temp; //低8位 + + //设置捕获值|比较值 + (*(unsigned char volatile far *) (PWM_CCR_ADDR[pwmch>>4])) = match_temp>>8; //高8位 + (*(unsigned char volatile far *) (PWM_CCR_ADDR[pwmch>>4] + 1)) = (uint8)match_temp; //低8位 + +// P_SW2 &= ~0x80; +} + + diff --git a/Source/stc32_stc8_usb.c b/Source/stc32_stc8_usb.c new file mode 100644 index 0000000..c3bbb8c --- /dev/null +++ b/Source/stc32_stc8_usb.c @@ -0,0 +1,24 @@ +#include "stc32_stc8_usb.h" + +char *USER_DEVICEDESC = NULL; +char *USER_PRODUCTDESC = NULL; +char *USER_STCISPCMD = "@STCISP#"; + + +/************************************************ +函数功能:USB-CDC串口接收数据的回调函数 +函数描述:回调函数由USB中断在接收到串口数据时自动调用 + 回调函数处理完成串口数据后需要返回1 +函数返回:返回1:USB中断服务程序自动完成后续的收尾工作 + 返回0:USB会暂停接收串口数据,直到用户自行调用 + usb_OUT_done()函数后USB才会重新恢复接收数据 +注意事项:当函数返回1时用户无需调用usb_OUT_done() + 只有返回0时才需要调用usb_OUT_done()进行手动收尾 + 强烈建议usb_OUT_callback返回1 +************************************************/ +BOOL usb_OUT_callback() +{ + USB_SendData(UsbOutBuffer,OutNumber); //发送数据缓冲区,长度(接收数据原样返回, 用于测试) + + return 1; +} \ No newline at end of file diff --git a/Source/tim.c b/Source/tim.c new file mode 100644 index 0000000..c46ef54 --- /dev/null +++ b/Source/tim.c @@ -0,0 +1,218 @@ +#include "tim.h" + +//------------------------------------------------------------------------------------------------------------------- +// @brief 定时器初始化作为外部计数 +// @param tim_n 选择模块 +// @return void +// @since v1.0 +// Sample usage: ctimer_count_init(CTIM0_P34); //初始化定时器0,外部输入为P3.4引脚 +// @note 串口1使用定时器1作为波特率发生器, +// 串口2使用定时器2作为波特率发生器, +// 串口3使用定时器3作为波特率发生器, +// 串口4使用定时器4作为波特率发生器, +// STC16F仅有定时器0-定时器4,这5个定时器。 +// 编码器采集数据也需要定时器作为外部计数。 +//------------------------------------------------------------------------------------------------------------------- +void ctimer_count_init(CTIMN_enum tim_n) +{ + + switch(tim_n) + { + case CTIM0_P34: + { + TL0 = 0; + TH0 = 0; + TMOD |= 0x04; //外部计数模式 + TR0 = 1; //启动定时器 + break; + } + + case CTIM1_P35: + { + TL1 = 0x00; + TH1 = 0x00; + TMOD |= 0x40; // 外部计数模式 + TR1 = 1; // 启动定时器 + break; + } + + case CTIM2_P12: + { + T2L = 0x00; + T2H = 0x00; + AUXR |= 0x18; // 设置外部计数模式并启动定时器 + break; + } + + case CTIM3_P04: + { + T3L = 0; + T3H = 0; + T4T3M |= 0x0c; // 设置外部计数模式并启动定时器 + break; + } + + case CTIM4_P06: + { + T4L = 0; + T4H = 0; + T4T3M |= 0xc0; // 设置外部计数模式并启动定时器 + break; + } + + } +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 获取计数数值 +// @param countch 计数通道号及引脚 +// @return uint32 返回计数值 +// Sample usage: num = ctimer_count_read(CTIM0_P34); +//------------------------------------------------------------------------------------------------------------------- +uint16 ctimer_count_read(CTIMN_enum tim_n) +{ + uint16 dat = 0; + + switch(tim_n) + { + case CTIM0_P34: + { + dat = (uint16)TH0 << 8; + dat = ((uint8)TL0) | dat; + break; + } + case CTIM1_P35: + { + dat = (uint16)TH1 << 8; + dat = ((uint8)TL1) | dat; + break; + } + case CTIM2_P12: + { + dat = (uint16)T2H << 8; + dat = ((uint8)T2L) | dat; + break; + } + case CTIM3_P04: + { + dat = (uint16)T3H << 8; + dat = ((uint8)T3L) | dat; + break; + } + case CTIM4_P06: + { + dat = (uint16)T4H << 8; + dat = ((uint8)T4L) | dat; + break; + } + + } + return dat; +} + + +//------------------------------------------------------------------------------------------------------------------- +// @brief 清除计数数值 +// @param countch 计数通道号及引脚 +// @return void +// Sample usage: ctimer_count_clean(CTIM0_P34); +//------------------------------------------------------------------------------------------------------------------- +void ctimer_count_clean(CTIMN_enum tim_n) +{ + switch(tim_n) + { + case CTIM0_P34: + { + TR0 = 0; + TH0 = 0; + TL0 = 0; + TR0 = 1; + break; + } + case CTIM1_P35: + { + TR1 = 0; + TH1 = 0; + TL1 = 0; + TR1 = 1; + break; + } + case CTIM2_P12: + { + AUXR &= ~(1<<4); + T2H = 0; + T2L = 0; + AUXR |= 1<<4; + break; + } + case CTIM3_P04: + { + T4T3M &= ~(1<<3); + T3H = 0; + T3L = 0; + T4T3M |= (1<<3); + break; + } + case CTIM4_P06: + { + T4T3M &= ~(1<<7); + T4H = 0; + T4L = 0; + T4T3M |= (1<<7); + break; + } + } +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 定时器周期中断 +// @param tim_n 定时器通道号 +// @param time_ms 时间(ms) +// @return void +// Sample usage: pit_timer_ms(TIM_0, 10) +// 使用定时器0做周期中断,时间10ms一次。 +//------------------------------------------------------------------------------------------------------------------- +void pit_timer_ms(TIMN_enum tim_n,uint16 time_ms) +{ + uint16 temp; + temp = (uint16)65536 - (uint16)(sys_clk / (12 * (1000 / time_ms))); + + if(TIM_0 == tim_n) + { + TMOD |= 0x00; // 模式 0 + TL0 = temp; + TH0 = temp >> 8; + TR0 = 1; // 启动定时器 + ET0 = 1; // 使能定时器中断 + } + else if(TIM_1 == tim_n) + { + TMOD |= 0x00; // 模式 0 + TL1 = temp; + TH1 = temp >> 8; + TR1 = 1; // 启动定时器 + ET1 = 1; // 使能定时器中断 + } + else if(TIM_2 == tim_n) + { + T2L = temp; + T2H = temp >> 8; + AUXR |= 0x10; // 启动定时器 + IE2 |= 0x04; // 使能定时器中断 + } + else if(TIM_3 == tim_n) + { + T3L = temp; + T3H = temp >> 8; + T4T3M |= 0x08; // 启动定时器 + IE2 |= 0x20; // 使能定时器中断 + } + else if(TIM_4 == tim_n) + { + T4L = temp; + T4H = temp >> 8; + T4T3M |= 0x80; // 启动定时器 + IE2 |= 0x40; // 使能定时器中断 + } +} + diff --git a/Source/uart.c b/Source/uart.c new file mode 100644 index 0000000..809613d --- /dev/null +++ b/Source/uart.c @@ -0,0 +1,229 @@ +#include "uart.h" + +uint8 busy[5]; //接收忙标志位 + +//------------------------------------------------------------------------------------------------------------------- +// @brief 串口初始化 +// @param uart_n 串口模块号(USART_1,USART_2,USART_3,USART_4) +// @param uart_rx_pin 串口接收引脚 +// @param uart_tx_pin 串口发送引脚 +// @param baud 串口波特率 +// @param tim_n 使用tim_n作为串口波特率发生器(TIM1-TIM4) +// @return NULL +// Sample usage: uart_init(UART_1, UART1_RX_P30, UART1_TX_P31, 115200, TIM_2); //初始化串口1 波特率115200 发送引脚使用P31 接收引脚使用P30 ,使用定时器2作为波特率发生器 +// @note 串口1使用 定时器1或者定时器2 作为波特率发生器。 +// 串口2使用 定时器2 作为波特率发生器。 +// 串口3使用 定时器3或者定时器2 作为波特率发生器。 +// 串口4使用 定时器4或者定时器2 作为波特率发生器。 +// STC32G仅有 定时器0-定时器4,这5个定时器。 +// 编码器采集数据也需要定时器作为外部计数。 +// 如果不同的串口,使用同一个定时器,串口的波特率以最后一个初始化为准 +//------------------------------------------------------------------------------------------------------------------- +void uart_init(UARTN_enum uart_n, UARTPIN_enum uart_rx_pin, UARTPIN_enum uart_tx_pin, uint32 baud, TIMN_enum tim_n) +{ + uint16 brt; + + brt = (uint16)(65536 - (sys_clk/baud/4)); + + + switch(uart_n) + { + case UART_1: + { + if(TIM_1 == tim_n) + { + SCON |= 0x50; + TMOD |= 0x00; + TL1 = brt; + TH1 = brt >> 8; + AUXR |= 0x40; + TR1 = 1; + busy[1] = 0; + } + else if(TIM_2 == tim_n) + { + SCON |= 0x50; + T2L = brt; + T2H = brt >> 8; + AUXR |= 0x15; + } + P_SW1 &= ~(0x03<<6); + if((UART1_RX_P30 == uart_rx_pin) && (UART1_TX_P31 == uart_tx_pin)) + { + P_SW1 |= 0x00; + } + else if((UART1_RX_P36 == uart_rx_pin) && (UART1_TX_P37 == uart_tx_pin)) + { + P_SW1 |= 0x40; + } + else if((UART1_RX_P16 == uart_rx_pin) && (UART1_TX_P17 == uart_tx_pin)) + { + P_SW1 |= 0x80; + } + else if((UART1_RX_P43 == uart_rx_pin) && (UART1_TX_P44 == uart_tx_pin)) + { + P_SW1 |= 0xc0; + } + busy[1] = 0; + ES = 1; + break; + } + + case UART_2: + { + if(TIM_2 == tim_n) + { + S2CON |= 0x50; + T2L = brt; + T2H = brt >> 8; + AUXR |= 0x14; + } + + P_SW2 &= ~(0x01<<0); + if((UART2_RX_P10 == uart_rx_pin) && (UART2_TX_P11 == uart_tx_pin)) + { + P_SW2 |= 0x00; + } + else if((UART2_RX_P46 == uart_rx_pin) && (UART2_TX_P47 == uart_tx_pin)) + { + P_SW2 |= 0x01; + } + + IE2 |= 0x01 << 0; //允许串行口2中断 + busy[2] = 0; + break; + } + + case UART_3: + { + if(TIM_2 == tim_n) + { + S3CON |= 0x10; + T2L = brt; + T2H = brt >> 8; + AUXR |= 0x14; + } + else if(TIM_3 == tim_n) + { + S3CON |= 0x50; + T3L = brt; + T3H = brt >> 8; + T4T3M |= 0x0a; + } + + P_SW2 &= ~(0x01<<1); + if((UART3_RX_P00 == uart_rx_pin) && (UART3_TX_P01 == uart_tx_pin)) + { + P_SW2 |= 0x00; + } + else if((UART3_RX_P50 == uart_rx_pin) && (UART3_TX_P51 == uart_tx_pin)) + { + P_SW2 |= 0x02; + } + + IE2 |= 0x01<<3; //允许串行口3中断 + busy[3] = 0; + break; + } + + case UART_4: + { + if(TIM_2 == tim_n) + { + S4CON |= 0x10; + T2L = brt; + T2H = brt >> 8; + AUXR |= 0x14; + } + else if(TIM_4 == tim_n) + { + S4CON |= 0x50; + T4L = brt; + T4H = brt >> 8; + T4T3M |= 0xa0; + } + + P_SW2 &= ~(0x01<<2); + if((UART4_RX_P02 == uart_rx_pin) && (UART4_TX_P03 == uart_tx_pin)) + { + P_SW2 |= 0x00; + } + else if((UART4_RX_P52 == uart_rx_pin) && (UART4_TX_P53 == uart_tx_pin)) + { + P5M0 = 0x00; + P5M1 = 0x01<<2;//P5.2 需要设置为高阻 + P_SW2 |= 0x04; + } + IE2 |= 0x01<<4; //允许串行口4中断 + busy[4] = 0; + break; + } + + } + +} + +//------------------------------------------------------------------------------------------------------------------- +// @brief 串口字节输出 +// @param uart_n 串口模块号(USART_1,USART_2,USART_3,USART_4) +// @param dat 需要发送的字节 +// @return void +// Sample usage: uart_putchar(UART_1,0xA5); // 串口1发送0xA5 +//------------------------------------------------------------------------------------------------------------------- +void uart_putchar(UARTN_enum uart_n,uint8 dat) +{ + switch(uart_n) + { + case UART_1: + while (busy[1]); + busy[1] = 1; + SBUF = dat; + break; + case UART_2: + while (busy[2]); + busy[2] = 1; + S2BUF = dat; + break; + case UART_3: + while (busy[3]); + busy[3] = 1; + S3BUF = dat; + break; + case UART_4: + while (busy[4]); + busy[4] = 1; + S4BUF = dat; + break; + } +} + + +//------------------------------------------------------------------------------------------------------------------- +// @brief 串口发送数组 +// @param uart_n 串口模块号(USART_1,USART_2,USART_3,USART_4) +// @param *buff 要发送的数组地址 +// @param len 发送长度 +// @return void +// Sample usage: uart_putbuff(UART_1,&a[0],5); +//------------------------------------------------------------------------------------------------------------------- +void uart_putbuff(UARTN_enum uart_n,uint8 *p,uint32 len) +{ + while(len--) + uart_putchar(uart_n,*p++); +} + + +//------------------------------------------------------------------------------------------------------------------- +// @brief 串口发送字符串 +// @param uart_n 串口模块号(USART_1,USART_2,USART_3,USART_4) +// @param *str 要发送的字符串地址 +// @return void +// Sample usage: uart_putstr(UART_1,"i lvoe you"); +//------------------------------------------------------------------------------------------------------------------- +void uart_putstr(UARTN_enum uart_n,uint8 *str) +{ + while(*str) + { + uart_putchar(uart_n, *str++); + } +} diff --git a/compile_commands.json b/compile_commands.json new file mode 100644 index 0000000..065e97d --- /dev/null +++ b/compile_commands.json @@ -0,0 +1,15028 @@ +[ + { + "directory": "d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board", + "file": "main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "main.c", + "-o", + "build/Target_1/d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board/main.o" + ] + }, + { + "directory": "d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board", + "file": "main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "main.c", + "-o", + "build/Target_1/d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board/main.o" + ] + }, + { + "directory": "d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board", + "file": "isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "isr.c", + "-o", + "build/Target_1/d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board/isr.o" + ] + }, + { + "directory": "d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board", + "file": "main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "main.c", + "-o", + "build/Target_1/d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board/main.o" + ] + }, + { + "directory": "d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board", + "file": "isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "isr.c", + "-o", + "build/Target_1/d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board", + "file": "main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "main.c", + "-o", + "build/Target_1/d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board/main.o" + ] + }, + { + "directory": "d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board", + "file": "isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "isr.c", + "-o", + "build/Target_1/d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board", + "file": "main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "main.c", + "-o", + "build/Target_1/d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board/main.o" + ] + }, + { + "directory": "d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board", + "file": "isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "isr.c", + "-o", + "build/Target_1/d:/lhy/Projects/Smart_Trash/New_STC32G_All_Board/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/full_ir.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/full_ir.c", + "-o", + "build/Target_1/Source/full_ir.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/full_ir.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/full_ir.h", + "-o", + "build/Target_1/Header/full_ir.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/full_ir.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/full_ir.c", + "-o", + "build/Target_1/Source/full_ir.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/full_ir.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/full_ir.h", + "-o", + "build/Target_1/Header/full_ir.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/full_ir.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/full_ir.c", + "-o", + "build/Target_1/Source/full_ir.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/full_ir.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/full_ir.h", + "-o", + "build/Target_1/Header/full_ir.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/full_ir.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/full_ir.c", + "-o", + "build/Target_1/Source/full_ir.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/full_ir.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/full_ir.h", + "-o", + "build/Target_1/Header/full_ir.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/full_ir.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/full_ir.c", + "-o", + "build/Target_1/Source/full_ir.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/full_ir.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/full_ir.h", + "-o", + "build/Target_1/Header/full_ir.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/full_ir.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/full_ir.c", + "-o", + "build/Target_1/Source/full_ir.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/full_ir.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/full_ir.h", + "-o", + "build/Target_1/Header/full_ir.o" + ] + }, + { + "directory": "Header", + "file": "Header/bin.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/bin.h", + "-o", + "build/Target_1/Header/bin.o" + ] + }, + { + "directory": "Source", + "file": "Source/isr.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/isr.c", + "-o", + "build/Target_1/Source/isr.o" + ] + }, + { + "directory": "Source", + "file": "Source/main.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/main.c", + "-o", + "build/Target_1/Source/main.o" + ] + }, + { + "directory": "Source", + "file": "Source/uart.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/uart.c", + "-o", + "build/Target_1/Source/uart.o" + ] + }, + { + "directory": "Source", + "file": "Source/tim.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/tim.c", + "-o", + "build/Target_1/Source/tim.o" + ] + }, + { + "directory": "Source", + "file": "Source/clock_init.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/clock_init.c", + "-o", + "build/Target_1/Source/clock_init.o" + ] + }, + { + "directory": "Source", + "file": "Source/delay.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/delay.c", + "-o", + "build/Target_1/Source/delay.o" + ] + }, + { + "directory": "Source", + "file": "Source/gpio.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/gpio.c", + "-o", + "build/Target_1/Source/gpio.o" + ] + }, + { + "directory": "Source", + "file": "Source/pwm.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/pwm.c", + "-o", + "build/Target_1/Source/pwm.o" + ] + }, + { + "directory": "Source", + "file": "Source/exti.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/exti.c", + "-o", + "build/Target_1/Source/exti.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic.c", + "-o", + "build/Target_1/Source/iic.o" + ] + }, + { + "directory": "Source", + "file": "Source/PCA9685_driver.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/PCA9685_driver.c", + "-o", + "build/Target_1/Source/PCA9685_driver.o" + ] + }, + { + "directory": "Source", + "file": "Source/out_power_ctrl.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/out_power_ctrl.c", + "-o", + "build/Target_1/Source/out_power_ctrl.o" + ] + }, + { + "directory": "Source", + "file": "Source/hx711.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/hx711.c", + "-o", + "build/Target_1/Source/hx711.o" + ] + }, + { + "directory": "Source", + "file": "Source/conveyor.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/conveyor.c", + "-o", + "build/Target_1/Source/conveyor.o" + ] + }, + { + "directory": "Source", + "file": "Source/iic_soft.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/iic_soft.c", + "-o", + "build/Target_1/Source/iic_soft.o" + ] + }, + { + "directory": "Source", + "file": "Source/fifo.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/fifo.c", + "-o", + "build/Target_1/Source/fifo.o" + ] + }, + { + "directory": "Source", + "file": "Source/command.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/command.c", + "-o", + "build/Target_1/Source/command.o" + ] + }, + { + "directory": "Source", + "file": "Source/button.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/button.c", + "-o", + "build/Target_1/Source/button.o" + ] + }, + { + "directory": "Source", + "file": "Source/full_ir.c", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Source/full_ir.c", + "-o", + "build/Target_1/Source/full_ir.o" + ] + }, + { + "directory": "Header", + "file": "Header/STC32G.H", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/STC32G.H", + "-o", + "build/Target_1/Header/STC32G.o" + ] + }, + { + "directory": "Header", + "file": "Header/types.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/types.h", + "-o", + "build/Target_1/Header/types.o" + ] + }, + { + "directory": "Header", + "file": "Header/common.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/common.h", + "-o", + "build/Target_1/Header/common.o" + ] + }, + { + "directory": "Header", + "file": "Header/uart.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/uart.h", + "-o", + "build/Target_1/Header/uart.o" + ] + }, + { + "directory": "Header", + "file": "Header/isr.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/isr.h", + "-o", + "build/Target_1/Header/isr.o" + ] + }, + { + "directory": "Header", + "file": "Header/tim.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/tim.h", + "-o", + "build/Target_1/Header/tim.o" + ] + }, + { + "directory": "Header", + "file": "Header/clock_init.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/clock_init.h", + "-o", + "build/Target_1/Header/clock_init.o" + ] + }, + { + "directory": "Header", + "file": "Header/delay.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/delay.h", + "-o", + "build/Target_1/Header/delay.o" + ] + }, + { + "directory": "Header", + "file": "Header/gpio.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/gpio.h", + "-o", + "build/Target_1/Header/gpio.o" + ] + }, + { + "directory": "Header", + "file": "Header/pwm.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/pwm.h", + "-o", + "build/Target_1/Header/pwm.o" + ] + }, + { + "directory": "Header", + "file": "Header/exti.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/exti.h", + "-o", + "build/Target_1/Header/exti.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic.h", + "-o", + "build/Target_1/Header/iic.o" + ] + }, + { + "directory": "Header", + "file": "Header/PCA9685_driver.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/PCA9685_driver.h", + "-o", + "build/Target_1/Header/PCA9685_driver.o" + ] + }, + { + "directory": "Header", + "file": "Header/out_power_ctrl.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/out_power_ctrl.h", + "-o", + "build/Target_1/Header/out_power_ctrl.o" + ] + }, + { + "directory": "Header", + "file": "Header/hx711.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/hx711.h", + "-o", + "build/Target_1/Header/hx711.o" + ] + }, + { + "directory": "Header", + "file": "Header/conveyor.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/conveyor.h", + "-o", + "build/Target_1/Header/conveyor.o" + ] + }, + { + "directory": "Header", + "file": "Header/iic_soft.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/iic_soft.h", + "-o", + "build/Target_1/Header/iic_soft.o" + ] + }, + { + "directory": "Header", + "file": "Header/fifo.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/fifo.h", + "-o", + "build/Target_1/Header/fifo.o" + ] + }, + { + "directory": "Header", + "file": "Header/command.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/command.h", + "-o", + "build/Target_1/Header/command.o" + ] + }, + { + "directory": "Header", + "file": "Header/button.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/button.h", + "-o", + "build/Target_1/Header/button.o" + ] + }, + { + "directory": "Header", + "file": "Header/full_ir.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/full_ir.h", + "-o", + "build/Target_1/Header/full_ir.o" + ] + }, + { + "directory": "Header", + "file": "Header/bin.h", + "arguments": [ + "C:/Keil_v5/C251/bin/C251.EXE", + "-c", + "Header/bin.h", + "-o", + "build/Target_1/Header/bin.o" + ] + } +] \ No newline at end of file diff --git a/stc32g_all.uvopt b/stc32g_all.uvopt new file mode 100644 index 0000000..3a171d7 --- /dev/null +++ b/stc32g_all.uvopt @@ -0,0 +1,640 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp; *.cc; *.cxx + 0 + + + + 0 + 0 + + + + Target_1 + 0x1 + MCS-251 + + 35000000 + + 1 + 1 + 1 + 0 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\Listings\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + STCMON251 + -S256 -B115200 -O263 + + + + + 0 + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + Source + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\Source\isr.c + isr.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + .\Source\main.c + main.c + 0 + 0 + + + 1 + 3 + 1 + 0 + 0 + 0 + .\Source\uart.c + uart.c + 0 + 0 + + + 1 + 4 + 1 + 0 + 0 + 0 + .\Source\tim.c + tim.c + 0 + 0 + + + 1 + 5 + 1 + 0 + 0 + 0 + .\Source\clock_init.c + clock_init.c + 0 + 0 + + + 1 + 6 + 1 + 0 + 0 + 0 + .\Source\delay.c + delay.c + 0 + 0 + + + 1 + 7 + 1 + 0 + 0 + 0 + .\Source\gpio.c + gpio.c + 0 + 0 + + + 1 + 8 + 1 + 0 + 0 + 0 + .\Source\pwm.c + pwm.c + 0 + 0 + + + 1 + 9 + 1 + 0 + 0 + 0 + .\Source\exti.c + exti.c + 0 + 0 + + + 1 + 10 + 1 + 0 + 0 + 0 + .\Source\iic.c + iic.c + 0 + 0 + + + 1 + 11 + 1 + 0 + 0 + 0 + .\Source\PCA9685_driver.c + PCA9685_driver.c + 0 + 0 + + + 1 + 12 + 1 + 0 + 0 + 0 + .\Source\hx711.c + hx711.c + 0 + 0 + + + 1 + 13 + 1 + 0 + 0 + 0 + .\Source\iic_soft.c + iic_soft.c + 0 + 0 + + + 1 + 14 + 1 + 0 + 0 + 0 + .\Source\fifo.c + fifo.c + 0 + 0 + + + 1 + 15 + 1 + 0 + 0 + 0 + .\Source\command.c + command.c + 0 + 0 + + + 1 + 16 + 1 + 0 + 0 + 0 + .\Source\button.c + button.c + 0 + 0 + + + 1 + 17 + 1 + 0 + 0 + 0 + .\Source\stc32_stc8_usb.c + stc32_stc8_usb.c + 0 + 0 + + + + + Header + 1 + 0 + 0 + 0 + + 2 + 18 + 0 + 0 + 0 + 0 + .\Header\STC32G.H + STC32G.H + 0 + 0 + + + 2 + 19 + 5 + 0 + 0 + 0 + .\Header\types.h + types.h + 0 + 0 + + + 2 + 20 + 5 + 0 + 0 + 0 + .\Header\common.h + common.h + 0 + 0 + + + 2 + 21 + 5 + 0 + 0 + 0 + .\Header\uart.h + uart.h + 0 + 0 + + + 2 + 22 + 5 + 0 + 0 + 0 + .\Header\isr.h + isr.h + 0 + 0 + + + 2 + 23 + 5 + 0 + 0 + 0 + .\Header\tim.h + tim.h + 0 + 0 + + + 2 + 24 + 5 + 0 + 0 + 0 + .\Header\clock_init.h + clock_init.h + 0 + 0 + + + 2 + 25 + 5 + 0 + 0 + 0 + .\Header\delay.h + delay.h + 0 + 0 + + + 2 + 26 + 5 + 0 + 0 + 0 + .\Header\gpio.h + gpio.h + 0 + 0 + + + 2 + 27 + 5 + 0 + 0 + 0 + .\Header\pwm.h + pwm.h + 0 + 0 + + + 2 + 28 + 5 + 0 + 0 + 0 + .\Header\exti.h + exti.h + 0 + 0 + + + 2 + 29 + 5 + 0 + 0 + 0 + .\Header\iic.h + iic.h + 0 + 0 + + + 2 + 30 + 5 + 0 + 0 + 0 + .\Header\PCA9685_driver.h + PCA9685_driver.h + 0 + 0 + + + 2 + 31 + 5 + 0 + 0 + 0 + .\Header\hx711.h + hx711.h + 0 + 0 + + + 2 + 32 + 5 + 0 + 0 + 0 + .\Header\iic_soft.h + iic_soft.h + 0 + 0 + + + 2 + 33 + 5 + 0 + 0 + 0 + .\Header\fifo.h + fifo.h + 0 + 0 + + + 2 + 34 + 5 + 0 + 0 + 0 + .\Header\command.h + command.h + 0 + 0 + + + 2 + 35 + 5 + 0 + 0 + 0 + .\Header\button.h + button.h + 0 + 0 + + + 2 + 36 + 5 + 0 + 0 + 0 + .\Header\stc32_stc8_usb.h + stc32_stc8_usb.h + 0 + 0 + + + + + Lib + 1 + 0 + 0 + 0 + + 3 + 37 + 4 + 0 + 0 + 0 + .\Lib\stc_usb_cdc_32g_interrupt.LIB + stc_usb_cdc_32g_interrupt.LIB + 0 + 0 + + + +
diff --git a/stc32g_all.uvproj b/stc32g_all.uvproj new file mode 100644 index 0000000..a6bafce --- /dev/null +++ b/stc32g_all.uvproj @@ -0,0 +1,528 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + Target_1 + 0x1 + MCS-251 + 0 + + + STC32G12K128 Series + STC + IRAM(0-0xFFF) XRAM(0x10000-0x11FFF) IROM(0xFE0000-0xFFFFFF) CLOCK(35000000) + + "LIB\STARTUP251.ASM" ("80251 Startup Code") + + 63457 + STC32G.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + stc32g_all + 1 + 0 + 1 + 1 + 1 + .\Listings\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S251.DLL + + DCORE51.DLL + -p251 + S251.DLL + + TCORE51.DLL + -p251 + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 4096 + + 0 + BIN\STCMON251.DLL + "" () + + + + + 0 + + + + 3 + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x10000 + + + 1 + 0xfe0000 + 0x20000 + + + 0 + 0x0 + 0x1000 + + + 0 + 0x10000 + 0x2000 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 0 + 0 + 3 + 7 + 2 + 1 + 0 + + + + + .\Header + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 1 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Source + + + isr.c + 1 + .\Source\isr.c + + + main.c + 1 + .\Source\main.c + + + uart.c + 1 + .\Source\uart.c + + + tim.c + 1 + .\Source\tim.c + + + clock_init.c + 1 + .\Source\clock_init.c + + + delay.c + 1 + .\Source\delay.c + + + gpio.c + 1 + .\Source\gpio.c + + + pwm.c + 1 + .\Source\pwm.c + + + exti.c + 1 + .\Source\exti.c + + + iic.c + 1 + .\Source\iic.c + + + PCA9685_driver.c + 1 + .\Source\PCA9685_driver.c + + + hx711.c + 1 + .\Source\hx711.c + + + iic_soft.c + 1 + .\Source\iic_soft.c + + + fifo.c + 1 + .\Source\fifo.c + + + command.c + 1 + .\Source\command.c + + + button.c + 1 + .\Source\button.c + + + stc32_stc8_usb.c + 1 + .\Source\stc32_stc8_usb.c + + + + + Header + + + STC32G.H + 0 + .\Header\STC32G.H + + + types.h + 5 + .\Header\types.h + + + common.h + 5 + .\Header\common.h + + + uart.h + 5 + .\Header\uart.h + + + isr.h + 5 + .\Header\isr.h + + + tim.h + 5 + .\Header\tim.h + + + clock_init.h + 5 + .\Header\clock_init.h + + + delay.h + 5 + .\Header\delay.h + + + gpio.h + 5 + .\Header\gpio.h + + + pwm.h + 5 + .\Header\pwm.h + + + exti.h + 5 + .\Header\exti.h + + + iic.h + 5 + .\Header\iic.h + + + PCA9685_driver.h + 5 + .\Header\PCA9685_driver.h + + + hx711.h + 5 + .\Header\hx711.h + + + iic_soft.h + 5 + .\Header\iic_soft.h + + + fifo.h + 5 + .\Header\fifo.h + + + command.h + 5 + .\Header\command.h + + + button.h + 5 + .\Header\button.h + + + stc32_stc8_usb.h + 5 + .\Header\stc32_stc8_usb.h + + + + + Lib + + + stc_usb_cdc_32g_interrupt.LIB + 4 + .\Lib\stc_usb_cdc_32g_interrupt.LIB + + + + + + + +