فهرست منبع

加入电子tcs功能

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 2 سال پیش
والد
کامیت
15f5bec8aa

+ 5 - 1
Applications/foc/commands.c

@@ -173,7 +173,8 @@ static void process_foc_command(foc_cmd_body_t *command) {
 			}else {
 				if (command->len > sizeof(foc_start_cmd_t)) {
 					u8 *p = (u8 *)command->data + sizeof(foc_start_cmd_t);
-					s8 ext_gear = decode_u8(p);
+					u8 config = decode_u8(p);
+					u8 ext_gear = config & 0x0f;
 					sys_debug("gear %d\n", ext_gear);
 					if (ext_gear >= 1 && ext_gear <= 4) {
 						if (ext_gear == 4) {
@@ -182,6 +183,9 @@ static void process_foc_command(foc_cmd_body_t *command) {
 							mc_set_gear(ext_gear - 1);
 						}
 					}
+					config = (config >> 4);
+					mc_enable_brkshutpower(config & 0x01);
+					mc_enable_tcs((config & 0x02)?true:false);
 				}
 			}
 			sys_debug("start motor %d\n", erroCode);

+ 64 - 0
Applications/foc/core/etcs.c

@@ -0,0 +1,64 @@
+#include "foc/motor/motor.h"
+#include "foc/core/PMSM_FOC_Core.h"
+#include "foc/core/etcs.h"
+#include "math/fast_math.h"
+
+static bool b_etcs_en = true;
+static bool b_etcs_running = false;
+static float f_fvel = 0, f_torque_ref, f_torque_tcs, f_acc = 0.0f;
+static u32   n_fv_ts = 0;
+static int  n_etcs_run_cnt = 0;
+#define CONFIG_ENTER_TCS_THRO  200
+#define CONFIG_EXIT_TCS_THRO  80
+void etcs_set_fvel(float vel) {
+	float vel_delta = vel - f_fvel;
+	float ts_delta = (float)get_delta_ms(n_fv_ts);
+	f_fvel = vel;
+	n_fv_ts = get_tick_ms();
+	float acc = vel_delta / ts_delta;
+	f_acc = LowPass_Filter(f_acc, acc, 0.2f);
+}
+void etcs_set_torque(float torque) {
+	f_torque_ref = torque;	
+}
+bool etcs_is_running(void) {
+	return b_etcs_running;
+}
+void etcs_enable(bool enable) {
+	b_etcs_en = enable;
+}
+
+void etcs_process(void) {
+	if (!b_etcs_en) {
+		PMSM_FOC_Set_Torque(f_torque_ref);
+		return;
+	}
+	float mot_vel = PMSM_FOC_GetSpeed();
+	float f_vel = f_fvel + f_acc * (float)get_delta_ms(n_fv_ts);
+	if (!b_etcs_running && ((mot_vel + CONFIG_ENTER_TCS_THRO) >= f_vel)) {
+		b_etcs_running = true;
+	}else if (b_etcs_running && ((mot_vel + CONFIG_EXIT_TCS_THRO) < f_vel)) {
+		b_etcs_running = false;
+	}
+	if (b_etcs_running) {
+		if (f_torque_tcs > 0) {
+			n_etcs_run_cnt ++;
+			f_torque_tcs = f_torque_ref - n_etcs_run_cnt * 1.0f;
+			if (f_torque_tcs < 0) {
+				f_torque_tcs = 0;
+			}
+		}
+	}else {
+		if (n_etcs_run_cnt <= 0) {
+			f_torque_tcs = f_torque_ref;
+		}else {
+			n_etcs_run_cnt--;
+			f_torque_tcs = f_torque_tcs + 1.0f;
+			if (n_etcs_run_cnt <= 0 || f_torque_tcs >= f_torque_ref) {
+				n_etcs_run_cnt = 0;
+				f_torque_tcs = f_torque_ref;
+			}
+		}
+	}
+	PMSM_FOC_Set_Torque(f_torque_tcs);
+}

+ 9 - 0
Applications/foc/core/etcs.h

@@ -0,0 +1,9 @@
+#ifndef _ETSC_H__
+#define _ETSC_H__
+void etcs_set_fvel(float vel);//设置前轮速度
+void etcs_set_torque(float torque);
+bool etcs_is_running(void);
+void etcs_enable(bool enable);
+void etcs_process(void);
+#endif /* _ETSC_H__ */
+

+ 3 - 2
Applications/foc/core/thro_torque.c

@@ -7,6 +7,7 @@
 #include "app/nv_storage.h"
 #include "libs/logger.h"
 #include "prot/can_foc_msg.h"
+#include "foc/core/etcs.h"
 
 static thro_torque_t _torque;
 
@@ -166,10 +167,10 @@ static void thro_torque_request(void) {
 			}
 			_torque.torque_req = ref_torque;
 		}
