/************************************************************************ Project: Welling Motor Control Paltform Filename: i2c_master.h Partner Filename: i2c_master.c Description: The header file of i2c_master.c Complier: IAR Embedded Workbench for ARM 6.50, IAR Systems. CPU TYPE : STM32F30x ************************************************************************* Copyright (c) 2014 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* ************************************************************************* Revising History (ECL of this file): liyue create this file; ************************************************************************/ /************************************************************************ Beginning of File, do not put anything above here except notes Compiler Directives ************************************************************************/ #ifndef I2C_MASTER_H #define I2C_MASTER_H #include "AssistCurve.h" #include "bikespeed.h" #include "Cadence.h" #include "CadAssist.h" #include "bikeinformation.h" #include "typedefine.h" /************************************************************************ Compiler Directives (N/A) *************************************************************************/ #ifdef _I2C_MASTER_C_ #define _I2C_MASTER_EXT #else #define _I2C_MASTER_EXT extern #endif /************************************************************************ Definitions & Macros *************************************************************************/ //////////////////////// EE Configure //////////////////////////////////////////// #define I2C_EE_SIZE_NBYTES 1024 // 24C08: 8Kb,16Bytes/Page/64Page #define I2C_EE_PAGESIZE_NBYTES 16 #define I2C_EE_SIZE_NBLOCKS EEPROM_SIZE_NBYTES / 256 #define I2C_EE_SIZE_NPAGES EEPROM_SIZE_NBYTES / I2C_EE_PAGESIZE #define I2C_SLAVEADDR_BLOCK1 0x00A0 // First 256 Bytes:0xA0, Second 256 Bytes:0xA2,...0xA4,0xA6 #define I2C_SLAVEADDR_BLOCK2 0x00A2 // SADD[7:1]: 7-bit slave address to be sent. #define I2C_SLAVEADDR_BLOCK3 0x00A4 #define I2C_SLAVEADDR_BLOCK4 0x00A6 ////////////////////// SIZE OF DATA ///////////////////////////////////////////// #define I2C_MOTOR_PARA_N_BYTES 38 // I2C_SLAVEADDR_BLOCK1 #define I2C_BIKE_PARA_N_BYTES 26 // I2C_SLAVEADDR_BLOCK1 #define I2C_MCONTROL_PARA_N_BYTES 36 // I2C_SLAVEADDR_BLOCK1 #define I2C_SENSOR_PARA_N_BYTES 40 // I2C_SLAVEADDR_BLOCK1 #define I2C_ASSIST_PARA_N_BYTES 40 // I2C_SLAVEADDR_BLOCK1 #define I2C_HISTORY_PARA_N_BYTES 78 // I2C_SLAVEADDR_BLOCK3 #define I2C_MOTOR_PARA_N_WORDS I2C_MOTOR_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK1 #define I2C_BIKE_PARA_N_WORDS I2C_BIKE_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK1 #define I2C_MCONTROL_PARA_N_WORDS I2C_MCONTROL_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK1 #define I2C_SENSOR_PARA_N_WORDS I2C_SENSOR_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK1 #define I2C_ASSIST_PARA_N_WORDS I2C_ASSIST_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK1 #define I2C_HISTORY_PARA_N_WORDS I2C_HISTORY_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK2 ////////////////////// DATA ADDRESS //////////////////////////////////////////// #define I2C_PBUFFER_NWORDS 5 #define I2C_MOTOR_PARA_ARDDR 0X00 #define I2C_BIKE_PARA_ARDDR I2C_MOTOR_PARA_ARDDR + I2C_MOTOR_PARA_N_BYTES #define I2C_MCONTROL_PARA_ARDDR I2C_BIKE_PARA_ARDDR + I2C_BIKE_PARA_N_BYTES #define I2C_SENSOR_PARA_ARDDR I2C_MCONTROL_PARA_ARDDR + I2C_MCONTROL_PARA_N_BYTES #define I2C_ASSIST_PARA_ARDDR I2C_SENSOR_PARA_ARDDR + I2C_SENSOR_PARA_N_BYTES #define I2C_HISTORY_PARA_ARDDR 0x00 #define I2C_MOTOR_PARA_CRC_ARDDR I2C_ASSIST_PARA_ARDDR + I2C_ASSIST_PARA_N_BYTES #define I2C_BIKE_PARA_CRC_ARDDR I2C_MOTOR_PARA_CRC_ARDDR + 2 #define I2C_MCONTROL_PARA_CRC_ARDDR I2C_BIKE_PARA_CRC_ARDDR + 2 #define I2C_SENSOR_PARA_CRC_ARDDR I2C_MCONTROL_PARA_CRC_ARDDR + 2 #define I2C_ASSIST_PARA_CRC_ARDDR I2C_SENSOR_PARA_CRC_ARDDR + 2 #define I2C_HISTORY_PARA_CRC_ARDDR I2C_HISTORY_PARA_ARDDR + I2C_HISTORY_PARA_N_BYTES // I2C_TX_NBYTES cannot exceed 255, CRC:6 Bytes #define I2C_TX1_NBYTES \ 10 + I2C_MOTOR_PARA_N_BYTES + I2C_BIKE_PARA_N_BYTES + I2C_MCONTROL_PARA_N_BYTES + I2C_SENSOR_PARA_N_BYTES + I2C_ASSIST_PARA_N_BYTES // 172 bytes #define I2C_RETX1_TIMES 1 #define I2C_TX2_NBYTES 2 + I2C_HISTORY_PARA_N_BYTES // 78 Bytes #define I2C_RETX2_TIMES 1 #define I2C1_TX_DMA_NUM (I2C_TX1_NBYTES > I2C_TX2_NBYTES ? I2C_TX1_NBYTES : I2C_TX2_NBYTES) // I2C_RX_NBYTES cannot exceed 255, #define I2C_RX1_NBYTES I2C_TX1_NBYTES #define I2C_RX2_NBYTES I2C_TX2_NBYTES #define I2C1_RX_DMA_NUM (I2C_RX1_NBYTES > I2C_RX2_NBYTES ? I2C_RX1_NBYTES : I2C_RX2_NBYTES) #define I2C_RERX1_TIMES 2 #define I2C_SHORT_TIMEOUT 5000 #define I2C_LONG_TIMEOUT (10 * I2C_FLAG_TIMEOUT) #define I2C_DMA_TIMEOUT 100000 /************************************************************************ System Parameters *************************************************************************/ /*Reserve Para*/ #define I2Creserve \ { \ 500 \ } #define I2CReserve_Byte \ { \ 0 \ } /*Motor Para*/ #define I2CuwPolePairs \ { \ ((UWORD)M_POLE_PAIRS) \ } #define I2CuwRsmOhm \ { \ ((UWORD)M_RS_OHM) \ } #define I2CuwLduH \ { \ ((UWORD)M_LD_NOLOAD_MH) \ } #define I2CuwLquH \ { \ ((UWORD)M_LQ_NOLOAD_MH) \ } #define I2CuwFluxmWb \ { \ ((UWORD)M_FLUX_WB) \ } #define I2CuwIdMaxA \ { \ ((UWORD)M_ID_MAX_AP) \ } #define I2CuwIdMinA \ { \ ((UWORD)M_ID_MIN_AP) \ } #define I2CuwRSpdRpm \ { \ ((UWORD)M_R_SPD_RPM) \ } #define I2CuwRPwrWt \ { \ ((UWORD)M_R_PWR_WT) \ } #define I2CuwRCurA \ { \ ((UWORD)M_R_IRMS_A) \ } #define I2CuwRVolV \ { \ ((UWORD)M_R_UDC_v) \ } #define I2CuwJD \ { \ ((UWORD)M_JD) \ } #define I2CuwTorMaxNm \ { \ ((UWORD)M_MAX_TOR_NM) \ } #define I2CMotorPara \ { \ I2CuwPolePairs, I2CuwRsmOhm, I2CuwLduH, I2CuwLquH, I2CuwFluxmWb, I2CuwIdMaxA, I2CuwIdMinA, I2CuwRSpdRpm, I2CuwRPwrWt, I2CuwRCurA, \ I2CuwRVolV, I2CuwJD, I2CuwTorMaxNm, I2Creserve, I2Creserve, I2Creserve, I2Creserve, I2Creserve, I2Creserve \ } /*Bike Para*/ #define I2CuwWheelDiameter \ { \ ((UWORD)ASS_BIKE_WHEEL_DIAMETER) \ } #define I2CuwDeltDiameter \ { \ 0 \ } #define I2CuwMechRationMotor \ { \ ((UWORD)ASS_BIKE_MECH_RATION) \ } #define I2CuwAssistMaxSpdKmH \ { \ ((UWORD)(ASS_THROTTLE_SPD_LIMIT>>4)) \ } #define I2CuwThrottleMaxSpdKmH \ { \ ((UWORD)(ASS_CART_SPEED>>4)) \ } #define I2CuwNmFrontChainring \ { \ BIKE_FRONTTEETH_NMB \ } #define I2CuwNmBackChainring \ { \ BIKE_BACKTEETH_NMB \ } #define I2CuwAssistSelect1 \ { \ ((UWORD)ASSISTMOD_SELECT_MODE1) \ } #define I2CuwAssistSelect2 \ { \ ((UWORD)ASSISTMOD_SELECT_MODE2) \ } #define I2CuwLightVoltage \ { \ ((UWORD)BIKE_LIGHT_CONFIG) \ } #define I2CuwStartMode \ { \ ((UWORD)BIKE_START_MODE) \ } #define I2CuwAutoPowerOffTime \ { \ ((UWORD)BIKE_AUTO_POWER_OFF_TIME) \ } #define I2CBikePara \ { \ I2CuwWheelDiameter, I2CuwDeltDiameter, I2CuwMechRationMotor, I2CuwAssistMaxSpdKmH, I2CuwThrottleMaxSpdKmH, I2CuwNmFrontChainring, \ I2CuwNmBackChainring, I2CuwAssistSelect1, I2CuwAssistSelect2, I2CuwLightVoltage, I2CuwStartMode, I2CuwAutoPowerOffTime, I2Creserve \ } /*MControl Para*/ #define I2CParaFirstSetFlg \ { \ 1 \ } #define I2CSpiOffsetFirstSetFlg \ { \ 0 \ } #define I2CswSPIPosOffsetOrigin \ { \ 0 \ } #define I2CswSPIPosOffsetNow \ { \ 0 \ } #define I2CuwIPeakMaxA \ { \ ((UWORD)M_IS_PEAK_MAX_AP) \ } #define I2CuwAlamOCurA \ { \ ((UWORD)ALM_OVR_CNT_VAL) \ } #define I2CuwAlamOVolV \ { \ ((UWORD)ALM_OVR_VLT_LVL1_VAL) \ } #define I2CuwAlamUVolV \ { \ ((UWORD)ALM_UNDR_VLT_LVL1_VAL) \ } #define I2CuwAlamOverSpdRpm \ { \ ((UWORD)ALM_OVR_SPD_VAL) \ } #define I2CuwAlamOverHeatCe \ { \ ((UWORD)ALM_IPM_OVR_HEAT_VAL) \ } #define I2CuwAlamRecHeatCe \ { \ ((UWORD)ALM_IPM_OVR_HEAT_REC_VAL) \ } #define I2CuwPwrLimitStartCe \ { \ ((UWORD)PWRLIM_START_THRESHOLD_TEMP) \ } #define I2CuwAlamMotorOverHeatCe \ { \ ((UWORD)ALM_MOTOR_OVR_HEAT_VAL) \ } #define I2CuwAlamMotorRecHeatCe \ { \ ((UWORD)ALM_MOTOR_OVR_HEAT_REC_VAL) \ } #define I2CuwPwrLimitMotorStartCe \ { \ ((UWORD)PWRLIM_START_THRESHOLD_MOTOR_TEMP) \ } #define I2CuwCONTROLFUNCRUISE \ { \ ((UWORD)IPM_FUN_EN) \ } #define I2CMControlPara \ { \ I2CParaFirstSetFlg,I2CSpiOffsetFirstSetFlg,I2CswSPIPosOffsetOrigin, I2CswSPIPosOffsetNow, I2CuwIPeakMaxA, I2CuwAlamOCurA, I2CuwAlamOVolV, I2CuwAlamUVolV, I2CuwAlamOverSpdRpm, \ I2CuwAlamOverHeatCe, I2CuwAlamRecHeatCe, I2CuwPwrLimitStartCe, I2CuwAlamMotorOverHeatCe, I2CuwAlamMotorRecHeatCe, I2CuwPwrLimitMotorStartCe, I2CuwCONTROLFUNCRUISE, I2Creserve, I2Creserve \ } /*Sensor Para*/ #define I2CuwTorSensorOffsetOrigin \ { \ 372 \ } #define I2CuwTorSensorOffsetNow1 \ { \ 0 \ } #define I2CuwTorSensorOffsetNow2 \ { \ 0 \ } #define I2CuwTorSensorOffsetNow3 \ { \ 0 \ } #define I2CuwTorSensorOffsetNow4 \ { \ 0 \ } #define I2CuwBikeTorMaxNm \ { \ 850 \ } #define I2CuwBikeTor1StepRealNm \ { \ 200 \ } #define I2CuwBikeTor1StepADC \ { \ 838 \ } #define I2CuwBikeTor2StepRealNm \ { \ 400 \ } #define I2CuwBikeTor2StepADC \ { \ 1303 \ } #define I2CuwBikeTor3StepRealNm \ { \ 600 \ } #define I2CuwBikeTor3StepADC \ { \ 1769 \ } #define I2CuwBikeTor4StepRealNm \ { \ 800 \ } #define I2CuwBikeTor4StepADC \ { \ 2234 \ } #define I2CuwCadSensorPulseNm \ { \ TORQUE_NUMBERS_PULSES \ } #define I2CuwBikeSpdSensorPulseNm \ { \ BIKESPEED_NUMBERS_PULSES \ } #define I2CuwCad_SensorPulseNm \ { \ CADENCE_NUMBERS_PULSES \ } #define I2CSensorPara \ { \ I2CuwTorSensorOffsetOrigin, I2CuwTorSensorOffsetNow1, I2CuwTorSensorOffsetNow2, I2CuwTorSensorOffsetNow3, I2CuwTorSensorOffsetNow4, \ I2CuwBikeTorMaxNm, I2CuwBikeTor1StepRealNm, I2CuwBikeTor1StepADC, I2CuwBikeTor2StepRealNm, I2CuwBikeTor2StepADC, \ I2CuwBikeTor3StepRealNm, I2CuwBikeTor3StepADC, I2CuwBikeTor4StepRealNm, I2CuwBikeTor4StepADC, I2CuwCadSensorPulseNm, \ I2CuwBikeSpdSensorPulseNm, I2CuwCad_SensorPulseNm, I2Creserve, I2Creserve, I2Creserve \ } /*Assist Para*/ #define I2CswStartupGain \ { \ 8192 \ } #define I2CswStartcruiseGain \ { \ 4096 \ } #define I2CswNmAssistChangeNum \ { \ 0 \ } #define I2CswG1AssistCoefaH \ { \ 0 \ } #define I2CswG1AssistCoefaL \ { \ 0 \ } #define I2CswG1AssistCoefbH \ { \ 0 \ } #define I2CswG1AssistCoefbL \ { \ 0 \ } #define I2CswG1AssistCoefcH \ { \ 0 \ } #define I2CswG1AssistCoefcL \ { \ 0 \ } #define I2CswG2AssistCoefaH \ { \ 0 \ } #define I2CswG2AssistCoefaL \ { \ 0 \ } #define I2CswG2AssistCoefbH \ { \ 0 \ } #define I2CswG2AssistCoefbL \ { \ 0 \ } #define I2CswG2AssistCoefcH \ { \ 0 \ } #define I2CswG2AssistCoefcL \ { \ 0 \ } #define I2CswG3AssistCoefaH \ { \ 0 \ } #define I2CswG3AssistCoefaL \ { \ 0 \ } #define I2CswG3AssistCoefbH \ { \ 0 \ } #define I2CswG3AssistCoefbL \ { \ 0 \ } #define I2CswG3AssistCoefcH \ { \ 0 \ } #define I2CswG3AssistCoefcL \ { \ 0 \ } #define I2CswG4AssistCoefaH \ { \ 0 \ } #define I2CswG4AssistCoefaL \ { \ 0 \ } #define I2CswG4AssistCoefbH \ { \ 0 \ } #define I2CswG4AssistCoefbL \ { \ 0 \ } #define I2CswG4AssistCoefcH \ { \ 0 \ } #define I2CswG4AssistCoefcL \ { \ 0 \ } #define I2CswG5AssistCoefaH \ { \ 0 \ } #define I2CswG5AssistCoefaL \ { \ 0 \ } #define I2CswG5AssistCoefbH \ { \ 0 \ } #define I2CswG5AssistCoefbL \ { \ 0 \ } #define I2CswG5AssistCoefcH \ { \ 0 \ } #define I2CswG5AssistCoefcL \ { \ 0 \ } #define I2CswCadAssistCoefa \ { \ 0 \ } #define I2CswCadAssistCoefb \ { \ 0 \ } #define I2CswCadAssistCoefc \ { \ 0 \ } #define I2CuwAssistStartNm \ { \ 80 \ } #define I2CuwAssistStopNm \ { \ 30 \ } #define I2CuwStartUpGainStep \ { \ 4 \ } #define I2CuwStartUpCadNm \ { \ VolLimCtrKiStep \ } #define I2CuwTorLPFCadNm \ { \ 38 \ } #define I2CuwSpeedAssistSpdRpm \ { \ VolLimCtrKp \ } #define I2CuwSpeedAssistIMaxA \ { \ VolLimCtrKi \ } #define I2CuwAssistLimitBikeSpdStart \ { \ BIKE_SPEED_IQLIMIT_THRESHOLD1 \ } #define I2CuwAssistLimitBikeSpdStop \ { \ BIKE_SPEED_IQLIMIT_THRESHOLD2 \ } #define I2CuwCadenceAssistWeight \ { \ 50 \ } #define I2CuwCadenceAssKp \ { \ ASS_PID_KP \ } #define I2CuwCadenceVolStep \ { \ ASS_VOL_STEP_MAX \ } #define I2CuwCadenceVolDecStep \ { \ ((UWORD)ASS_VOL_DEC_STEP) \ } #define I2CuwCadenceCurStep \ { \ ((UWORD)ASS_CUR_STEP) \ } #define I2CuwCadenceMaxRpm \ { \ ((UWORD)ASS_CAD_MAX_RPM) \ } #define I2CAssistPara \ { \ I2CswStartupGain, I2CswStartcruiseGain, I2CuwAssistStartNm, I2CuwAssistStopNm, I2CuwStartUpGainStep, I2CuwStartUpCadNm, I2CuwTorLPFCadNm, \ I2CuwSpeedAssistSpdRpm, I2CuwSpeedAssistIMaxA, I2CuwAssistLimitBikeSpdStart, I2CuwAssistLimitBikeSpdStop, I2CuwCadenceAssistWeight, \ I2CuwCadenceAssKp, I2CuwCadenceVolStep, I2CuwCadenceVolDecStep, I2CuwCadenceCurStep, I2CuwCadenceMaxRpm, I2Creserve, I2Creserve, I2Creserve \ } // I2CswNmAssistChangeNum, // I2CswG1AssistCoefaH,I2CswG1AssistCoefaL,I2CswG1AssistCoefbH,I2CswG1AssistCoefbL,I2CswG1AssistCoefcH,I2CswG1AssistCoefcL,\ // I2CswG2AssistCoefaH,I2CswG2AssistCoefaL,I2CswG2AssistCoefbH,I2CswG2AssistCoefbL,I2CswG2AssistCoefcH,I2CswG2AssistCoefcL,\ // I2CswG3AssistCoefaH,I2CswG3AssistCoefaL,I2CswG3AssistCoefbH,I2CswG3AssistCoefbL,I2CswG3AssistCoefcH,I2CswG3AssistCoefcL,\ // I2CswG4AssistCoefaH,I2CswG4AssistCoefaL,I2CswG4AssistCoefbH,I2CswG4AssistCoefbL,I2CswG4AssistCoefcH,I2CswG4AssistCoefcL,\ // I2CswG5AssistCoefaH,I2CswG5AssistCoefaL,I2CswG5AssistCoefbH,I2CswG5AssistCoefbL,I2CswG5AssistCoefcH,I2CswG5AssistCoefcL,\ // I2CswCadAssistCoefa,I2CswCadAssistCoefb,I2CswCadAssistCoefc, /*History Parameters*/ #define I2CuwAssModSelect \ { \ 0 \ } #define I2CuwOpenTimes \ { \ 0 \ } #define I2CuwUsedTimeH \ { \ 0 \ } #define I2CuwUsedTimeL \ { \ 0 \ } #define I2CuwNTCTempMaxCe \ { \ 0 \ } #define I2CuwNTCTempMinCe \ { \ 100 \ } #define I2CuwAlamHOcurTimes \ { \ 0 \ } #define I2CuwAlamSOcurTimes \ { \ 0 \ } #define I2CuwAlamOHeatTimes \ { \ 0 \ } #define I2CuwAlamRotorLockTimes \ { \ 0 \ } #define I2CuwAlamPhsLossTimes \ { \ 0 \ } #define I2CuwAlamOVolTimes \ { \ 0 \ } #define I2CuwAlamUVolTimes \ { \ 0 \ } #define I2CuwAlamComOTimeTimes \ { \ 0 \ } #define I2CuwG1AvgPwrConsumption \ { \ 100 \ } #define I2CuwG2AvgPwrConsumption \ { \ 160 \ } #define I2CuwG3AvgPwrConsumption \ { \ 190 \ } #define I2CuwG4AvgPwrConsumption \ { \ 270 \ } #define I2CuwG5AvgPwrConsumption \ { \ 180 \ } #define I2CuwODOTripH \ { \ 0 \ } #define I2CuwODOTripL \ { \ 0 \ } #define I2CuwODOTimeH \ { \ 0 \ } #define I2CuwODOTimeL \ { \ 0 \ } #define I2CuwTripSumH \ { \ 0 \ } #define I2CuwTripSumL \ { \ 0 \ } #define I2CuwTripSumTimeH \ { \ 0 \ } #define I2CuwTripSumTimeL \ { \ 0 \ } #define I2CuwTorSensorAlamTimes \ { \ 0 \ } #define I2CuwCadSensorAlamTimes \ { \ 0 \ } #define I2CuwBikeSpdSensorAlamTimes \ { \ 0 \ } #define I2CuwPosSensorAlamTimes \ { \ 0 \ } #define I2CHistoryPara \ { \ I2CuwAssModSelect, I2CuwOpenTimes, I2CuwUsedTimeH, I2CuwUsedTimeL, I2CuwNTCTempMaxCe, I2CuwNTCTempMinCe, I2CuwAlamHOcurTimes, \ I2CuwAlamSOcurTimes, I2CuwAlamOHeatTimes, I2CuwAlamRotorLockTimes, I2CuwAlamPhsLossTimes, I2CuwAlamOVolTimes, I2CuwAlamUVolTimes, \ I2CuwAlamComOTimeTimes, I2CuwG1AvgPwrConsumption, I2CuwG2AvgPwrConsumption, I2CuwG3AvgPwrConsumption, I2CuwG4AvgPwrConsumption, \ I2CuwG5AvgPwrConsumption, I2CuwODOTripH, I2CuwODOTripL, I2CuwODOTimeH, I2CuwODOTimeL, I2CuwTripSumH, I2CuwTripSumL, I2CuwTripSumTimeH, \ I2CuwTripSumTimeL, I2CuwTorSensorAlamTimes, I2CuwCadSensorAlamTimes, I2CuwBikeSpdSensorAlamTimes, I2CuwPosSensorAlamTimes, I2Creserve, \ I2Creserve, I2Creserve, I2Creserve, I2Creserve, I2Creserve, I2Creserve, I2Creserve \ } /*Ride Params*/ #define I2CucRidePara_AssistRatioGain1 \ { \ 100 \ } #define I2CucRidePara_AssistAccelerationGain1 \ { \ 100 \ } #define I2CucRidePara_AssistRatioGain2 \ { \ 100 \ } #define I2CucRidePara_AssistAccelerationGain2 \ { \ 100 \ } #define I2CucRidePara_AssistRatioGain3 \ { \ 100 \ } #define I2CucRidePara_AssistAccelerationGain3 \ { \ 100 \ } #define I2CucRidePara_AssistRatioGain4 \ { \ 100 \ } #define I2CucRidePara_AssistAccelerationGain4 \ { \ 100 \ } #define I2CucRidePara_AssistRatioGain5 \ { \ 100 \ } #define I2CucRidePara_AssistAccelerationGain5 \ { \ 100 \ } #define I2CucRidePara_MaxCurrentGain1 \ { \ 100 \ } #define I2CucRidePara_MaxTorqueGain1 \ { \ 100 \ } #define I2CucRidePara_MaxCurrentGain2 \ { \ 100 \ } #define I2CucRidePara_MaxTorqueGain2 \ { \ 100 \ } #define I2CucRidePara_MaxCurrentGain3 \ { \ 100 \ } #define I2CucRidePara_MaxTorqueGain3 \ { \ 100 \ } #define I2CucRidePara_MaxCurrentGain4 \ { \ 100 \ } #define I2CucRidePara_MaxTorqueGain4 \ { \ 100 \ } #define I2CucRidePara_MaxCurrentGain5 \ { \ 100 \ } #define I2CucRidePara_MaxTorqueGain5 \ { \ 100 \ } #define I2CRidePara \ { \ I2CucRidePara_AssistRatioGain1, I2CucRidePara_AssistAccelerationGain1, I2CucRidePara_AssistRatioGain2, I2CucRidePara_AssistAccelerationGain2, \ I2CucRidePara_AssistRatioGain3, I2CucRidePara_AssistAccelerationGain3, I2CucRidePara_AssistRatioGain4, I2CucRidePara_AssistAccelerationGain4, \ I2CucRidePara_AssistRatioGain5, I2CucRidePara_AssistAccelerationGain5, \ I2CucRidePara_MaxCurrentGain1, I2CucRidePara_MaxTorqueGain1, I2CucRidePara_MaxCurrentGain2, I2CucRidePara_MaxTorqueGain2, \ I2CucRidePara_MaxCurrentGain3, I2CucRidePara_MaxTorqueGain3, I2CucRidePara_MaxCurrentGain4, I2CucRidePara_MaxTorqueGain4, \ I2CucRidePara_MaxCurrentGain5, I2CucRidePara_MaxTorqueGain5, \ I2CReserve_Byte, I2CReserve_Byte, I2CReserve_Byte, I2CReserve_Byte, I2CReserve_Byte, I2CReserve_Byte, \ I2CReserve_Byte, I2CReserve_Byte, I2CReserve_Byte, I2CReserve_Byte, I2CReserve_Byte, I2CReserve_Byte\ } /*Ride Params*/ #define I2CucBikePara2_NoneOBCEnable \ { \ BIKE_NONEOBCEBNABLE \ } #define I2CucBikePara2_RearLightCycle \ { \ BIKE_REARLIGHTCYCLE \ } #define I2CucBikePara2_RearLightDuty \ { \ BIKE_REARLIGHTDUTY \ } #define I2CucBikePara2_DeltaBikeSpeedLimit \ { \ BIKE_DELTASPEEDLIMITION \ } #define I2CBikePara2 \ { \ I2CucBikePara2_NoneOBCEnable, I2CucBikePara2_RearLightCycle, I2CucBikePara2_RearLightDuty, I2CucBikePara2_DeltaBikeSpeedLimit, \ I2Creserve, I2Creserve, I2Creserve, I2Creserve, I2Creserve, I2Creserve, \ I2Creserve, I2Creserve, I2Creserve, I2Creserve, I2Creserve, I2Creserve \ } /* SYSTEM2 PARA */ #define SYSPARA2 \ { \ I2CMotorPara, I2CBikePara, I2CMControlPara, I2CSensorPara, I2CAssistPara, I2CHistoryPara, I2CRidePara,I2CBikePara2,0 \ } /************************************************************************ TypeDefs & Structure defines (N/A) *************************************************************************/ typedef struct { UBYTE ubTX1NPages; UBYTE ubTX1NSingleBytes; } I2C_TX_COF; typedef struct { UBYTE ubSlaveAddr; UBYTE ubPageCnt; UBYTE ubTX1Cnt; UBYTE ubWriteAddr; BOOL blTX1FinishFlg; BOOL blTX2FinishFlg; BOOL blInitFinishFlg; } I2C_TX_OUT; typedef struct { BOOL blMotorParaFltFlg; BOOL blBikeParaFltFlg; BOOL blMControlParaFltFlg; BOOL blSensorParaFltFlg; BOOL blAssistParaFltFlg; BOOL blHistoryParaFltFlg; BOOL blRideParaFltFlg; BOOL blBikePara2FltFlg; BOOL ReadFinishFlg; } I2C_RXCRC_OUT; typedef struct { // UWORD uwDefault1; UWORD uwReal; // UWORD uwMin; // UWORD uwMax; // UWORD uwUnit; } UWORD_VALUE; typedef struct { // SWORD swDefault1; SWORD swReal; // SWORD swMin; // SWORD swMax; // UWORD uwUnit; } SWORD_VALUE; typedef struct { // UBYTE ucDefault1; UBYTE ucReal; // UBYTE ucMin; // UBYTE ucMax; // UBYTE ucUnit; // UBYTE RS; } UBYTE_VALUE; typedef struct { //SBYTE scDefault1; SBYTE scReal; // SBYTE scMin; // SBYTE scMax; // UBYTE ucUnit; // UBYTE RS; } SBYTE_VALUE; typedef struct { UWORD_VALUE uwPolePairs; UWORD_VALUE uwRsmOhm; UWORD_VALUE uwLduH; UWORD_VALUE uwLquH; UWORD_VALUE uwFluxmWb; UWORD_VALUE uwIdMaxA; UWORD_VALUE uwIdMinA; UWORD_VALUE uwRSpdRpm; UWORD_VALUE uwRPwrWt; UWORD_VALUE uwRCurA; UWORD_VALUE uwRVolV; UWORD_VALUE uwJD; UWORD_VALUE uwTorMaxNm; UWORD_VALUE uwReserve1; UWORD_VALUE uwReserve2; UWORD_VALUE uwReserve3; UWORD_VALUE uwReserve4; UWORD_VALUE uwReserve5; UWORD_VALUE uwRsserve6; } MOTOR_PARAMETER; typedef struct { UWORD_VALUE uwWheelPerimeter; SWORD_VALUE swDeltPerimeter; UWORD_VALUE uwMechRationMotor; UWORD_VALUE uwThrottleMaxSpdKmH; UWORD_VALUE uwCartSpdKmH; UWORD_VALUE uwNmFrontChainring; UWORD_VALUE uwNmBackChainring; UWORD_VALUE uwAssistSelect1; UWORD_VALUE uwAssistSelect2; UWORD_VALUE uwLightConfig; UWORD_VALUE uwStartMode; UWORD_VALUE uwAutoPowerOffTime; UWORD_VALUE uwReserve4; } BIKE_PARAMETER; typedef struct { UWORD_VALUE ParaFirstSetFlg; UWORD_VALUE SpiOffsetFirstSetFlg; UWORD_VALUE uwSPIPosOffsetOrigin; UWORD_VALUE uwSPIPosOffsetNow; UWORD_VALUE uwIPeakMaxA; UWORD_VALUE uwAlamOCurA; UWORD_VALUE uwAlamOVolV; UWORD_VALUE uwAlamUVolV; UWORD_VALUE uwAlamOverSpdRpm; UWORD_VALUE uwAlamOverHeatCe; UWORD_VALUE uwAlamRecHeatCe; UWORD_VALUE uwPwrLimitStartCe; UWORD_VALUE uwAlamMotorOverHeatCe; UWORD_VALUE uwAlamMotorRecHeatCe; UWORD_VALUE uwPwrLimitMotorStartCe; UWORD_VALUE uwControlFunEN; UWORD_VALUE uwReserve1; UWORD_VALUE uwReserve2; } MControl_PARAMETER; typedef struct { UWORD_VALUE uwTorSensorOffsetOrigin; UWORD_VALUE uwTorSensorOffsetNow1; UWORD_VALUE uwTorSensorOffsetNow2; UWORD_VALUE uwTorSensorOffsetNow3; UWORD_VALUE uwTorSensorOffsetNow4; UWORD_VALUE uwBikeTorMaxNm; UWORD_VALUE uwBikeTor1StepRealNm; UWORD_VALUE uwBikeTor1StepADC; UWORD_VALUE uwBikeTor2StepRealNm; UWORD_VALUE uwBikeTor2StepADC; UWORD_VALUE uwBikeTor3StepRealNm; UWORD_VALUE uwBikeTor3StepADC; UWORD_VALUE uwBikeTor4StepRealNm; UWORD_VALUE uwBikeTor4StepADC; UWORD_VALUE uwTorque_SensorPulseNm;//力矩脉冲 UWORD_VALUE uwBikeSpdSensorPulseNm; UWORD_VALUE uwCad_SensorPulseNm;//uwCad_SensorPulseNm; UWORD_VALUE uwReserve2; UWORD_VALUE uwReserve3; UWORD_VALUE uwReserve4; } Sensor_PARAMETER; typedef struct { UWORD_VALUE uwStartupGain; UWORD_VALUE uwStartcruiseGain; UWORD_VALUE uwAssistStartNm; UWORD_VALUE uwAssistStopNm; UWORD_VALUE uwStartUpGainStep; UWORD_VALUE uwStartUpCadNm; UWORD_VALUE uwTorLPFCadNm; UWORD_VALUE uwSpeedAssistSpdRpm; UWORD_VALUE uwSpeedAssistIMaxA; UWORD_VALUE uwAssistLimitBikeSpdStart; UWORD_VALUE uwAssistLimitBikeSpdStop; UWORD_VALUE uwCadenceAssistWeight; UWORD_VALUE uwCadenceAssKp; SWORD_VALUE swCadenceVolStep; SWORD_VALUE swCadenceVolDecStep; SWORD_VALUE swCadenceCurStep; UWORD_VALUE uwMaxCadRpm; UWORD_VALUE uwReserve2; UWORD_VALUE uwReserve3; UWORD_VALUE uwReserve4; } Assist_PARAMETER; typedef struct { UWORD_VALUE uwAssModSelect; UWORD_VALUE uwOpenTimes; UWORD_VALUE uwUsedTimeH; UWORD_VALUE uwUsedTimeL; SWORD_VALUE swNTCTempMaxCe; SWORD_VALUE swNTCTempMinCe; UWORD_VALUE uwAlamHOcurTimes; UWORD_VALUE uwAlamSOcurTimes; UWORD_VALUE uwAlamOHeatTimes; UWORD_VALUE uwAlamRotorLockTimes; UWORD_VALUE uwAlamPhsLossTimes; UWORD_VALUE uwAlamOVolTimes; UWORD_VALUE uwAlamUVolTimes; UWORD_VALUE uwAlamComOTimeTimes; UWORD_VALUE uwG1AvgPwrConsumption; UWORD_VALUE uwG2AvgPwrConsumption; UWORD_VALUE uwG3AvgPwrConsumption; UWORD_VALUE uwG4AvgPwrConsumption; UWORD_VALUE uwG5AvgPwrConsumption; UWORD_VALUE uwODOTripH; UWORD_VALUE uwODOTripL; UWORD_VALUE uwODOTimeH; UWORD_VALUE uwODOTimeL; UWORD_VALUE uwTripSumH; UWORD_VALUE uwTripSumL; UWORD_VALUE uwTripSumTimeH; UWORD_VALUE uwTripSumTimeL; UWORD_VALUE uwTorSensorAlamTimes; UWORD_VALUE uwCadSensorAlamTimes; UWORD_VALUE uwBikeSpdSensorAlamTimes; UWORD_VALUE uwPosSensorAlamTimes; UWORD_VALUE uwRealODOTripH;//不可更改 UWORD_VALUE uwRealODOTripL; UWORD_VALUE uwRealODOTimeH; UWORD_VALUE uwRealODOTimeL; UWORD_VALUE reserve1; UWORD_VALUE reserve2; UWORD_VALUE reserve3; UWORD_VALUE reserve4; UWORD uwCRC; } History_PARAMETER; /** * @brief MC生产信息,占用空间32bytes * */ typedef struct { char Manufacturer[8]; ///>生产厂商 ASCII,0x2E结束,无效填充0x20 char MacAddr[8]; ///>生产地 ASCII,0x2E结束,无效填充0x20 char MacDate[8]; ///>生产日期 ASCII,0x2E结束,无效填充0x20 char MacBrand[8]; } MC_MacInfo_Struct_t; /** * @brief MC生产信息,占用空间32bytes * */ typedef struct { char CustomASCII1[16]; ///>生产厂商 ASCII,0x2E结束,无效填充0x20 char CustomASCII2[16]; ///>生产地 ASCII,0x2E结束,无效填充0x20 char CustomASCII3[16]; ///>生产日期 ASCII,0x2E结束,无效填充0x20 } MC_RS_ASCII_Struct_t; typedef struct { UWORD uwSaveFlg; UWORD uwEEFirstDefaultSetFlg; UWORD uwSPIOffsetFirstSetFlg; UWORD uwTestParaSaveFlg; UWORD RunModelSelect; UWORD ThetaGetModelSelect; UWORD CurrentSampleModelSelect; UWORD RotateDirectionSelect; UWORD uwInitPosCurAmp; UWORD uwVFControlVolAmp; UWORD uwIFControlCurAmp; UWORD uwVFIFTargetFreHz; UWORD uwSpeedLoopAccRate; UWORD uwSpeedLoopDecRate; UWORD uwSpeedLoopBandWidthHz; UWORD uwSpeedLoopCoefM; UWORD uwCuerrentLoopBandWidthHz; UWORD uwCurrentLoopCoefM; UWORD uwFluxObsBandWidthHz; UWORD uwFluxObsCoefM; UWORD uwThetaObsPLLBandWidthHz; UWORD uwThetaObsPLLCoefM; UWORD uwJm; UWORD uwPWMMaxDuty; UWORD uwPWM7to5Duty; UWORD uwPwrLimit; UWORD uwPwrLimitError; UWORD uwPwrLimitKp; UWORD uwPwrLimitKi; UWORD reserve1; UWORD reserve2; UWORD reserve3; UWORD reserve4; UWORD reserve5; UWORD reserve6; UWORD reserve7; UWORD reserve8; } UPC_TestParaInfo_Struct_t; // UBYTE ubMotorVersion[16]; // UBYTE ubSN[16]; // MC_MacInfo_Struct_t ubProdInfo; typedef struct { SLONG slTorqAssGain[15][4]; SLONG slCadAssGain[5][4]; MC_RS_ASCII_Struct_t ubRsASSCII; UPC_TestParaInfo_Struct_t stTestParaInfo; } FLASH_PARA_TYPE; typedef struct { UWORD uwTEMP_RES0;//0度电阻值 UWORD uwTEMP_RES1;//25度电阻值 UWORD uwTEMP_RES2;//50度电阻值 UWORD uwTEMP_RES3;//75度电阻值 UWORD uwTEMP_RES4;//100度电阻值 UWORD uwTEMP_RES5;//125度电阻值 UWORD uwTEMP_RES6;//150度电阻值 }EEP_RES_Struct; typedef struct { UBYTE_VALUE ucAssistRatioGain1; //1% UBYTE_VALUE ucAssistAccelerationGain1; //1% UBYTE_VALUE ucAssistRatioGain2; //1% UBYTE_VALUE ucAssistAccelerationGain2; //1% UBYTE_VALUE ucAssistRatioGain3; //1% UBYTE_VALUE ucAssistAccelerationGain3; //1% UBYTE_VALUE ucAssistRatioGain4; //1% UBYTE_VALUE ucAssistAccelerationGain4; //1% UBYTE_VALUE ucAssistRatioGain5; //1% UBYTE_VALUE ucAssistAccelerationGain5; //1% UBYTE_VALUE ucMaxCurrentGain1; //1% UBYTE_VALUE ucMaxTorqueGain1; //1% UBYTE_VALUE ucMaxCurrentGain2; //1% UBYTE_VALUE ucMaxTorqueGain2; //1% UBYTE_VALUE ucMaxCurrentGain3; //1% UBYTE_VALUE ucMaxTorqueGain3; //1% UBYTE_VALUE ucMaxCurrentGain4; //1% UBYTE_VALUE ucMaxTorqueGain4; //1% UBYTE_VALUE ucMaxCurrentGain5; //1% UBYTE_VALUE ucMaxTorqueGain5; //1% UBYTE_VALUE reserve1; UBYTE_VALUE reserve2; UBYTE_VALUE reserve3; UBYTE_VALUE reserve4; UBYTE_VALUE reserve5; UBYTE_VALUE reserve6; UBYTE_VALUE reserve7; UBYTE_VALUE reserve8; UBYTE_VALUE reserve9; UBYTE_VALUE reserve10; UBYTE_VALUE reserve11; UBYTE_VALUE reserve12; }Ride_PARAMETER; typedef struct { UWORD_VALUE uwNoneOBCEnable; UWORD_VALUE uwRearLightCycle; UWORD_VALUE uwRearLightDuty; SWORD_VALUE swDeltaBikeSpeedLimit; UWORD_VALUE reserve1; UWORD_VALUE reserve2; UWORD_VALUE reserve3; UWORD_VALUE reserve4; UWORD_VALUE reserve5; UWORD_VALUE reserve6; UWORD_VALUE reserve7; UWORD_VALUE reserve8; UWORD_VALUE reserve9; UWORD_VALUE reserve10; UWORD_VALUE reserve11; UWORD_VALUE reserve12; } BIKE_PARAMETER2; typedef struct { EEP_RES_Struct EEP_MOSA;//25度下MOS内阻 EEP_RES_Struct EEP_MOSB; EEP_RES_Struct EEP_MOSC; UWORD EEP_K50; //系数1 UWORD EEP_K75; UWORD EEP_K100; UWORD EEP_K125; UWORD EEP_K150; UWORD reserve1; UWORD reserve2; UWORD reserve3; UWORD reserve4; UWORD reserve5; UWORD reserve6; UWORD reserve7; UWORD reserve8; UWORD uwCRC; }MOSEEPROM_Struct; typedef struct { MOTOR_PARAMETER stMotorPara; BIKE_PARAMETER stBikePara; MControl_PARAMETER stMControlPara; Sensor_PARAMETER stSensorPara; Assist_PARAMETER stAssistPara; FLASH_PARA_TYPE flash_stPara; MOSEEPROM_Struct EepromMosPara; Ride_PARAMETER stRidePara; BIKE_PARAMETER2 stBikePara2; UWORD uwCRC; } SYSTEM_PARAMETER2; typedef struct { UBYTE ubMotorVersion[16]; UBYTE ubSN[16]; MC_MacInfo_Struct_t ubProdInfo; UBYTE ucProductLabel[32]; UWORD uwCRC; }PRODUCT_INFO_Struct; /************************************************************************ Constant Table *************************************************************************/ extern MC_MacInfo_Struct_t MC_MacInfo; extern MC_RS_ASCII_Struct_t MC_RsASSCII; /************************************************************************ Exported Variables *************************************************************************/ #ifdef _I2C_MASTER_C_ _I2C_MASTER_EXT SYSTEM_PARAMETER2 Syspara2 ;//= SYSPARA2; _I2C_MASTER_EXT PRODUCT_INFO_Struct Productionpara; //_I2C_MASTER_EXT I2C_TX_COF i2c_stTXCoef; //_I2C_MASTER_EXT I2C_TX_OUT i2c_stTXOut; _I2C_MASTER_EXT I2C_RXCRC_OUT i2c_stRXCRCOut = {FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE}; // _I2C_MASTER_EXT MOSEEPROM_Struct EepromMosPara; // //_I2C_MASTER_EXT UBYTE I2C_ubReadBuffer[I2C_RERX1_TIMES][I2C1_RX_DMA_NUM]; //_I2C_MASTER_EXT UWORD I2C_uwMotorParaRead[I2C_MOTOR_PARA_N_WORDS]; //_I2C_MASTER_EXT UWORD I2C_uwBikeParaRead[I2C_BIKE_PARA_N_WORDS]; //_I2C_MASTER_EXT UWORD I2C_uwMControlRead[I2C_MCONTROL_PARA_N_WORDS]; //_I2C_MASTER_EXT UWORD I2C_uwSensorRead[I2C_SENSOR_PARA_N_WORDS]; //_I2C_MASTER_EXT UWORD I2C_uwAssistParaRead[I2C_ASSIST_PARA_N_WORDS]; // _I2C_MASTER_EXT UWORD I2C_uwHistoryParaRead[I2C_HISTORY_PARA_N_WORDS]; //_I2C_MASTER_EXT UBYTE I2C_ubWriteBuffer[I2C_TX1_NBYTES]; //_I2C_MASTER_EXT UBYTE I2C_ubHistoyWriteBuffer[I2C_TX2_NBYTES]; // //_I2C_MASTER_EXT UBYTE *I2C_pWriteBuffer = I2C_ubWriteBuffer; //_I2C_MASTER_EXT UBYTE *I2C_pHistoryWriteBuffer = I2C_ubHistoyWriteBuffer; //_I2C_MASTER_EXT UBYTE *I2C_pReadBuffer = I2C_ubReadBuffer[0]; // //_I2C_MASTER_EXT BOOL I2C_TimeOutFlg = FALSE; //_I2C_MASTER_EXT BOOL I2C_DMA_TimeOutFlg = FALSE; //_I2C_MASTER_EXT BOOL I2C_DMA_FltFlg = FALSE; //_I2C_MASTER_EXT UBYTE I2C_TimeOutCnt = 0; //_I2C_MASTER_EXT BOOL I2C_EEFltFlg = FALSE; #else _I2C_MASTER_EXT SYSTEM_PARAMETER2 Syspara2; _I2C_MASTER_EXT PRODUCT_INFO_Struct Productionpara; //_I2C_MASTER_EXT I2C_TX_COF i2c_stTXCoef; //_I2C_MASTER_EXT I2C_TX_OUT i2c_stTXOut; _I2C_MASTER_EXT I2C_RXCRC_OUT i2c_stRXCRCOut; // _I2C_MASTER_EXT MOSEEPROM_Struct EepromMosPara; // //_I2C_MASTER_EXT UBYTE I2C_ubReadBuffer[I2C_RERX1_TIMES][I2C1_RX_DMA_NUM]; //_I2C_MASTER_EXT UWORD I2C_uwMotorParaRead[I2C_MOTOR_PARA_N_WORDS]; //_I2C_MASTER_EXT UWORD I2C_uwBikeParaRead[I2C_BIKE_PARA_N_WORDS]; //_I2C_MASTER_EXT UWORD I2C_uwMControlRead[I2C_MCONTROL_PARA_N_WORDS]; //_I2C_MASTER_EXT UWORD I2C_uwSensorRead[I2C_SENSOR_PARA_N_WORDS]; //_I2C_MASTER_EXT UWORD I2C_uwAssistParaRead[I2C_ASSIST_PARA_N_WORDS]; //_I2C_MASTER_EXT UWORD I2C_uwHistoryParaRead[I2C_HISTORY_PARA_N_WORDS]; //_I2C_MASTER_EXT UBYTE I2C_ubWriteBuffer[I2C_TX1_NBYTES]; //_I2C_MASTER_EXT UBYTE I2C_ubHistoyWriteBuffer[I2C_TX2_NBYTES]; // //_I2C_MASTER_EXT UBYTE *I2C_pWriteBuffer; //_I2C_MASTER_EXT UBYTE *I2C_pHistoryWriteBuffer; //_I2C_MASTER_EXT UBYTE *I2C_pReadBuffer; // //_I2C_MASTER_EXT BOOL I2C_TimeOutFlg; //_I2C_MASTER_EXT BOOL I2C_DMA_TimeOutFlg; //_I2C_MASTER_EXT BOOL I2C_DMA_FltFlg; //_I2C_MASTER_EXT UBYTE I2C_TimeOutCnt; //_I2C_MASTER_EXT BOOL I2C_EEFltFlg; #endif /************************************************************************ Exported Function Call Prototypes *************************************************************************/ //#ifdef _I2C_MASTER_C_ // //_I2C_MASTER_EXT void i2c_voReadTest(void); //_I2C_MASTER_EXT void i2c_voWriteTest(void); //_I2C_MASTER_EXT void i2c_voBufferReadTest(void); // //_I2C_MASTER_EXT void i2c_voWaitEEReady(void); //_I2C_MASTER_EXT void i2c_voTXCoef(I2C_TX_COF *out); //_I2C_MASTER_EXT void i2c_voInfoWriteBuffer(void); //_I2C_MASTER_EXT void i2c_voParaWriteBuffer(void); //_I2C_MASTER_EXT void i2c_voHistoryWriteBuffer(void); //_I2C_MASTER_EXT void i2c_voPageWrite2EE(UBYTE *pBuffer, UBYTE WriteAddr, UBYTE NBytesToWrite); //_I2C_MASTER_EXT void i2c_voDefaultWrite2EE(I2C_TX_COF *coef, I2C_TX_OUT *out); //_I2C_MASTER_EXT void i2c_voHistoryWrite2EE(I2C_TX_COF *coef, I2C_TX_OUT *out); //_I2C_MASTER_EXT void i2c_voSysparaReadFromEE(I2C_RXCRC_OUT *out); //_I2C_MASTER_EXT UWORD i2c_uwCRCCcitt(UBYTE *ptubBuf, UWORD length); //_I2C_MASTER_EXT void i2c_voReadBufferCRC(I2C_RXCRC_OUT *out); //_I2C_MASTER_EXT void i2c_voGetValueFrmBuffer(I2C_RXCRC_OUT *out); //_I2C_MASTER_EXT void i2c_voWriteTest(void); //#else //_I2C_MASTER_EXT void i2c_voReadTest(void); //_I2C_MASTER_EXT void i2c_voWriteTest(void); //_I2C_MASTER_EXT void i2c_voBufferReadTest(void); // //_I2C_MASTER_EXT void i2c_voWaitEEReady(void); //_I2C_MASTER_EXT void i2c_voTXCoef(I2C_TX_COF *out); //_I2C_MASTER_EXT void i2c_voDefaultWriteBuffer(void); //_I2C_MASTER_EXT void i2c_voParaWriteBuffer(void); //_I2C_MASTER_EXT void i2c_voHistoryWriteBuffer(void); //_I2C_MASTER_EXT void i2c_voPageWrite2EE(UBYTE *pBuffer, UBYTE WriteAddr, UBYTE NBytesToWrite); //_I2C_MASTER_EXT void i2c_voInfoWrite2EE(I2C_TX_COF *coef, I2C_TX_OUT *out); //_I2C_MASTER_EXT void i2c_voHistoryWrite2EE(I2C_TX_COF *coef, I2C_TX_OUT *out); //_I2C_MASTER_EXT void i2c_voSysparaReadFromEE(I2C_RXCRC_OUT *out); //_I2C_MASTER_EXT UWORD i2c_uwCRCCcitt(UBYTE *ptubBuf, UWORD length); //_I2C_MASTER_EXT void i2c_voReadBufferCRC(I2C_RXCRC_OUT *out); //_I2C_MASTER_EXT void i2c_voGetValueFrmBuffer(I2C_RXCRC_OUT *out); //_I2C_MASTER_EXT void i2c_voWriteTest(void); // //#endif /************************************************************************ Flag Define (N/A) *************************************************************************/ #endif /************************************************************************ Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* End of this File (EOF)! Do not put anything after this part! *************************************************************************/