i2c_master.h 35 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061
  1. /************************************************************************
  2. Project: Welling Motor Control Paltform
  3. Filename: i2c_master.h
  4. Partner Filename: i2c_master.c
  5. Description: The header file of i2c_master.c
  6. Complier: IAR Embedded Workbench for ARM 8.40.2
  7. CPU TYPE : GD32F30x
  8. *************************************************************************
  9. Copyright (c) 2022 Welling Motor Technology(Shanghai) Co. Ltd.
  10. All rights reserved.
  11. *************************************************************************
  12. *************************************************************************
  13. Revising History (ECL of this file):
  14. liyue create this file;
  15. ************************************************************************/
  16. /************************************************************************
  17. Beginning of File, do not put anything above here except notes
  18. Compiler Directives
  19. ************************************************************************/
  20. #ifndef I2C_MASTER_H
  21. #define I2C_MASTER_H
  22. /************************************************************************
  23. Included File
  24. *************************************************************************/
  25. #include "user.h"
  26. #include "AssistCurve.h"
  27. #include "bikespeed.h"
  28. #include "Cadence.h"
  29. /************************************************************************
  30. Compiler Directives (N/A)
  31. *************************************************************************/
  32. #ifdef _I2C_MASTER_C_
  33. #define _I2C_MASTER_EXT
  34. #else
  35. #define _I2C_MASTER_EXT extern
  36. #endif
  37. /************************************************************************
  38. Definitions & Macros
  39. *************************************************************************/
  40. /* EEPROM information */
  41. #define I2C_EE_SIZE_NBYTES 1024 // 24C08: 8Kb,16Bytes/Page,64Pages
  42. #define I2C_EE_PAGESIZE_NBYTES 16
  43. #define I2C_EE_SIZE_NBLOCKS I2C_EE_SIZE_NBYTES / 256
  44. #define I2C_EE_SIZE_NPAGES I2C_EE_SIZE_NBYTES / I2C_EE_PAGESIZE_NBYTES
  45. #define I2C_SLAVEADDR_BLOCK1 0x00A0 // First 256 Bytes:0xA0, Second:0xA2,...0xA4,0xA6
  46. #define I2C_SLAVEADDR_BLOCK2 0x00A2 // A0/A2/A4/A6: 7-bit slave address to be sent
  47. #define I2C_SLAVEADDR_BLOCK3 0x00A4
  48. #define I2C_SLAVEADDR_BLOCK4 0x00A6
  49. /* Size of parameter written to EEPROM */
  50. #define I2C_MOTOR_PARA_N_BYTES 38 // I2C_SLAVEADDR_BLOCK1
  51. #define I2C_BIKE_PARA_N_BYTES 26 // I2C_SLAVEADDR_BLOCK1
  52. #define I2C_MCONTROL_PARA_N_BYTES 36 // I2C_SLAVEADDR_BLOCK1
  53. #define I2C_SENSOR_PARA_N_BYTES 40 // I2C_SLAVEADDR_BLOCK1
  54. #define I2C_ASSIST_PARA_N_BYTES 40 // I2C_SLAVEADDR_BLOCK1
  55. #define I2C_GEARBOX_PARA_N_BYTES 16 // I2C_SLAVEADDR_BLOCK1
  56. #define I2C_HISTORY_PARA_N_BYTES 78 // I2C_SLAVEADDR_BLOCK2
  57. #define I2C_MOTOR_PARA_N_WORDS I2C_MOTOR_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK1
  58. #define I2C_BIKE_PARA_N_WORDS I2C_BIKE_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK1
  59. #define I2C_MCONTROL_PARA_N_WORDS I2C_MCONTROL_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK1
  60. #define I2C_SENSOR_PARA_N_WORDS I2C_SENSOR_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK1
  61. #define I2C_ASSIST_PARA_N_WORDS I2C_ASSIST_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK1
  62. #define I2C_GEARBOX_PARA_N_WORDS I2C_GEARBOX_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK2
  63. #define I2C_HISTORY_PARA_N_WORDS I2C_HISTORY_PARA_N_BYTES / 2 // I2C_SLAVEADDR_BLOCK2
  64. #define I2C_PBUFFER_NWORDS 5
  65. /* Address of parameter written to EEPROM */
  66. #define I2C_MOTOR_PARA_ARDDR 0X00
  67. #define I2C_BIKE_PARA_ARDDR I2C_MOTOR_PARA_ARDDR + I2C_MOTOR_PARA_N_BYTES
  68. #define I2C_MCONTROL_PARA_ARDDR I2C_BIKE_PARA_ARDDR + I2C_BIKE_PARA_N_BYTES
  69. #define I2C_SENSOR_PARA_ARDDR I2C_MCONTROL_PARA_ARDDR + I2C_MCONTROL_PARA_N_BYTES
  70. #define I2C_ASSIST_PARA_ARDDR I2C_SENSOR_PARA_ARDDR + I2C_SENSOR_PARA_N_BYTES
  71. #define I2C_GEARBOX_PARA_ADDR I2C_ASSIST_PARA_ARDDR + I2C_ASSIST_PARA_N_BYTES
  72. #define I2C_HISTORY_PARA_ARDDR 0x00
  73. #define I2C_MOTOR_PARA_CRC_ARDDR I2C_GEARBOX_PARA_ADDR + I2C_GEARBOX_PARA_N_BYTES
  74. #define I2C_BIKE_PARA_CRC_ARDDR I2C_MOTOR_PARA_CRC_ARDDR + 2
  75. #define I2C_MCONTROL_PARA_CRC_ARDDR I2C_BIKE_PARA_CRC_ARDDR + 2
  76. #define I2C_SENSOR_PARA_CRC_ARDDR I2C_MCONTROL_PARA_CRC_ARDDR + 2
  77. #define I2C_ASSIST_PARA_CRC_ARDDR I2C_SENSOR_PARA_CRC_ARDDR + 2
  78. #define I2C_GEARBOX_PARA_CRC_ADDR I2C_ASSIST_PARA_CRC_ARDDR + 2
  79. #define I2C_HISTORY_PARA_CRC_ARDDR I2C_HISTORY_PARA_ARDDR + I2C_HISTORY_PARA_N_BYTES
  80. /* I2C TX size: cannot exceed 255, CRC: 6 Bytes */
  81. #define I2C_TX1_NBYTES \
  82. 12 + 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 + I2C_GEARBOX_PARA_N_BYTES // 172 bytes
  83. #define I2C_RETX1_TIMES 1
  84. #define I2C_TX2_NBYTES 2 + I2C_HISTORY_PARA_N_BYTES // 78 Bytes
  85. #define I2C_RETX2_TIMES 1
  86. #define I2C1_TX_DMA_NUM (I2C_TX1_NBYTES > I2C_TX2_NBYTES ? I2C_TX1_NBYTES : I2C_TX2_NBYTES)
  87. /* I2C RX size: cannot exceed 255 */
  88. #define I2C_RX1_NBYTES I2C_TX1_NBYTES
  89. #define I2C_RX2_NBYTES I2C_TX2_NBYTES
  90. #define I2C1_RX_DMA_NUM (I2C_RX1_NBYTES > I2C_RX2_NBYTES ? I2C_RX1_NBYTES : I2C_RX2_NBYTES)
  91. #define I2C_RX_TIMES 2
  92. /* I2C communication timeout */
  93. #define I2C_SHORT_TIMEOUT 10000
  94. #define I2C_LONG_TIMEOUT ((ULONG)I2C_SHORT_TIMEOUT * 6)
  95. #define I2C_DMA_TIMEOUT 100000L
  96. /************************************************************************
  97. System Parameters
  98. *************************************************************************/
  99. /*Reserve Para*/
  100. #define I2CReserve \
  101. { \
  102. 500, 500, 0, 0, 0 \
  103. }
  104. /* Motor Para */
  105. #define I2CuwPolePairs \
  106. { \
  107. ((UWORD)M_POLE_PAIRS), 0, 0, 0, 0 \
  108. }
  109. #define I2CuwRsmOhm \
  110. { \
  111. ((UWORD)M_RS_OHM), 0, 0, 0, 0 \
  112. }
  113. #define I2CuwLduH \
  114. { \
  115. ((UWORD)M_LD_NOLOAD_MH), 0, 0, 0, 0 \
  116. }
  117. #define I2CuwLquH \
  118. { \
  119. ((UWORD)M_LQ_NOLOAD_MH), 0, 0, 0, 0 \
  120. }
  121. #define I2CuwFluxmWb \
  122. { \
  123. ((UWORD)M_FLUX_WB), 0, 0, 0, 0 \
  124. }
  125. #define I2CuwIdMaxA \
  126. { \
  127. ((UWORD)M_ID_MAX_AP), 0, 0, 0, 0 \
  128. }
  129. #define I2CuwIdMinA \
  130. { \
  131. ((UWORD)M_ID_MIN_AP), 0, 0, 0, 0 \
  132. }
  133. #define I2CuwRSpdRpm \
  134. { \
  135. ((UWORD)M_R_SPD_RPM), 0, 0, 0, 0 \
  136. }
  137. #define I2CuwRPwrWt \
  138. { \
  139. ((UWORD)M_R_PWR_WT), 0, 0, 0, 0 \
  140. }
  141. #define I2CuwRCurA \
  142. { \
  143. ((UWORD)M_R_IRMS_A), 0, 0, 0, 0 \
  144. }
  145. #define I2CuwRVolV \
  146. { \
  147. ((UWORD)M_R_UDC_v), 0, 0, 0, 0 \
  148. }
  149. #define I2CuwJD \
  150. { \
  151. ((UWORD)M_JD), 0, 0, 0, 0 \
  152. }
  153. #define I2CuwTorMaxNm \
  154. { \
  155. ((UWORD)M_MAX_TOR_NM), 0, 0, 0, 0 \
  156. }
  157. #define I2CMotorPara \
  158. { \
  159. I2CuwPolePairs, I2CuwRsmOhm, I2CuwLduH, I2CuwLquH, I2CuwFluxmWb, I2CuwIdMaxA, I2CuwIdMinA, I2CuwRSpdRpm, I2CuwRPwrWt, I2CuwRCurA, \
  160. I2CuwRVolV, I2CuwJD, I2CuwTorMaxNm, I2CReserve, I2CReserve, I2CReserve, I2CReserve, I2CReserve, I2CReserve \
  161. }
  162. /* Bike Para */
  163. #define I2CuwWheelPerimeter \
  164. { \
  165. ((UWORD)BIKE_WHEEL_PERIMETER), 0, 0, 0, 0 \
  166. }
  167. #define I2CuwMechRationMotor \
  168. { \
  169. ((UWORD)BIKE_MECH_RATION), 0, 0, 0, 0 \
  170. }
  171. #define I2CuwAssistMaxSpdKmH \
  172. { \
  173. ((UWORD)BIKE_SPEED_IQLIMIT_THRESHOLD1), 0, 0, 0, 0 \
  174. }
  175. #define I2CuwThrottleMaxSpdKmH \
  176. { \
  177. ((UWORD)BIKE_SPEED_THROTTLE_MAX), 0, 0, 0, 0 \
  178. }
  179. #define I2CuwNmFrontChainring \
  180. { \
  181. BIKE_FRONTTEETH_NMB, 0, 0, 0, 0 \
  182. }
  183. #define I2CuwNmBackChainring \
  184. { \
  185. BIKE_BACKTEETH_NMB, 0, 0, 0, 0 \
  186. }
  187. #define I2CuwAssistSelect1 \
  188. { \
  189. ((UWORD)BIKE_ASSIST_MODE1), 0, 0, 0, 0 \
  190. }
  191. #define I2CuwAssistSelect2 \
  192. { \
  193. ((UWORD)BIKE_ASSIST_MODE2), 0, 0, 0, 0 \
  194. }
  195. #define I2CuwLightVoltage \
  196. { \
  197. ((UWORD)BIKE_LIGHT_PARA), 0, 0, 0, 0 \
  198. }
  199. #define I2CuwDeltDiameter \
  200. { \
  201. 0, 0, 0, 0, 0 \
  202. }
  203. #define I2CuwStartMode \
  204. { \
  205. ((UWORD)BIKE_START_MODE), 0, 0, 0, 0 \
  206. }
  207. #define I2CuwAutoPowerOffTime \
  208. { \
  209. ((UWORD)BIKE_POWER_PARA), 0, 0, 0, 0 \
  210. }
  211. #define I2CBikePara \
  212. { \
  213. I2CuwWheelPerimeter, I2CuwMechRationMotor, I2CuwAssistMaxSpdKmH, I2CuwThrottleMaxSpdKmH, I2CuwNmFrontChainring, I2CuwNmBackChainring, \
  214. I2CuwAssistSelect1, I2CuwAssistSelect2, I2CuwLightVoltage, I2CuwDeltDiameter, I2CuwStartMode, I2CuwAutoPowerOffTime, I2CReserve \
  215. }
  216. /* MControl Para */
  217. #define I2CParaFirstSetFlg \
  218. { \
  219. 1, 0, 0, 0, 0 \
  220. }
  221. #define I2CSpiOffsetFirstSetFlg \
  222. { \
  223. 0, 0, 0, 0, 0 \
  224. }
  225. #define I2CswSPIPosOffsetOrigin \
  226. { \
  227. 0, 0, 0, 0, 0 \
  228. }
  229. #define I2CswSPIPosOffsetNow \
  230. { \
  231. 0, 0, 0, 0, 0 \
  232. }
  233. #define I2CuwIPeakMaxA \
  234. { \
  235. ((UWORD)M_IS_PEAK_MAX_AP), 0, 0, 0, 0 \
  236. }
  237. #define I2CuwAlamOCurA \
  238. { \
  239. ((UWORD)ALM_OVR_CNT_VAL), 0, 0, 0, 0 \
  240. }
  241. #define I2CuwAlamOVolV \
  242. { \
  243. ((UWORD)ALM_OVR_VLT_LVL3_VAL), 0, 0, 0, 0 \
  244. }
  245. #define I2CuwAlamUVolV \
  246. { \
  247. ((UWORD)ALM_UNDR_VLT_LVL2_VAL), 0, 0, 0, 0 \
  248. }
  249. #define I2CuwAlamOverSpdRpm \
  250. { \
  251. ((UWORD)ALM_OVR_SPD_VAL), 0, 0, 0, 0 \
  252. }
  253. #define I2CuwAlamOverHeatCe \
  254. { \
  255. ((UWORD)ALM_IPM_OVR_HEAT_VAL), 0, 0, 0, 0 \
  256. }
  257. #define I2CuwAlamRecHeatCe \
  258. { \
  259. ((UWORD)ALM_IPM_OVR_HEAT_REC_VAL), 0, 0, 0, 0 \
  260. }
  261. #define I2CuwPwrLimitStartCe \
  262. { \
  263. ((UWORD)PWRLIM_START_THRESHOLD_TEMP), 0, 0, 0, 0 \
  264. }
  265. #define I2CMControlPara \
  266. { \
  267. I2CParaFirstSetFlg,I2CSpiOffsetFirstSetFlg,I2CswSPIPosOffsetOrigin, I2CswSPIPosOffsetNow, I2CuwIPeakMaxA, I2CuwAlamOCurA, I2CuwAlamOVolV, I2CuwAlamUVolV, I2CuwAlamOverSpdRpm, \
  268. I2CuwAlamOverHeatCe, I2CuwAlamRecHeatCe, I2CuwPwrLimitStartCe, I2CReserve, I2CReserve, I2CReserve, I2CReserve, I2CReserve, I2CReserve \
  269. }
  270. /* Sensor Para */
  271. #define I2CuwTorSensorOffsetOrigin \
  272. { \
  273. 0, 0, 0, 0, 0 \
  274. }
  275. #define I2CuwTorSensorOffsetNow1 \
  276. { \
  277. 0, 0, 0, 0, 0 \
  278. }
  279. #define I2CuwTorSensorOffsetNow2 \
  280. { \
  281. 0, 0, 0, 0, 0 \
  282. }
  283. #define I2CuwTorSensorOffsetNow3 \
  284. { \
  285. 0, 0, 0, 0, 0 \
  286. }
  287. #define I2CuwTorSensorOffsetNow4 \
  288. { \
  289. 0, 0, 0, 0, 0 \
  290. }
  291. #define I2CuwBikeTorMaxNm \
  292. { \
  293. 850, 0, 0, 0, 0 \
  294. }
  295. #define I2CuwBikeTor1StepRealNm \
  296. { \
  297. 250, 0, 0, 0, 0 \
  298. }
  299. #define I2CuwBikeTor1StepADC \
  300. { \
  301. 1427, 0, 0, 0, 0 \
  302. }
  303. #define I2CuwBikeTor2StepRealNm \
  304. { \
  305. 500, 0, 0, 0, 0 \
  306. }
  307. #define I2CuwBikeTor2StepADC \
  308. { \
  309. 1985, 0, 0, 0, 0 \
  310. }
  311. #define I2CuwBikeTor3StepRealNm \
  312. { \
  313. 750, 0, 0, 0, 0 \
  314. }
  315. #define I2CuwBikeTor3StepADC \
  316. { \
  317. 2544, 0, 0, 0, 0 \
  318. }
  319. #define I2CuwBikeTor4StepRealNm \
  320. { \
  321. 1000, 0, 0, 0, 0 \
  322. }
  323. #define I2CuwBikeTor4StepADC \
  324. { \
  325. 3103, 0, 0, 0, 0 \
  326. }
  327. #define I2CuwCadSensorPulseNm \
  328. { \
  329. CADENCE_NUMBERS_PULSES, 0, 0, 0, 0 \
  330. }
  331. #define I2CuwBikeSpdSensorPulseNm \
  332. { \
  333. BIKESPEED_NUMBERS_PULSES, 0, 0, 0, 0 \
  334. }
  335. #define I2CSensorPara \
  336. { \
  337. I2CuwTorSensorOffsetOrigin, I2CuwTorSensorOffsetNow1, I2CuwTorSensorOffsetNow2, I2CuwTorSensorOffsetNow3, I2CuwTorSensorOffsetNow4, \
  338. I2CuwBikeTorMaxNm, I2CuwBikeTor1StepRealNm, I2CuwBikeTor1StepADC, I2CuwBikeTor2StepRealNm, I2CuwBikeTor2StepADC, \
  339. I2CuwBikeTor3StepRealNm, I2CuwBikeTor3StepADC, I2CuwBikeTor4StepRealNm, I2CuwBikeTor4StepADC, I2CuwCadSensorPulseNm, \
  340. I2CuwBikeSpdSensorPulseNm, I2CReserve, I2CReserve, I2CReserve, I2CReserve \
  341. }
  342. /* Assist Para */
  343. #define I2CswStartupGain \
  344. { \
  345. 4096, 0, 0, 0, 0 \
  346. }
  347. #define I2CswStartcruiseGain \
  348. { \
  349. 4096, 0, 0, 0, 0 \
  350. }
  351. #define I2CswNmAssistChangeNum \
  352. { \
  353. 0, 0, 0, 0, 0 \
  354. }
  355. #define I2CswG1AssistCoefaH \
  356. { \
  357. 0, 0, 0, 0, 0 \
  358. }
  359. #define I2CswG1AssistCoefaL \
  360. { \
  361. 0, 0, 0, 0, 0 \
  362. }
  363. #define I2CswG1AssistCoefbH \
  364. { \
  365. 0, 0, 0, 0, 0 \
  366. }
  367. #define I2CswG1AssistCoefbL \
  368. { \
  369. 0, 0, 0, 0, 0 \
  370. }
  371. #define I2CswG1AssistCoefcH \
  372. { \
  373. 0, 0, 0, 0, 0 \
  374. }
  375. #define I2CswG1AssistCoefcL \
  376. { \
  377. 0, 0, 0, 0, 0 \
  378. }
  379. #define I2CswG2AssistCoefaH \
  380. { \
  381. 0, 0, 0, 0, 0 \
  382. }
  383. #define I2CswG2AssistCoefaL \
  384. { \
  385. 0, 0, 0, 0, 0 \
  386. }
  387. #define I2CswG2AssistCoefbH \
  388. { \
  389. 0, 0, 0, 0, 0 \
  390. }
  391. #define I2CswG2AssistCoefbL \
  392. { \
  393. 0, 0, 0, 0, 0 \
  394. }
  395. #define I2CswG2AssistCoefcH \
  396. { \
  397. 0, 0, 0, 0, 0 \
  398. }
  399. #define I2CswG2AssistCoefcL \
  400. { \
  401. 0, 0, 0, 0, 0 \
  402. }
  403. #define I2CswG3AssistCoefaH \
  404. { \
  405. 0, 0, 0, 0, 0 \
  406. }
  407. #define I2CswG3AssistCoefaL \
  408. { \
  409. 0, 0, 0, 0, 0 \
  410. }
  411. #define I2CswG3AssistCoefbH \
  412. { \
  413. 0, 0, 0, 0, 0 \
  414. }
  415. #define I2CswG3AssistCoefbL \
  416. { \
  417. 0, 0, 0, 0, 0 \
  418. }
  419. #define I2CswG3AssistCoefcH \
  420. { \
  421. 0, 0, 0, 0, 0 \
  422. }
  423. #define I2CswG3AssistCoefcL \
  424. { \
  425. 0, 0, 0, 0, 0 \
  426. }
  427. #define I2CswG4AssistCoefaH \
  428. { \
  429. 0, 0, 0, 0, 0 \
  430. }
  431. #define I2CswG4AssistCoefaL \
  432. { \
  433. 0, 0, 0, 0, 0 \
  434. }
  435. #define I2CswG4AssistCoefbH \
  436. { \
  437. 0, 0, 0, 0, 0 \
  438. }
  439. #define I2CswG4AssistCoefbL \
  440. { \
  441. 0, 0, 0, 0, 0 \
  442. }
  443. #define I2CswG4AssistCoefcH \
  444. { \
  445. 0, 0, 0, 0, 0 \
  446. }
  447. #define I2CswG4AssistCoefcL \
  448. { \
  449. 0, 0, 0, 0, 0 \
  450. }
  451. #define I2CswG5AssistCoefaH \
  452. { \
  453. 0, 0, 0, 0, 0 \
  454. }
  455. #define I2CswG5AssistCoefaL \
  456. { \
  457. 0, 0, 0, 0, 0 \
  458. }
  459. #define I2CswG5AssistCoefbH \
  460. { \
  461. 0, 0, 0, 0, 0 \
  462. }
  463. #define I2CswG5AssistCoefbL \
  464. { \
  465. 0, 0, 0, 0, 0 \
  466. }
  467. #define I2CswG5AssistCoefcH \
  468. { \
  469. 0, 0, 0, 0, 0 \
  470. }
  471. #define I2CswG5AssistCoefcL \
  472. { \
  473. 0, 0, 0, 0, 0 \
  474. }
  475. #define I2CswCadAssistCoefa \
  476. { \
  477. 0, 0, 0, 0, 0 \
  478. }
  479. #define I2CswCadAssistCoefb \
  480. { \
  481. 0, 0, 0, 0, 0 \
  482. }
  483. #define I2CswCadAssistCoefc \
  484. { \
  485. 0, 0, 0, 0, 0 \
  486. }
  487. #define I2CuwAssistStartNm \
  488. { \
  489. TORQUE_START_THRESHOLD, 0, 0, 0, 0 \
  490. }
  491. #define I2CuwAssistStopNm \
  492. { \
  493. TORQUE_STOP_THRESHOLD, 0, 0, 0, 0 \
  494. }
  495. #define I2CuwStartUpGainStep \
  496. { \
  497. 20, 0, 0, 0, 0 \
  498. }
  499. #define I2CuwStartUpCadNm \
  500. { \
  501. 700, 0, 0, 0, 0 \
  502. }
  503. #define I2CuwTorLPFCadNm \
  504. { \
  505. 64, 0, 0, 0, 0 \
  506. }
  507. #define I2CuwSpeedAssistSpdRpm \
  508. { \
  509. BIKE_SPD_MOTOR_CONSTANT_COMMAND, 0, 0, 0, 0 \
  510. }
  511. #define I2CuwSpeedAssistIMaxA \
  512. { \
  513. BIKE_SPD_MOTOR_CURRENT_MAX, 0, 0, 0, 0 \
  514. }
  515. #define I2CuwAssistLimitBikeSpdStart \
  516. { \
  517. BIKE_SPEED_IQLIMIT_THRESHOLD1, 0, 0, 0, 0 \
  518. }
  519. #define I2CuwAssistLimitBikeSpdStop \
  520. { \
  521. BIKE_SPEED_IQLIMIT_THRESHOLD2, 0, 0, 0, 0 \
  522. }
  523. #define I2CuwCadenceAssistWeight \
  524. { \
  525. 50, 0, 0, 0, 0 \
  526. }
  527. #define I2CAssistPara \
  528. { \
  529. I2CswStartupGain, I2CswStartcruiseGain, I2CuwAssistStartNm, I2CuwAssistStopNm, I2CuwStartUpGainStep, I2CuwStartUpCadNm, I2CuwTorLPFCadNm, \
  530. I2CuwSpeedAssistSpdRpm, I2CuwSpeedAssistIMaxA, I2CuwAssistLimitBikeSpdStart, I2CuwAssistLimitBikeSpdStop, I2CuwCadenceAssistWeight, \
  531. I2CReserve, I2CReserve, I2CReserve, I2CReserve, I2CReserve, I2CReserve, I2CReserve, I2CReserve \
  532. }
  533. /*GearBox Params*/
  534. #define I2CuwGearBoxPara_GearNum \
  535. { \
  536. 9, 0, 0, 0, 0 \
  537. }
  538. #define I2CuwGearBoxPara_CadenceMin \
  539. { \
  540. 30, 0, 0, 0, 0 \
  541. }
  542. #define I2CuwGearBoxPara_CadenceMax \
  543. { \
  544. 120, 0, 0, 0, 0 \
  545. }
  546. #define I2CGearBoxPara \
  547. { \
  548. I2CuwGearBoxPara_GearNum, I2CuwGearBoxPara_CadenceMin, I2CuwGearBoxPara_CadenceMax \
  549. }
  550. /* History Para */
  551. #define I2CuwAssModSelect \
  552. { \
  553. 0, 0, 0, 0, 0 \
  554. }
  555. #define I2CuwOpenTimes \
  556. { \
  557. 0, 0, 0, 0, 0 \
  558. }
  559. #define I2CuwUsedTimeH \
  560. { \
  561. 0, 0, 0, 0, 0 \
  562. }
  563. #define I2CuwUsedTimeL \
  564. { \
  565. 0, 0, 0, 0, 0 \
  566. }
  567. #define I2CuwNTCTempMaxCe \
  568. { \
  569. 0, 0, 0, 0, 0 \
  570. }
  571. #define I2CuwNTCTempMinCe \
  572. { \
  573. 100, 0, 0, 0, 0 \
  574. }
  575. #define I2CuwAlamHOcurTimes \
  576. { \
  577. 0, 0, 0, 0, 0 \
  578. }
  579. #define I2CuwAlamSOcurTimes \
  580. { \
  581. 0, 0, 0, 0, 0 \
  582. }
  583. #define I2CuwAlamOHeatTimes \
  584. { \
  585. 0, 0, 0, 0, 0 \
  586. }
  587. #define I2CuwAlamRotorLockTimes \
  588. { \
  589. 0, 0, 0, 0, 0 \
  590. }
  591. #define I2CuwAlamPhsLossTimes \
  592. { \
  593. 0, 0, 0, 0, 0 \
  594. }
  595. #define I2CuwAlamOVolTimes \
  596. { \
  597. 0, 0, 0, 0, 0 \
  598. }
  599. #define I2CuwAlamUVolTimes \
  600. { \
  601. 0, 0, 0, 0, 0 \
  602. }
  603. #define I2CuwAlamComOTimeTimes \
  604. { \
  605. 0, 0, 0, 0, 0 \
  606. }
  607. #define I2CuwG1AvgPwrConsumption \
  608. { \
  609. 100, 0, 0, 0, 0 \
  610. }
  611. #define I2CuwG2AvgPwrConsumption \
  612. { \
  613. 160, 0, 0, 0, 0 \
  614. }
  615. #define I2CuwG3AvgPwrConsumption \
  616. { \
  617. 190, 0, 0, 0, 0 \
  618. }
  619. #define I2CuwG4AvgPwrConsumption \
  620. { \
  621. 270, 0, 0, 0, 0 \
  622. }
  623. #define I2CuwG5AvgPwrConsumption \
  624. { \
  625. 180, 0, 0, 0, 0 \
  626. }
  627. #define I2CuwODOTripH \
  628. { \
  629. 0, 0, 0, 0, 0 \
  630. }
  631. #define I2CuwODOTripL \
  632. { \
  633. 0, 0, 0, 0, 0 \
  634. }
  635. #define I2CuwODOTimeH \
  636. { \
  637. 0, 0, 0, 0, 0 \
  638. }
  639. #define I2CuwODOTimeL \
  640. { \
  641. 0, 0, 0, 0, 0 \
  642. }
  643. #define I2CuwTripSumH \
  644. { \
  645. 0, 0, 0, 0, 0 \
  646. }
  647. #define I2CuwTripSumL \
  648. { \
  649. 0, 0, 0, 0, 0 \
  650. }
  651. #define I2CuwTripSumTimeH \
  652. { \
  653. 0, 0, 0, 0, 0 \
  654. }
  655. #define I2CuwTripSumTimeL \
  656. { \
  657. 0, 0, 0, 0, 0 \
  658. }
  659. #define I2CuwTorSensorAlamTimes \
  660. { \
  661. 0, 0, 0, 0, 0 \
  662. }
  663. #define I2CuwCadSensorAlamTimes \
  664. { \
  665. 0, 0, 0, 0, 0 \
  666. }
  667. #define I2CuwBikeSpdSensorAlamTimes \
  668. { \
  669. 0, 0, 0, 0, 0 \
  670. }
  671. #define I2CuwPosSensorAlamTimes \
  672. { \
  673. 0, 0, 0, 0, 0 \
  674. }
  675. #define I2CHistoryPara \
  676. { \
  677. I2CuwAssModSelect, I2CuwOpenTimes, I2CuwUsedTimeH, I2CuwUsedTimeL, I2CuwNTCTempMaxCe, I2CuwNTCTempMinCe, I2CuwAlamHOcurTimes, \
  678. I2CuwAlamSOcurTimes, I2CuwAlamOHeatTimes, I2CuwAlamRotorLockTimes, I2CuwAlamPhsLossTimes, I2CuwAlamOVolTimes, I2CuwAlamUVolTimes, \
  679. I2CuwAlamComOTimeTimes, I2CuwG1AvgPwrConsumption, I2CuwG2AvgPwrConsumption, I2CuwG3AvgPwrConsumption, I2CuwG4AvgPwrConsumption, \
  680. I2CuwG5AvgPwrConsumption, I2CuwODOTripH, I2CuwODOTripL, I2CuwODOTimeH, I2CuwODOTimeL, I2CuwTripSumH, I2CuwTripSumL, I2CuwTripSumTimeH, \
  681. I2CuwTripSumTimeL, I2CuwTorSensorAlamTimes, I2CuwCadSensorAlamTimes, I2CuwBikeSpdSensorAlamTimes, I2CuwPosSensorAlamTimes, I2CReserve, \
  682. I2CReserve, I2CReserve, I2CReserve, I2CReserve, I2CReserve, I2CReserve, I2CReserve \
  683. }
  684. /* System Para */
  685. #define SYSPARA2 \
  686. { \
  687. I2CMotorPara, I2CBikePara, I2CMControlPara, I2CSensorPara, I2CAssistPara, I2CGearBoxPara, I2CHistoryPara \
  688. }
  689. /************************************************************************
  690. TypeDefs & Structure defines (N/A)
  691. *************************************************************************/
  692. typedef struct
  693. {
  694. UBYTE ubTX1NPages;
  695. UBYTE ubTX1NSingleBytes;
  696. } I2C_TX_COF;
  697. typedef struct
  698. {
  699. BOOL blTX1FinishFlg;
  700. BOOL blTX2FinishFlg;
  701. } I2C_TX_OUT;
  702. typedef struct
  703. {
  704. BOOL blMotorParaFltFlg;
  705. BOOL blBikeParaFltFlg;
  706. BOOL blMControlParaFltFlg;
  707. BOOL blSensorParaFltFlg;
  708. BOOL blAssistParaFltFlg;
  709. BOOL blGearBoxParaFltFlg;
  710. BOOL blHistoryParaFltFlg;
  711. BOOL ReadFinishFlg;
  712. UBYTE ubRdCnt;
  713. } I2C_RXCRC_OUT;
  714. typedef struct
  715. {
  716. UWORD uwDefault1;
  717. UWORD uwReal;
  718. UWORD uwMin;
  719. UWORD uwMax;
  720. UWORD uwUnit;
  721. } UWORD_VALUE;
  722. typedef struct
  723. {
  724. SWORD swDefault1;
  725. SWORD swReal;
  726. SWORD swMin;
  727. SWORD swMax;
  728. UWORD uwUnit;
  729. } SWORD_VALUE;
  730. typedef struct
  731. {
  732. UWORD_VALUE uwPolePairs;
  733. UWORD_VALUE uwRsmOhm;
  734. UWORD_VALUE uwLduH;
  735. UWORD_VALUE uwLquH;
  736. UWORD_VALUE uwFluxmWb;
  737. UWORD_VALUE uwIdMaxA;
  738. UWORD_VALUE uwIdMinA;
  739. UWORD_VALUE uwRSpdRpm;
  740. UWORD_VALUE uwRPwrWt;
  741. UWORD_VALUE uwRCurA;
  742. UWORD_VALUE uwRVolV;
  743. UWORD_VALUE uwJD;
  744. UWORD_VALUE uwTorMaxNm;
  745. UWORD_VALUE reserve1;
  746. UWORD_VALUE reserve2;
  747. UWORD_VALUE reserve3;
  748. UWORD_VALUE reserve4;
  749. UWORD_VALUE reserve5;
  750. UWORD_VALUE reserve6;
  751. } MOTOR_PARAMETER;
  752. typedef struct
  753. {
  754. UWORD_VALUE uwWheelPerimeter;
  755. UWORD_VALUE uwMechRationMotor;
  756. UWORD_VALUE uwAssistMaxSpdKmH;
  757. UWORD_VALUE uwThrottleMaxSpdKmH;
  758. UWORD_VALUE uwNmFrontChainring;
  759. UWORD_VALUE uwNmBackChainring;
  760. UWORD_VALUE uwAssistSelect1;
  761. UWORD_VALUE uwAssistSelect2;
  762. UWORD_VALUE uwLightVoltage;
  763. SWORD_VALUE swDeltPerimeter;
  764. UWORD_VALUE uwStartMode;
  765. UWORD_VALUE uwAutoPowerOffTime;
  766. UWORD_VALUE reserve1;
  767. } BIKE_PARAMETER;
  768. typedef struct
  769. {
  770. UWORD_VALUE ParaFirstSetFlg;
  771. UWORD_VALUE SpiOffsetFirstSetFlg;
  772. UWORD_VALUE uwSPIPosOffsetOrigin;
  773. UWORD_VALUE uwSPIPosOffsetNow;
  774. UWORD_VALUE uwIPeakMaxA;
  775. UWORD_VALUE uwAlamOCurA;
  776. UWORD_VALUE uwAlamOVolV;
  777. UWORD_VALUE uwAlamUVolV;
  778. UWORD_VALUE uwAlamOverSpdRpm;
  779. UWORD_VALUE uwAlamOverHeatCe;
  780. UWORD_VALUE uwAlamRecHeatCe;
  781. UWORD_VALUE uwPwrLimitStartCe;
  782. UWORD_VALUE reserve1;
  783. UWORD_VALUE reserve2;
  784. UWORD_VALUE reserve3;
  785. UWORD_VALUE reserve4;
  786. UWORD_VALUE reserve5;
  787. UWORD_VALUE reserve6;
  788. } MControl_PARAMETER;
  789. typedef struct
  790. {
  791. UWORD_VALUE uwTorSensorOffsetOrigin;
  792. UWORD_VALUE uwTorSensorOffsetNow1;
  793. UWORD_VALUE uwTorSensorOffsetNow2;
  794. UWORD_VALUE uwTorSensorOffsetNow3;
  795. UWORD_VALUE uwTorSensorOffsetNow4;
  796. UWORD_VALUE uwBikeTorMaxNm;
  797. UWORD_VALUE uwBikeTor1StepRealNm;
  798. UWORD_VALUE uwBikeTor1StepADC;
  799. UWORD_VALUE uwBikeTor2StepRealNm;
  800. UWORD_VALUE uwBikeTor2StepADC;
  801. UWORD_VALUE uwBikeTor3StepRealNm;
  802. UWORD_VALUE uwBikeTor3StepADC;
  803. UWORD_VALUE uwBikeTor4StepRealNm;
  804. UWORD_VALUE uwBikeTor4StepADC;
  805. UWORD_VALUE uwCadSensorPulseNm;
  806. UWORD_VALUE uwBikeSpdSensorPulseNm;
  807. UWORD_VALUE reserve1;
  808. UWORD_VALUE reserve2;
  809. UWORD_VALUE reserve3;
  810. UWORD_VALUE reserve4;
  811. } Sensor_PARAMETER;
  812. typedef struct
  813. {
  814. UWORD_VALUE uwStartupGain;
  815. UWORD_VALUE uwStartcruiseGain;
  816. UWORD_VALUE uwAssistStartNm;
  817. UWORD_VALUE uwAssistStopNm;
  818. UWORD_VALUE uwStartUpGainStep;
  819. UWORD_VALUE uwStartUpCadNm;
  820. UWORD_VALUE uwTorLPFCadNm;
  821. UWORD_VALUE uwSpeedAssistSpdRpm;
  822. UWORD_VALUE uwSpeedAssistIMaxA;
  823. UWORD_VALUE uwAssistLimitBikeSpdStart;
  824. UWORD_VALUE uwAssistLimitBikeSpdStop;
  825. UWORD_VALUE uwCadenceAssistWeight;
  826. UWORD_VALUE reserve1;
  827. UWORD_VALUE reserve2;
  828. UWORD_VALUE reserve3;
  829. UWORD_VALUE reserve4;
  830. UWORD_VALUE reserve5;
  831. UWORD_VALUE reserve6;
  832. UWORD_VALUE reserve7;
  833. UWORD_VALUE reserve8;
  834. } Assist_PARAMETER;
  835. typedef struct
  836. {
  837. UWORD_VALUE uwGearBoxNum;
  838. UWORD_VALUE uwGearBoxCadenceMin;
  839. UWORD_VALUE uwGearBoxCadenceMax;
  840. UWORD_VALUE reserve1;
  841. UWORD_VALUE reserve2;
  842. UWORD_VALUE reserve3;
  843. UWORD_VALUE reserve4;
  844. UWORD_VALUE reserve5;
  845. }GearBox_PARAMETER;
  846. typedef struct
  847. {
  848. UWORD_VALUE uwAssModSelect;
  849. UWORD_VALUE uwOpenTimes;
  850. UWORD_VALUE uwUsedTimeH;
  851. UWORD_VALUE uwUsedTimeL;
  852. UWORD_VALUE uwNTCTempMaxCe;
  853. UWORD_VALUE uwNTCTempMinCe;
  854. UWORD_VALUE uwAlamHOcurTimes;
  855. UWORD_VALUE uwAlamSOcurTimes;
  856. UWORD_VALUE uwAlamOHeatTimes;
  857. UWORD_VALUE uwAlamRotorLockTimes;
  858. UWORD_VALUE uwAlamPhsLossTimes;
  859. UWORD_VALUE uwAlamOVolTimes;
  860. UWORD_VALUE uwAlamUVolTimes;
  861. UWORD_VALUE uwAlamComOTimeTimes;
  862. UWORD_VALUE uwG1AvgPwrConsumption;
  863. UWORD_VALUE uwG2AvgPwrConsumption;
  864. UWORD_VALUE uwG3AvgPwrConsumption;
  865. UWORD_VALUE uwG4AvgPwrConsumption;
  866. UWORD_VALUE uwG5AvgPwrConsumption;
  867. UWORD_VALUE uwODOTripH;
  868. UWORD_VALUE uwODOTripL;
  869. UWORD_VALUE uwODOTimeH;
  870. UWORD_VALUE uwODOTimeL;
  871. UWORD_VALUE uwTripSumH;
  872. UWORD_VALUE uwTripSumL;
  873. UWORD_VALUE uwTripSumTimeH;
  874. UWORD_VALUE uwTripSumTimeL;
  875. UWORD_VALUE uwTorSensorAlamTimes;
  876. UWORD_VALUE uwCadSensorAlamTimes;
  877. UWORD_VALUE uwBikeSpdSensorAlamTimes;
  878. UWORD_VALUE uwPosSensorAlamTimes;
  879. UWORD_VALUE reserve1;
  880. UWORD_VALUE reserve2;
  881. UWORD_VALUE reserve3;
  882. UWORD_VALUE reserve4;
  883. UWORD_VALUE reserve5;
  884. UWORD_VALUE reserve6;
  885. UWORD_VALUE reserve7;
  886. UWORD_VALUE reserve8;
  887. } History_PARAMETER;
  888. typedef struct
  889. {
  890. MOTOR_PARAMETER stMotorPara;
  891. BIKE_PARAMETER stBikePara;
  892. MControl_PARAMETER stMControlPara;
  893. Sensor_PARAMETER stSensorPara;
  894. Assist_PARAMETER stAssistPara;
  895. GearBox_PARAMETER stGearBoxPara;
  896. History_PARAMETER stHistoryPara;
  897. } SYSTEM_PARAMETER2;
  898. /************************************************************************
  899. Constant Table
  900. *************************************************************************/
  901. /************************************************************************
  902. Exported Variables
  903. *************************************************************************/
  904. #ifdef _I2C_MASTER_C_
  905. _I2C_MASTER_EXT SYSTEM_PARAMETER2 Syspara2 = SYSPARA2;
  906. _I2C_MASTER_EXT I2C_TX_COF i2c_stTXCoef;
  907. _I2C_MASTER_EXT I2C_TX_OUT i2c_stTXOut;
  908. _I2C_MASTER_EXT I2C_RXCRC_OUT i2c_stRXCRCOut = {FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE};
  909. _I2C_MASTER_EXT UBYTE I2C_ubReadBuffer[I2C_RX_TIMES][I2C1_RX_DMA_NUM];
  910. _I2C_MASTER_EXT UWORD I2C_uwMotorParaRead[I2C_MOTOR_PARA_N_WORDS];
  911. _I2C_MASTER_EXT UWORD I2C_uwBikeParaRead[I2C_BIKE_PARA_N_WORDS];
  912. _I2C_MASTER_EXT UWORD I2C_uwMControlRead[I2C_MCONTROL_PARA_N_WORDS];
  913. _I2C_MASTER_EXT UWORD I2C_uwSensorRead[I2C_SENSOR_PARA_N_WORDS];
  914. _I2C_MASTER_EXT UWORD I2C_uwAssistParaRead[I2C_ASSIST_PARA_N_WORDS];
  915. _I2C_MASTER_EXT UWORD I2C_uwGearBoxParaRead[I2C_ASSIST_PARA_N_WORDS];
  916. _I2C_MASTER_EXT UWORD I2C_uwHistoryParaRead[I2C_HISTORY_PARA_N_WORDS];
  917. _I2C_MASTER_EXT UBYTE I2C_ubWriteBuffer[I2C_TX1_NBYTES];
  918. _I2C_MASTER_EXT UBYTE I2C_ubHistoyWriteBuffer[I2C_TX2_NBYTES];
  919. _I2C_MASTER_EXT UBYTE *I2C_pWriteBuffer = I2C_ubWriteBuffer;
  920. _I2C_MASTER_EXT UBYTE *I2C_pHistoryWriteBuffer = I2C_ubHistoyWriteBuffer;
  921. _I2C_MASTER_EXT UBYTE *I2C_pReadBuffer = I2C_ubReadBuffer[0];
  922. _I2C_MASTER_EXT BOOL I2C_EE_ComuFltFlg = FALSE;
  923. #else
  924. _I2C_MASTER_EXT SYSTEM_PARAMETER2 Syspara2;
  925. _I2C_MASTER_EXT I2C_TX_COF i2c_stTXCoef;
  926. _I2C_MASTER_EXT I2C_TX_OUT i2c_stTXOut;
  927. _I2C_MASTER_EXT I2C_RXCRC_OUT i2c_stRXCRCOut;
  928. _I2C_MASTER_EXT UBYTE I2C_ubReadBuffer[I2C_RX_TIMES][I2C1_RX_DMA_NUM];
  929. _I2C_MASTER_EXT UWORD I2C_uwMotorParaRead[I2C_MOTOR_PARA_N_WORDS];
  930. _I2C_MASTER_EXT UWORD I2C_uwBikeParaRead[I2C_BIKE_PARA_N_WORDS];
  931. _I2C_MASTER_EXT UWORD I2C_uwMControlRead[I2C_MCONTROL_PARA_N_WORDS];
  932. _I2C_MASTER_EXT UWORD I2C_uwSensorRead[I2C_SENSOR_PARA_N_WORDS];
  933. _I2C_MASTER_EXT UWORD I2C_uwAssistParaRead[I2C_ASSIST_PARA_N_WORDS];
  934. _I2C_MASTER_EXT UWORD I2C_uwGearBoxParaRead[I2C_GEARBOX_PARA_N_WORDS];
  935. _I2C_MASTER_EXT UWORD I2C_uwHistoryParaRead[I2C_HISTORY_PARA_N_WORDS];
  936. _I2C_MASTER_EXT UBYTE I2C_ubWriteBuffer[I2C_TX1_NBYTES];
  937. _I2C_MASTER_EXT UBYTE I2C_ubHistoyWriteBuffer[I2C_TX2_NBYTES];
  938. _I2C_MASTER_EXT UBYTE *I2C_pWriteBuffer;
  939. _I2C_MASTER_EXT UBYTE *I2C_pHistoryWriteBuffer;
  940. _I2C_MASTER_EXT UBYTE *I2C_pReadBuffer;
  941. _I2C_MASTER_EXT BOOL I2C_EE_ComuFltFlg;
  942. #endif
  943. /************************************************************************
  944. Exported Function Call Prototypes
  945. *************************************************************************/
  946. #ifdef _I2C_MASTER_C_
  947. _I2C_MASTER_EXT void i2c_voDefaultWriteBuffer(void);
  948. _I2C_MASTER_EXT void i2c_voParaWriteBuffer(void);
  949. _I2C_MASTER_EXT void i2c_voHistoryDefaultWriteBuffer(void);
  950. _I2C_MASTER_EXT void i2c_voHistoryWriteBuffer(void);
  951. _I2C_MASTER_EXT void i2c_voInfoWrite2EE(const I2C_TX_COF *coef, I2C_TX_OUT *out);
  952. _I2C_MASTER_EXT void i2c_voHistoryWrite2EE(const I2C_TX_COF *coef, I2C_TX_OUT *out);
  953. _I2C_MASTER_EXT void i2c_voSysparaReadFromEE(I2C_RXCRC_OUT *out);
  954. _I2C_MASTER_EXT UWORD i2c_uwCRCCcitt(const UBYTE *ptubBuf, UWORD length);
  955. _I2C_MASTER_EXT void i2c_voReadBufferCRC(I2C_RXCRC_OUT *out);
  956. _I2C_MASTER_EXT void i2c_voGetValueFrmBuffer(const I2C_RXCRC_OUT *out);
  957. #else
  958. _I2C_MASTER_EXT void i2c_voDefaultWriteBuffer(void);
  959. _I2C_MASTER_EXT void i2c_voParaWriteBuffer(void);
  960. _I2C_MASTER_EXT void i2c_voHistoryDefaultWriteBuffer(void);
  961. _I2C_MASTER_EXT void i2c_voHistoryWriteBuffer(void);
  962. _I2C_MASTER_EXT void i2c_voInfoWrite2EE(const I2C_TX_COF *coef, I2C_TX_OUT *out);
  963. _I2C_MASTER_EXT void i2c_voHistoryWrite2EE(const I2C_TX_COF *coef, I2C_TX_OUT *out);
  964. _I2C_MASTER_EXT void i2c_voSysparaReadFromEE(I2C_RXCRC_OUT *out);
  965. _I2C_MASTER_EXT UWORD i2c_uwCRCCcitt(const UBYTE *ptubBuf, UWORD length);
  966. _I2C_MASTER_EXT void i2c_voReadBufferCRC(I2C_RXCRC_OUT *out);
  967. _I2C_MASTER_EXT void i2c_voGetValueFrmBuffer(const I2C_RXCRC_OUT *out);
  968. #endif
  969. /************************************************************************
  970. Flag Define (N/A)
  971. *************************************************************************/
  972. #endif
  973. /************************************************************************
  974. Copyright (c) 2022 Welling Motor Technology(Shanghai) Co. Ltd.
  975. All rights reserved.
  976. *************************************************************************
  977. End of this File (EOF)!
  978. Do not put anything after this part!
  979. *************************************************************************/