-		PMSM_FOC_Set_Torque(_torque.torque_req);
+		etcs_set_torque(_torque.torque_req);
 	}else if (mc_throttle_released() && eCtrl_get_FinalTorque() != 0){
 		_torque.torque_req = 0.0f;
-		PMSM_FOC_Set_Torque(_torque.torque_req);
+		etcs_set_torque(_torque.torque_req);
 	}
 }
 

+ 1 - 1
Applications/foc/foc_config.h

@@ -67,7 +67,7 @@
 
 #define CONFIG_CRUISE_ENABLE_ACCL 1 //定速巡航可以加速,油门回退,继续定速巡航
 
-#define CONFIG_TCS_ENABLE         1
+#define CONFIG_TCS_ENABLE     false
 
 #define CONFIG_MAX_NEG_TORQUE 0.0F
 

+ 1 - 1
Applications/foc/motor/encoder.c

@@ -151,7 +151,7 @@ static __INLINE float _eccentricity_compensation(int cnt) {
 }
 
 #define CONFIG_ENC_DETECT_ERR
-///#define CONFIG_ENC_ERR_TEST
+#define CONFIG_ENC_ERR_TEST
 #define CONFIG_ENC_DIANOSTIC_MIN_CNT (10.0F * ENC_MAX_RES * FOC_CTRL_US) //600rpm, 每隔控制周期 0.2232 机械角度
 u32 enc_pwm_err_ms = 0;
 s16 enc_delta_err1 = 0;

+ 13 - 2
Applications/foc/motor/motor.c

@@ -14,6 +14,7 @@
 #include "foc/core/foc_observer.h"
 #include "foc/core/thro_torque.h"
 #include "foc/core/F_Calc.h"
+#include "foc/core/etcs.h"
 #include "app/nv_storage.h"
 #include "foc/motor/mot_params_ind.h"
 #include "foc/limit.h"
@@ -48,7 +49,7 @@ static motor_t motor = {
 	.u_set.ebrk_torque = IDC_USER_LIMIT_NONE,
 	.u_set.ebrk_time = MAX_U16,
 	.u_set.n_brkShutPower = MAX_U8,
-	.u_set.n_tcs = CONFIG_TCS_ENABLE,
+	.u_set.b_tcs = CONFIG_TCS_ENABLE,
 };
 /* 无感运行的挡位,限制速度,母线电流,最大扭矩 */
 static mc_gear_t sensorless_gear = {
@@ -282,7 +283,7 @@ bool mc_start(u8 mode) {
 	target_q = 0.0f;
 #endif
 	mc_detect_vbus_mode();
-
+	etcs_enable(motor.u_set.b_tcs);
 	if (motor.b_lock_motor) {
 		PMSM_FOC_SetErrCode(FOC_NotAllowed);
 		return false;
@@ -461,6 +462,15 @@ void mc_set_ebrk_level(s16 trq, u16 time) {
 	PMSM_FOC_SetEbrkTorque(mc_get_ebrk_torque());
 }
 
+void mc_enable_brkshutpower(u8 shut) {
+	motor.u_set.n_brkShutPower = shut;
+}
+
+void mc_enable_tcs(bool enable) {
+	motor.u_set.b_tcs = enable;
+	etcs_enable(enable);
+}
+
 s16 mc_get_ebrk_torque(void) {
 	return min(motor.u_set.ebrk_torque, nv_get_foc_params()->s_TorqueBrkLim);
 }
@@ -1467,6 +1477,7 @@ void Sched_MC_mTask(void) {
 				}
 				thro_torque_process(runMode, thro);
 			}
+			etcs_process();
 			PMSM_FOC_Slow_Task();
 		}
 #endif

+ 3 - 1
Applications/foc/motor/motor.h

@@ -21,7 +21,7 @@ typedef struct {
 	s16 ebrk_torque;
 	u16 ebrk_time;
 	u8  n_brkShutPower;
-	u8  n_tcs;
+	bool  b_tcs;
 }user_rt_set;
 
 typedef struct {
@@ -109,6 +109,8 @@ bool mc_critical_err_is_set(u8 err);
 bool mc_hwbrk_can_shutpower(void);
 void mc_start_current_rec(bool rec);
 bool mc_ind_motor_start(bool start);
+void mc_enable_brkshutpower(u8 shut);
+void mc_enable_tcs(bool enable);
 
 static __INLINE float motor_encoder_get_angle(void) {
 #ifdef USE_ENCODER_HALL

+ 68 - 56
Project/MC105_V3_Z100.uvoptx

@@ -399,6 +399,18 @@
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
+    <File>
+      <GroupNumber>2</GroupNumber>
+      <FileNumber>19</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\Applications\foc\core\etcs.c</PathWithFileName>
+      <FilenameWithoutPath>etcs.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
   </Group>
 
   <Group>
@@ -409,7 +421,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>19</FileNumber>
+      <FileNumber>20</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -421,7 +433,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>20</FileNumber>
+      <FileNumber>21</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -433,7 +445,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>21</FileNumber>
+      <FileNumber>22</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -445,7 +457,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>22</FileNumber>
+      <FileNumber>23</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -457,7 +469,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>23</FileNumber>
+      <FileNumber>24</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -469,7 +481,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>24</FileNumber>
+      <FileNumber>25</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -489,7 +501,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>25</FileNumber>
+      <FileNumber>26</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -501,7 +513,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>26</FileNumber>
+      <FileNumber>27</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -513,7 +525,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>27</FileNumber>
+      <FileNumber>28</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -525,7 +537,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>28</FileNumber>
+      <FileNumber>29</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -545,7 +557,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>29</FileNumber>
+      <FileNumber>30</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -557,7 +569,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>30</FileNumber>
+      <FileNumber>31</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -569,7 +581,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>31</FileNumber>
+      <FileNumber>32</FileNumber>
       <FileType>4</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -581,7 +593,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>32</FileNumber>
+      <FileNumber>33</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -601,7 +613,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>33</FileNumber>
+      <FileNumber>34</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -613,7 +625,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>34</FileNumber>
+      <FileNumber>35</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -625,7 +637,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>35</FileNumber>
+      <FileNumber>36</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -637,7 +649,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>36</FileNumber>
+      <FileNumber>37</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -649,7 +661,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>37</FileNumber>
+      <FileNumber>38</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -661,7 +673,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>38</FileNumber>
+      <FileNumber>39</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -673,7 +685,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>39</FileNumber>
+      <FileNumber>40</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -685,7 +697,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>40</FileNumber>
+      <FileNumber>41</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -697,7 +709,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>41</FileNumber>
+      <FileNumber>42</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -709,7 +721,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>42</FileNumber>
+      <FileNumber>43</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -721,7 +733,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>43</FileNumber>
+      <FileNumber>44</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -733,7 +745,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>44</FileNumber>
+      <FileNumber>45</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -745,7 +757,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>45</FileNumber>
+      <FileNumber>46</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -757,7 +769,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>46</FileNumber>
+      <FileNumber>47</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -777,7 +789,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>47</FileNumber>
+      <FileNumber>48</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -789,7 +801,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>48</FileNumber>
+      <FileNumber>49</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -801,7 +813,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>49</FileNumber>
+      <FileNumber>50</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -813,7 +825,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>50</FileNumber>
+      <FileNumber>51</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -825,7 +837,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>51</FileNumber>
+      <FileNumber>52</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -837,7 +849,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>52</FileNumber>
+      <FileNumber>53</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -857,7 +869,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>53</FileNumber>
+      <FileNumber>54</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -869,7 +881,7 @@
     </File>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>54</FileNumber>
+      <FileNumber>55</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -881,7 +893,7 @@
     </File>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>55</FileNumber>
+      <FileNumber>56</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -901,7 +913,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>56</FileNumber>
+      <FileNumber>57</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -913,7 +925,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>57</FileNumber>
+      <FileNumber>58</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -925,7 +937,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>58</FileNumber>
+      <FileNumber>59</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -937,7 +949,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>59</FileNumber>
+      <FileNumber>60</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -949,7 +961,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>60</FileNumber>
+      <FileNumber>61</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -961,7 +973,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>61</FileNumber>
+      <FileNumber>62</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -973,7 +985,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>62</FileNumber>
+      <FileNumber>63</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -985,7 +997,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>63</FileNumber>
+      <FileNumber>64</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -997,7 +1009,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>64</FileNumber>
+      <FileNumber>65</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1009,7 +1021,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>65</FileNumber>
+      <FileNumber>66</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1021,7 +1033,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>66</FileNumber>
+      <FileNumber>67</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1033,7 +1045,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>67</FileNumber>
+      <FileNumber>68</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1045,7 +1057,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>68</FileNumber>
+      <FileNumber>69</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1057,7 +1069,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>69</FileNumber>
+      <FileNumber>70</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1069,7 +1081,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>70</FileNumber>
+      <FileNumber>71</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1081,7 +1093,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>71</FileNumber>
+      <FileNumber>72</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1101,7 +1113,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>72</FileNumber>
+      <FileNumber>73</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1113,7 +1125,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>73</FileNumber>
+      <FileNumber>74</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1125,7 +1137,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>74</FileNumber>
+      <FileNumber>75</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>

+ 5 - 0
Project/MC105_V3_Z100.uvprojx

@@ -478,6 +478,11 @@
               <FileType>1</FileType>
               <FilePath>..\Applications\foc\core\F_Calc.c</FilePath>
             </File>
+            <File>
+              <FileName>etcs.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\Applications\foc\core\etcs.c</FilePath>
+            </File>
           </Files>
         </Group>
         <Group>