Browse Source

更新

1.移除相关代码
2.代码整理
avery 7 months ago
parent
commit
b940203c05

+ 52 - 156
KeilC51/Fortior.uvopt

@@ -131,13 +131,13 @@
       <TargetDriverDllRegistry>
         <SetRegEntry>
           <Number>0</Number>
-          <Key>DLGTCYG</Key>
-          <Name></Name>
+          <Key>Fice</Key>
+          <Name>-S1 -B115200 -O1792</Name>
         </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
-          <Key>Fice</Key>
-          <Name>-S1 -B115200 -O1792</Name>
+          <Key>DLGTCYG</Key>
+          <Name></Name>
         </SetRegEntry>
       </TargetDriverDllRegistry>
       <Breakpoint/>
@@ -323,18 +323,6 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\Application\AddFunction.c</PathWithFileName>
-      <FilenameWithoutPath>AddFunction.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>1</GroupNumber>
-      <FileNumber>2</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
       <PathWithFileName>..\User\Application\Interrupt.c</PathWithFileName>
       <FilenameWithoutPath>Interrupt.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
@@ -342,7 +330,7 @@
     </File>
     <File>
       <GroupNumber>1</GroupNumber>
-      <FileNumber>3</FileNumber>
+      <FileNumber>2</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -354,45 +342,9 @@
     </File>
     <File>
       <GroupNumber>1</GroupNumber>
-      <FileNumber>4</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\User\Application\Protect.c</PathWithFileName>
-      <FilenameWithoutPath>Protect.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>1</GroupNumber>
-      <FileNumber>5</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\User\Application\FocControl.c</PathWithFileName>
-      <FilenameWithoutPath>FocControl.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>1</GroupNumber>
-      <FileNumber>6</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\User\Application\FocControlFunction.c</PathWithFileName>
-      <FilenameWithoutPath>FocControlFunction.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>1</GroupNumber>
-      <FileNumber>7</FileNumber>
+      <FileNumber>3</FileNumber>
       <FileType>1</FileType>
-      <tvExp>0</tvExp>
+      <tvExp>1</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\User\Application\Control.c</PathWithFileName>
@@ -402,7 +354,7 @@
     </File>
     <File>
       <GroupNumber>1</GroupNumber>
-      <FileNumber>8</FileNumber>
+      <FileNumber>4</FileNumber>
       <FileType>5</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -414,7 +366,7 @@
     </File>
     <File>
       <GroupNumber>1</GroupNumber>
-      <FileNumber>9</FileNumber>
+      <FileNumber>5</FileNumber>
       <FileType>5</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -426,7 +378,7 @@
     </File>
     <File>
       <GroupNumber>1</GroupNumber>
-      <FileNumber>10</FileNumber>
+      <FileNumber>6</FileNumber>
       <FileType>5</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -446,19 +398,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>11</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\User\Function\Communication.c</PathWithFileName>
-      <FilenameWithoutPath>Communication.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>12</FileNumber>
+      <FileNumber>7</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -470,19 +410,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>13</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\User\Function\PFC.c</PathWithFileName>
-      <FilenameWithoutPath>PFC.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>14</FileNumber>
+      <FileNumber>8</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -492,71 +420,51 @@
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
-  </Group>
-
-  <Group>
-    <GroupName>User_Drive</GroupName>
-    <tvExp>1</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <RteFlg>0</RteFlg>
     <File>
-      <GroupNumber>3</GroupNumber>
-      <FileNumber>15</FileNumber>
+      <GroupNumber>2</GroupNumber>
+      <FileNumber>9</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\User_Drive\User_Dri_main.c</PathWithFileName>
-      <FilenameWithoutPath>User_Dri_main.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>3</GroupNumber>
-      <FileNumber>16</FileNumber>
-      <FileType>5</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\User\User_Drive\User_Dri_main.h</PathWithFileName>
-      <FilenameWithoutPath>User_Dri_main.h</FilenameWithoutPath>
+      <PathWithFileName>..\User\Function\AddFunction.c</PathWithFileName>
+      <FilenameWithoutPath>AddFunction.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
-      <FileNumber>17</FileNumber>
+      <GroupNumber>2</GroupNumber>
+      <FileNumber>10</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\User_Drive\commution.c</PathWithFileName>
-      <FilenameWithoutPath>commution.c</FilenameWithoutPath>
+      <PathWithFileName>..\User\Function\FocControl.c</PathWithFileName>
+      <FilenameWithoutPath>FocControl.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
-      <FileNumber>18</FileNumber>
+      <GroupNumber>2</GroupNumber>
+      <FileNumber>11</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\User_Drive\Temp_compute.c</PathWithFileName>
-      <FilenameWithoutPath>Temp_compute.c</FilenameWithoutPath>
+      <PathWithFileName>..\User\Function\FocControlFunction.c</PathWithFileName>
+      <FilenameWithoutPath>FocControlFunction.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
-      <FileNumber>19</FileNumber>
+      <GroupNumber>2</GroupNumber>
+      <FileNumber>12</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\User_Drive\watch.c</PathWithFileName>
-      <FilenameWithoutPath>watch.c</FilenameWithoutPath>
+      <PathWithFileName>..\User\Function\Protect.c</PathWithFileName>
+      <FilenameWithoutPath>Protect.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -569,8 +477,8 @@
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
     <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>20</FileNumber>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>13</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -581,8 +489,8 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>21</FileNumber>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>14</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -593,8 +501,8 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>22</FileNumber>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>15</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -605,8 +513,8 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>23</FileNumber>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>16</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -617,8 +525,8 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>24</FileNumber>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>17</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -629,8 +537,8 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>25</FileNumber>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>18</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -641,8 +549,8 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>26</FileNumber>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>19</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -653,8 +561,8 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>27</FileNumber>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>20</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -665,8 +573,8 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>28</FileNumber>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>21</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -677,8 +585,8 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>29</FileNumber>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>22</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -689,8 +597,8 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>30</FileNumber>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>23</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -700,18 +608,6 @@
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>31</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\User\Hardware\UART_4800.C</PathWithFileName>
-      <FilenameWithoutPath>UART_4800.C</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
   </Group>
 
   <Group>
@@ -721,8 +617,8 @@
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
     <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>32</FileNumber>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>24</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>

+ 10 - 55
KeilC51/Fortior.uvproj

@@ -177,7 +177,7 @@
           </Flash1>
           <bUseTDR>0</bUseTDR>
           <Flash2>BIN\Fice.dll</Flash2>
-          <Flash3>"" ()</Flash3>
+          <Flash3></Flash3>
           <Flash4></Flash4>
           <pFcarmOut></pFcarmOut>
           <pFcarmGrp></pFcarmGrp>
@@ -324,7 +324,7 @@
               <MiscControls></MiscControls>
               <Define></Define>
               <Undefine></Undefine>
-              <IncludePath>..\User\include;..\System;..\User\User_Drive</IncludePath>
+              <IncludePath>..\User\include;..\System</IncludePath>
             </VariousControls>
           </C51>
           <Ax51>
@@ -376,11 +376,6 @@
         <Group>
           <GroupName>Apllication</GroupName>
           <Files>
-            <File>
-              <FileName>AddFunction.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\User\Application\AddFunction.c</FilePath>
-            </File>
             <File>
               <FileName>Interrupt.c</FileName>
               <FileType>1</FileType>
@@ -391,21 +386,6 @@
               <FileType>1</FileType>
               <FilePath>..\User\Application\main.c</FilePath>
             </File>
-            <File>
-              <FileName>Protect.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\User\Application\Protect.c</FilePath>
-            </File>
-            <File>
-              <FileName>FocControl.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\User\Application\FocControl.c</FilePath>
-            </File>
-            <File>
-              <FileName>FocControlFunction.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\User\Application\FocControlFunction.c</FilePath>
-            </File>
             <File>
               <FileName>Control.c</FileName>
               <FileType>1</FileType>
@@ -431,55 +411,35 @@
         <Group>
           <GroupName>Function</GroupName>
           <Files>
-            <File>
-              <FileName>Communication.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\User\Function\Communication.c</FilePath>
-            </File>
             <File>
               <FileName>FiledWeaken.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\User\Function\FiledWeaken.c</FilePath>
             </File>
-            <File>
-              <FileName>PFC.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\User\Function\PFC.c</FilePath>
-            </File>
             <File>
               <FileName>VoltageCompensation.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\User\Function\VoltageCompensation.c</FilePath>
             </File>
-          </Files>
-        </Group>
-        <Group>
-          <GroupName>User_Drive</GroupName>
-          <Files>
             <File>
-              <FileName>User_Dri_main.c</FileName>
+              <FileName>AddFunction.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\User_Drive\User_Dri_main.c</FilePath>
+              <FilePath>..\User\Function\AddFunction.c</FilePath>
             </File>
             <File>
-              <FileName>User_Dri_main.h</FileName>
-              <FileType>5</FileType>
-              <FilePath>..\User\User_Drive\User_Dri_main.h</FilePath>
-            </File>
-            <File>
-              <FileName>commution.c</FileName>
+              <FileName>FocControl.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\User_Drive\commution.c</FilePath>
+              <FilePath>..\User\Function\FocControl.c</FilePath>
             </File>
             <File>
-              <FileName>Temp_compute.c</FileName>
+              <FileName>FocControlFunction.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\User_Drive\Temp_compute.c</FilePath>
+              <FilePath>..\User\Function\FocControlFunction.c</FilePath>
             </File>
             <File>
-              <FileName>watch.c</FileName>
+              <FileName>Protect.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\User_Drive\watch.c</FilePath>
+              <FilePath>..\User\Function\Protect.c</FilePath>
             </File>
           </Files>
         </Group>
@@ -541,11 +501,6 @@
               <FileType>1</FileType>
               <FilePath>..\User\Hardware\UART.c</FilePath>
             </File>
-            <File>
-              <FileName>UART_4800.C</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\User\Hardware\UART_4800.C</FilePath>
-            </File>
           </Files>
         </Group>
         <Group>

+ 1 - 34
User/Application/AddFunction.c → User/Function/AddFunction.c

@@ -1,19 +1,13 @@
 #include <Myproject.h>
 
 extern uint16 SKI1, SKP1;
-/* Private variables ---------------------------------------------------------*/
-PWMINPUTCAL        xdata   mcPwmInput;
+
 CurrentVarible     xdata   mcCurVarible;
 FOCCTRL            xdata   mcFocCtrl;
 ILIMIT             xdata   mcIimit;
 MCRAMP             xdata   mcSpeedRamp;
 CONTROLCMDD        xdata   ConTrolCmd;
-int16     Huan_temp = 0, Guan_temp = 0, Paiqi_temp = 0;
-int16 qiangtujiaodu = 0;
 
-#if (Debugg==1)
-    extern int16  xdata GPFCON1, GPFCON2, GPFCON3, GPFCON4, GPFCON5, GPFCON6, GPFCON7, GPFCON8, GPFCON9, GPFCON10;
-#endif
 
 void FaultProcess(void)
 {
@@ -536,30 +530,3 @@ void IsLimit_Over_deal(void)
     }
 }
 
-
-uint16 VAC_Frequency_Max(void)
-{
-    static int16  Limit_Fre_Max = 0, VAC_last = 32765, VAC_chazhi = 0;
-    VAC_chazhi = VAC_last - mcFocCtrl.mcAcbusFlt;
-    
-    if ((VAC_chazhi > _Q15(7.0 / HW_BOARD_ACVOLT_MAX)) || (VAC_chazhi < (_Q15(-7.0 / HW_BOARD_ACVOLT_MAX))) || (mcFocCtrl.mcAcbustime > 10000))
-    {
-        if (mcFocCtrl.mcAcbusFlt <= VAC_Min)
-        {
-            Limit_Fre_Max = VAC_Min_F;
-        }
-        else if (mcFocCtrl.mcAcbusFlt <= VAC_Max)
-        {
-            Limit_Fre_Max = VAC_Min_F + (int16)(VAC_Max_K * (mcFocCtrl.mcAcbusFlt - VAC_Min));
-        }
-        else
-        {
-            Limit_Fre_Max = VAC_Max_F ;
-        }
-        
-        VAC_last = mcFocCtrl.mcAcbusFlt;
-        mcFocCtrl.mcAcbustime = 0;
-    }
-    
-    return Limit_Fre_Max;
-}

+ 0 - 1228
User/Function/Communication.c

@@ -1,1228 +0,0 @@
-/*  -------------------------- (C) COPYRIGHT 2020 Fortiortech ShenZhen ---------------------------*/
-/*  File Name      : Communication.c
-    /*  Author         : Fortiortech  Appliction Team
-    /*  Version        : V1.0
-    /*  Date           : 2020-04-09
-    /*  Description    : This file contains XX-XX-XX function used for Motor Control.
-    /*  ----------------------------------------------------------------------------------------------*/
-/*                                     All Rights Reserved
-    /*  ----------------------------------------------------------------------------------------------*/
-
-
-
-
-#include "FU68xx_5.h"
-#include <Myproject.h>
-#include <Communication.h>
-
-/************** Private variables *********************/
-//MCUART xdata ubf_status;
-#if (Debugg==1)
-
-
-void CMDMONI_WT_INIT(void);
-
-static int zop_cmdcheck(void);
-static int zop_dummy(void);
-static int zop_cmd00(void);
-static int zop_cmd01(void);
-static int zop_cmd02(void);
-static int zop_cmd03(void);
-static int zop_cmd04(void);
-static int zop_cmd05(void);
-static int zop_cmd06(void);
-static int zop_cmd07(void);
-static int zop_cmd08(void);
-static int zop_cmd09(void);
-static int zop_cmd0A(void);
-
-static unsigned char zop_CalcCheckSum(unsigned char * p, int cnt);
-static void zop_ClearSendCmdBuffer(void);
-static void zop_PressSend(int cnt);
-static void zop_ComCmdCheck(int id, int ctp);
-static void zop_SetGetTraceData(void);
-static void zop_trig_check(int trig_ch, int trig_mode);
-static int  zop_SetByteToInt(unsigned char * pByte);
-static int cmdmoni_getdata_size(int * adrs, char size);
-
-const uint16 LengthMask[4] = {127, 255, 511, 1023};
-
-
-
-unsigned char snd_ringbuf[SZ_SENDRINGBUF] = 0; //SZ_SENDRINGBUF
-
-int16 iRd = 0;
-int16 iWr = 0;
-
-
-unsigned char rcv_cmdbuf[SZ_RECVBUF] = 0; //SZ_RECVBUF
-unsigned char snd_cmdbuf[SZ_SENDBUF] = 0; //SZ_SENDBUF
-
-int buf_trace[SZ_TRACEBUF] = 0; //SZ_TRACEBUF
-
-int idy_trace = 0;
-int idy_copy_trace = 0;
-
-int iTraceCount = 0;
-uint16 iTraceCntMax = 0;
-uint16 iIntervalCount = 0;
-int16 iTraceID = 0;
-uint8 iReceiveCount = 0;
-
-int * ptr_adrs[CH_MAX] = 0; //CH_MAX
-char adrs_size[CH_MAX] = 0; //CH_MAX
-
-int iTrigLevel = 0;
-int iTrigDelay = 0;
-int itrig_cnt_delay = 0;
-int itrig_cnt_wait = 0;
-int itrig_data_old = 0;
-
-union  UNION_STATUS xdata ubf_status;
-
-uint16 cnt_wt_timeout = 0;
-uint16 cnt_wt_timeout2 = 0; //
-
-void MD_WT_INTRE( void )
-{
-    //  REG_RESET();// 处理各种错误,如:针错误,数据超时等等
-}
-
-void MD_WT_INTR( void )
-{
-    int iCmd = rcv_cmdbuf[0];
-    rcv_cmdbuf[iReceiveCount] = UT_DR;
-    iCmd = rcv_cmdbuf[0];
-    iReceiveCount++;
-    
-    if (iReceiveCount >= SZ_RECVBUF)
-    {
-        iReceiveCount = 0;
-        iRd = 0;
-        iWr = 0;
-    }
-}
-
-void senddeal(void)
-{
-    int iCmd = 0;
-    iCmd = rcv_cmdbuf[0];
-    
-    switch (iReceiveCount)
-    {
-        case RCVCMD6:
-            if (iCmd == 0x01)
-            {
-                zop_cmd01();
-                iReceiveCount = 0;
-                break;
-            }
-            
-            if (iCmd == 0x05)
-            {
-                zop_cmd05();
-                iReceiveCount = 0;
-                break;
-            }
-            
-            if (iCmd == 0x07)
-            {
-                zop_cmd07();
-                iReceiveCount = 0;
-                break;
-            }
-            
-            if (iCmd == 0x0A)
-            {
-                zop_cmd0A();
-                iReceiveCount = 0;
-                break;
-            }
-            
-            break;
-            
-        case RCVCMD9:
-            if (iCmd == 0x03)
-            {
-                zop_cmd03();
-                iReceiveCount = 0;
-                break;
-            }
-            
-            if (iCmd == 0x09)
-            {
-                zop_cmd09();
-                iReceiveCount = 0;
-                break;
-            }
-            
-            break;
-            
-        case RCVCMD11:
-            if (iCmd == 0x06)
-            {
-                zop_cmd06();
-                iReceiveCount = 0;
-            }
-            
-            break;
-            
-        case RCVCMD14:
-            if (iCmd == 0x04)
-            {
-                zop_cmd04();
-                iReceiveCount = 0;
-            }
-            
-            break;
-            
-        case RCVCMD16:
-            if (iCmd == 0x08)
-            {
-                zop_cmd08();
-                iReceiveCount = 0;
-            }
-            
-            break;
-    }
-    
-    return;
-}
-
-static void CMDMONI_WT_TRACEHALT(void)
-{
-    if (ubf_status.bf.halt_trace == 0)
-    {
-        ubf_status.bf.halt_trace = 1;
-        idy_copy_trace = idy_trace;
-    }
-}
-
-static int cmdmoni_getdata_size(int * adrs, char size)
-{
-    switch (size)
-    {
-        case 1:
-        {
-            char * ptr = (char *)(adrs);
-            return ((int)(*ptr));
-        }
-        break;
-        
-        case 2:
-        {
-            short * ptr = (short *)(adrs);
-            return ((int)(*ptr));
-        }
-        break;
-        
-        case 4:
-            return ((int)(*adrs));
-            break;
-            
-        default:
-            return ((int)(*adrs));
-            break;
-    }
-}
-int16  xdata GPFCON1  _at_ 0x000C2; //IA
-int16  xdata GPFCON2  _at_ 0x000C4; //IB
-int16  xdata GPFCON3  _at_ 0x000C6; //UD
-int16  xdata GPFCON4  _at_ 0x000C8; //UQ
-int16  xdata GPFCON5  _at_ 0x000CA; //角度
-int16  xdata GPFCON6  _at_ 0x000A2; //母线电压
-int16  xdata GPFCON7  _at_ 0x000A4; //给定转速
-int16  xdata GPFCON8  _at_ 0x000A6; //反馈转速
-int16  xdata GPFCON9  _at_ 0x000A8; //ipm温度
-int16  xdata GPFCON10 _at_ 0x000AA; //开关机转太
-/*根据所获得的地址设至相应的发送数据*/
-void CMDMONI_WT_TRACEWATCH(void)
-{
-    int msk = 0;
-    int iBase = 0;
-    int itrig_data_new;
-    {
-        if (iIntervalCount < ubf_status.bf.interval)
-        {
-            iIntervalCount++;
-            return;
-        }
-        else
-        {
-            iIntervalCount = 0;
-        }
-    }
-    
-    switch (adrs_size[ubf_status.bf.ch_trig])
-    {
-        case 1:
-        {
-            char * ptr = (char *)(ptr_adrs[ubf_status.bf.ch_trig]);
-            itrig_data_new = (int)(*ptr);
-        }
-        break;
-        
-        case 2:
-        {
-            short * ptr = (short *)(ptr_adrs[ubf_status.bf.ch_trig]);
-            itrig_data_new = (int)(*ptr);
-        }
-        break;
-        
-        case 4:
-            itrig_data_new = (int)(*ptr_adrs[ubf_status.bf.ch_trig]);
-            break;
-    }
-    
-    if (ubf_status.bf.halt_trace == 0)
-    {
-        msk = LengthMask[(ubf_status.bf.len_trace & 0x03)];
-        
-        switch (ubf_status.bf.ch_trace)
-        {
-            case 0:
-                iBase = idy_trace;
-                #if BIGENDIAN
-                buf_trace[iBase + 0] = cmdmoni_getdata_size(ptr_adrs[0], adrs_size[0]);
-                #else
-                buf_trace[iBase + 0] = 25122; //*(  int16 xdata *)(ptr_adrs[0]); //*ptr_adrs[0];//*ptr_adrs[0]:所放数据的地址
-                #endif
-                idy_trace++;
-                idy_trace &= msk;
-                break;
-                
-            case 1:
-                iBase = idy_trace + idy_trace;
-                #if BIGENDIAN
-                buf_trace[iBase + 0] = cmdmoni_getdata_size(ptr_adrs[0], adrs_size[0]);
-                buf_trace[iBase + 1] = cmdmoni_getdata_size(ptr_adrs[1], adrs_size[1]);
-                #else
-                //            GPFCON1=FOC__IA;
-                //            GPFCON2=FOC__IB;
-                buf_trace[iBase + 0] = *((  int16 xdata *)ptr_adrs[0]);//*((  uint8 xdata *)0x000C2);//*(  int16 xdata *)(ptr_adrs[0]); //*ptr_adrs[0];
-                buf_trace[iBase + 1] = *((  int16 xdata *)ptr_adrs[1]);//*((  int16 xdata *)0x000A2);//(  int16 xdata *)ojhgt;//*(  int16 xdata *)(ptr_adrs[1]);//*ptr_adrs[1];
-                #endif
-                idy_trace++;
-                idy_trace &= msk;
-                break;
-                
-            case 2:
-                iBase = idy_trace + idy_trace + idy_trace;
-                #if BIGENDIAN
-                buf_trace[iBase + 0] = cmdmoni_getdata_size(ptr_adrs[0], adrs_size[0]);
-                buf_trace[iBase + 1] = cmdmoni_getdata_size(ptr_adrs[1], adrs_size[1]);
-                buf_trace[iBase + 2] = cmdmoni_getdata_size(ptr_adrs[2], adrs_size[2]);
-                #else
-                buf_trace[iBase + 0] = FOC__IA;//*(  int16 xdata *)(ptr_adrs[0]);//*ptr_adrs[0];
-                buf_trace[iBase + 1] = FOC__IB;//*(  int16 xdata *)(ptr_adrs[1]);//*ptr_adrs[1];
-                buf_trace[iBase + 2] = FOC__IC;//*(  int16 xdata *)(ptr_adrs[2]);//*ptr_adrs[2];
-                #endif
-                idy_trace++;
-                idy_trace &= msk;
-                break;
-                
-            case 3:
-                iBase = idy_trace + idy_trace + idy_trace + idy_trace;
-                #if BIGENDIAN
-                buf_trace[iBase + 0] = cmdmoni_getdata_size(ptr_adrs[0], adrs_size[0]);
-                buf_trace[iBase + 1] = cmdmoni_getdata_size(ptr_adrs[1], adrs_size[1]);
-                buf_trace[iBase + 2] = cmdmoni_getdata_size(ptr_adrs[2], adrs_size[2]);
-                buf_trace[iBase + 3] = cmdmoni_getdata_size(ptr_adrs[3], adrs_size[3]);
-                #else
-                buf_trace[iBase + 0] = *(  int16 xdata *)(ptr_adrs[0]);//*ptr_adrs[0];
-                buf_trace[iBase + 1] = *(  int16 xdata *)(ptr_adrs[1]);//*ptr_adrs[1];
-                buf_trace[iBase + 2] = *(  int16 xdata *)(ptr_adrs[2]); //*ptr_adrs[2];
-                buf_trace[iBase + 3] = *(  int16 xdata *)(ptr_adrs[3]);//*ptr_adrs[3];
-                #endif
-                idy_trace++;
-                idy_trace &= msk;
-                break;
-        }
-        
-        itrig_cnt_wait++;
-        
-        if (itrig_cnt_wait > (msk * 2))
-        {
-            itrig_cnt_wait = msk * 2;
-            
-            if ((0 == ubf_status.bf.triggered) && (0 != ubf_status.bf.trig_en))
-            {
-                switch (ubf_status.bf.type_trig)
-                {
-                    case 0: // rise
-                        if ((itrig_data_new >= iTrigLevel) && (itrig_data_old < iTrigLevel))
-                        {
-                            ubf_status.bf.triggered = 1;
-                        }
-                        
-                        break;
-                        
-                    case 1: // fall
-                        if ((itrig_data_new <= iTrigLevel) && (itrig_data_old > iTrigLevel))
-                        {
-                            ubf_status.bf.triggered = 1;
-                        }
-                        
-                        break;
-                        
-                    case 2: // rise & fall
-                        if (itrig_data_new >= iTrigLevel)
-                        {
-                            if (itrig_data_old < iTrigLevel)
-                            {
-                                ubf_status.bf.triggered = 1;
-                            }
-                        }
-                        else
-                        {
-                            if (itrig_data_old > iTrigLevel)
-                            {
-                                ubf_status.bf.triggered = 1;
-                            }
-                        }
-                        
-                        break;
-                        
-                    default: // no
-                        break;
-                }
-            }
-        }
-        
-        if (0 != ubf_status.bf.triggered)
-        {
-            itrig_cnt_delay++;
-            
-            if (itrig_cnt_delay >= iTrigDelay)
-            {
-                CMDMONI_WT_TRACEHALT();
-                return;
-            }
-        }
-    }
-    else
-    {
-        ubf_status.bf.triggered = 0;
-        itrig_cnt_delay = 0;
-        itrig_cnt_wait = 0;
-        
-        if (0 == ubf_status.bf.trig_normal)
-        {
-            ubf_status.bf.trig_en = 0;
-        }
-    }
-    
-    itrig_data_old = itrig_data_new;
-}
-
-void CMDMONI_WT_1MS(void)
-{
-    if (iReceiveCount > 0)
-    {
-        cnt_wt_timeout++;
-    }
-    else
-    {
-        cnt_wt_timeout = 0;
-    }
-}
-
-static void zop_ComCmdCheck(int id, int ctp)
-{
-    snd_cmdbuf[0] = 0x8A;
-    snd_cmdbuf[1] = 0x04;
-    snd_cmdbuf[2] = id;
-    snd_cmdbuf[3] = 0x00;
-    snd_cmdbuf[4] = ctp;
-    snd_cmdbuf[5] = zop_CalcCheckSum(snd_cmdbuf, 5);
-    zop_PressSend(6);
-}
-static int zop_SetByteToInt(unsigned char * pByte)
-{
-    union UNION_INT iDATA;
-    #if BIGENDIAN
-    iDATA.b[0] = *(pByte + 3);
-    iDATA.b[1] = *(pByte + 2);
-    iDATA.b[2] = *(pByte + 1);
-    iDATA.b[3] = *(pByte + 0);
-    #else
-    iDATA.b[0] = *(pByte + 0);
-    iDATA.b[1] = *(pByte + 1);
-    iDATA.b[2] = *(pByte + 2);
-    iDATA.b[3] = *(pByte + 3);
-    #endif
-    return iDATA.i;
-}
-// Hello
-// RE[6]: 01H,04H,id,00H,00H,CS
-// TX[8]: 81H,06H,id,STATUS(4),CS
-static int zop_cmd01(void)
-{
-    uint8 cnt = RCVCMD6 - 1;
-    unsigned char sum = zop_CalcCheckSum(rcv_cmdbuf, cnt);
-    
-    if (rcv_cmdbuf[cnt] != sum)
-    {
-        return 0;
-    }
-    
-    snd_cmdbuf[0] = 0x81;
-    snd_cmdbuf[1] = 0x06;
-    snd_cmdbuf[2] = rcv_cmdbuf[2];
-    #if BIGENDIAN
-    snd_cmdbuf[3] = ubf_status.b[0];
-    snd_cmdbuf[4] = ubf_status.b[1];
-    snd_cmdbuf[6] = ubf_status.b[2];
-    snd_cmdbuf[5] = ubf_status.b[3];
-    #else
-    snd_cmdbuf[3] = ubf_status.b[3];
-    snd_cmdbuf[4] = ubf_status.b[2];
-    snd_cmdbuf[6] = ubf_status.b[1];
-    snd_cmdbuf[5] = ubf_status.b[0];
-    #endif
-    snd_cmdbuf[7] = zop_CalcCheckSum(snd_cmdbuf, 7);
-    zop_PressSend(8);
-    return 1;
-}
-
-static int zop_cmd02(void)
-{
-    return 0;
-}
-
-// Read
-// RE[9]:  03H,07H,id,00H,ADRESS(4),CS
-// TX[13]: 83H,0BH,id,00H,ADRESS(4),DATA(4),CS
-static int zop_cmd03(void)
-{
-    union UNION_DWORD xdata dwAdrs;
-    union UNION_INT   xdata iDATA;
-    union UNION_INT   xdata iDATA2;
-    uint8 cnt = RCVCMD9 - 1;
-    unsigned char sum = zop_CalcCheckSum(rcv_cmdbuf, cnt);
-    
-    if (rcv_cmdbuf[cnt] != sum)
-    {
-        return 0;
-    }
-    
-    dwAdrs.dw = zop_SetByteToInt(&rcv_cmdbuf[4]);
-    
-    if (dwAdrs.dw == 0)
-    {
-        dwAdrs.dw = DEF_TRACEADDR;
-    }
-    
-    #if BIGENDIAN
-    
-    switch (rcv_cmdbuf[3])
-    {
-        case 1:
-        {
-            char * ptr;
-            ptr = (char *)(dwAdrs.dw);
-            iDATA.b[0] = 0;
-            iDATA.b[1] = 0;
-            iDATA.b[2] = 0;
-            iDATA.b[3] = *ptr++;
-        }
-        break;
-        
-        case 2:
-        {
-            char * ptr;
-            ptr = (char *)(dwAdrs.dw);
-            iDATA.b[0] = 0;
-            iDATA.b[1] = 0;
-            iDATA.b[2] = *ptr++;
-            iDATA.b[3] = *ptr++;
-        }
-        break;
-        
-        default:
-        {
-            char * ptr;
-            ptr = (char *)(dwAdrs.dw);
-            iDATA.b[0] = *ptr++;
-            iDATA.b[1] = *ptr++;
-            iDATA.b[2] = *ptr++;
-            iDATA.b[3] = *ptr++;
-        }
-        break;
-    }
-    
-    #else
-    iDATA.i = *((  int16 xdata *)dwAdrs.dw);;//*(int *)(0x40c6 );
-    #endif
-    snd_cmdbuf[0] = 0x83;
-    snd_cmdbuf[1] = 0x0B;
-    snd_cmdbuf[2] = rcv_cmdbuf[2];
-    snd_cmdbuf[3] = 0x00;
-    #if BIGENDIAN
-    snd_cmdbuf[4] = dwAdrs.b[0];
-    snd_cmdbuf[5] = dwAdrs.b[1];
-    snd_cmdbuf[6] = dwAdrs.b[2];
-    snd_cmdbuf[7] = dwAdrs.b[3];
-    snd_cmdbuf[8]  = iDATA.b[0];
-    snd_cmdbuf[9]  = iDATA.b[1];
-    snd_cmdbuf[10] = iDATA.b[2];
-    snd_cmdbuf[11] = iDATA.b[3];
-    #else
-    snd_cmdbuf[4] = dwAdrs.b[3];
-    snd_cmdbuf[5] = dwAdrs.b[2];
-    snd_cmdbuf[6] = dwAdrs.b[1];
-    snd_cmdbuf[7] = dwAdrs.b[0];
-    snd_cmdbuf[8]  = iDATA.b[0];
-    snd_cmdbuf[9]  = iDATA.b[1];
-    snd_cmdbuf[10] = iDATA.b[2];
-    snd_cmdbuf[11] = iDATA.b[3];
-    #endif
-    snd_cmdbuf[12] = zop_CalcCheckSum(snd_cmdbuf, 12);
-    zop_PressSend(13);
-    return 3;
-}
-
-// Write
-// RE[14]: 04H,0CH,id,00H,DATASIZE(1)ADRESS(4),DATA(4),CS
-// TX[13]: 84H,0BH,id,00H,ADRESS(4),DATA(4),CS
-static int zop_cmd04(void)
-{
-    union UNION_DWORD xdata dwADRS;
-    union UNION_INT   xdata iDATA;
-    uint8 cnt = RCVCMD14 - 1;
-    unsigned char sum = zop_CalcCheckSum(rcv_cmdbuf, cnt);
-    
-    if (rcv_cmdbuf[cnt] != sum)
-    {
-        return 0;
-    }
-    
-    dwADRS.dw = zop_SetByteToInt(&rcv_cmdbuf[5]);
-    
-    if (dwADRS.dw == 0)
-    {
-        dwADRS.dw = DEF_TRACEADDR;
-    }
-    
-    iDATA.i = zop_SetByteToInt(&rcv_cmdbuf[9]);
-    
-    switch (rcv_cmdbuf[4])
-    {
-        case 1:
-            #if BIGENDIAN
-            *(char *)(dwADRS.dw) = iDATA.i;
-            #else
-            dwADRS.b[3] = 0;
-            dwADRS.b[2] = 0;
-            dwADRS.b[1] = 0;
-            dwADRS.b[0] = iDATA.b[0];
-            //          *(char *)(dwADRS.dw) = iDATA.b[0];
-            #endif
-            break;
-            
-        case 2:
-            #if BIGENDIAN
-            *(short *)(dwADRS.dw) = iDATA.i;
-            #else
-            {
-                union UNION_SHORT sSHORT;
-                ////                iDATA.b[3] = 0;
-                ////                iDATA.b[2] = 0;
-                sSHORT.b[1] = iDATA.b[3];
-                sSHORT.b[0] = iDATA.b[2];
-                *((  int16 xdata *)dwADRS.dw) = sSHORT.s;
-            }
-            #endif
-            break;
-            
-        case 4:
-            *(int *)(dwADRS.dw) = iDATA.i;
-            break;
-    }
-    
-    snd_cmdbuf[0] = 0x84;
-    snd_cmdbuf[1] = 0x0B;
-    snd_cmdbuf[2] = rcv_cmdbuf[2];
-    snd_cmdbuf[3] = 0x00;
-    #if BIGENDIAN
-    snd_cmdbuf[4] = dwADRS.b[0];
-    snd_cmdbuf[5] = dwADRS.b[1];
-    snd_cmdbuf[6] = dwADRS.b[2];
-    snd_cmdbuf[7] = dwADRS.b[3];
-    snd_cmdbuf[8]  = iDATA.b[0];
-    snd_cmdbuf[9]  = iDATA.b[1];
-    snd_cmdbuf[10] = iDATA.b[2];
-    snd_cmdbuf[11] = iDATA.b[3];
-    #else
-    snd_cmdbuf[4] = dwADRS.b[0];
-    snd_cmdbuf[5] = dwADRS.b[1];
-    snd_cmdbuf[6] = dwADRS.b[2];
-    snd_cmdbuf[7] = dwADRS.b[3];
-    snd_cmdbuf[8]  = iDATA.b[0];
-    snd_cmdbuf[9]  = iDATA.b[1];
-    snd_cmdbuf[10] = iDATA.b[2];
-    snd_cmdbuf[11] = iDATA.b[3];
-    #endif
-    snd_cmdbuf[12] = zop_CalcCheckSum(snd_cmdbuf, 12);
-    zop_PressSend(13);
-    return 4;
-}
-
-// GetTrace
-// RE[6]:     05H,04H,id,00H,00H,CS
-// TXHEAD[7]: 85H,05H,id,00H,Halt(2),cs   //Halt(2)通道
-// TXBODY[?]: 85H,??H,id,FFH,NUM(2),{DATA(4) * (CHANNEL)},CS//数据
-static int zop_cmd05(void)
-{
-    uint8 cnt = RCVCMD6 - 1;
-    union UNION_WORD xdata wd;
-    unsigned char sum = zop_CalcCheckSum(rcv_cmdbuf, cnt);
-    
-    if (rcv_cmdbuf[cnt] != sum)
-    {
-        return 0;
-    }
-    
-    if (ubf_status.bf.cmd_gettrace)
-    {
-        return 0;
-    }
-    
-    CMDMONI_WT_TRACEHALT();
-    iTraceID = rcv_cmdbuf[2];
-    iTraceCount = 0;
-    iTraceCntMax = (0x80 << ubf_status.bf.len_trace);
-    ubf_status.bf.cmd_gettrace = 1;
-    wd.w = idy_copy_trace;
-    snd_cmdbuf[0] = 0x85;
-    snd_cmdbuf[1] = 0x05;
-    snd_cmdbuf[2] = iTraceID;
-    snd_cmdbuf[3] = 0x00;
-    #if BIGENDIAN
-    snd_cmdbuf[4] = wd.b[0];
-    snd_cmdbuf[5] = wd.b[1];
-    #else
-    snd_cmdbuf[5] = wd.b[1];
-    snd_cmdbuf[4] = wd.b[0];
-    #endif
-    snd_cmdbuf[6] = zop_CalcCheckSum(snd_cmdbuf, 6);
-    zop_PressSend(7);
-    return 5;
-}
-
-//int pokujg=0;
-// SetTraceAddress
-// RE[11]: 06H,09H,id,00H,CHANNEL(1),DATASIZE(1),ADRESS(4),CS
-// TX[6]:  86H,04H,id,00H,00H,CS
-static int zop_cmd06(void)
-{
-    uint8 cnt = RCVCMD11 - 1;
-    unsigned char sum = zop_CalcCheckSum(rcv_cmdbuf, cnt);
-    
-    if (rcv_cmdbuf[cnt] != sum)
-    {
-        return 0;
-    }
-    
-    {
-        int iCH = (rcv_cmdbuf[4] & 0x03);
-        int dwAdrs = zop_SetByteToInt(&rcv_cmdbuf[6]);
-        
-        if (dwAdrs == 0)
-        {
-            dwAdrs = DEF_TRACEADDR;
-        }
-        
-        ptr_adrs[iCH] = (int *)dwAdrs;
-        adrs_size[iCH] = rcv_cmdbuf[5];
-    }
-    
-    //pokujg=ptr_adrs[0];
-    snd_cmdbuf[0] = 0x86;
-    snd_cmdbuf[1] = 0x04;
-    snd_cmdbuf[2] = rcv_cmdbuf[2];
-    snd_cmdbuf[3] = 0x00;
-    snd_cmdbuf[4] = 0x00;
-    snd_cmdbuf[5] = zop_CalcCheckSum(snd_cmdbuf, 5);
-    zop_PressSend(6);
-    return 6;
-}
-
-
-// TraceHALT_Clear
-// RE[6]: 07H,04H,id,00H,00H,CS
-// TX[6]: 87H,04H,id,00H,00H,CS
-static int zop_cmd07(void)
-{
-    uint8 cnt = RCVCMD6 - 1;
-    unsigned char sum = zop_CalcCheckSum(rcv_cmdbuf, cnt);
-    
-    if (rcv_cmdbuf[cnt] != sum)
-    {
-        return 0;
-    }
-    
-    snd_cmdbuf[0] = 0x87;
-    snd_cmdbuf[1] = 0x04;
-    snd_cmdbuf[2] = rcv_cmdbuf[2];
-    snd_cmdbuf[3] = 0x00;
-    snd_cmdbuf[4] = 0x00;
-    snd_cmdbuf[5] = zop_CalcCheckSum(snd_cmdbuf, 5);
-    zop_PressSend(6);
-    return 7;
-}
-
-// SetTriggerEnvironment
-// RE[16]: 08H,0EH,id,00H,TRIG CHANNEL(1),TRIG MODE(1),TRIG TYPE(1),UP LEVEL(4),LO LEVEL(4),CS
-// TX[6]:  88H,04H,id,00H,00H,CS
-static int zop_cmd08(void)
-{
-    int16 TG_ch   = (rcv_cmdbuf[4] & 0x03);
-    int16 TG_mode = (rcv_cmdbuf[5] & 0x01);
-    int16 TG_type = (rcv_cmdbuf[6] & 0x07);
-    int LV_up   = zop_SetByteToInt(&rcv_cmdbuf[7]);
-    int LV_lo   = zop_SetByteToInt(&rcv_cmdbuf[11]);
-    int cnt = RCVCMD16 - 1;
-    unsigned char sum = zop_CalcCheckSum(rcv_cmdbuf, cnt);
-    
-    if (rcv_cmdbuf[cnt] != sum)
-    {
-        return 0;
-    }
-    
-    ubf_status.bf.trig_normal = 0;
-    
-    if (TG_mode)
-    {
-        ubf_status.bf.trig_normal = 1;
-    }
-    
-    ubf_status.bf.ch_trig = TG_ch;
-    
-    if (TG_ch > ubf_status.bf.ch_trace)
-    {
-        TG_ch = ubf_status.bf.ch_trace;
-    }
-    
-    ubf_status.bf.type_trig = TG_type;
-    iTrigLevel = LV_up;
-    iTrigDelay = LV_lo;
-    snd_cmdbuf[0] = 0x88;
-    snd_cmdbuf[1] = 0x04;
-    snd_cmdbuf[2] = rcv_cmdbuf[2];
-    snd_cmdbuf[3] = 0x00;
-    snd_cmdbuf[4] = 0x00;
-    snd_cmdbuf[5] = zop_CalcCheckSum(snd_cmdbuf, 5);
-    zop_PressSend(6);
-    ubf_status.bf.trig_en = 1;
-    return 8;
-}
-
-// SetTraceEnvironment
-// RE[9]: 09H,07H,id,00H,DATA LENGTH(1),CHANEEL NUM(1),INTERVEL(2),CS
-// TX[6]: 89H,04H,id,00H,00H,CS
-static int zop_cmd09(void)
-{
-    union UNION_WORD uword;
-    uint8 cnt = RCVCMD9 - 1;
-    unsigned char sum = zop_CalcCheckSum(rcv_cmdbuf, cnt);
-    
-    if (rcv_cmdbuf[cnt] != sum)
-    {
-        return 0;
-    }
-    
-    #if BIGENDIAN
-    uword.b[1] = rcv_cmdbuf[6];
-    uword.b[0] = rcv_cmdbuf[7];
-    #else
-    uword.b[0] = rcv_cmdbuf[6];
-    uword.b[1] = rcv_cmdbuf[7];
-    #endif
-    ubf_status.bf.interval  = uword.w;
-    snd_cmdbuf[0] = 0x89;
-    snd_cmdbuf[1] = 0x04;
-    snd_cmdbuf[2] = rcv_cmdbuf[2];
-    snd_cmdbuf[3] = 0x00;
-    snd_cmdbuf[4] = 0x00;
-    snd_cmdbuf[5] = zop_CalcCheckSum(snd_cmdbuf, 5);
-    zop_PressSend(6);
-    return 9;
-}
-
-
-// RE[6]: 0AH,04H,id,00H,CHECK TYPE(1),CS
-// TX[6]: 8AH,04H,id,00H,CHECK TYPE(1),CS
-static int zop_cmd0A(void)
-{
-    uint8 cnt = RCVCMD6 - 1;
-    int16 iChkType = rcv_cmdbuf[4];
-    unsigned char sum = zop_CalcCheckSum(rcv_cmdbuf, cnt);
-    
-    if (rcv_cmdbuf[cnt] != sum)
-    {
-        return 0;
-    }
-    
-    // UserTraceHalt
-    if (iChkType == 0)
-    {
-        CMDMONI_WT_TRACEHALT();
-    }
-    
-    // UserTraceHalt Clear
-    if (iChkType == 1)
-    {
-        ubf_status.bf.halt_trace = 0;
-    }
-    
-    zop_ComCmdCheck((int)rcv_cmdbuf[2], (int)rcv_cmdbuf[4]);
-    return 10;
-}
-
-/*TRACE 发送数据的处理*/
-void CMDMONI_WT_CHECKCMD(void)
-{
-    static int8 uiui = 0;
-    
-    if (! ubf_status.bf.cmd_gettrace)
-    {
-        return;
-    }
-    
-    {
-        int s = iRd - iWr;
-        
-        if (s <= 0)
-        {
-            s += SZ_SENDRINGBUF;
-        }
-        
-        if (s < 64)
-        {
-            return;
-        }
-    }
-    
-    //  if(uiui<250)
-    {
-        //      uiui++;
-        zop_SetGetTraceData();
-        iTraceCount++;
-        
-        if (iTraceCount >= iTraceCntMax)
-        {
-            ubf_status.bf.halt_trace = 0;
-            ubf_status.bf.cmd_gettrace = 0;
-        }
-    }
-}
-uint8 txbuff = 0;
-/*一般数据发送的处理*/
-void CMDMONI_WT_SENDCMD(void)
-{
-    if ((cnt_wt_timeout > 100) || (cnt_wt_timeout2 > 100))
-    {
-        CMDMONI_WT_INIT();
-        cnt_wt_timeout = 0;
-        cnt_wt_timeout2 = 0;
-        return;
-    }
-    
-    if ((iRd != iWr) && (TI == 0))
-    {
-        txbuff = snd_ringbuf[iRd];//while (TI==0){};TI=0;
-        UT_DR =  txbuff;
-        iRd++;
-        
-        if (iRd >= SZ_SENDRINGBUF) //
-        { iRd = 0; }
-        
-        cnt_wt_timeout2 = 0;
-    }
-}
-void CMDMONI_WT_INIT(void)
-{
-    iReceiveCount = 0;
-    iRd = 0;
-    iWr = 0;
-    idy_trace = 0;
-    idy_copy_trace = 0;
-    iTraceCount = 0;
-    iTraceCntMax = 0;
-    iIntervalCount = 0;
-    iTraceID = 0;
-    {
-        uint8 i;
-        
-        for (i = 0; i < CH_MAX; i++)
-        {
-            ptr_adrs[i] = (int *)DEF_TRACEADDR;
-            adrs_size[i] = 4;
-        }
-    }
-    ubf_status.ui = 0;
-    ubf_status.bf.trig_support = 1;
-    ubf_status.bf.ch_trace  = CH_MAX - 1;
-    ubf_status.bf.len_trace = LEN_TRACE;
-}
-
-static unsigned char zop_CalcCheckSum(unsigned char * p, int cnt)
-{
-    uint8 i;
-    int sum = 0;
-    
-    for (i = 0; i < cnt; i++)
-    {
-        sum += *p++;
-    }
-    
-    sum = ~sum + 1;
-    sum = sum & 0x0FF;
-    return sum;
-}
-//uint8 faflag=0;
-static void zop_PressSend(int cnt)
-{
-    uint8 i;
-    
-    for (i = 0; i < cnt; i++)
-    {
-        snd_ringbuf[iWr] = snd_cmdbuf[i];
-        iWr++;
-        
-        if (iWr >= SZ_SENDRINGBUF)
-        { iWr = 0; }
-    }
-    
-    //  faflag=1;
-}
-
-// GetTrace
-// TX HEAD[7]: 85H,05H,id,00H,Halt?C???f?N?X(2),cs
-// TX BODY[?]: 85H,??H,id,FFH,NUM(2),{DATA(4) * (CHANNEL NUM)},CS
-
-static void zop_SetGetTraceData(void)
-{
-    int msk = LengthMask[(ubf_status.bf.len_trace & 0x03)];
-    union UNION_WORD xdata wd;
-    union UNION_INT  xdata ui;
-    int iDATA0 = 0;
-    int iDATA1 = 0;
-    int iDATA2 = 0;
-    int iDATA3 = 0;
-    wd.w = iTraceCount;
-    snd_cmdbuf[0] = 0x85;
-    snd_cmdbuf[1] = 0x00;
-    snd_cmdbuf[2] = iTraceID;
-    snd_cmdbuf[3] = 0xFF;
-    #if BIGENDIAN
-    snd_cmdbuf[5] = wd.b[0];
-    snd_cmdbuf[4] = wd.b[1];
-    #else
-    snd_cmdbuf[5] = wd.b[1];
-    snd_cmdbuf[4] = wd.b[0];
-    #endif
-    
-    switch (ubf_status.bf.ch_trace)
-    {
-        case 0:
-            snd_cmdbuf[1] = 0x09;
-            {
-                int iBase = idy_copy_trace;
-                iDATA0 = buf_trace[iBase + 0];
-                idy_copy_trace++;
-                idy_copy_trace &= msk;
-            }
-            ui.i = iDATA0;
-            #if BIGENDIAN
-            snd_cmdbuf[9] = ui.b[0];
-            snd_cmdbuf[8] = ui.b[1];
-            snd_cmdbuf[7] = ui.b[2];
-            snd_cmdbuf[6] = ui.b[3];
-            #else
-            snd_cmdbuf[9] = ui.b[3];
-            snd_cmdbuf[8] = ui.b[2];
-            snd_cmdbuf[7] = ui.b[1];
-            snd_cmdbuf[6] = ui.b[0];
-            #endif
-            snd_cmdbuf[10] = zop_CalcCheckSum(snd_cmdbuf, 10);
-            zop_PressSend(11);
-            break;
-            
-        case 1:
-            snd_cmdbuf[1] = 0x0D;
-            {
-                int iBase = (idy_copy_trace + idy_copy_trace);
-                iDATA0 = buf_trace[iBase + 0];
-                iDATA1 = buf_trace[iBase + 1];
-                idy_copy_trace++;
-                idy_copy_trace &= msk;
-            }
-            ui.i = iDATA0;
-            #if BIGENDIAN
-            snd_cmdbuf[9] = ui.b[0];
-            snd_cmdbuf[8] = ui.b[1];
-            snd_cmdbuf[7] = ui.b[2];
-            snd_cmdbuf[6] = ui.b[3];
-            #else
-            snd_cmdbuf[9] = ui.b[3];
-            snd_cmdbuf[8] = ui.b[2];
-            snd_cmdbuf[7] = ui.b[1];
-            snd_cmdbuf[6] = ui.b[0];
-            #endif
-            ui.i = iDATA1;
-            #if BIGENDIAN
-            snd_cmdbuf[13] = ui.b[0];
-            snd_cmdbuf[12] = ui.b[1];
-            snd_cmdbuf[11] = ui.b[2];
-            snd_cmdbuf[10] = ui.b[3];
-            #else
-            snd_cmdbuf[13] = ui.b[3];
-            snd_cmdbuf[12] = ui.b[2];
-            snd_cmdbuf[11] = ui.b[1];
-            snd_cmdbuf[10] = ui.b[0];
-            #endif
-            snd_cmdbuf[14] = zop_CalcCheckSum(snd_cmdbuf, 14);
-            zop_PressSend(15);
-            break;
-            
-        case 2:
-            snd_cmdbuf[1] = 0x11;
-            {
-                int iBase = (idy_copy_trace + idy_copy_trace + idy_copy_trace);
-                iDATA0 = buf_trace[iBase + 0];
-                iDATA1 = buf_trace[iBase + 1];
-                iDATA2 = buf_trace[iBase + 2];
-                idy_copy_trace++;
-                idy_copy_trace &= msk;
-            }
-            ui.i = iDATA0;
-            #if BIGENDIAN
-            snd_cmdbuf[6] = ui.b[0];
-            snd_cmdbuf[7] = ui.b[1];
-            snd_cmdbuf[8] = ui.b[2];
-            snd_cmdbuf[9] = ui.b[3];
-            #else
-            snd_cmdbuf[6] = ui.b[3];
-            snd_cmdbuf[7] = ui.b[2];
-            snd_cmdbuf[8] = ui.b[1];
-            snd_cmdbuf[9] = ui.b[0];
-            #endif
-            ui.i = iDATA1;
-            #if BIGENDIAN
-            snd_cmdbuf[10]  = ui.b[0];
-            snd_cmdbuf[11]  = ui.b[1];
-            snd_cmdbuf[12] = ui.b[2];
-            snd_cmdbuf[13] = ui.b[3];
-            #else
-            snd_cmdbuf[10]  = ui.b[3];
-            snd_cmdbuf[11]  = ui.b[2];
-            snd_cmdbuf[12] = ui.b[1];
-            snd_cmdbuf[13] = ui.b[0];
-            #endif
-            ui.i = iDATA2;
-            #if BIGENDIAN
-            snd_cmdbuf[14] = ui.b[0];
-            snd_cmdbuf[15] = ui.b[1];
-            snd_cmdbuf[16] = ui.b[2];
-            snd_cmdbuf[17] = ui.b[3];
-            #else
-            snd_cmdbuf[14] = ui.b[3];
-            snd_cmdbuf[15] = ui.b[2];
-            snd_cmdbuf[16] = ui.b[1];
-            snd_cmdbuf[17] = ui.b[0];
-            #endif
-            snd_cmdbuf[18] = zop_CalcCheckSum(snd_cmdbuf, 18);
-            zop_PressSend(19);
-            break;
-            
-        case 3:
-            snd_cmdbuf[1] = 0x15;
-            {
-                int iBase = (idy_copy_trace + idy_copy_trace + idy_copy_trace + idy_copy_trace);
-                iDATA0 = buf_trace[iBase + 0];
-                iDATA1 = buf_trace[iBase + 1];
-                iDATA2 = buf_trace[iBase + 2];
-                iDATA3 = buf_trace[iBase + 3];
-                idy_copy_trace++;
-                idy_copy_trace &= msk;
-            }
-            ui.i = iDATA0;
-            #if BIGENDIAN
-            snd_cmdbuf[6] = ui.b[0];
-            snd_cmdbuf[7] = ui.b[1];
-            snd_cmdbuf[8] = ui.b[2];
-            snd_cmdbuf[9] = ui.b[3];
-            #else
-            snd_cmdbuf[6] = ui.b[3];
-            snd_cmdbuf[7] = ui.b[2];
-            snd_cmdbuf[8] = ui.b[1];
-            snd_cmdbuf[9] = ui.b[0];
-            #endif
-            ui.i = iDATA1;
-            #if BIGENDIAN
-            snd_cmdbuf[10] = ui.b[0];
-            snd_cmdbuf[11] = ui.b[1];
-            snd_cmdbuf[12] = ui.b[2];
-            snd_cmdbuf[13] = ui.b[3];
-            #else
-            snd_cmdbuf[10] = ui.b[3];
-            snd_cmdbuf[11] = ui.b[2];
-            snd_cmdbuf[12] = ui.b[1];
-            snd_cmdbuf[13] = ui.b[0];
-            #endif
-            ui.i = iDATA2;
-            #if BIGENDIAN
-            snd_cmdbuf[14] = ui.b[0];
-            snd_cmdbuf[15] = ui.b[1];
-            snd_cmdbuf[16] = ui.b[2];
-            snd_cmdbuf[17] = ui.b[3];
-            #else
-            snd_cmdbuf[14] = ui.b[3];
-            snd_cmdbuf[15] = ui.b[2];
-            snd_cmdbuf[16] = ui.b[1];
-            snd_cmdbuf[17] = ui.b[0];
-            #endif
-            ui.i = iDATA3;
-            #if BIGENDIAN
-            snd_cmdbuf[18] = ui.b[0];
-            snd_cmdbuf[19] = ui.b[1];
-            snd_cmdbuf[20] = ui.b[2];
-            snd_cmdbuf[21] = ui.b[3];
-            #else
-            snd_cmdbuf[18] = ui.b[3];
-            snd_cmdbuf[19] = ui.b[2];
-            snd_cmdbuf[20] = ui.b[1];
-            snd_cmdbuf[21] = ui.b[0];
-            #endif
-            snd_cmdbuf[22] = zop_CalcCheckSum(snd_cmdbuf, 22);
-            zop_PressSend(23);
-            break;
-    }
-}
-
-
-void PC_MONITOR_MAIN(void)
-{
-    CMDMONI_WT_CHECKCMD();
-}
-
-void PC_MONITOR_1MS(void)
-{
-	CMDMONI_WT_1MS();
-}
-
-void PC_MONITOR_PWM(void)
-{
-	CMDMONI_WT_TRACEWATCH();
-}
-
-void PC_MONITOR_INTR(void)
-{
-    {
-        MD_WT_INTR();
-    }
-}
-
-#endif

+ 0 - 5
User/Application/FocControl.c → User/Function/FocControl.c

@@ -179,11 +179,6 @@ void Motor_Control_State(void)
 */
 void Tick_Task(void)
 {
-    // 使能ADC的DCBUS采样 等待转换完成
-    SetBit(ADC_CR, ADCBSY);
-    
-    while (ReadBit(ADC_CR, ADCBSY));
-    
     if ((mcState == mcStart) || (mcState == mcRun) || (mcState == mcStop))
     {
         mcFocCtrl.BEmf         =  LPF_Zero_Update(FOC__EMF, mcFocCtrl.BEmf, LPF_K(5.0));

+ 0 - 0
User/Application/FocControlFunction.c → User/Function/FocControlFunction.c


+ 0 - 214
User/Function/PFC.c

@@ -1,214 +0,0 @@
-/* Includes -------------------------------------------------------------------------------------*/
-#include "FU68xx_5.h"
-#include <Myproject.h>
-
-OTHER              xdata udc;
-
-PFCValue  PFCSet;
-uint16 PFC_UDCREF_GET = 0;
-uint16  MduTempL = 0, MduTempH = 0, MduDIVL = 0;
-/*KM选择每100W一个挡位,原有KM加此值*/
-const int8 PFC_KM_vaule_add[25] =
-{
-    -15,   -13,    -8,     -1,     0,                                   //0-500
-        10,    12,    14,     16,    20,                                   //600-1000
-        30,    32,    34,     36,    38,                                   //1100-1500
-        40,    42,    44,     46,    48,                                   //1600-2000
-        50,    52,    54,     56,    58,                                   //2100-2500
-    };
-
-
-void PFC_init(void)
-{
-    UDC_REF      = 0x00;        // PFC_UDCREF;  // udc的参考值
-    UDC__UK      = 0x00;        // 外环PI的输出
-    UDC_KP       = PFC_UKP;     // 外环KP
-    UDC_KI       = PFC_UKI;     // 外环KI
-    UDC_UKMAX    = 0x00;        // 外环输出最大值
-    IAC__REF     = 0x00;        // PFC模式时,不需要设置,由外环PI乘以Uac得到ref值
-    IAC__UK      = 0x00;        // 内环PI的输出
-    IAC_KP       = PFC_IKP;     // 内环KP
-    IAC_KI       = PFC_IKI;     // 内环KI
-    IAC_UKMAX    = 0x00;        // 最大7fff对应输出100%占空比,调试时别设太大,防止爆炸
-    PFC_ARR      = PFCPWM_ARR;  // 周期值
-    PFC_KM       = 3;           // Km的值
-    /*  -------------------------------------------------------------------------------------------------
-        UAC采样分频设置
-        00: 不分频  01: 2分频  10: 4分频  11: 8分频
-        -------------------------------------------------------------------------------------------------*/
-    #if (SAMPLEFREQ==SAMPLEDIV0)
-    ClrBit(PFC_CR1, UACSAMSEL1 | UACSAMSEL0);
-    #elif (SAMPLEFREQ==SAMPLEDIV2)
-    SetReg(PFC_CR1, UACSAMSEL1 | UACSAMSEL0, UACSAMSEL0) ;
-    #elif (SAMPLEFREQ==SAMPLEDIV4)
-    SetReg(PFC_CR1, UACSAMSEL1 | UACSAMSEL0, UACSAMSEL1);
-    #elif (SAMPLEFREQ==SAMPLEDIV8)
-    SetBit(PFC_CR1, UACSAMSEL1 | UACSAMSEL0);
-    #endif
-    /*  -------------------------------------------------------------------------------------------------
-        UTHR  0: 1/16的UACMAX  1: 1/8的UACMAX
-        -------------------------------------------------------------------------------------------------*/
-    SetBit(PFC_CR1, UTHR);
-    //    PFC_OUTARR   = 41;        // 电压环执行频率=PFC载波频率/OUTARR  200:执行频率=41k/200=205hz  40:执行频率=41k/40=1025hz
-    PFC_ADCCH    = 0xC1;       // 高4位:iac的ADC12通道  低4位:uac的ADC11通道    //6815板子Uac为AD3
-    PFC_CSO      = 0x0000;     // 电流基准
-    //    PFC_TRGDLY  &= 0x0F;
-    //    PFC_TRGDLY  |= 0x30;       // 采样delay设置,只写高4位,低4位默认写0,如0xX0,X的范围为:0-F
-    
-    if (UAC_N > 31)
-    { PFC_CR1     |= 0x1F; }       // UAC采样次数0x1f
-    else
-    { PFC_CR1     |= UAC_N; }      // UAC采样次数
-    
-    //    SetBit(PFC_CR0, UAVGCDIS);// PFC硬件自动算UAVG禁止
-    ClrBit(PFC_CR0, UAVGCDIS);//开启自动计算
-    #if (PFCOverCurrentProtectMode==PFCOVERCURRENT)
-    {
-        ClrBit(PFC_CR0, PFCOA);    // PFC过流
-    }
-    #elif (PFCOverCurrentProtectMode==PFCOVERCURRENTLimt)
-    {
-        SetBit(PFC_CR0, PFCOA);    // PFC逐波限流
-    }
-    #endif
-    //    SetBit(PFC_CR0, PFCEN);    // PFC使能
-    //    PFC_CR2     |=0<<6;         //00:1倍死区   01:1/2   10: 2倍  11:不使能   //灯泡负载不加死区,电机负载加死区
-    ClrBit(PFC_CR2, PFC_BLK_MD1);
-    ClrBit(PFC_CR2, PFC_BLK_MD0);
-    PFC_CR2     |= 1 << 5;      //在大于50%的地方采样,0:使能 1:不使能
-    ClrBit(PFC_CR2, P2FTEN); //采样时刻设置0向下计数时采样,1向上计数时采样
-    #if (PFCOverCurrentProtectEnable)
-    CMP5_Init();
-    #endif
-    //    SetBit(ADC_MASK, CH12EN);//使能IAC的采样
-    /****参数初始化*******/
-    PFCSet.UDCREFValue  = 0;
-    PFCSet.IACOUTMax    = 0;
-    PFCSet.OverVoltFlag = 0;
-    //    PFCSet.UDCOUTMax    = PFC_UDCREF;
-}
-void PFC_start(void)
-{
-    ClrBit(PFC_CR0, PFCEN);    // PFC使能
-    IAC_UKMIN   = 0;
-    SetBit(PFC_CR0, PFCEN);    // PFC使能
-    UDC_REF      = 0x00;        // PFC_UDCREF;    // udc的参考值
-    UDC__UK      = 0x00;        // 外环PI的输出
-    UDC_KP       = PFC_UKP;     // 外环KP
-    UDC_KI       = PFC_UKI;     // 外环KI
-    UDC_UKMAX    = 0x00;        // 外环输出最大值
-    IAC__REF     = 0x00;        // PFC模式时,不需要设置,由外环PI乘以Uac得到ref值
-    IAC__UK      = 0x00;        // 内环PI的输出
-    IAC_KP       = PFC_IKP;     // 内环KP
-    IAC_KI       = PFC_IKI;     // 内环KI
-    IAC_UKMAX    = 0x00;        // 最大7fff对应输出100%占空比,调试时别设太大,防止爆炸
-    PFC_ARR      = PFCPWM_ARR;  // 周期值
-    PFC_KM       = 3;           // Km的值
-    UDC_UKMIN   = 0; //UDC_UKMIN
-    //      IAC_UKMIN   = 0;
-    PFC_OUTARR   = 40;        // 电压环执行频率=PFC载波频率/OUTARR  200:执行频率=41k/200=205hz  40:执行频率=41k/40=1025hz
-    PFC_TRGDLY  &= 0x0F;
-    PFC_TRGDLY  |= 0x00;       // 采样delay设置,只写高4位,低4位默认写0,如0xX0,X的范围为:0-F
-    SetBit(PFC_CR0, UAVGCDIS);// PFC硬件自动算UAVG禁止
-    //    ClrBit(PFC_CR0, UAVGCDIS);//开启自动计算
-    #if (PFCOverCurrentProtectMode==PFCOVERCURRENT)
-    {
-        ClrBit(PFC_CR0, PFCOA);    // PFC过流
-    }
-    #elif (PFCOverCurrentProtectMode==PFCOVERCURRENTLimt)
-    {
-        SetBit(PFC_CR0, PFCOA);    // PFC逐波限流
-    }
-    #endif
-    ClrBit(PFC_CR2, P2FTEN); //采样时刻设置0向下计数时采样,1向上计数时采样
-    SetBit(ADC_MASK, CH12EN);//使能IAC的采样
-    /****参数初始化*******/
-    PFCSet.UDCREFValue  = 0;
-    PFCSet.IACOUTMax    = 0;
-    PFCSet.OverVoltFlag = 0;
-    PFCSet.UDCOUTMax    = PFC_UDCREF_Max;//PFC_UDCREF_GET;
-}
-
-
-// udc最大值最小值获取
-void UdcMax_Min(void)
-{
-    //    SetBit(ADC_CR, ADCBSY);           // 使能ADC的DCBUS采样
-    udc.L1           = ADC13_DR;
-    udc.L2           = ADC10_DR;
-    udc.L3           = ADC12_DR;
-    
-    if (udc.L1 >= udc.L2 && udc.L1 >= udc.L3)
-    {
-        udc.LMAX = udc.L1;
-    }
-    
-    if (udc.L2 >= udc.L1 && udc.L2 >= udc.L3)
-    {
-        udc.LMAX = udc.L2;
-    }
-    
-    if (udc.L3 >= udc.L2 && udc.L3 >= udc.L1)
-    {
-        udc.LMAX = udc.L3;
-    }
-    
-    mcFocCtrl.mcDcbus           = ADC2_DR;
-    mcFocCtrl.mcAcbus           = udc.LMAX;
-    
-    if (mcFocCtrl.mcDcbus >= mcFocCtrl.mcDcbus_max_temp)
-    {
-        mcFocCtrl.mcDcbus_max_temp = mcFocCtrl.mcDcbus;
-    }
-    
-    if (mcFocCtrl.mcAcbus >= mcFocCtrl.mcAcbus_max_temp)
-    {
-        mcFocCtrl.mcAcbus_max_temp = mcFocCtrl.mcAcbus;
-    }
-    
-    if (mcFocCtrl.mcDcbus <= mcFocCtrl.mcDcbus_min_temp)
-    {
-        mcFocCtrl.mcDcbus_min_temp = mcFocCtrl.mcDcbus;
-    }
-    
-    mcFocCtrl.mcDcbus_count++;
-    
-    if (mcFocCtrl.mcDcbus_count >= Udcmax_ms)
-    {
-        mcFocCtrl.mcAcbus_max      = mcFocCtrl.mcAcbus_max_temp;
-        mcFocCtrl.mcDcbus_max      = mcFocCtrl.mcDcbus_max_temp;
-        mcFocCtrl.mcDcbus_min      = mcFocCtrl.mcDcbus_min_temp;
-        mcFocCtrl.mcDcbus_chazhi   = mcFocCtrl.mcDcbus_max - mcFocCtrl.mcDcbus_min;
-        mcFocCtrl.mcDcbus_min_temp = mcFocCtrl.mcDcbus;
-        mcFocCtrl.mcDcbus_max_temp = mcFocCtrl.mcDcbus;
-        mcFocCtrl.mcAcbus_max_temp = 0;
-        mcFocCtrl.mcDcbus_count    = 0;
-    }
-    
-    udc.mcDcbusRef      = mcFocCtrl.mcDcbus_max - mcFocCtrl.mcDcbus;
-    
-    if (udc.mcDcbusRef <= 1)
-    {
-        udc.mcDcbusRef = 1;
-    }
-    
-    //      udc.WeakenUsRef  =(uint32)(udc.mcDcbusRef/540) * HW_BOARD_VOLT_MAX;
-    MUL0_MA = HW_BOARD_VOLT_MAX;
-    MUL0_MB = udc.mcDcbusRef;
-    SMDU_RunBlock(0, SMUL);
-    MduTempH    = MUL0_MCH;
-    MduTempL = MUL0_MCL;
-    DIV0_DAH    =   MduTempH;
-    DIV0_DAL    =   MduTempL;
-    DIV0_DB     =   540;
-    SMDU_RunBlock(0, DIV);
-    MduDIVL = DIV0_DQL;
-    udc.WeakenUsRef = DcbusK - MduDIVL;      //弱磁深度
-    
-    if (udc.WeakenUsRef >= _Q15(1.0))
-    {
-        udc.WeakenUsRef = _Q15(1.0);
-    }
-}
-
-

+ 2 - 82
User/Application/Protect.c → User/Function/Protect.c

@@ -440,7 +440,7 @@ void Fault_IPMOverTemp(void)
 {
     if (mcFaultSource == FaultNoSource)
     {
-        if (mcFocCtrl.IPMtemp > TempProtValue)
+        if (motorControl.IGBTTemp > TempProtValue)
         {
             mcFaultDect.OverTempDetecCnt++;
             
@@ -460,7 +460,7 @@ void Fault_IPMOverTemp(void)
     /*******温度保护恢复*********/
     if ((mcState == mcFault) && (mcFaultSource == FaultIpmTemp))
     {
-        if (mcFocCtrl.IPMtemp < TempRecoverValue)
+        if (motorControl.IGBTTemp < TempRecoverValue)
         {
             mcFaultDect.TempRecoverCnt++;
             
@@ -477,86 +477,6 @@ void Fault_IPMOverTemp(void)
     }
 }
 
-void Fault_TempSensor(void)
-{
-    if (mcFaultSource == FaultNoSource)
-    {
-        if ((Huan_temp == 1500) || (Huan_temp == -1000))
-        {
-            mcFaultDect.OverHuantempDetecCnt++;
-            
-            if (mcFaultDect.OverHuantempDetecCnt > 50)
-            {
-                mcFaultDect.OverHuantempDetecCnt = 0;
-                mcFaultSource             = FaultHuanTempSensor;
-                FaultProcess();
-            }
-        }
-        else
-        {
-            mcFaultDect.OverHuantempDetecCnt = 0;
-        }
-        
-        if ((Guan_temp == 1500) || (Guan_temp == -1000))
-        {
-            mcFaultDect.OverGuantempDetecCnt++;
-            
-            if (mcFaultDect.OverGuantempDetecCnt > 50)
-            {
-                mcFaultDect.OverGuantempDetecCnt = 0;
-                mcFaultSource             = FaultGuanTempSensor;
-                FaultProcess();
-            }
-        }
-        else
-        {
-            mcFaultDect.OverGuantempDetecCnt = 0;
-        }
-    }
-    
-    /*******温度保护恢复*********/
-    if ((mcState == mcFault) && ((mcFaultSource == FaultHuanTempSensor) || (mcFaultSource == FaultGuanTempSensor)))
-    {
-        if ((Huan_temp != 1500) && (Huan_temp != -1000))
-        {
-            mcFaultDect.HuantempRecoverCnt++;
-            
-            if (mcFaultDect.HuantempRecoverCnt > 200)
-            {
-                mcFaultSource           = FaultNoSource;
-                mcFaultDect.HuantempRecoverCnt = 0;
-            }
-        }
-        else
-        {
-            mcFaultDect.HuantempRecoverCnt = 0;
-        }
-        
-        if ((Guan_temp != 1500) && (Guan_temp != -1000))
-        {
-            mcFaultDect.GuantempRecoverCnt++;
-            
-            if (mcFaultDect.GuantempRecoverCnt > 200)
-            {
-                mcFaultSource           = FaultNoSource;
-                mcFaultDect.GuantempRecoverCnt = 0;
-            }
-        }
-        else
-        {
-            mcFaultDect.GuantempRecoverCnt = 0;
-        }
-    }
-}
-/*通信保护*/
-void Fault_cummution()
-{
-    if ((mcFaultDect.commu_time >= 30000) && (CummProtectEnable == 1))
-    {
-        ConTrolCmd.yajispeed = 0;
-        ConTrolCmd.fengjispeed = 0;
-    }
-}
 
 /*压机偏置电压错误恢复*/
 void IOffsetRecoverEnable()

+ 28 - 14
User/Hardware/ADC.c

@@ -1,3 +1,10 @@
+/**
+ * @copyright None
+ * @file      ADC.c
+ * @author    Comment Vivre 
+ * @date      2025-11-03
+ * @brief     None
+ */
 #include <MyProject.h>
 
 /**
@@ -7,22 +14,22 @@
 */
 void VREF_Config_Init(void)
 {
-	// 基准电压配置
+    // 基准电压配置
     #if (HW_ADC_VREF == VREF3_0)
-	SetReg(VREF_VHALF_CR,VRVSEL1 | VRVSEL0, VRVSEL1);
+    SetReg(VREF_VHALF_CR, VRVSEL1 | VRVSEL0, VRVSEL1);
     #elif (HW_ADC_VREF == VREF4_0)
-	SetBit(VREF_VHALF_CR,VRVSEL1 | VRVSEL0);
+    SetBit(VREF_VHALF_CR, VRVSEL1 | VRVSEL0);
     #elif (HW_ADC_VREF == VREF4_5)
-	ClrBit(VREF_VHALF_CR,VRVSEL1 | VRVSEL0);
+    ClrBit(VREF_VHALF_CR, VRVSEL1 | VRVSEL0);
     #elif (HW_ADC_VREF == VREF5_0)
-	SetReg(VREF_VHALF_CR,VRVSEL1 | VRVSEL0, VRVSEL0);
+    SetReg(VREF_VHALF_CR, VRVSEL1 | VRVSEL0, VRVSEL0);
     #endif
-	// 基准电压输出滤波控制
+    // 基准电压输出滤波控制
     SetBit(P3_AN, PIN5);
     SetBit(P3_OE, PIN5);
-	// VHALF 输出滤波配置
+    // VHALF 输出滤波配置
     SetBit(P3_AN, P32);
-	// 基准电压与VHALF使能
+    // 基准电压与VHALF使能
     SetBit(VREF_VHALF_CR, VREFEN | VHALFEN);
 }
 
@@ -71,13 +78,20 @@ void AMP_Init(void)
 }
 
 /**
- * @function     Get_ADC_Value
- * @brief        读取ADC转换值
- * @date         2025-11-03
+    @function     Get_ADC_Value
+    @brief        读取ADC转换值
+    @date         2025-11-03
 */
 void Get_ADC_Value(void)
 {
-    motorControl.ACBus   = LPF_Zero_Update(VACBUS_ADC, motorControl.ACBus, LPF_K(1.0));
-    motorControl.DCBus   = LPF_Zero_Update(VDCBUS_ADC, motorControl.DCBus, LPF_K(5.0));
-    motorControl.IPMTemp = LPF_Zero_Update(IGBT_NTC_ADC, motorControl.IPMTemp, LPF_K(20.0));
+    // 使能ADC的DCBUS采样 
+    SetBit(ADC_CR, ADCBSY);
+    // 等待转换完成
+    while (ReadBit(ADC_CR, ADCBSY));
+    
+    // 读取数据
+    motorControl.DCBus    = LPF_Zero_Update(VDCBUS_ADC, motorControl.DCBus, LPF_K(5.0));
+    motorControl.ACBus    = LPF_Zero_Update(VACBUS_ADC, motorControl.ACBus, LPF_K(1.0));
+    motorControl.IGBTTemp = LPF_Zero_Update(IGBT_NTC_ADC, motorControl.IGBTTemp, LPF_K(20.0));
+    // 数据处理
 }

+ 0 - 22
User/Hardware/AMP.c

@@ -1,25 +1,3 @@
-/********************************************************************************
-
- **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
-
- ********************************************************************************
-    File Name     : AMP.c
-    Author        : Bruce HW&RD
-    Date          : 2019-09-11
-    Description   : .C file function description
-    Version       : 1.0
-    Function List :
-
-    Record        :
-    1.Date        : 2019-09-11
-     Author      : Bruce HW&RD
-     Modification: Created file
-
-********************************************************************************/
-
-#include "AMP.h"
-#include "FU68xx_5_MCU.h"
-#include "Customer.h"
 #include <Myproject.h>
 #if 0
 void AMP_Init(void)

+ 9 - 4
User/Hardware/CMP.c

@@ -1,6 +1,11 @@
-#include "FU68xx_5_MCU.h"
-#include "Customer.h"
-#include "Parameter.h"
+/**
+ * @copyright None
+ * @file      CMP.c
+ * @author    Comment Vivre 
+ * @date      2025-11-03
+ * @brief     None
+ */
+#include <Myproject.h>
 
 void CMP0_Init(void)
 {
@@ -173,7 +178,7 @@ void CMP5_Init(void)
     /**********使能DAC******************/
     SetBit(DAC_CR, DAC2EN );
     /**********设置DAC过流值*****************/
-    DAC2_DR = DAC_PFCOvercurrentValue;
+    DAC2_DR = 0;
     /*比较器使能-------------------------------------------------------------------------------------*/
     SetBit(CMP_CR4, CMP5EN);
 }

+ 27 - 32
User/Hardware/DRIVER.c

@@ -1,3 +1,10 @@
+/**
+ * @copyright None
+ * @file      DRIVER.c
+ * @author    Comment Vivre 
+ * @date      2025-11-03
+ * @brief     None
+ */
 #include <MyProject.h>
 
 
@@ -13,31 +20,19 @@ void Driver_Init(void)
     DRV_DR  = 0;
     DRV_CMR = 0x0abf;              //UH/VH/WH UL/VL/WL 互补
     DRV_OUT = 0x00;                //空闲电平,默认高电平有效
-    /*驱动有效电平和空闲电平*/
-    #if (PWM_Level_Mode == High_Level)
-    {
-        ClrBit(PI_CR, HINV);   // 反相关闭
-        ClrBit(PI_CR, LINV);   // 反相关闭
-    }
-    #elif (PWM_Level_Mode == Low_Level)
-    {
-        SetBit(PI_CR, HINV);   // 反相打开
-        SetBit(PI_CR, LINV);   // 反相打开
-    }
-    #elif (PWM_Level_Mode == UP_H_DOWN_L)
-    {
-        ClrBit(PI_CR, HINV);   // 反相关闭
-        SetBit(PI_CR, LINV);   // 反相打开
-    }
-    #elif (PWM_Level_Mode == UP_L_DOWN_H)
-    {
-        SetBit(PI_CR, HINV);   // 反相打开
-        ClrBit(PI_CR, LINV);   // 反相关闭
-    }
-    #endif //end PWM_Level_Mode
-    //    SetBit(DRV_SR , FGIE);  //FG中断使能          0-->Disable     1-->Enable
-    /*清中断标志位,使能中断,配置比较值,设置中断优先级*/
-    ClrBit(DRV_SR, DCIF);   //清除DRV中断标志位
+    // 驱动电平配置
+    #if (PWM_LEVEL_MODE == HIGH_LEVEL)
+    ClrBit(PI_CR, HINV | LINV);
+    #elif (PWM_LEVEL_MODE == LOW_LEVEL)
+    SetBit(PI_CR, HINV | LINV);
+    #elif (PWM_LEVEL_MODE == UP_H_DOWN_L)
+    SetReg(PI_CR, HINV | LINV, LINV);
+    #elif (PWM_LEVEL_MODE == UP_L_DOWN_H)
+    SetReg(PI_CR, HINV | LINV, HINV);
+    #endif
+    ClrBit(DRV_SR, FGIE);   //FG中断使能
+    // 清中断标志位,使能中断,配置比较值,设置中断优先级
+    ClrBit(DRV_SR, DCIF);
     /**************************************************
         DRV比较匹配中断模式
         当计数值等于DRV_COMR时,根据DCIM的设置判断是否产生中断标记
@@ -46,17 +41,17 @@ void Driver_Init(void)
     *************************************************/
     SetBit(DRV_SR, DCIM1);
     ClrBit(DRV_SR, DCIM0);
-    /*设置DRV计数器的比较匹配值,当DRV计数值与COMR相等时,根据DRV_SR寄存器的DCIM是否产生比较匹配事件*/
+    // 设置DRV计数器的比较匹配值,当DRV计数值与COMR相等时,根据DRV_SR寄存器的DCIM是否产生比较匹配事件
     DRV_COMR = (PWM_VALUE_LOAD >> 3);
     SetBit(IP0, PDRV1);
     SetBit(IP0, PDRV0);
-    ClrBit(DRV_SR, DCIP);   //0-->1个计数周期产生中断  1-->2个计数周期产生中断
+    ClrBit(DRV_SR, DCIP);
     ClrBit(DRV_CR, FOCEN);
-    /*  MESEL为0,ME模块工作在BLDC模式
-        MESEL为1,ME模块工作在FOC/SVPWM/SPWM模式*/
+    // MESEL为0,ME模块工作在BLDC模式
+    // MESEL为1,ME模块工作在FOC/SVPWM/SPWM模式
     SetBit(DRV_CR, MESEL);
-    SetBit(DRV_CR, DRVEN);  //计数器使能       0-->Disable     1-->Enable
-    ClrBit(DRV_CR, DRPE);   //计数器比较值预装载使能 0-->Disable             1-->Enable
-    SetBit(DRV_CR, DRVOE);  //Driver输出使能0-->Disable     1-->Enable
+    SetBit(DRV_CR, DRVEN);  //计数器使能
+    ClrBit(DRV_CR, DRPE);   //计数器比较值预装载使能
+    SetBit(DRV_CR, DRVOE);  //Driver输出使能
 }
 

+ 18 - 6
User/Hardware/GPIO.c

@@ -1,3 +1,10 @@
+/**
+ * @copyright None
+ * @file      GPIO.c
+ * @author    Comment Vivre 
+ * @date      2025-11-03
+ * @brief     None
+ */
 #include <Myproject.h>
 
 /**
@@ -134,12 +141,12 @@ void LED_State_Display(uint8_t Xn0)
     }
 }
 
-volatile Power_Control_t powerControl ={DELAY_POWER_ON,0};
+volatile Power_Control_t powerControl = {DELAY_POWER_ON, 0};
 
 /**
- * @function     Power_In_Control
- * @brief        上电控制与预驱复位控制
- * @date         2025-11-01
+    @function     Power_In_Control
+    @brief        上电控制与预驱复位控制
+    @date         2025-11-01
 */
 void Power_In_Control(void)
 {
@@ -149,7 +156,7 @@ void Power_In_Control(void)
         {
             powerControl.PowerInCnt ++;
             
-            if (powerControl.PowerInCnt > 5000)
+            if (powerControl.PowerInCnt > 1000)
             {
                 // 继电器上电
                 MAIN_RELAY = 1;
@@ -164,7 +171,7 @@ void Power_In_Control(void)
         {
             powerControl.PowerInCnt ++;
             
-            if (powerControl.PowerInCnt > 1000)
+            if (powerControl.PowerInCnt > 500)
             {
                 powerControl.PowerInCnt = 0;
                 powerControl.PowerSate = POWER_RUN;
@@ -175,8 +182,13 @@ void Power_In_Control(void)
         
         case POWER_RUN:
         {
+            #if 0
+        
+            // 暂不释放复位
             if (mcFaultSource == FaultNoSource)
             { PRE_DRIVER_RST = 1;  }
+            
+            #endif
         }
     }
 }

+ 61 - 54
User/Hardware/SMDU.c

@@ -1,10 +1,17 @@
+/**
+ * @copyright None
+ * @file      SMDU.c
+ * @author    Comment Vivre 
+ * @date      2025-11-03
+ * @brief     None
+ */
 #include <MyProject.h>
 // ------------------------------------------------------------------------------------------------------------------
 // 1. PI控制器初始化
 /**
- * @function     HW_Zero_PI_Init
- * @brief        0号硬件PI控制器初始化
- * @date         2025-11-01
+    @function     HW_Zero_PI_Init
+    @brief        0号硬件PI控制器初始化
+    @date         2025-11-01
 */
 void HW_Zero_PI_Init(void)
 {
@@ -18,9 +25,9 @@ void HW_Zero_PI_Init(void)
     PI0_UKL = 0;
 }
 /**
- * @function     HW_One_PI_Init
- * @brief        1号硬件PI控制器初始化
- * @date         2025-11-01
+    @function     HW_One_PI_Init
+    @brief        1号硬件PI控制器初始化
+    @date         2025-11-01
 */
 void HW_One_PI_Init(void)
 {
@@ -29,14 +36,14 @@ void HW_One_PI_Init(void)
     PI1_EK = 0;
     PI1_EK1 = 0;
     PI1_UKMAX =  0;
-    PI1_UKMIN =  _Q15((float) -35.0 / 180.0) ; 
+    PI1_UKMIN =  _Q15((float) -35.0 / 180.0) ;
     PI1_UKH = 0;
     PI1_UKL = 0;
 }
 /**
- * @function     HW_Two_PI_Init
- * @brief        2号硬件PI控制器初始化
- * @date         2025-11-01
+    @function     HW_Two_PI_Init
+    @brief        2号硬件PI控制器初始化
+    @date         2025-11-01
 */
 void HW_Two_PI_Init(void)
 {
@@ -53,9 +60,9 @@ void HW_Two_PI_Init(void)
 }
 
 /**
- * @function     HW_Three_PI_Init
- * @brief        3号硬件PI控制器初始化
- * @date         2025-11-01
+    @function     HW_Three_PI_Init
+    @brief        3号硬件PI控制器初始化
+    @date         2025-11-01
 */
 void HW_Three_PI_Init(void)
 {
@@ -74,11 +81,11 @@ void HW_Three_PI_Init(void)
 // ------------------------------------------------------------------------------------------------------------------
 // 2. PI计算
 /**
- * @function     HW_Zero_Calc
- * @brief        0号PI计算
- * @param[in]    Xn0: [输入/出] 
- * @return       PI计算值
- * @date         2025-11-01
+    @function     HW_Zero_Calc
+    @brief        0号PI计算
+    @param[in]    Xn0: [输入/出]
+    @return       PI计算值
+    @date         2025-11-01
 */
 int16_t HW_Zero_Calc(int16_t Xn0)
 {
@@ -88,11 +95,11 @@ int16_t HW_Zero_Calc(int16_t Xn0)
 }
 
 /**
- * @function     HW_One_Calc
- * @brief        1号PI计算
- * @param[in]    Xn0: [输入/出] 
- * @return       PI计算值
- * @date         2025-11-01
+    @function     HW_One_Calc
+    @brief        1号PI计算
+    @param[in]    Xn0: [输入/出]
+    @return       PI计算值
+    @date         2025-11-01
 */
 int16_t HW_One_Calc(int16_t Xn0)
 {
@@ -102,11 +109,11 @@ int16_t HW_One_Calc(int16_t Xn0)
 }
 
 /**
- * @function     HW_Two_Calc
- * @brief        2号PI计算
- * @param[in]    Xn0: [输入/出] 
- * @return       PI计算值
- * @date         2025-11-01
+    @function     HW_Two_Calc
+    @brief        2号PI计算
+    @param[in]    Xn0: [输入/出]
+    @return       PI计算值
+    @date         2025-11-01
 */
 int16_t HW_Two_Calc(int16_t Xn0)
 {
@@ -116,11 +123,11 @@ int16_t HW_Two_Calc(int16_t Xn0)
 }
 
 /**
- * @function     HW_Three_Calc
- * @brief        3号PI计算
- * @param[in]    Xn0: [输入/出] 
- * @return       PI计算值
- * @date         2025-11-01
+    @function     HW_Three_Calc
+    @brief        3号PI计算
+    @param[in]    Xn0: [输入/出]
+    @return       PI计算值
+    @date         2025-11-01
 */
 int16_t HW_Three_Calc(int16_t Xn0)
 {
@@ -133,13 +140,13 @@ int16_t HW_Three_Calc(int16_t Xn0)
 // 3.LPF 低通滤波计算
 
 /**
- * @function     LPF_Zero_Update
- * @brief        0号低通滤波计算
- * @param[in]    Xn1: [输入/出] 
-**			 Xn0: [输入/出] 
-**			 K: [输入/出] 
- * @return       滤波结果
- * @date         2025-11-03
+    @function     LPF_Zero_Update
+    @brief        0号低通滤波计算
+    @param[in]    Xn1: [输入/出]
+**           Xn0: [输入/出]
+**           K: [输入/出]
+    @return       滤波结果
+    @date         2025-11-03
 */
 int16_t LPF_Zero_Update(int16_t Xn1, int16_t Xn0, int16_t K)
 {
@@ -151,13 +158,13 @@ int16_t LPF_Zero_Update(int16_t Xn1, int16_t Xn0, int16_t K)
 }
 
 /**
- * @function     LPF_One_Update
- * @brief        1号低通滤波计算
- * @param[in]    Xn1: [输入/出] 
-**			 Xn0: [输入/出] 
-**			 K: [输入/出] 
- * @return       滤波结果
- * @date         2025-11-03
+    @function     LPF_One_Update
+    @brief        1号低通滤波计算
+    @param[in]    Xn1: [输入/出]
+**           Xn0: [输入/出]
+**           K: [输入/出]
+    @return       滤波结果
+    @date         2025-11-03
 */
 int16_t LPF_One_Update(int16_t Xn1, int16_t Xn0, int16_t K)
 {
@@ -169,13 +176,13 @@ int16_t LPF_One_Update(int16_t Xn1, int16_t Xn0, int16_t K)
 }
 
 /**
- * @function     LPF_Two_Update
- * @brief        2号低通滤波计算
- * @param[in]    Xn1: [输入/出] 
-**			 Xn0: [输入/出] 
-**			 K: [输入/出] 
- * @return       滤波结果
- * @date         2025-11-03
+    @function     LPF_Two_Update
+    @brief        2号低通滤波计算
+    @param[in]    Xn1: [输入/出]
+**           Xn0: [输入/出]
+**           K: [输入/出]
+    @return       滤波结果
+    @date         2025-11-03
 */
 int16_t LPF_Two_Update(int16_t Xn1, int16_t Xn0, int16_t K)
 {

+ 1 - 21
User/Hardware/SPI.c

@@ -1,24 +1,4 @@
-/********************************************************************************
-
- **** Copyright (C), 2020, Fortior Technology Co., Ltd.                      ****
-
- ********************************************************************************
-    File Name     : SPI.c
-    Author        : Bruce HW&RD
-    Date          : 2020-10-15
-    Description   : .C file function description
-    Version       : 1.0
-    Function List :
-
-    Record        :
-    1.Date        : 2020-10-15
-     Author      : Bruce HW&RD
-     Modification: Created file
-
-********************************************************************************/
-
-#include "SPI.h"
-#include "FU68xx_5_MCU.h"
+#include <Myproject.h>
 
 /*****************************************************************************
     Function      : SPI_Init

+ 15 - 8
User/Hardware/TIMER.c

@@ -1,4 +1,11 @@
-#include "FU68xx_5_MCU.h"
+/**
+ * @copyright None
+ * @file      TIMER.c
+ * @author    Comment Vivre 
+ * @date      2025-11-03
+ * @brief     None
+ */
+#include <Myproject.h>
 
 void Timer2_Init(void)
 {
@@ -69,16 +76,16 @@ void Timer4_Init(void)
 }
 
 /**
- * @function     SysTick
- * @brief        任务定时器
- * @date         2025-11-01
+    @function     SysTick
+    @brief        任务定时器
+    @date         2025-11-01
 */
 void SysTick(void)
 {
-	// 配置计数值
+    // 配置计数值
     SYST_ARR = 24000;
-	// 优先级配置
-	SetReg(IP2, PSYSTICK1 |PSYSTICK0 ,PSYSTICK0);
-	// 中断使能
+    // 优先级配置
+    SetReg(IP2, PSYSTICK1 | PSYSTICK0, PSYSTICK0);
+    // 中断使能
     SetBit(DRV_SR, SYSTIE);
 }

+ 17 - 408
User/Hardware/UART.c

@@ -1,49 +1,24 @@
-/********************************************************************************
-
- **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
-
- ********************************************************************************
-    File Name     : UART.c
-    Author        : Bruce HW&RD
-    Date          : 2019-09-11
-    Description   : .C file function description
-    Version       : 1.0
-    Function List :
-
-    Record        :
-    1.Date        : 2019-09-11
-     Author      : Bruce HW&RD
-     Modification: Created file
-
-********************************************************************************/
-#include "FU68xx_5.h"
 #include <Myproject.h>
 
-//MCUART   xdata  Uart;
-ddatet1  xdata  DATA1;
-DATE_HUI xdata  DATA2_Hui;
-
-uint8   FaultCommuMonCt = 0;
+void UART1_Init(void)
+{
+    SetBit(PH_SEL, UART1EN);
+    UT_MOD1 = 0;
+    UT_MOD0 = 1;
+    SM2 = 0;
+    REN = 1;
+    ES0 = 0;
+    SetBit(IP3, PI2C_UT11);
+    ClrBit(IP3, PI2C_UT10);    // 中断优先级别3
+    // SetBit(UT_BAUD , UART_2xBAUD);  //????0-->Disable  1-->Enable
+    // default baudrate:9600-0x9b,1200-0x4E1
+    UT_BAUD = 0x9B;
+    ES0 = 1;
+}
 
-extern int8 xdata UART1_RX_flag;
-extern int8 xdata UART1_TX_flag;
-extern int8 xdata  UART1_Rec_S;
-extern int8 UART1_rx_rat_time, UART1_rx_count;
-extern uint8 xdata UART1_In_L, UART1_In_H;    //
-extern int8  xdata UART1_Rx_dat[12];//Á¬ÊÕ8×Ö½Ú
 
 void UART2_Init(void)
 {
-    uint16  bps = 0;
-    #if (Uart_COMMUNICATION==0)
-    {
-        bps = 1200;
-    }
-    #elif (Uart_COMMUNICATION==1)
-    {
-        bps = 9600;
-    }
-    #endif
     SetBit(PH_SEL, UART2EN);
     /*  UART模式 UT2_MOD1,UT2_MOD0为:
         00  模式0,移位寄存器波特率为 系统时钟 /12
@@ -68,375 +43,9 @@ void UART2_Init(void)
     ClrBit(PH_SEL1, UART2CH1);
     ClrBit(PH_SEL1, UART2CH0);
     // 设置波特率 根据 fcpu_clk / ( (16 / (1+ UT2_BAUD[BAUD2_SEL]) ) / (UT2_BAUD+1) )计算
-    UT2_BAUD = 0;
-    //    if (bps > 600)
-    {
-        UT2_BAUD |= 1500000 / bps - 1;
-    }
-    //    else
-    //    {
-    //        SetBit(UT2_BAUD,BAUD2_SEL);
-    //
-    //        UT2_BAUD |= 750000 / bps - 1;
-    //    }
-    /* Enable UART2 interrupt */
+    UT2_BAUD |= 1500000 / 9600 - 1;
+    // SetBit(UT2_BAUD,BAUD2_SEL);
     SetBit(UT2_BAUD, UART2IEN);
 }
 
-void UART1_Init(void)
-{
-    #if (Debugg==1)
-    {
-        /*工具程序*/
-        /*工具*/
-        SetBit(PH_SEL, UART1EN);     //p0[6]as UART_RXD; p0[5]as UART_TXD
-        UT_MOD1 = 0;
-        UT_MOD0 = 1;                //8bit?????UART??
-        SM2 = 0;                    //??Mode2?Mode3????
-        REN = 1;                    //????
-        ES0 = 0;                    //????
-        SetBit(IP3, PI2C_UT11);
-        ClrBit(IP3, PI2C_UT10);    // 中断优先级别3
-        //                  SetBit(UT_BAUD , UART_2xBAUD);  //????0-->Disable  1-->Enable
-        UT_BAUD = 0x9B;             //default baudrate:9600-0x9b,1200-0x4E1  00  150000      1D =50000
-        ES0 = 1;                    //??/??????
-        
-    }
-    #else
-    {
-        //    /*自己串口*/
-        SetBit(PH_SEL, UART1EN);     //p0[6]as UART_RXD; p0[5]as UART_TXD
-        UT_MOD1 = 0;
-        UT_MOD0 = 1;                //8bit?????UART??
-        SM2 = 0;                    //??Mode2?Mode3????
-        REN = 1;                    //????
-        ES0 = 0;                    //????
-        ClrBit(IP3, PI2C_UT11);
-        ClrBit(IP3, PI2C_UT10);    // 中断优先级别3
-        SetBit(UT_BAUD, UART_2xBAUD);   //????0-->Disable  1-->Enable
-        UT_BAUD = 0x00;             //default baudrate:9600-0x9b,1200-0x4E1  00  150000      1D =50000
-        ES0 = 0;                    //??/??????
-    }
-    #endif
-}
-
-char putchar(char c)
-{
-    UT_DR = c;
-    
-    while (TI == 0) {}; TI = 0;
-    
-    return c;
-}
-
-/*  P是PSW程序状态字的一个位,表示奇偶校验位:它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。
-    若为奇数,则P=1,否则为0。 运算结果有奇数个1,P=1;运算结果有偶数个1,P=0。*/
-//奇校验(odd parity):让传输的数据(包含校验位)中1的个数为奇数。
-//偶校验(even parity):让传输的数据(包含校验位)中1的个数为偶数。
-
-
-//  Buf  校验的数据  o_or_e   奇偶方式选择
-
-uint8 even_or_odd(uint8 Buf, uint8 o_or_e)
-{
-    uint8  even_odd = 0, tmpP = 0;
-    ACC  = Buf;
-    tmpP = P;
-    
-    if (o_or_e == 0)      //偶校验
-    {
-        even_odd = (tmpP == 1) ? 1 : 0;
-    }
-    else                 //奇校验
-    {
-        even_odd = (tmpP == 1) ? 0 : 1;
-    }
-    
-    return even_odd;
-}
-
-#if (Uart_Select==Uart_MoNi)
-
-/*数据接收函数*/
-void UartRecive(void)
-{
-    Uart.UartReadTemp = RX_BUF ;      // 读接收数据
-    Uart.R_DATA[Uart.UartReadCnt++] = Uart.UartReadTemp;
-}
-
-/*数据发送函数*/
-void UartSend(void)
-{
-    if (Uart.TxCnt < (TX_LEN1 - 1))
-    {
-        Uart.TxCnt++;
-        TX_BUF = Uart.T_DATA[Uart.TxCnt];
-    }
-    else
-    {
-        Uart.TxCnt = 0;
-        Uart.sendflag = 0;
-    }
-}
-
-
-/*串口数据处理,处理接收到的串口数据,运行于大循环中*/
-void UartDealResponse(void)
-{
-    uint8 i;
-    Uart_Check();//判断接收的数据是否正确
-    
-    if (Uart.sussf_falg == 1) //数据接收正确且成功
-    {
-        Uart.ResponseFlag = 1; //发送延时计时标志位
-        Uart.UartReadCnt = 0;
-        Uart.time_shuju = 0;
-        mcFaultDect.commu_time = 0;
-        /*提取并转换串口接收数据*/
-        /*压机速度获取*/
-        DATA1.DATA12 = Uart.R_DATA[1];
-        
-        if (DATA1.bf.DATA1_0 == 1)
-        {
-            Uart.YaJI_Speed          = (uint16) Uart.R_DATA[2] * 60;
-            
-            if (Uart.R_DATA[2] == 0)
-            {
-                Uart.YaJI_Speed         = 0;
-            }
-        }
-        else
-        {
-            Uart.YaJI_Speed  = 0;
-        }
-        
-        ConTrolCmd.yajispeed = Uart.YaJI_Speed;
-        
-        /*4通阀控制*/
-        if (DATA1.bf.DATA1_1 == 1)
-        {
-            ConTrolCmd.sitongfa = 1;
-        }
-        else//4通阀关闭
-        {
-            ConTrolCmd.sitongfa = 0;
-        }
-        
-        /*风机速度获取*/
-        if (DATA1.bf.DATA1_2 == 1) //室外风机
-        {
-            Uart.FengSpeed      = (uint16)Uart.R_DATA[3] * 10;
-        }
-        else
-        {
-            Uart.FengSpeed      = 0;
-        }
-        
-        ConTrolCmd.fengjispeed = Uart.FengSpeed;
-        
-        /*电子膨胀阀开度获取*/
-        if (DATA1.bf.DATA1_6 == 1) //电子膨胀阀
-        {
-            Uart.PengZhangFa    = Uart.R_DATA[4] + 256;
-        }
-        else
-        {
-            Uart.PengZhangFa    = Uart.R_DATA[4];
-        }
-        
-        ConTrolCmd.dianzifakaidu = Uart.PengZhangFa;
-        
-        /*回传数据*/
-        for (i = 0; i <= TX_LEN1; i++) //赋值之前先清零
-        {
-            Uart.T_DATA[i] = 0;
-        }
-        
-        DATA2_Hui.DATA_HUI = 0; //先清零
-        
-        if (isCtrlPowOn)
-        {
-            DATA2_Hui.bf.DATA2_0 = 1;
-        }
-        
-        if (ConTrolCmd.sitongfa == 1)
-        {
-            DATA2_Hui.bf.DATA2_1 = 1;
-        }
-        
-        if ( Uart.FengSpeed)
-        {
-            DATA2_Hui.bf.DATA2_2 = 1;
-        }
-        
-        cumfault_6();
-        Uart.T_DATA[0]  =  TX_ZHENTOU1;
-        Uart.T_DATA[1]  =  DATA2_Hui.DATA_HUI;
-        Uart.T_DATA[3]  =  0;                                                                   //风机转速
-        Uart.T_DATA[4]  =  Uart.PengZhangFa_ACT ;                                              //电子膨胀阀开度
-        Uart.T_DATA[5]  =  (uint8)(Huan_temp / 5 + 100);
-        Uart.T_DATA[6]  =  (uint8)(Guan_temp / 5 + 100);
-        Uart.T_DATA[7]  =  (uint8)(Paiqi_temp / 10 + 50);
-        Uart.T_DATA[8]  =  0x00 ;                                                                //预留
-        Uart.T_DATA[9]  =  FaultCommuMonCt ;                                                      //预留
-        Uart.T_DATA[10] =  checkAdd1(Uart.T_DATA, 0, TX_LEN1 - 1);
-        Uart.TxCnt = 0;
-        Uart.sussf_falg = 0;
-    }
-    
-    if ((Uart.time_cnt > 500 || Uart.time_shuju > 2000) && Uart.sendflag == 0) //16s内读取不到数据清零或2s内校验不成功
-    {
-        Uart.UartReadCnt = 0;
-        Uart.time_shuju = 0;
-        
-        for (i = 0; i < RX_LEN1; i++)
-        {
-            Uart.R_DATA[i] = 0;
-        }
-        
-        UART1_RX_flag = 0;
-        UART1_TX_flag = 0;
-        UART1_Rec_S = 0;
-        UART1_rx_count = 0;
-        UART1_rx_rat_time = 0;
-        UART1_In_L = 0;
-        UART1_In_H = 0;
-        RX_BUF = 0;
-        
-        for (i = 0; i < 11; i++)
-        {
-            UART1_Rx_dat[i] = 0;
-        }
-    }
-    
-    if (Uart.send_delay_time >= 160) //延时160ms发送
-    {
-        TX_BUF = Uart.T_DATA[0];
-        Uart.sendflag = 1;
-        Uart.TxCnt = 0;
-        Uart.send_delay_time = 0;
-        Uart.ResponseFlag = 0;
-    }
-}
-
-/*SUM1求和检验*/
-uint8 checkAdd1(uint8 * chCheckAdrr, uint8 chStartAddr, uint8 iCheckCnt)
-{
-    uint8 i;
-    uint8 iCheckResult = 0;
-    chCheckAdrr += chStartAddr;
-    
-    for (i = 0; i < iCheckCnt; i++)
-    {
-        iCheckResult += *chCheckAdrr;
-        chCheckAdrr++;
-    }
-    
-    iCheckResult &= 0xff;
-    return (iCheckResult);
-}
-
-
-/*SUM2求和检验*/
-uint8 checkAdd2(uint8 * chCheckAdrr, uint8 chStartAddr, uint8 iCheckCnt)
-{
-    uint8 i;
-    uint8 iCheckResult = 0;
-    chCheckAdrr += chStartAddr;
-    
-    for (i = 0; i < iCheckCnt; i++)
-    {
-        iCheckResult += *chCheckAdrr;
-        chCheckAdrr++;
-    }
-    
-    iCheckResult &= 0xff;
-    return (iCheckResult);
-}
-
-void Uart_Check(void)
-{
-    uint8 i = 0;
-    
-    if (Uart.R_DATA[0] != RX_ZHENTOU1) //针头错误清零
-    {
-        UART1_RX_flag = 0;
-        UART1_TX_flag = 0;
-        Uart.UartReadCnt = 0;
-        
-        for (i = 0; i < RX_LEN1; i++)
-        {
-            Uart.R_DATA[i] = 0;
-        }
-    }
-    
-    if (Uart.UartReadCnt >= RX_LEN1)
-    {
-        Uart.UartReadCnt = 0;
-        
-        if ((Uart.R_DATA[0] == RX_ZHENTOU1) && (checkAdd2(Uart.R_DATA, 0, (RX_LEN1 - 1)) == Uart.R_DATA[RX_LEN1 - 1])) //将读取的正确数据转换为所用数据,并将所需数据给Uart.T_DATA赋值
-        {
-            Uart.sussf_falg = 1;
-        }
-        
-        if ((Uart.R_DATA[0] != RX_ZHENTOU1) || (checkAdd2(Uart.R_DATA, 0, RX_LEN1 - 1) != Uart.R_DATA[RX_LEN1 - 1])) //检验不对清零
-        {
-            Uart.sussf_falg = 0;
-            UART1_RX_flag = 0;
-            UART1_TX_flag = 0;
-            Uart.UartReadCnt = 0;
-            
-            for (i = 0; i < RX_LEN1; i++)
-            {
-                Uart.R_DATA[i] = 0;
-            }
-        }
-    }
-}
-
-void cumfault_6(void)
-{
-    if (((mcFaultSource == FaultHardOVCurrent) || (mcFaultSource == FaultSoftOVCurrent)) && (mcProtectTime.CurrentPretectTimes >= CurrentProtectRestartTimes))
-    {
-        FaultCommuMonCt = 4;
-    }
-    else if ((mcFaultSource == FaultLossPhase) && (mcProtectTime.LossPHTimes >= PhaseProtectRestartTimes))
-    {
-        FaultCommuMonCt = 3;
-    }
-    else if ((mcFaultSource == FaultStall) && (mcProtectTime.StallTimes >= StallProtectRestartTimes))
-    {
-        FaultCommuMonCt = 3;
-    }
-    else if ((mcFaultSource == FaultIbusOffset) && (mcProtectTime.IbusOffsetProtectTimes >= IbusOffsetRestartTimes))
-    {
-        FaultCommuMonCt = 4;
-    }
-    else if (mcFaultSource == FaultIpmTemp)
-    {
-        FaultCommuMonCt = 27;
-    }
-    else if (mcFaultSource == FaultUnderVoltage)
-    {
-        FaultCommuMonCt = 2;
-    }
-    else if (mcFaultSource == FaultOverVoltage)
-    {
-        FaultCommuMonCt = 1;
-    }
-    else if (mcFaultSource == FaultGuanTempSensor)
-    {
-        FaultCommuMonCt = 19;
-    }
-    else if (mcFaultSource == FaultHuanTempSensor)
-    {
-        FaultCommuMonCt = 20;
-    }
-    else
-    {
-        FaultCommuMonCt = 0;
-    }
-}
-
-#endif
 

+ 0 - 54
User/Hardware/UART_4800.C

@@ -1,57 +1,3 @@
 
-
-#include "UART_4800.h"
 #include <Myproject.h>
-#include "FU68xx_5_MCU.h"
-
-
-// 1 个起始位(低电平)
-// 8 个数据位
-// 1 个校验位(偶校验:9位数据位里保证1的个数为偶数)。可以奇校验
-// 1 个停止位(高电平)
-// 1 个空闲位(高电平)
-
-
-
-int8 xdata UART1_Tx_len = 0; //发送字节数
-
-int8 xdata  UART1_Tx_index = 0;  //字节计数
-int8 xdata UART1_Tx_dat[10] = 0; //发送8字节
-
-int8  xdata UART1_Rx_dat[12] = 0; //连收8字节
-
-int8 xdata  UART1_Rec_S = 0;  //接收状态
-int8 xdata  UART1_rx_count = 0; //顺控步骤
-
-int8 xdata  UART1_TX_S = 0;     //发送状态
-int8 xdata  UART1_TX_BUF = 0;   //发送 8位
-int8 xdata  UART1_TX_count = 0; //顺控步骤
-uint8 xdata UART1_In_L = 0;
-uint8 xdata UART1_In_H = 0;
-
-
-int8 xdata UART1_rx_rat_time = 0;
-int8 xdata UART1_tx_rat_time = 0;
-
-int8 xdata UART1_RX_flag = 0, RX_Start = 0;
-int8 xdata UART1_TX_flag = 0;
-
-uint8 RX_BUF = 0, TX_BUF = 0;
-
-#if (Uart_Select==Uart_MoNi)
-
-void MONI_UART1_Init(void)
-{
-    SetBit(P3_OE, P37);     //tx
-    ClrBit(P3_OE, P36);     //rx
-    ClrBit(P3_PU, P36);     //上拉
-    SetBit(P3_PU, P37);     //上拉
-    GP37 = 1;
-    //    GP36=1;
-    UART1_TX_flag = 0;
-    UART1_rx_count = 0;
-    UART1_Rec_S = df_stop_bit_rec;
-}
-
 
-#endif

+ 0 - 17
User/User_Drive/Temp_compute.c

@@ -1,17 +0,0 @@
-
-#include "Temp_compute.h"
-#include <math.h>                       //math.h包含算术运算的数学函数
-#include "Customer.h"
-
-ADCRR              xdata   RealTempR;
-
-
-/*  温度、电阻计算  温度返回值扩大了10倍
-    R_Base:NTC在25℃下的阻值(单位欧姆)
-    int16 R_Real:NTC不同温度下电阻值(单位欧姆)
-    B:热敏系数,不同NTC此值,不同查阅NTC规格书*/
-
-
-int16 RealTempjisuan(uint16 ADC_vaule, uint8 flag)
-{
-}

+ 0 - 23
User/User_Drive/Temp_compute.h

@@ -1,23 +0,0 @@
-
-#ifndef __TEMP_COMPUTE_H__
-#define __TEMP_COMPUTE_H__
-
-#include "FU68xx_5_Type.h"
-
-typedef struct
-{
-    uint16    B;
-    uint32    R_Base;
-    float     T25;
-    uint32      R_PU;
-    uint32    R_PD;
-} ADCRR;
-
-extern ADCRR              xdata   RealTempR;
-
-
-
-
-#endif
-
-

+ 0 - 37
User/User_Drive/User_Dri_main.c

@@ -1,37 +0,0 @@
-
-
-#include "User_Dri_main.h"
-
-extern uint16 sendMessagelength;
-
-void User_Dri_timer1ms(void)    //
-{
-    if (Uart.uarttimejishu <= 500)
-    {
-        Uart.uarttimejishu++;
-    }
-    
-    if (Uart.Uart_Tmreset <= 5050)
-    {
-        Uart.Uart_Tmreset++;
-    }
-    
-    if (Uart.Uart_Tmcomcyc <= 550)
-    {
-        Uart.Uart_Tmcomcyc++;
-    }
-    
-    if (Uart.Uart_Recivetime <= 200)
-    {
-        Uart.Uart_Recivetime++;
-    }
-    
-    if ((Uart.TxCnt >= (sendMessagelength - 1)) && (Uart.Uart_Recivetime >= 15))
-    {
-        Uart.Recive_Flag = 0;
-    }
-}
-
-
-
-

+ 0 - 15
User/User_Drive/User_Dri_main.h

@@ -1,15 +0,0 @@
-#ifndef __USER_DRI_MAIN_H_
-#define __USER_DRI_MAIN_H_
-
-
-#include <Myproject.h>
-#include "commution.h"
-#include "Temp_compute.h"
-#include "watch.h"
-
-
-void User_Dri_timer1ms(void);
-void TargetRef_Process1(void);
-
-
-#endif

+ 0 - 1951
User/User_Drive/commution.c

@@ -1,1951 +0,0 @@
-/**
-    @file     commution.c
-    @version  V1.0.0
-    @author   jaise
-    @date     2023-8-16 09:33:55
-    @brief    This file contains ...
-
-    @copyright Copyright(C) 2022 Fortior Technology Co., Ltd. All rights reserved.
-*/
-
-//#include “FU6815.h"
-
-#include "User_Dri_main.h"
-#include "SYS_Ctr_main.h"
-
-uint16 sendMessagelength = 0;
-uint16  SlaveCrc = 0;
-#define Version 101
-uint16 SKP1 = 150, SKI1 = 2;
-
-MCUART    xdata  Uart;
-//发送数据
-ddatet00  xdata  Uart_DATA00;
-ddatet00  xdata  Uart_DATA01;
-ddatet00  xdata  Uart_DATA02;
-ddatet00  xdata  Uart_DATA03;
-ddatet00  xdata  Uart_DATA04;
-ddatet00  xdata  Uart_DATA05;
-ddatet00  xdata  Uart_DATA06;
-ddatet00  xdata  Uart_DATA07;
-ddatet00  xdata  Uart_DATA08;
-ddatet00  xdata  Uart_DATA09;
-ddatet00  xdata  Uart_DATA10;
-ddatet00  xdata  Uart_DATA11;
-ddatet00  xdata  Uart_DATA12;
-ddatet00  xdata  Uart_DATA13;
-ddatet00  xdata  Uart_DATA14;
-ddatet00  xdata  Uart_DATA15;
-ddatet00  xdata  Uart_DATA16;
-ddatet00  xdata  Uart_DATA17;
-
-//接收数据
-MCUART_Rec00 xdata Uart_Rec_DATA00;
-MCUART_Rec00 xdata Uart_Rec_DATA01;
-MCUART_Rec00 xdata Uart_Rec_DATA02;
-MCUART_Rec00 xdata Uart_Rec_DATA03;
-MCUART_Rec00 xdata Uart_Rec_DATA04;
-MCUART_Rec00 xdata Uart_Rec_DATA05;
-MCUART_Rec00 xdata Uart_Rec_DATA06;
-MCUART_Rec00 xdata Uart_Rec_DATA09;
-MCUART_Rec00 xdata Uart_Rec_DATA10;
-MCUART_Rec00 xdata Uart_Rec_DATA11;
-MCUART_Rec00 xdata Uart_Rec_DATA12;
-MCUART_Rec00 xdata Uart_Rec_DATA13;
-MCUART_Rec00 xdata Uart_Rec_DATA14;
-MCUART_Rec00 xdata Uart_Rec_DATA15;
-//MCUART_Recother  xdata Uart_Rec_DATAo;
-
-unsigned char       u1_cnt_idu_comm_task    = 0;
-
-uint8 SYS_RunMode = 0, FAN_RunSpeed = 0;
-
-const uint16 ModbusCrcTable[256] =
-{
-    0,  49345,  49537,  320,    49921,  960,    640,    49729,
-    50689,  1728,   1920,   51009,  1280,   50625,  50305,  1088,
-    52225,  3264,   3456,   52545,  3840,   53185,  52865,  3648,
-    2560,   51905,  52097,  2880,   51457,  2496,   2176,   51265,
-    55297,  6336,   6528,   55617,  6912,   56257,  55937,  6720,
-    7680,   57025,  57217,  8000,   56577,  7616,   7296,   56385,
-    5120,   54465,  54657,  5440,   55041,  6080,   5760,   54849,
-    53761,  4800,   4992,   54081,  4352,   53697,  53377,  4160,
-    61441,  12480,  12672,  61761,  13056,  62401,  62081,  12864,
-    13824,  63169,  63361,  14144,  62721,  13760,  13440,  62529,
-    15360,  64705,  64897,  15680,  65281,  16320,  16000,  65089,
-    64001,  15040,  15232,  64321,  14592,  63937,  63617,  14400,
-    10240,  59585,  59777,  10560,  60161,  11200,  10880,  59969,
-    60929,  11968,  12160,  61249,  11520,  60865,  60545,  11328,
-    58369,  9408,   9600,   58689,  9984,   59329,  59009,  9792,
-    8704,   58049,  58241,  9024,   57601,  8640,   8320,   57409,
-    40961,  24768,  24960,  41281,  25344,  41921,  41601,  25152,
-    26112,  42689,  42881,  26432,  42241,  26048,  25728,  42049,
-    27648,  44225,  44417,  27968,  44801,  28608,  28288,  44609,
-    43521,  27328,  27520,  43841,  26880,  43457,  43137,  26688,
-    30720,  47297,  47489,  31040,  47873,  31680,  31360,  47681,
-    48641,  32448,  32640,  48961,  32000,  48577,  48257,  31808,
-    46081,  29888,  30080,  46401,  30464,  47041,  46721,  30272,
-    29184,  45761,  45953,  29504,  45313,  29120,  28800,  45121,
-    20480,  37057,  37249,  20800,  37633,  21440,  21120,  37441,
-    38401,  22208,  22400,  38721,  21760,  38337,  38017,  21568,
-    39937,  23744,  23936,  40257,  24320,  40897,  40577,  24128,
-    23040,  39617,  39809,  23360,  39169,  22976,  22656,  38977,
-    34817,  18624,  18816,  35137,  19200,  35777,  35457,  19008,
-    19968,  36545,  36737,  20288,  36097,  19904,  19584,  35905,
-    17408,  33985,  34177,  17728,  34561,  18368,  18048,  34369,
-    33281,  17088,  17280,  33601,  16640,  33217,  32897,  16448
-};
-
-/*
-    Function Name:   Get_CRC
-    Description: CRC生成新函数
-    Return Value:    u16 CRC值
-    Parameter:   SourceCrc   前次CRC值
-                Data    本次添加数据
-    Note:
-*/
-uint16 Get_CRC(uint16 SourceCrc, uint8 Data)
-{
-    return (SourceCrc >> 8) ^ ModbusCrcTable[Data ^ (SourceCrc & 0xff)];
-}
-
-
-uint16 makeCRC(uint8 * data2, uint8 length)
-{
-    uint16 crc = 0xFFFF;
-    uint8 i;
-    
-    for ( i = 0; i < length; i++)
-    {
-        crc = (crc >> 8) ^ ModbusCrcTable[data2[i] ^ (crc & 0xff)];
-    }
-    
-    return crc;
-}
-
-void Modbus_task01_RecData()
-{
-    Uart.send_start_falg = 1;
-    
-    if (Uart.send_start_falg == 1)
-    {
-        //              GP04 = 1;
-        Uart.Recive_Flag = 1;
-        UT2_DR = Uart.T_DATA[0];
-        //UT2TB8 = even_or_odd(Uart.T_DATA[0],evnodd);
-        Uart.send_start_falg = 0;
-        Uart.TxCnt = 0;
-    }
-}
-
-/*
-    Function Name:   ModbusSlaveAddOutWord
-    Description: 添加将要发送的字节
-    Return Value:    u8  返回添加后待发送到消息长度
-    Parameter:   pModbus 指向Modbus的指针
-                Data    要添加的字节
-    Note:
-*/
-uint8   ModbusSlaveAddOutWord(uint8 Data    )
-{
-    Uart.T_DATA[sendMessagelength] = Data;
-    SlaveCrc = Get_CRC(SlaveCrc, Data);
-    sendMessagelength++;
-    return  sendMessagelength;
-}
-
-/*
-    Function Name:   Modbus_ReplyReset
-    Description: 回复消息的准备
-    Return Value:    u8  返回待发送到消息长度
-    Parameter:   pModbus 指向Modbus的指针
-    Note:
-*/
-uint8   ModbusSlave_ReplyReset()
-{
-    sendMessagelength = 0;
-    SlaveCrc = 0xFFFF;
-    //  pModbus->sendMessage->data = &(pModbus->sendMessage->data[0]);
-    //ModbusSlaveAddOutWord(0xCF);    //识别码
-    ModbusSlaveAddOutWord(Uart.R_DATA[0]);
-    ModbusSlaveAddOutWord(Uart.R_DATA[1]);
-    return sendMessagelength;
-}
-
-/*
-    Function Name:   Modbus_AddCRC_SendDatas
-    Description: 添加封包CRC,并发送消息
-    Return Value:    u8  返回8位无符号数,0为正常,非0为错误
-    Parameter:   pModbus 指向Modbus的指针
-    Note:
-*/
-uint8   ModbusSlave_AddCRC_SendDatas()
-{
-    uint8 CrcLow, CrcHigh;
-    CrcLow = (uint8) SlaveCrc;
-    CrcHigh = (uint8) (SlaveCrc >> 8);
-    Uart.T_DATA[sendMessagelength] = CrcLow;
-    sendMessagelength++;
-    Uart.T_DATA[sendMessagelength] = CrcHigh;
-    sendMessagelength++;
-    return (uint8)0;
-}
-
-
-
-/*
-    Function Name:   CRCCheck
-    Description: 对收到的消息进行CRC校验
-    Return Value:    u8  返回值非0为校验未通过
-    Parameter:   message 收到的消息
-    Note:
-*/
-uint8   CRCCheck(   uint8 * data1, uint8 length)
-{
-    uint8   i = 0;
-    uint16  result = 0xFFFF;
-    
-    if (length < 4)
-    {
-        return 0xFF;
-    }
-    else
-    {
-        for (; i < length; i++)
-        {
-            result = Get_CRC(result, data1[i]);
-        }
-        
-        return result;
-    }
-}
-
-
-void Modbus_Recive_task01()
-{
-    uint8 function = Uart.R_DATA[1];
-    uint16 DC_Volt, Acbus, FirstCurrent;
-    
-    if (1 != Uart.R_DATA[0])
-    {
-        return;
-    }
-    
-    ModbusSlave_ReplyReset();
-    
-    switch (function)
-    {
-        case 3:
-            if ((0 == Uart.R_DATA[4]) && (0x0B == Uart.R_DATA[5])
-                && (0 == Uart.R_DATA[3]))
-            {
-                ModbusSlaveAddOutWord(0x16); //数据长度
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(motorControl.ActualSpeed * MOTOR_SPEED_BASE / 32767 / 60); //转速
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);//一次电流 低
-                Acbus = 0;
-                ModbusSlaveAddOutWord((FOC__UQ >> 8) & 0xff);
-                ModbusSlaveAddOutWord(FOC__UQ);//交流电压 低
-                DC_Volt = mcFocCtrl.mcDcbusFlt * HW_BOARD_VOLT_MAX / 32767;
-                ModbusSlaveAddOutWord((DC_Volt >> 8) & 0xff);
-                ModbusSlaveAddOutWord(DC_Volt & 0xff); //直流电压 低
-                ModbusSlaveAddOutWord((I_IReal_10 >> 8) & 0xff);
-                ModbusSlaveAddOutWord(I_IReal_10 & 0xff); //二次电流 低
-                ModbusSlaveAddOutWord((mcFocCtrl.IPMtemp >> 8) & 0xff);
-                ModbusSlaveAddOutWord(mcFocCtrl.IPMtemp & 0xff); //IPM温度 低
-                ModbusSlaveAddOutWord(0x00);//驱动故障高16位
-                ModbusSlaveAddOutWord(mcIimit.Pflag);//驱动故障高
-                ModbusSlaveAddOutWord(0x00);//驱动故障高16位
-                ModbusSlaveAddOutWord(mcFaultSource);//驱动故障低 低
-                ModbusSlaveAddOutWord(0x00);//PFC驱动故障高16位
-                ModbusSlaveAddOutWord(0x00);//PFC驱动故障高
-                ModbusSlaveAddOutWord(0x00);//PFC故障低
-                ModbusSlaveAddOutWord(motorControl.TargetRef * MOTOR_SPEED_BASE / 32767 / 60); //PFC故障低 低
-                ModbusSlaveAddOutWord(0x00);
-                ModbusSlaveAddOutWord(mcSpeedRamp.ActualValue * MOTOR_SPEED_BASE / 32767 / 60); //软件版本
-            }
-            else if ((0 == Uart.R_DATA[4]) && (0x0B == Uart.R_DATA[5])
-                && (11 == Uart.R_DATA[3]))
-            {
-                ModbusSlaveAddOutWord(0x16); //数据长度
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(ConTrolCmd.yajispeed / 60);
-                ModbusSlaveAddOutWord((SKP1 >> 8) & 0xff);
-                ModbusSlaveAddOutWord(SKP1 & 0xff);
-                ModbusSlaveAddOutWord((SKI1 >> 8) & 0xff);
-                ModbusSlaveAddOutWord(SKI1 & 0xff);
-                //                  ModbusSlaveAddOutWord(0);
-                //                  ModbusSlaveAddOutWord(0);
-                //
-                //                  ModbusSlaveAddOutWord(0);
-                //                  ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-                ModbusSlaveAddOutWord(0);
-            }
-            else
-            {
-                return;
-            }
-            
-            break;
-            
-        case 16:
-            if ((0 == Uart.R_DATA[2]) && (0x0B == Uart.R_DATA[3]))
-            {
-                ConTrolCmd.yajispeed = Uart.R_DATA[10] * 60;
-                ModbusSlaveAddOutWord(0x00);
-                ModbusSlaveAddOutWord(0x0B);
-                ModbusSlaveAddOutWord(0x00);
-                ModbusSlaveAddOutWord(0x05);
-            }
-            else
-            {
-                return;
-            }
-            
-            break;
-            
-        case 6:
-            if ((0 == Uart.R_DATA[2]) && (0x0C == Uart.R_DATA[3]))
-            {
-                ConTrolCmd.yajispeed = Uart.R_DATA[5] * 60;
-                ModbusSlaveAddOutWord(Uart.R_DATA[2]);
-                ModbusSlaveAddOutWord(Uart.R_DATA[3]);
-                ModbusSlaveAddOutWord(Uart.R_DATA[4]);
-                ModbusSlaveAddOutWord(Uart.R_DATA[5]);
-            }
-            else if ((0 == Uart.R_DATA[2]) && (0x0D == Uart.R_DATA[3]))
-            {
-                SKP1 = (uint16)Uart.R_DATA[4];
-                SKP1 <<= 8;
-                SKP1 |= Uart.R_DATA[5];
-                ModbusSlaveAddOutWord(Uart.R_DATA[2]);
-                ModbusSlaveAddOutWord(Uart.R_DATA[3]);
-                ModbusSlaveAddOutWord(Uart.R_DATA[4]);
-                ModbusSlaveAddOutWord(Uart.R_DATA[5]);
-            }
-            else if ((0 == Uart.R_DATA[2]) && (0x0E == Uart.R_DATA[3]))
-            {
-                SKI1 = (uint16)Uart.R_DATA[4];
-                SKI1 <<= 8;
-                SKI1 |= Uart.R_DATA[5];
-                ModbusSlaveAddOutWord(Uart.R_DATA[2]);
-                ModbusSlaveAddOutWord(Uart.R_DATA[3]);
-                ModbusSlaveAddOutWord(Uart.R_DATA[4]);
-                ModbusSlaveAddOutWord(Uart.R_DATA[5]);
-            }
-            else
-            {
-                return;
-            }
-            
-            break;
-            
-        default:
-            break;
-    }
-    
-    ModbusSlave_AddCRC_SendDatas();
-    Modbus_task01_RecData();//发送数据
-}
-
-
-
-/*数据接收函数*/
-void UartRecive1(void)
-{
-    Uart.UartReadTemp = UT2_DR;       // 读接收数据
-    Uart.R_DATA[Uart.UartReadCnt++] = Uart.UartReadTemp;
-}
-
-/*数据发送函数*/
-void UartSend1(void)
-{
-    if (Uart.TxCnt < (sendMessagelength - 1))
-    {
-        Uart.TxCnt++;
-        UT2_DR = Uart.T_DATA[Uart.TxCnt];
-        // UT2TB8 = even_or_odd(Uart.T_DATA[Uart.TxCnt],evnodd);
-        Uart.Uart_Recivetime = 0;
-    }
-    else
-    {
-        //          GP04 = 0;
-    }
-}
-#if 0
-////CRC16校验      u16CRC=Common_Func_CRC16_ModBus(&u8SendBuf[0], 3+RegisterNum*2);
-uint16 Common_Func_CRC16_ModBus(uint8 * puchMsg, uint8 usDataLen)
-{
-    uint16 uCRC = 0xffff;//CRC寄存器
-    uint8 num;
-    uint8 x;
-    
-    for (num = 0; num < usDataLen; num++)
-    {
-        uCRC = (*puchMsg++) ^ uCRC;//把数据与16位的CRC寄存器的低8位相异或,结果存放于CRC寄存器。
-        
-        for (x = 0; x < 8; x++)
-        {
-            //循环8次
-            if (uCRC & 0x0001)
-            {
-                //判断最低位为:“1”
-                uCRC = uCRC >> 1;   //先右移
-                uCRC = uCRC ^ 0xA001;   //再与0xA001异或
-            }
-            else
-            {
-                //判断最低位为:“0”
-                uCRC = uCRC >> 1;   //右移
-            }
-        }
-    }
-    
-    return uCRC;//返回CRC校验值 高位在前低位在后
-}
-#endif
-////BBC校验
-uint8 BBC(uint8 * puchMsg, uint8 usDataLen)
-{
-    uint8 i;
-    uint8 bcc = 0;        // Initial value
-    #if 0
-    
-    while (usDataLen--)
-    {
-        bcc ^= *puchMsg++;
-    }
-    
-    #else
-    
-    for ( i = 0; i < usDataLen; i++ )//  sum
-    {
-        bcc += puchMsg[i];        // crc ^= *data;
-    }
-    
-    #endif
-    return bcc;
-}
-
-#if (Uart_COMMUNICATION==0)
-/*判断接收数据是否正确*/
-uint8 Modbus_Slave_Receive(void)
-{
-    uint8 u16CRC = 0;
-    
-    if ((Uart.uarttimejishu >= 15 ) && (Uart.UartReadCnt >= 10)) //Uart.uarttime每包数据的间隔
-    {
-        Uart.recive_lenth = Uart.UartReadCnt;
-        Uart.UartReadCnt = 0;
-        u16CRC = Uart.R_DATA[Uart.recive_lenth - 1];//接收到的的校验码
-        
-        if (u16CRC == BBC(&Uart.R_DATA[0], Uart.recive_lenth - 2))
-        {
-            Uart.recive_sussf_falg = 1;
-            Uart.send_start_falg = 1;
-        }
-        else
-        {
-            Uart.recive_sussf_falg = 0;
-        }
-    }
-    
-    return Uart.recive_sussf_falg;
-}
-
-
-
-
-void Uart_Int01(void)
-{
-    //参数清零因为复用问题
-    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA00 = 0; Uart_DATA02.DATA00 = 0; Uart_DATA03.DATA00 = 0;
-    Uart_DATA04.DATA00 = 0; Uart_DATA05.DATA00 = 0; Uart_DATA06.DATA00 = 0; Uart_DATA07.DATA00 = 0;
-    Uart_DATA08.DATA00 = 0; Uart_DATA09.DATA00 = 0; Uart_DATA10.DATA00 = 0; Uart_DATA11.DATA00 = 0;
-    Uart_DATA12.DATA00 = 0; Uart_DATA13.DATA00 = 0; Uart_DATA14.DATA00 = 0; Uart_DATA15.DATA00 = 0;
-    //第0个数据8位
-    Uart_DATA00.DATA00 = 0;
-    //第1个数据8位
-    Uart_DATA01.bf.DATA0 = 0; //0:变频,1:定频
-    Uart_DATA01.bf.DATA1 = 0; //0:冷暖,1:单冷
-    //  Uart_DATA01.bf.DATA2=0;//预留
-    //  Uart_DATA01.bf.DATA3=0;
-    Uart_DATA01.bf.DATA4 = 0; //通信速度    0001:600 bps  0010:1200bps
-    Uart_DATA01.bf.DATA5 = 1;
-    Uart_DATA01.bf.DATA6 = 0;
-    Uart_DATA01.bf.DATA7 = 0;
-    //第2个数据8位
-    //  Uart_DATA02.DATA00=35;  //外机能力代码 0.1kw/bit
-    //第3个数据8位
-    Uart_DATA03.bf.DATA0 = 0; //电源种类  001 :100~115V  010 :200~240V
-    Uart_DATA03.bf.DATA1 = 0;
-    Uart_DATA03.bf.DATA2 = 0;
-    Uart_DATA03.bf.DATA3 = 1; //供电方式选择   0:内机供电 1:外机供电
-    //  Uart_DATA03.bf.DATA4=0;//预留
-    //  Uart_DATA03.bf.DATA5=0;
-    //  Uart_DATA03.bf.DATA6=0;
-    //  Uart_DATA03.bf.DATA7=0;
-    //第4个数据8位
-    Uart_DATA04.DATA00 = 0;
-    //  Uart_DATA04.bf.DATA0=0;
-    //  Uart_DATA04.bf.DATA1=0;
-    //  Uart_DATA04.bf.DATA2=0;
-    //  Uart_DATA04.bf.DATA3=0;
-    //  Uart_DATA04.bf.DATA4=0;
-    //  Uart_DATA04.bf.DATA5=0;
-    //  Uart_DATA04.bf.DATA6=0;
-    //  Uart_DATA04.bf.DATA7=0;
-    //第5个数据8位
-    Uart_DATA05.DATA00 = 0;
-    //  Uart_DATA05.bf.DATA0=0;
-    //  Uart_DATA05.bf.DATA1=0;
-    //  Uart_DATA05.bf.DATA2=0;
-    //  Uart_DATA05.bf.DATA3=0;
-    //  Uart_DATA05.bf.DATA4=0;
-    //  Uart_DATA05.bf.DATA5=0;
-    //  Uart_DATA05.bf.DATA6=0;
-    //  Uart_DATA05.bf.DATA7=0;
-    //第6个数据8位
-    Uart_DATA06.bf.DATA0 = 0; //风机档数
-    Uart_DATA06.bf.DATA1 = 0;
-    Uart_DATA06.bf.DATA2 = 0;
-    Uart_DATA06.bf.DATA3 = 0; //风机个数  0:单风机  1:双风机
-    Uart_DATA06.bf.DATA4 = 0; //风机种类001 :交流电机  010 :直流电机
-    Uart_DATA06.bf.DATA5 = 0;
-    Uart_DATA06.bf.DATA6 = 0;
-    Uart_DATA06.bf.DATA7 = 0; //出风类型 0:侧出风 1:上出风
-    //第7个数据8位
-    Uart_DATA07.DATA00 = 0;
-    //  Uart_DATA07.bf.DATA0=0;
-    //  Uart_DATA07.bf.DATA1=0;
-    //  Uart_DATA07.bf.DATA2=0;
-    //  Uart_DATA07.bf.DATA3=0;
-    //  Uart_DATA07.bf.DATA4=0;
-    //  Uart_DATA07.bf.DATA5=0;
-    //  Uart_DATA07.bf.DATA6=0;
-    //  Uart_DATA07.bf.DATA7=0;
-    //      //第8个数据8位
-    //  Uart_DATA08.bf.DATA0=0;
-    //  Uart_DATA08.bf.DATA1=0;
-    //  Uart_DATA08.bf.DATA2=0;
-    //  Uart_DATA08.bf.DATA3=0;
-    //  Uart_DATA08.bf.DATA4=0;
-    //  Uart_DATA08.bf.DATA5=0;
-    //  Uart_DATA08.bf.DATA6=0;
-    //  Uart_DATA08.bf.DATA7=0;
-    //      //第9个数据8位
-    //  Uart_DATA09.bf.DATA0=0;
-    //  Uart_DATA09.bf.DATA1=0;
-    //  Uart_DATA09.bf.DATA2=0;
-    //  Uart_DATA09.bf.DATA3=0;
-    //  Uart_DATA09.bf.DATA4=0;
-    //  Uart_DATA09.bf.DATA5=0;
-    //  Uart_DATA09.bf.DATA6=0;
-    //  Uart_DATA09.bf.DATA7=0;
-    //      //第10个数据8位
-    //  Uart_DATA10.bf.DATA0=0;
-    //  Uart_DATA10.bf.DATA1=0;
-    //  Uart_DATA10.bf.DATA2=0;
-    //  Uart_DATA10.bf.DATA3=0;
-    //  Uart_DATA10.bf.DATA4=0;
-    //  Uart_DATA10.bf.DATA5=0;
-    //  Uart_DATA10.bf.DATA6=0;
-    //  Uart_DATA10.bf.DATA7=0;
-    //      //第11个数据8位
-    //  Uart_DATA11.bf.DATA0=0;
-    //  Uart_DATA11.bf.DATA1=0;
-    //  Uart_DATA11.bf.DATA2=0;
-    //  Uart_DATA11.bf.DATA3=0;
-    //  Uart_DATA11.bf.DATA4=0;
-    //  Uart_DATA11.bf.DATA5=0;
-    //  Uart_DATA11.bf.DATA6=0;
-    //  Uart_DATA11.bf.DATA7=0;
-    //      //第12个数据8位
-    //  Uart_DATA12.bf.DATA0=0;
-    //  Uart_DATA12.bf.DATA1=0;
-    //  Uart_DATA12.bf.DATA2=0;
-    //  Uart_DATA12.bf.DATA3=0;
-    //  Uart_DATA12.bf.DATA4=0;
-    //  Uart_DATA12.bf.DATA5=0;
-    //  Uart_DATA12.bf.DATA6=0;
-    //  Uart_DATA12.bf.DATA7=0;
-    //      //第13个数据8位
-    //  Uart_DATA13.bf.DATA0=0;
-    //  Uart_DATA13.bf.DATA1=0;
-    //  Uart_DATA13.bf.DATA2=0;
-    //  Uart_DATA13.bf.DATA3=0;
-    //  Uart_DATA13.bf.DATA4=0;
-    //  Uart_DATA13.bf.DATA5=0;
-    //  Uart_DATA13.bf.DATA6=0;
-    //  Uart_DATA13.bf.DATA7=0;
-    //      //第14个数据8位
-    //  Uart_DATA14.bf.DATA0=0;
-    //  Uart_DATA14.bf.DATA1=0;
-    //  Uart_DATA14.bf.DATA2=0;
-    //  Uart_DATA14.bf.DATA3=0;
-    //  Uart_DATA14.bf.DATA4=0;
-    //  Uart_DATA14.bf.DATA5=0;
-    //  Uart_DATA14.bf.DATA6=0;
-    //  Uart_DATA14.bf.DATA7=0;
-    //      //第15个数据8位
-    //  Uart_DATA15.bf.DATA0=0;
-    //  Uart_DATA15.bf.DATA1=0;
-    //  Uart_DATA15.bf.DATA2=0;
-    //  Uart_DATA15.bf.DATA3=0;
-    //  Uart_DATA15.bf.DATA4=0;
-    //  Uart_DATA15.bf.DATA5=0;
-    //  Uart_DATA15.bf.DATA6=0;
-    //  Uart_DATA15.bf.DATA7=0;
-}
-void Uart_Int02(void)
-{
-    //参数清零因为复用问题
-    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA00 = 0; Uart_DATA02.DATA00 = 0; Uart_DATA03.DATA00 = 0;
-    Uart_DATA04.DATA00 = 0; Uart_DATA05.DATA00 = 0; Uart_DATA06.DATA00 = 0; Uart_DATA07.DATA00 = 0;
-    Uart_DATA08.DATA00 = 0; Uart_DATA09.DATA00 = 0; Uart_DATA10.DATA00 = 0; Uart_DATA11.DATA00 = 0;
-    Uart_DATA12.DATA00 = 0; Uart_DATA13.DATA00 = 0; Uart_DATA14.DATA00 = 0; Uart_DATA15.DATA00 = 0;
-    //第0个数据8位
-    Uart_DATA00.DATA00 = 0;
-    //  Uart_DATA00.bf.DATA0=0;
-    //  Uart_DATA00.bf.DATA1=0;
-    //  Uart_DATA00.bf.DATA2=0;
-    //  Uart_DATA00.bf.DATA3=0;
-    //  Uart_DATA00.bf.DATA4=0;
-    //  Uart_DATA00.bf.DATA5=0;
-    //  Uart_DATA00.bf.DATA6=0;
-    //  Uart_DATA00.bf.DATA7=0;
-    //第1个数据8位
-    Uart_DATA01.DATA00 = 0;
-    //  Uart_DATA01.bf.DATA0=0;
-    //  Uart_DATA01.bf.DATA1=0;
-    //  Uart_DATA01.bf.DATA2=0;
-    //  Uart_DATA01.bf.DATA3=0;
-    //  Uart_DATA01.bf.DATA4=0;
-    //  Uart_DATA01.bf.DATA5=0;
-    //  Uart_DATA01.bf.DATA6=0;
-    //  Uart_DATA01.bf.DATA7=0;
-    //第2个数据8位
-    Uart_DATA02.DATA00 = 0;
-    //  Uart_DATA02.bf.DATA0=0;
-    //  Uart_DATA02.bf.DATA1=0;
-    //  Uart_DATA02.bf.DATA2=0;
-    //  Uart_DATA02.bf.DATA3=0;
-    //  Uart_DATA02.bf.DATA4=0;
-    //  Uart_DATA02.bf.DATA5=0;
-    //  Uart_DATA02.bf.DATA6=0;
-    //  Uart_DATA02.bf.DATA7=0;
-    //第3个数据8位
-    Uart_DATA03.DATA00 = 0;
-    //  Uart_DATA03.bf.DATA0=0;
-    //  Uart_DATA03.bf.DATA1=0;
-    //  Uart_DATA03.bf.DATA2=0;
-    //  Uart_DATA03.bf.DATA3=0;
-    //  Uart_DATA03.bf.DATA4=0;
-    //  Uart_DATA03.bf.DATA5=0;
-    //  Uart_DATA03.bf.DATA6=0;
-    //  Uart_DATA03.bf.DATA7=0;
-    //第4个数据8位
-    Uart_DATA04.DATA00 = 0;
-    //  Uart_DATA04.bf.DATA0=0;
-    //  Uart_DATA04.bf.DATA1=0;
-    //  Uart_DATA04.bf.DATA2=0;
-    //  Uart_DATA04.bf.DATA3=0;
-    //  Uart_DATA04.bf.DATA4=0;
-    //  Uart_DATA04.bf.DATA5=0;
-    //  Uart_DATA04.bf.DATA6=0;
-    //  Uart_DATA04.bf.DATA7=0;
-    //      //第5个数据8位
-    Uart_DATA05.DATA00 = 0;
-    //  Uart_DATA05.bf.DATA0=0;
-    //  Uart_DATA05.bf.DATA1=0;
-    //  Uart_DATA05.bf.DATA2=0;
-    //  Uart_DATA05.bf.DATA3=0;
-    //  Uart_DATA05.bf.DATA4=0;
-    //  Uart_DATA05.bf.DATA5=0;
-    //  Uart_DATA05.bf.DATA6=0;
-    //  Uart_DATA05.bf.DATA7=0;
-    //      //第6个数据8位
-    Uart_DATA06.DATA00 = 0;
-    //  Uart_DATA06.bf.DATA0=0;
-    //  Uart_DATA06.bf.DATA1=0;
-    //  Uart_DATA06.bf.DATA2=0;
-    //  Uart_DATA06.bf.DATA3=0;
-    //  Uart_DATA06.bf.DATA4=0;
-    //  Uart_DATA06.bf.DATA5=0;
-    //  Uart_DATA06.bf.DATA6=0;
-    //  Uart_DATA06.bf.DATA7=0;
-    //      //第7个数据8位
-    Uart_DATA07.DATA00 = 0;
-    //  Uart_DATA07.bf.DATA0=0;
-    //  Uart_DATA07.bf.DATA1=0;
-    //  Uart_DATA07.bf.DATA2=0;
-    //  Uart_DATA07.bf.DATA3=0;
-    //  Uart_DATA07.bf.DATA4=0;
-    //  Uart_DATA07.bf.DATA5=0;
-    //  Uart_DATA07.bf.DATA6=0;
-    //  Uart_DATA07.bf.DATA7=0;
-    //      //第8个数据8位
-    Uart_DATA08.DATA00 = 0;
-    //  Uart_DATA08.bf.DATA0=0;
-    //  Uart_DATA08.bf.DATA1=0;
-    //  Uart_DATA08.bf.DATA2=0;
-    //  Uart_DATA08.bf.DATA3=0;
-    //  Uart_DATA08.bf.DATA4=0;
-    //  Uart_DATA08.bf.DATA5=0;
-    //  Uart_DATA08.bf.DATA6=0;
-    //  Uart_DATA08.bf.DATA7=0;
-    //      //第9个数据8位
-    Uart_DATA09.DATA00 = 0;
-    //  Uart_DATA09.bf.DATA0=0;
-    //  Uart_DATA09.bf.DATA1=0;
-    //  Uart_DATA09.bf.DATA2=0;
-    //  Uart_DATA09.bf.DATA3=0;
-    //  Uart_DATA09.bf.DATA4=0;
-    //  Uart_DATA09.bf.DATA5=0;
-    //  Uart_DATA09.bf.DATA6=0;
-    //  Uart_DATA09.bf.DATA7=0;
-    //      //第10个数据8位
-    Uart_DATA10.DATA00 = 0;
-    //  Uart_DATA10.bf.DATA0=0;
-    //  Uart_DATA10.bf.DATA1=0;
-    //  Uart_DATA10.bf.DATA2=0;
-    //  Uart_DATA10.bf.DATA3=0;
-    //  Uart_DATA10.bf.DATA4=0;
-    //  Uart_DATA10.bf.DATA5=0;
-    //  Uart_DATA10.bf.DATA6=0;
-    //  Uart_DATA10.bf.DATA7=0;
-    //      //第11个数据8位
-    Uart_DATA11.DATA00 = 0;
-    //  Uart_DATA11.bf.DATA0=0;
-    //  Uart_DATA11.bf.DATA1=0;
-    //  Uart_DATA11.bf.DATA2=0;
-    //  Uart_DATA11.bf.DATA3=0;
-    //  Uart_DATA11.bf.DATA4=0;
-    //  Uart_DATA11.bf.DATA5=0;
-    //  Uart_DATA11.bf.DATA6=0;
-    //  Uart_DATA11.bf.DATA7=0;
-    //      //第12个数据8位
-    Uart_DATA12.DATA00 = 0;
-    //  Uart_DATA12.bf.DATA0=0;
-    //  Uart_DATA12.bf.DATA1=0;
-    //  Uart_DATA12.bf.DATA2=0;
-    //  Uart_DATA12.bf.DATA3=0;
-    //  Uart_DATA12.bf.DATA4=0;
-    //  Uart_DATA12.bf.DATA5=0;
-    //  Uart_DATA12.bf.DATA6=0;
-    //  Uart_DATA12.bf.DATA7=0;
-    //      //第13个数据8位
-    Uart_DATA13.DATA00 = 0;
-    //  Uart_DATA13.bf.DATA0=0;
-    //  Uart_DATA13.bf.DATA1=0;
-    //  Uart_DATA13.bf.DATA2=0;
-    //  Uart_DATA13.bf.DATA3=0;
-    //  Uart_DATA13.bf.DATA4=0;
-    //  Uart_DATA13.bf.DATA5=0;
-    //  Uart_DATA13.bf.DATA6=0;
-    //  Uart_DATA13.bf.DATA7=0;
-    //      //第14个数据8位
-    Uart_DATA14.DATA00 = 0;
-    //  Uart_DATA14.bf.DATA0=0;
-    //  Uart_DATA14.bf.DATA1=0;
-    //  Uart_DATA14.bf.DATA2=0;
-    //  Uart_DATA14.bf.DATA3=0;
-    //  Uart_DATA14.bf.DATA4=0;
-    //  Uart_DATA14.bf.DATA5=0;
-    //  Uart_DATA14.bf.DATA6=0;
-    //  Uart_DATA14.bf.DATA7=0;
-    //      //第15个数据8位
-    Uart_DATA15.DATA00 = 0;
-    //  Uart_DATA15.bf.DATA0=0;
-    //  Uart_DATA15.bf.DATA1=0;
-    //  Uart_DATA15.bf.DATA2=0;
-    //  Uart_DATA15.bf.DATA3=0;
-    //  Uart_DATA15.bf.DATA4=0;
-    //  Uart_DATA15.bf.DATA5=0;
-    //  Uart_DATA15.bf.DATA6=0;
-    //  Uart_DATA15.bf.DATA7=0;
-}
-
-void Uart_Int_Finsh(void)
-{
-    //参数清零因为复用问题
-    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA00 = 0; Uart_DATA02.DATA00 = 0; Uart_DATA03.DATA00 = 0;
-    Uart_DATA04.DATA00 = 0; Uart_DATA05.DATA00 = 0; Uart_DATA06.DATA00 = 0; Uart_DATA07.DATA00 = 0;
-    Uart_DATA08.DATA00 = 0; Uart_DATA09.DATA00 = 0; Uart_DATA10.DATA00 = 0; Uart_DATA11.DATA00 = 0;
-    Uart_DATA12.DATA00 = 0; Uart_DATA13.DATA00 = 0; Uart_DATA14.DATA00 = 0; Uart_DATA15.DATA00 = 0;
-}
-void Uart_Run01(void)
-{
-    uint16  Power = 0;
-    Power = P_PowerReal;
-    //参数清零因为复用问题
-    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA00 = 0; Uart_DATA02.DATA00 = 0; Uart_DATA03.DATA00 = 0;
-    Uart_DATA04.DATA00 = 0; Uart_DATA05.DATA00 = 0; Uart_DATA06.DATA00 = 0; Uart_DATA07.DATA00 = 0;
-    Uart_DATA08.DATA00 = 0; Uart_DATA09.DATA00 = 0; Uart_DATA10.DATA00 = 0; Uart_DATA11.DATA00 = 0;
-    Uart_DATA12.DATA00 = 0; Uart_DATA13.DATA00 = 0; Uart_DATA14.DATA00 = 0; Uart_DATA15.DATA00 = 0;
-    //第0个数据8位
-    //  SYS_RunMode;
-    Uart_DATA00.DATA00 = SYS_RunMode;
-    //  Uart_DATA00.bf.DATA0=0; //回送模式  收啥发啥
-    //  Uart_DATA00.bf.DATA1=0;
-    //  Uart_DATA00.bf.DATA2=0;
-    //  Uart_DATA00.bf.DATA3=0;
-    Uart_DATA00.bf.DATA4 = isCtrlPowOn; //压缩机开/关状态  0:压缩机关  1:压缩机开
-    //  Uart_DATA00.bf.DATA5=0;//预留
-    //  Uart_DATA00.bf.DATA6=0;
-    //  Uart_DATA00.bf.DATA7=0;
-    //第1个数据8位
-    //  Uart_DATA01.bf.DATA0=0;
-    //  Uart_DATA01.bf.DATA1=0;
-    //  Uart_DATA01.bf.DATA2=0;
-    //  Uart_DATA01.bf.DATA3=0;
-    //  Uart_DATA01.bf.DATA4=0;
-    //  Uart_DATA01.bf.DATA5=0;
-    //  Uart_DATA01.bf.DATA6=0;
-    //  Uart_DATA01.bf.DATA7=0;
-    //第2个数据8位
-    Uart_DATA02.DATA00 = 0; //外风机1转速  实际转速/10  单位:rpm
-    //  Uart_DATA02.bf.DATA0=0;
-    //  Uart_DATA02.bf.DATA1=0;
-    //  Uart_DATA02.bf.DATA2=0;
-    //  Uart_DATA02.bf.DATA3=0;
-    //  Uart_DATA02.bf.DATA4=0;
-    //  Uart_DATA02.bf.DATA5=0;
-    //  Uart_DATA02.bf.DATA6=0;
-    //  Uart_DATA02.bf.DATA7=0;
-    //第3个数据8位
-    Uart_DATA03.DATA00 = 0; //外风机2转速  实际转速/10  单位:rpm
-    //  Uart_DATA03.bf.DATA0=0;
-    //  Uart_DATA03.bf.DATA1=0;
-    //  Uart_DATA03.bf.DATA2=0;
-    //  Uart_DATA03.bf.DATA3=0;
-    //  Uart_DATA03.bf.DATA4=0;
-    //  Uart_DATA03.bf.DATA5=0;
-    //  Uart_DATA03.bf.DATA6=0;
-    //  Uart_DATA03.bf.DATA7=0;
-    //      //第4个数据8位
-    Uart_DATA04.DATA00 = Power >> 5; //压缩机运行功率  实际运行功率/32  单位:W
-    //  Uart_DATA04.bf.DATA0=0;
-    //  Uart_DATA04.bf.DATA1=0;
-    //  Uart_DATA04.bf.DATA2=0;
-    //  Uart_DATA04.bf.DATA3=0;
-    //  Uart_DATA04.bf.DATA4=0;
-    //  Uart_DATA04.bf.DATA5=0;
-    //  Uart_DATA04.bf.DATA6=0;
-    //  Uart_DATA04.bf.DATA7=0;
-    //      //第5个数据8位
-    Uart_DATA05.DATA00 = 0; //预留
-    //  Uart_DATA05.bf.DATA0=0;
-    //  Uart_DATA05.bf.DATA1=0;
-    //  Uart_DATA05.bf.DATA2=0;
-    //  Uart_DATA05.bf.DATA3=0;
-    //  Uart_DATA05.bf.DATA4=0;
-    //  Uart_DATA05.bf.DATA5=0;
-    //  Uart_DATA05.bf.DATA6=0;
-    //  Uart_DATA05.bf.DATA7=0;
-    //      //第6个数据8位
-    Uart_DATA06.DATA00 = 0; //电子膨胀阀开度
-    //  Uart_DATA06.bf.DATA0=0;
-    //  Uart_DATA06.bf.DATA1=0;
-    //  Uart_DATA06.bf.DATA2=0;
-    //  Uart_DATA06.bf.DATA3=0;
-    //  Uart_DATA06.bf.DATA4=0;
-    //  Uart_DATA06.bf.DATA5=0;
-    //  Uart_DATA06.bf.DATA6=0;
-    //  Uart_DATA06.bf.DATA7=0;
-    //      //第7个数据8位
-    Uart_DATA07.DATA00 = (((uint32)(mcFocCtrl.mcDcbusFlt * HW_BOARD_VOLT_MAX)) >> 15) >> 2; //直流母线电压  实际直流母线电压值/4   单位:V
-    //  Uart_DATA07.bf.DATA0=0;
-    //  Uart_DATA07.bf.DATA1=0;
-    //  Uart_DATA07.bf.DATA2=0;
-    //  Uart_DATA07.bf.DATA3=0;
-    //  Uart_DATA07.bf.DATA4=0;
-    //  Uart_DATA07.bf.DATA5=0;
-    //  Uart_DATA07.bf.DATA6=0;
-    //  Uart_DATA07.bf.DATA7=0;
-    //      //第8个数据8位
-    //      Uart_DATA08.DATA08=0;
-    Uart_DATA08.bf.DATA0 = 0; //室外环境温度小数标志   00: 0℃标志  01: 0.25℃标志  10: 0.5℃标志  11: 0.75℃标志
-    Uart_DATA08.bf.DATA1 = 0;
-    Uart_DATA08.bf.DATA2 = 0; //室外冷凝器温度小数标志
-    Uart_DATA08.bf.DATA3 = 0;
-    Uart_DATA08.bf.DATA4 = 0; //室外排气温度小数标志
-    Uart_DATA08.bf.DATA5 = 0;
-    //      Uart_DATA08.bf.DATA6=0;//预留
-    //      Uart_DATA08.bf.DATA7=0;
-    //      //第9个数据8位
-    Uart_DATA09.DATA00 = Huan_temp / 10 + 40; //室外环境温度  0h:-40℃,数据每增加1则温度增加1℃
-    //  Uart_DATA09.bf.DATA0=0;
-    //  Uart_DATA09.bf.DATA1=0;
-    //  Uart_DATA09.bf.DATA2=0;
-    //  Uart_DATA09.bf.DATA3=0;
-    //  Uart_DATA09.bf.DATA4=0;
-    //  Uart_DATA09.bf.DATA5=0;
-    //  Uart_DATA09.bf.DATA6=0;
-    //  Uart_DATA09.bf.DATA7=0;
-    //      //第10个数据8位
-    Uart_DATA10.DATA00 = Guan_temp / 10 + 40; //室外冷凝器中间温度  0h:-40℃,数据每增加1则温度增加1℃
-    //  Uart_DATA10.bf.DATA0=0;
-    //  Uart_DATA10.bf.DATA1=0;
-    //  Uart_DATA10.bf.DATA2=0;
-    //  Uart_DATA10.bf.DATA3=0;
-    //  Uart_DATA10.bf.DATA4=0;
-    //  Uart_DATA10.bf.DATA5=0;
-    //  Uart_DATA10.bf.DATA6=0;
-    //  Uart_DATA10.bf.DATA7=0;
-    //      //第11个数据8位
-    Uart_DATA11.DATA00 = Paiqi_temp / 10 + 40; //室外排气温度  0h:-40℃,数据每增加1则温度增加1℃
-    //  Uart_DATA11.bf.DATA0=0;
-    //  Uart_DATA11.bf.DATA1=0;
-    //  Uart_DATA11.bf.DATA2=0;
-    //  Uart_DATA11.bf.DATA3=0;
-    //  Uart_DATA11.bf.DATA4=0;
-    //  Uart_DATA11.bf.DATA5=0;
-    //  Uart_DATA11.bf.DATA6=0;
-    //  Uart_DATA11.bf.DATA7=0;
-    //      //第12个数据8位
-    //    Uart_DATA12.DATA12=0;
-    Uart_DATA12.bf.DATA0 = 0; //除霜要求  0:无要求  1:除霜要求
-    Uart_DATA12.bf.DATA1 = 0; //普通除霜状态 0:通常状态(default) 或特殊除霜状态  1:普通除霜中
-    Uart_DATA12.bf.DATA2 = 0; //回油状态  0:无需停内风机的制热回油或非回油状态  1:制冷回油 或 需要停内风机的制热回油
-    Uart_DATA12.bf.DATA3 = 0; //3分钟待机状态  0:通常状态   1:3分钟待机中
-    Uart_DATA12.bf.DATA4 = 0; //电子膨胀阀状态 0:通常状态  1:复位中
-    Uart_DATA12.bf.DATA5 = 0; //外机静音状态  0:通常状态  1:外机静音中
-    Uart_DATA12.bf.DATA6 = 0; //外机防凝露状态  0:通常状态 1:外机防凝露中
-    Uart_DATA12.bf.DATA7 = 0; //SAVE状态  0:通常状态   1:SAVE状态运行中
-    //      //第13个数据8位
-    //      Uart_DATA13.DATA13=0;
-    Uart_DATA13.bf.DATA0 = 0; //回送自测状态
-    Uart_DATA13.bf.DATA1 = 0;
-    Uart_DATA13.bf.DATA2 = mcFaultSource; //外机任意停机故障  0:正常  1:故障
-    Uart_DATA13.bf.DATA3 = 0; //特殊除霜状态  0:通常状态(default) 或普通除霜状态  1:特殊除霜中
-    //  Uart_DATA13.bf.DATA4=0;//预留
-    //  Uart_DATA13.bf.DATA5=0;
-    //  Uart_DATA13.bf.DATA6=0;
-    //  Uart_DATA13.bf.DATA7=0;
-    //      //第14个数据8位
-    Uart_DATA14.DATA00 = 0; //外机AC电流值  实际电流,单位0.5A
-    //  Uart_DATA14.bf.DATA0=0;
-    //  Uart_DATA14.bf.DATA1=0;
-    //  Uart_DATA14.bf.DATA2=0;
-    //  Uart_DATA14.bf.DATA3=0;
-    //  Uart_DATA14.bf.DATA4=0;
-    //  Uart_DATA14.bf.DATA5=0;
-    //  Uart_DATA14.bf.DATA6=0;
-    //  Uart_DATA14.bf.DATA7=0;
-    //      //第15个数据8位
-    //    Uart_DATA15.DATA15=0;
-    Uart_DATA15.bf.DATA0 = 0; //DRED模式运行状态
-    Uart_DATA15.bf.DATA1 = 0;
-    Uart_DATA15.bf.DATA2 = 0; //强制制冷  0:未执行;1:执行
-    Uart_DATA15.bf.DATA3 = 0; //强制制热
-    Uart_DATA15.bf.DATA4 = 0; //强制除霜
-    Uart_DATA15.bf.DATA5 = 0; //收氟模式
-    Uart_DATA15.bf.DATA6 = 0; //试运行
-    //  Uart_DATA15.bf.DATA7=0; //预留
-}
-void Uart_Run02(void)
-{
-    //参数清零因为复用问题
-    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA00 = 0; Uart_DATA02.DATA00 = 0; Uart_DATA03.DATA00 = 0;
-    Uart_DATA04.DATA00 = 0; Uart_DATA05.DATA00 = 0; Uart_DATA06.DATA00 = 0; Uart_DATA07.DATA00 = 0;
-    Uart_DATA08.DATA00 = 0; Uart_DATA09.DATA00 = 0; Uart_DATA10.DATA00 = 0; Uart_DATA11.DATA00 = 0;
-    Uart_DATA12.DATA00 = 0; Uart_DATA13.DATA00 = 0; Uart_DATA14.DATA00 = 0; Uart_DATA15.DATA00 = 0;
-    //第0个数据8位
-    //  Uart_DATA00.DATA00=0;
-    Uart_DATA00.bf.DATA0 = 0; //外机AC电流保护限/降频  0:正常            1:限/降频
-    Uart_DATA00.bf.DATA1 = 0; //排气保护限/降频
-    Uart_DATA00.bf.DATA2 = 0; //防冻结保护限/降频
-    Uart_DATA00.bf.DATA3 = 0; //过负荷保护限/降频
-    Uart_DATA00.bf.DATA4 = 0; //直流母线电压保护限/降频
-    Uart_DATA00.bf.DATA5 = 0; //模块温度保护限/降频
-    Uart_DATA00.bf.DATA6 = 0; //模块电流(压缩机相电流)保护限/降频
-    Uart_DATA00.bf.DATA7 = 0; //功率过高保护限/降频
-    //第1个数据8位
-    Uart_DATA01.DATA00 = 0;
-    //  Uart_DATA01.bf.DATA0=0;
-    //  Uart_DATA01.bf.DATA1=0;
-    //  Uart_DATA01.bf.DATA2=0;
-    //  Uart_DATA01.bf.DATA3=0;
-    //  Uart_DATA01.bf.DATA4=0;
-    //  Uart_DATA01.bf.DATA5=0;
-    //  Uart_DATA01.bf.DATA6=0;
-    //  Uart_DATA01.bf.DATA7=0;
-    //第2个数据8位
-    //  Uart_DATA02.DATA02=0;
-    Uart_DATA02.bf.DATA0 = 0; //功率过高保护 0:正常            1:故障
-    Uart_DATA02.bf.DATA1 = 0; //防冻结保护
-    Uart_DATA02.bf.DATA2 = 0; //模块温度保护
-    Uart_DATA02.bf.DATA3 = 0; //模块电流(Fo)保护
-    Uart_DATA02.bf.DATA4 = 0; //外机AC电流保护
-    Uart_DATA02.bf.DATA5 = 0; //过负荷保护
-    Uart_DATA02.bf.DATA6 = 0; //排气保护
-    Uart_DATA02.bf.DATA7 = 0; //压缩机热过载保护
-    //第3个数据8位
-    //      Uart_DATA03.DATA03=0;
-    Uart_DATA03.bf.DATA0 = 0; //一拖多内外机管路连接与通讯连接不匹配  0:正常        1:故障
-    Uart_DATA03.bf.DATA1 = 0; //室内外机型不匹配
-    Uart_DATA03.bf.DATA2 = 0; //模式冲突
-    Uart_DATA03.bf.DATA3 = 0; //缺氟保护
-    Uart_DATA03.bf.DATA4 = 0; //直流母线电压过低保护
-    Uart_DATA03.bf.DATA5 = 0; //直流母线电压过高保护
-    Uart_DATA03.bf.DATA6 = 0; //PFC过流故障
-    Uart_DATA03.bf.DATA7 = 0; //压缩机缺/逆相保护欠相,脱调(缺相)
-    //第4个数据8位
-    Uart_DATA04.DATA00 = 0;
-    //  Uart_DATA04.bf.DATA0=0;
-    //  Uart_DATA04.bf.DATA1=0;
-    //  Uart_DATA04.bf.DATA2=0;
-    //  Uart_DATA04.bf.DATA3=0;
-    //  Uart_DATA04.bf.DATA4=0;
-    //  Uart_DATA04.bf.DATA5=0;//四通阀换向异常  0:正常        1:故障
-    //  Uart_DATA04.bf.DATA6=0;
-    //  Uart_DATA04.bf.DATA7=0;
-    //      //第5个数据8位
-    //    Uart_DATA05.DATA05=0;
-    Uart_DATA05.bf.DATA0 = 0; //压缩机退磁保护  0:正常        1:故障
-    Uart_DATA05.bf.DATA1 = 0; //压缩机失步
-    Uart_DATA05.bf.DATA2 = 0; //压缩机相电流电路检测故障
-    Uart_DATA05.bf.DATA3 = 0; //电容充电故障
-    Uart_DATA05.bf.DATA4 = 0; //整机电流检测故障
-    Uart_DATA05.bf.DATA5 = 0; //直流母线电压跌落故障
-    Uart_DATA05.bf.DATA6 = 0; //系统高压保护
-    Uart_DATA05.bf.DATA7 = 0; //系统低压保护
-    //      //第6个数据8位
-    //      Uart_DATA06.DATA06=0;
-    Uart_DATA06.bf.DATA0 = 0; //温漂保护
-    Uart_DATA06.bf.DATA1 = 0; //交流接触器保护
-    Uart_DATA06.bf.DATA2 = 0; //驱动板环境感温包故障
-    Uart_DATA06.bf.DATA3 = 0; //压缩机拨码异常
-    Uart_DATA06.bf.DATA4 = 0; //超速
-    Uart_DATA06.bf.DATA5 = 0; //驱动模块复位
-    Uart_DATA06.bf.DATA6 = 0; //启动失败
-    Uart_DATA06.bf.DATA7 = 0; //压缩机堵转
-    //      //第7个数据8位
-    //    Uart_DATA07.DATA07=0;
-    //  Uart_DATA07.bf.DATA0=0;//预留
-    //  Uart_DATA07.bf.DATA1=0;
-    //  Uart_DATA07.bf.DATA2=0;
-    Uart_DATA07.bf.DATA3 = 0; //风机调速板通讯故障
-    Uart_DATA07.bf.DATA4 = 0; //交流输入电压异常
-    Uart_DATA07.bf.DATA5 = 0; //压缩机相电流过流
-    Uart_DATA07.bf.DATA6 = 0; //驱动板通讯故障
-    Uart_DATA07.bf.DATA7 = 0; //传感器连接保护(电流传感器没有接到对应的U相或V相)
-    //      //第8个数据8位
-    Uart_DATA08.DATA00 = 0;
-    //  Uart_DATA08.bf.DATA0=0;
-    //  Uart_DATA08.bf.DATA1=0;
-    //  Uart_DATA08.bf.DATA2=0;
-    //  Uart_DATA08.bf.DATA3=0;
-    //  Uart_DATA08.bf.DATA4=0;
-    //  Uart_DATA08.bf.DATA5=0;
-    //  Uart_DATA08.bf.DATA6=0;
-    //  Uart_DATA08.bf.DATA7=0;
-    //      //第9个数据8位
-    Uart_DATA09.DATA00 = mcFocCtrl.IPMtemp / 10 - 40; //IPM模块温度  0h:-40℃,数据每增加1则温度增加1℃
-    //  Uart_DATA09.bf.DATA0=0;
-    //  Uart_DATA09.bf.DATA1=0;
-    //  Uart_DATA09.bf.DATA2=0;
-    //  Uart_DATA09.bf.DATA3=0;
-    //  Uart_DATA09.bf.DATA4=0;
-    //  Uart_DATA09.bf.DATA5=0;
-    //  Uart_DATA09.bf.DATA6=0;
-    //  Uart_DATA09.bf.DATA7=0;
-    //      //第10个数据8位
-    Uart_DATA10.DATA00 = 0;
-    //  Uart_DATA10.bf.DATA0=0;
-    //  Uart_DATA10.bf.DATA1=0;
-    //  Uart_DATA10.bf.DATA2=0;
-    //  Uart_DATA10.bf.DATA3=0;
-    //  Uart_DATA10.bf.DATA4=0;
-    //  Uart_DATA10.bf.DATA5=0;
-    //  Uart_DATA10.bf.DATA6=0;
-    //  Uart_DATA10.bf.DATA7=0;
-    //      //第11个数据8位
-    Uart_DATA11.DATA00 = 0;
-    //  Uart_DATA11.bf.DATA0=0;
-    //  Uart_DATA11.bf.DATA1=0;
-    //  Uart_DATA11.bf.DATA2=0;
-    //  Uart_DATA11.bf.DATA3=0;
-    //  Uart_DATA11.bf.DATA4=0;
-    //  Uart_DATA11.bf.DATA5=0;
-    //  Uart_DATA11.bf.DATA6=0;
-    //  Uart_DATA11.bf.DATA7=0;
-    //      //第12个数据8位
-    Uart_DATA12.DATA00 = 0;
-    //  Uart_DATA12.bf.DATA0=0;
-    //  Uart_DATA12.bf.DATA1=0;
-    //  Uart_DATA12.bf.DATA2=0;
-    //  Uart_DATA12.bf.DATA3=0;
-    //  Uart_DATA12.bf.DATA4=0;
-    //  Uart_DATA12.bf.DATA5=0;
-    //  Uart_DATA12.bf.DATA6=0;
-    //  Uart_DATA12.bf.DATA7=0;
-    //      //第13个数据8位
-    Uart_DATA13.DATA00 = 0;
-    //  Uart_DATA13.bf.DATA0=0;
-    //  Uart_DATA13.bf.DATA1=0;
-    //  Uart_DATA13.bf.DATA2=0;
-    //  Uart_DATA13.bf.DATA3=0;
-    //  Uart_DATA13.bf.DATA4=0;
-    //  Uart_DATA13.bf.DATA5=0;
-    //  Uart_DATA13.bf.DATA6=0;
-    //  Uart_DATA13.bf.DATA7=0;
-    //      //第14个数据8位
-    Uart_DATA14.DATA00 = 0;
-    //  Uart_DATA14.bf.DATA0=0;
-    //  Uart_DATA14.bf.DATA1=0;
-    //  Uart_DATA14.bf.DATA2=0;
-    //  Uart_DATA14.bf.DATA3=0;
-    //  Uart_DATA14.bf.DATA4=0;
-    //  Uart_DATA14.bf.DATA5=0;
-    //  Uart_DATA14.bf.DATA6=0;
-    //  Uart_DATA14.bf.DATA7=0;
-    //      //第15个数据8位
-    Uart_DATA15.DATA00 = 0;
-    //  Uart_DATA15.bf.DATA0=0;
-    //  Uart_DATA15.bf.DATA1=0;
-    //  Uart_DATA15.bf.DATA2=0;
-    //  Uart_DATA15.bf.DATA3=0;
-    //  Uart_DATA15.bf.DATA4=0;
-    //  Uart_DATA15.bf.DATA5=0;
-    //  Uart_DATA15.bf.DATA6=0;
-    //  Uart_DATA15.bf.DATA7=0;
-}
-
-
-
-
-void Modbus_respond(void)
-{
-    uint8 u16CRC = 0;
-    Uart.T_DATA[0]  = Uart.Oder;                         //指令
-    Uart.T_DATA[1]  = 0x00;                              //地址   00一拖一
-    Uart.T_DATA[2]  = 0x00;                              //标志
-    Uart.T_DATA[3]  = Uart_DATA00.DATA00;        //数据第0位
-    Uart.T_DATA[4]  = Uart_DATA01.DATA00;            //数据第1位
-    Uart.T_DATA[5]  = Uart_DATA02.DATA00;        //数据第2位
-    Uart.T_DATA[6]  = Uart_DATA03.DATA00;        //数据第3位
-    Uart.T_DATA[7]  = Uart_DATA04.DATA00;        //数据第4位
-    Uart.T_DATA[8]  = Uart_DATA05.DATA00;        //数据第5位
-    Uart.T_DATA[9]  = Uart_DATA06.DATA00;        //数据第6位
-    Uart.T_DATA[10] = Uart_DATA07.DATA00;            //数据第7位
-    Uart.T_DATA[11] = Uart_DATA08.DATA00;          //数据第8位
-    Uart.T_DATA[12] = Uart_DATA09.DATA00;        //数据第9位
-    Uart.T_DATA[13] = Uart_DATA10.DATA00;        //数据第10位
-    Uart.T_DATA[14] = Uart_DATA11.DATA00;        //数据第11位
-    Uart.T_DATA[15] = Uart_DATA12.DATA00;        //数据第12位
-    Uart.T_DATA[16] = Uart_DATA13.DATA00;            //数据第13位
-    Uart.T_DATA[17] = Uart_DATA14.DATA00;          //数据第14位
-    Uart.T_DATA[18] = Uart_DATA15.DATA00;        //数据第15位
-    //          Uart.T_DATA[0]  = 0x31;//Uart.Oder;                          //指令
-    //          Uart.T_DATA[1]  = 0x00;                              //地址   00一拖一
-    //          Uart.T_DATA[2]  = 0x00;                              //标志
-    //          Uart.T_DATA[3]  =1; //Uart_DATA00.DATA00;        //数据第0位
-    //          Uart.T_DATA[4]  =0; //Uart_DATA01.DATA01;            //数据第1位
-    //          Uart.T_DATA[5]  =0; //Uart_DATA02.DATA02;        //数据第2位
-    //          Uart.T_DATA[6]  =0; //Uart_DATA03.DATA03;        //数据第3位
-    //          Uart.T_DATA[7]  =0; //Uart_DATA04.DATA04;        //数据第4位
-    //          Uart.T_DATA[8]  =0; //Uart_DATA05.DATA05;        //数据第5位
-    //          Uart.T_DATA[9]  =0; //Uart_DATA06.DATA06;        //数据第6位
-    //          Uart.T_DATA[10] =0; //Uart_DATA07.DATA07;            //数据第7位
-    //          Uart.T_DATA[11] =0; //Uart_DATA08.DATA08;          //数据第8位
-    //          Uart.T_DATA[12] =0; //Uart_DATA09.DATA09;        //数据第9位
-    //          Uart.T_DATA[13] =0; //Uart_DATA10.DATA10;        //数据第10位
-    //          Uart.T_DATA[14] =0; //Uart_DATA11.DATA11;        //数据第11位
-    //          Uart.T_DATA[15] =0; //Uart_DATA12.DATA12;        //数据第12位
-    //          Uart.T_DATA[16] =0; //Uart_DATA13.DATA13;            //数据第13位
-    //          Uart.T_DATA[17] =0; //Uart_DATA14.DATA14;          //数据第14位
-    //          Uart.T_DATA[18] =0; //Uart_DATA15.DATA15;        //数据第15位
-    u16CRC = BBC(&Uart.T_DATA[0], TX_LEN - 2);
-    Uart.T_DATA[19] = u16CRC;                    //CRC
-    Uart.send_start_falg = 1;
-    
-    if (Uart.send_start_falg == 1)
-    {
-        Uart.Recive_Flag = 1;
-        UT2_DR = Uart.T_DATA[0];
-        UT2TB8 = even_or_odd(Uart.T_DATA[0], evnodd);
-        Uart.send_start_falg = 0;
-        Uart.TxCnt = 0;
-    }
-}
-
-void Modbus_task00(void)
-{
-    if (Uart.Uart_Tmreset >= (T_mreset + T_mwtchg)) //T_mreset
-    {
-        Uart_Int01();
-        Modbus_respond();
-        Uart.Uart_Tmreset = 0;
-    }
-}
-void Modbus_task01(void)
-{
-    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg)) //(T_mcomcyc+T_mwtchg)
-    {
-        Uart_Int02();
-        Modbus_respond();
-        Uart.Uart_Tmcomcyc = 0;
-    }
-}
-void Modbus_task02(void)
-{
-    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg))
-    {
-        Uart_Int_Finsh();
-        Modbus_respond();
-        Uart.Uart_Tmcomcyc = 0;
-    }
-}
-void Modbus_task03(void)
-{
-    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg))
-    {
-        Uart_Run01();
-        Modbus_respond();
-        Uart.Uart_Tmcomcyc = 0;
-    }
-}
-void Modbus_task04(void)
-{
-    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg))
-    {
-        Uart_Run02();
-        Modbus_respond();
-        Uart.Uart_Tmcomcyc = 0;
-    }
-}
-void Modbus_task06(void)
-{
-    Uart.YaJI_Speed   = (Uart.R_DATA[4] << 8) | Uart.R_DATA[5];
-    ConTrolCmd.yajispeed = Uart.YaJI_Speed;
-    mcFaultDect.commu_time = 0;
-    Modbus_respond();
-}
-
-/**任务机发送**/
-void Modbus_task(void)
-{
-    switch (Uart.Oder)//判断功能码
-    {
-        case 0x11:            //初始状态1
-            Modbus_task00();
-            break;
-            
-        case 0x12:            //初始状态2
-            Modbus_task01();
-            break;
-            
-        case 0x2F:            //复位结束
-            Modbus_task02();
-            break;
-            
-        case 0x31:            //运转信息1
-            Modbus_task03();
-            break;
-            
-        case 0x32:            //运转信息2
-            Modbus_task04();
-            break;
-            
-        default:
-            break;
-    }
-}
-
-
-
-void Modbus_Recive_task0(void)
-{
-}
-void Modbus_Recive_task1(void)
-{
-}
-void Modbus_Recive_task2(void)
-{
-}
-void Modbus_Recive_task3(void)
-{
-    Uart_Rec_DATA00.DATAT00 = Uart.R_DATA[3];
-    Uart_Rec_DATA01.DATAT00 = Uart.R_DATA[4];
-    Uart_Rec_DATA02.DATAT00 = Uart.R_DATA[5];
-    Uart_Rec_DATA03.DATAT00 = Uart.R_DATA[6];//室内设定温度
-    Uart_Rec_DATA04.DATAT00 = Uart.R_DATA[7];//室内环境温度
-    Uart_Rec_DATA05.DATAT00 = Uart.R_DATA[8];
-    Uart_Rec_DATA06.DATAT00 = Uart.R_DATA[9];//蒸发器温度
-    Uart_Rec_DATA09.DATAT00 = Uart.R_DATA[12];
-    Uart_Rec_DATA10.DATAT00 = Uart.R_DATA[13];
-    Uart_Rec_DATA11.DATAT00 = Uart.R_DATA[14];
-    Uart_Rec_DATA12.DATAT00 = Uart.R_DATA[15];
-    Uart_Rec_DATA13.DATAT00 = Uart.R_DATA[16];
-    Uart_Rec_DATA14.DATAT00 = Uart.R_DATA[17];
-    Uart_Rec_DATA15.DATAT00 = Uart.R_DATA[18];
-    //运行模式提取
-    SYS_RunMode                                = Uart_Rec_DATA00.DATAT00 & 0x0f;
-    
-    if (0 == SYS_RunMode)                  // 上电默认
-    {
-        //       u8_RunMode                         = MODE_FAN;
-    }
-    else if (1 == SYS_RunMode)     // 制冷
-    {
-        u8_RunMode                         = MODE_COOL;
-    }
-    else if (2 == SYS_RunMode)     // 除湿
-    {
-        u8_RunMode                         = MODE_DEHUMIDIFY;
-    }
-    else if (3 == SYS_RunMode)         // 送风
-    {
-        u8_RunMode                         = MODE_FAN;
-    }
-    else if (4 == SYS_RunMode)         // 制热
-    {
-        u8_RunMode                         = MODE_HEAT;
-    }
-    else if (5 == SYS_RunMode)     // 强制制冷
-    {
-        u8_RunMode                         = MODE_COOL;
-    }
-    else if (6 == SYS_RunMode)     // 强制制热
-    {
-        u8_RunMode                         = MODE_HEAT;
-    }
-    else if (7 == SYS_RunMode)     // 强制除霜
-    {
-        u8_RunMode                         = MODE_HEAT;
-    }
-    else if (8 == SYS_RunMode)     // 制冷能力测试
-    {
-        u8_RunMode                         = MODE_COOL;
-    }
-    else if (9 == SYS_RunMode)     // 制热能力测试
-    {
-        u8_RunMode                         = MODE_HEAT;
-    }
-    else if (10 == SYS_RunMode)    // 收氟
-    {
-        u8_RunMode                         = MODE_COOL;
-    }
-    else if (11 == SYS_RunMode)    // 试运行
-    {
-        u8_RunMode                         = MODE_COOL;
-    }
-    
-    // 室内风速
-    FAN_RunSpeed                               = Uart_Rec_DATA01.DATAT00 & 0x0f;
-    
-    if (4 == FAN_RunSpeed)
-    {
-        u1_IndoorFanSpeed               = 4 ; // HH
-    }
-    else if (3 == FAN_RunSpeed)
-    {
-        u1_IndoorFanSpeed               = 3 ; // H
-    }
-    else if (2 == FAN_RunSpeed)
-    {
-        u1_IndoorFanSpeed               = 2 ; // M
-    }
-    else if (0 == FAN_RunSpeed)
-    {
-        u1_IndoorFanSpeed               = 0 ; // STOP
-    }
-    else
-    {
-        u1_IndoorFanSpeed               = 1 ; // L or LL
-    }
-    
-    // 室内设定温度 温度四舍误入  Uart_Rec_DATA02.bf.DATA1
-    //u8_TempSet  u8_TempIndoor  u8_TempIncoil  0代表-20度    0.5度的精度
-    if (Uart_Rec_DATA03.DATAT00 < 20)
-    {
-        u8_TempSet                     = 0;
-    }
-    else
-    {
-        u8_TempSet                     = (Uart_Rec_DATA03.DATAT00 << 1) - 40 + Uart_Rec_DATA02.bf.DATA1;
-    }
-    
-    //室内温度提取
-    if (Uart_Rec_DATA04.DATAT00 < 20)
-    {
-        u8_TempIndoor                  = 0;
-    }
-    else
-    {
-        u8_TempIndoor                  = (Uart_Rec_DATA04.DATAT00 << 1) - 40 + Uart_Rec_DATA02.bf.DATA3;
-    }
-    
-    // 室内盘管温度
-    if (Uart_Rec_DATA06.DATAT00 < 20)
-    {
-        u8_TempIncoil                      = 0;
-    }
-    else
-    {
-        u8_TempIncoil                      = (Uart_Rec_DATA06.DATAT00 << 1) - 40 + Uart_Rec_DATA02.bf.DATA5;
-    }
-    
-    //系统开关状态 其他信息 模式 设定温度 室内温度等更新后再设置开机状态
-    if (Uart_Rec_DATA00.bf.DATA4 == 1)
-    {
-        u1_SystemOnF                    = 1;
-    }
-    else
-    {
-        u1_SystemOnF                    = 0;
-    }
-    
-    if (u1_cnt_idu_comm_task < 255)
-    {
-        u1_cnt_idu_comm_task++;
-    }
-    
-    mcFaultDect.commu_time = 0;
-}
-void Modbus_Recive_task4(void)
-{
-}
-/**任务机接收**/
-void Modbus_Recive_task(void)
-{
-    switch (Uart.R_DATA[0])//判断功能码
-    {
-        case 0x11:            //初始状态1
-            Modbus_Recive_task0();
-            break;
-            
-        case 0x12:            //初始状态2
-            Modbus_Recive_task1();
-            break;
-            
-        case 0x2F:            //复位结束
-            Modbus_Recive_task2();
-            break;
-            
-        case 0x31:            //运转信息1
-            Modbus_Recive_task3();
-            break;
-            
-        case 0x32:            //运转信息2
-            Modbus_Recive_task4();
-            break;
-            
-        default:
-            break;
-    }
-}
-
-/*串口数据处理,处理接收到的串口数据,运行于大循环中*/
-void UartDealResponse1(void)
-{
-    if (FaultNoSource != mcFaultSource)
-    {
-        u8_OutdoorErrorCode                 = mcFaultSource;
-    }
-    
-    u8_IndoorErrorCode                      = 0;
-    
-    if (Modbus_Slave_Receive() == 1)//接收数据
-    {
-        Modbus_Recive_task();
-        mcFaultDect.commu_time = 0;
-        
-        if (Uart.R_DATA[0] == 0x11)
-        {Uart.Oder = 0x12;}
-        else if (Uart.R_DATA[0] == 0x12)
-        {Uart.Oder = 0x2F;}
-        else if (Uart.R_DATA[0] == 0x2F)
-        {Uart.Oder = 0x31;}
-        else if (Uart.R_DATA[0] == 0x31)
-        {Uart.Oder = 0x32;}
-        else if (Uart.R_DATA[0] == 0x32)
-        {Uart.Oder = 0x31;}
-        
-        Uart.recive_sussf_falg = 0;
-    }
-    
-    Modbus_task();//发送数据
-}
-
-
-
-
-
-
-
-/////*****以上为格力通信协议,以下为月兔通信协议******///
-
-
-
-
-
-
-
-#elif (Uart_COMMUNICATION==1)
-
-uint8 BBC2(uint8 * puchMsg, uint8 usDataLen)
-{
-    uint8 i;
-    uint8 bcc = 0;        // Initial value
-    
-    //      for ( i = 0; i < usDataLen; i++ )//  sum
-    //      {
-    //          bcc += puchMsg[i];        // crc ^= *data;
-    //      }
-    for ( i = 0; i < usDataLen; i++ )//  不进位累加、异或检验
-    {
-        bcc = bcc ^ puchMsg[i];      // crc ^= *data;
-    }
-    
-    bcc = (~bcc) + 1;
-    return bcc;
-}
-
-
-/*判断接收数据是否正确*/
-uint8 Modbus_Slave_Receive2(void)
-{
-    uint8 u16CRC = 0;
-    
-    if ((Uart.uarttimejishu >= 30 ) && (Uart.UartReadCnt >= 8)) //Uart.uarttime每包数据的间隔
-    {
-        Uart.recive_lenth = Uart.UartReadCnt;
-        Uart.UartReadCnt = 0;
-        
-        //              u16CRC = Uart.R_DATA[Uart.recive_lenth - 1];//接收到的的校验码
-        //              if (u16CRC == BBC2(&Uart.R_DATA[0], Uart.recive_lenth - 3))
-        //              {
-        //                      Uart.recive_sussf_falg = 1;
-        //                      Uart.send_start_falg = 1;
-        //              }
-        //              else
-        //              {
-        //                      Uart.recive_sussf_falg = 0;
-        //              }
-        //
-        if (0 == CRCCheck(Uart.R_DATA, Uart.recive_lenth))
-        {
-            Uart.recive_sussf_falg = 1;
-            Uart.send_start_falg = 1;
-        }
-        else
-        {
-            Uart.recive_sussf_falg = 0;
-        }
-    }
-    
-    return Uart.recive_sussf_falg;
-}
-
-
-void Modbus_Recive_task23(void)
-{
-    Uart_Rec_DATA00.DATAT00 = Uart.R_DATA[4];//运行模式
-    Uart_Rec_DATA01.DATAT00 = Uart.R_DATA[5];//强制压缩机运转频率
-    Uart_Rec_DATA02.DATAT00 = Uart.R_DATA[6];//设定温度
-    Uart_Rec_DATA03.DATAT00 = Uart.R_DATA[7];//室内机环境温度(高位-整数位)
-    Uart_Rec_DATA04.DATAT00 = Uart.R_DATA[8];//室内机环境温度(低位-小数位)
-    Uart_Rec_DATA05.DATAT00 = Uart.R_DATA[9];//室内盘管温度
-    Uart_Rec_DATA06.DATAT00 = Uart.R_DATA[10];//内机风速档
-    Uart_Rec_DATA09.DATAT00 = Uart.R_DATA[11];//室内风机当前转速
-    Uart_Rec_DATA10.DATAT00 = Uart.R_DATA[12];//测试模式
-    Uart_Rec_DATA11.DATAT00 = Uart.R_DATA[13];//辅助功能标志位
-    Uart_Rec_DATA12.DATAT00 = Uart.R_DATA[14];//室内机故障
-    Uart_Rec_DATA13.DATAT00 = Uart.R_DATA[15];//特殊遥控代码号
-    Uart_Rec_DATA14.DATAT00 = Uart.R_DATA[16];//特殊遥控器代码值
-    Uart_Rec_DATA15.DATAT00 = Uart.R_DATA[17];//室内出风温度
-    
-    //   //运行模式提取
-    //   SYS_RunMode                                = Uart_Rec_DATA00.DATAT00 & 0x0f;
-    //
-    //   if(0 == SYS_RunMode)                   // 关机
-    //   {
-    ////         u8_RunMode                         = MODE_FAN;
-    //   }
-    //   else if(1 == SYS_RunMode)      // 制冷
-    //   {
-    //       u8_RunMode                         = MODE_COOL;
-    //   }
-    //   else if(2 == SYS_RunMode)      // 除湿
-    //   {
-    //       u8_RunMode                         = MODE_DEHUMIDIFY;
-    //   }
-    //   else if(3 == SYS_RunMode)          // 制热
-    //   {
-    //       u8_RunMode                         = MODE_HEAT;
-    //   }
-    //   else if(4 == SYS_RunMode)          // 制热  MODE_FAN
-    //   {
-    //       u8_RunMode                         = MODE_FAN;
-    //   }
-    //
-    //
-    //
-    //   // 室内风速
-    //   FAN_RunSpeed                               = Uart_Rec_DATA06.DATAT00 & 0x0f;
-    //   if(0 == FAN_RunSpeed)
-    //   {
-    //      u1_IndoorFanSpeed               = 0 ; // STOP
-    //   }
-    //   else if(0 == FAN_RunSpeed)
-    //   {
-    //      u1_IndoorFanSpeed               = 1 ; // H  L or LL
-    //   }
-    //   else if(2 == FAN_RunSpeed)
-    //   {
-    //      u1_IndoorFanSpeed               = 2 ; // M
-    //   }
-    //   else if(3 == FAN_RunSpeed)
-    //   {
-    //      u1_IndoorFanSpeed               = 3 ; // H
-    //   }
-    //   else if(4 == FAN_RunSpeed)
-    //   {
-    //      u1_IndoorFanSpeed               = 4 ; // HH
-    //   }
-    //   else if(5 == FAN_RunSpeed)
-    //   {
-    //      u1_IndoorFanSpeed               = 5 ; //  HH
-    //   }
-    //   else if(6 == FAN_RunSpeed)
-    //   {
-    //      u1_IndoorFanSpeed               = 6 ; //  HH
-    //   }
-    
-    //
-    //   // 室内设定温度 温度四舍误入  Uart_Rec_DATA02.bf.DATA1
-    //   //u8_TempSet  u8_TempIndoor  u8_TempIncoil  0代表-20度    0.5度的精度  Uart_Rec_DATA02.DATAT00
-    //   if(Uart_Rec_DATA02.DATAT00 < 20)
-    //   {
-    //       u8_TempSet                     = 0;
-    //   }
-    //   else
-    //   {
-    //       u8_TempSet                     = (Uart_Rec_DATA02.DATAT00<<1)- 64;
-    //   }
-    //
-    //   //室内温度提取
-    //   if(Uart_Rec_DATA03.DATAT00 < 20)
-    //   {
-    //       u8_TempIndoor                  = 0;
-    //   }
-    //   else
-    //   {
-    //       u8_TempIndoor                  = (Uart_Rec_DATA03.DATAT00<<1)-64 + Uart_Rec_DATA04.bf.DATA3/100;
-    //   }
-    
-    //   // 室内盘管温度
-    //   if(Uart_Rec_DATA05.DATAT00 < 20)
-    //   {
-    //       u8_TempIncoil                      = 0;
-    //   }
-    //   else
-    //   {
-    //       u8_TempIncoil                      = (Uart_Rec_DATA05.DATAT00<<1)- 64 ;
-    //   }
-    //
-    //
-    //       //系统开关状态 其他信息 模式 设定温度 室内温度等更新后再设置开机状态
-    //   if(SYS_RunMode==0)
-    //   {
-    //          u1_SystemOnF                    = 0;
-    //   }
-    //   else
-    //   {
-    //          u1_SystemOnF                    = 1;
-    //   }
-    
-    if (u1_cnt_idu_comm_task < 255)
-    {
-        u1_cnt_idu_comm_task++;
-    }
-    
-    mcFaultDect.commu_time = 0;
-}
-
-void Uart_Run21(void)
-{
-    uint16  Power = 0;
-    Power = P_PowerReal;
-    //参数清零因为复用问题
-    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA00 = 0; Uart_DATA02.DATA00 = 0; Uart_DATA03.DATA00 = 0;
-    Uart_DATA04.DATA00 = 0; Uart_DATA05.DATA00 = 0; Uart_DATA06.DATA00 = 0; Uart_DATA07.DATA00 = 0;
-    Uart_DATA08.DATA00 = 0; Uart_DATA09.DATA00 = 0; Uart_DATA10.DATA00 = 0; Uart_DATA11.DATA00 = 0;
-    Uart_DATA12.DATA00 = 0; Uart_DATA13.DATA00 = 0; Uart_DATA14.DATA00 = 0; Uart_DATA15.DATA00 = 0;
-    //第0个数据8位
-    //  SYS_RunMode;
-    Uart_DATA00.DATA00 = SYS_RunMode;
-    //  Uart_DATA00.bf.DATA0=0; //回送模式  收啥发啥
-    //  Uart_DATA00.bf.DATA1=0;
-    //  Uart_DATA00.bf.DATA2=0;
-    //  Uart_DATA00.bf.DATA3=0;
-    //  Uart_DATA00.bf.DATA5=0;//预留
-    //  Uart_DATA00.bf.DATA6=0;
-    //  Uart_DATA00.bf.DATA7=0;
-    //第1个数据8位
-    Uart_DATA01.DATA00 = 0; //u8_AimFrequencyToDriver;//压缩机目标频率  实际运行转速 单位:rps
-    //  Uart_DATA01.bf.DATA0=0;
-    //  Uart_DATA01.bf.DATA1=0;
-    //  Uart_DATA01.bf.DATA2=0;
-    //  Uart_DATA01.bf.DATA3=0;
-    //  Uart_DATA01.bf.DATA4=0;
-    //  Uart_DATA01.bf.DATA5=0;
-    //  Uart_DATA01.bf.DATA6=0;
-    //  Uart_DATA01.bf.DATA7=0;
-    //第2个数据8位
-    //  Uart_DATA02.bf.DATA0=0;
-    //  Uart_DATA02.bf.DATA1=0;
-    //  Uart_DATA02.bf.DATA2=0;
-    //  Uart_DATA02.bf.DATA3=0;
-    //  Uart_DATA02.bf.DATA4=0;
-    //  Uart_DATA02.bf.DATA5=0;
-    //  Uart_DATA02.bf.DATA6=0;
-    //  Uart_DATA02.bf.DATA7=0;
-    //第3个数据8位
-    Uart_DATA03.DATA00 = 0; //室外机故障、保护停
-    //  Uart_DATA03.bf.DATA0=0;
-    //  Uart_DATA03.bf.DATA1=0;
-    //  Uart_DATA03.bf.DATA2=0;
-    //  Uart_DATA03.bf.DATA3=0;
-    //  Uart_DATA03.bf.DATA4=0;
-    //  Uart_DATA03.bf.DATA5=0;
-    //  Uart_DATA03.bf.DATA6=0;
-    //  Uart_DATA03.bf.DATA7=0;
-    //      //第4个数据8位
-    Uart_DATA04.DATA00 = 0; //室外盘管温度
-    //  Uart_DATA04.bf.DATA0=0;
-    //  Uart_DATA04.bf.DATA1=0;
-    //  Uart_DATA04.bf.DATA2=0;
-    //  Uart_DATA04.bf.DATA3=0;
-    //  Uart_DATA04.bf.DATA4=0;
-    //  Uart_DATA04.bf.DATA5=0;
-    //  Uart_DATA04.bf.DATA6=0;
-    //  Uart_DATA04.bf.DATA7=0;
-    //      //第5个数据8位
-    Uart_DATA05.DATA00 = 0; //室外环境温度
-    //  Uart_DATA05.bf.DATA0=0;
-    //  Uart_DATA05.bf.DATA1=0;
-    //  Uart_DATA05.bf.DATA2=0;
-    //  Uart_DATA05.bf.DATA3=0;
-    //  Uart_DATA05.bf.DATA4=0;
-    //  Uart_DATA05.bf.DATA5=0;
-    //  Uart_DATA05.bf.DATA6=0;
-    //  Uart_DATA05.bf.DATA7=0;
-    //      //第6个数据8位
-    Uart_DATA06.DATA00 = 0; //压缩机排气温度
-    //  Uart_DATA06.bf.DATA0=0;
-    //  Uart_DATA06.bf.DATA1=0;
-    //  Uart_DATA06.bf.DATA2=0;
-    //  Uart_DATA06.bf.DATA3=0;
-    //  Uart_DATA06.bf.DATA4=0;
-    //  Uart_DATA06.bf.DATA5=0;
-    //  Uart_DATA06.bf.DATA6=0;
-    //  Uart_DATA06.bf.DATA7=0;
-    //      //第7个数据8位
-    Uart_DATA07.DATA00 = (((uint32)(mcFocCtrl.mcDcbusFlt * HW_BOARD_VOLT_MAX)) >> 15) >> 2; //压缩机回气温度
-    //  Uart_DATA07.bf.DATA0=0;
-    //  Uart_DATA07.bf.DATA1=0;
-    //  Uart_DATA07.bf.DATA2=0;
-    //  Uart_DATA07.bf.DATA3=0;
-    //  Uart_DATA07.bf.DATA4=0;
-    //  Uart_DATA07.bf.DATA5=0;
-    //  Uart_DATA07.bf.DATA6=0;
-    //  Uart_DATA07.bf.DATA7=0;
-    //      //第8个数据8位
-    Uart_DATA08.DATA00 = 0; //压缩机相电流值
-    //      Uart_DATA08.bf.DATA0=0;//室外环境温度小数标志   00: 0℃标志  01: 0.25℃标志  10: 0.5℃标志  11: 0.75℃标志
-    //      Uart_DATA08.bf.DATA1=0;
-    //      Uart_DATA08.bf.DATA2=0;//室外冷凝器温度小数标志
-    //      Uart_DATA08.bf.DATA3=0;
-    //      Uart_DATA08.bf.DATA4=0;//室外排气温度小数标志
-    //      Uart_DATA08.bf.DATA5=0;
-    //      Uart_DATA08.bf.DATA6=0;//预留
-    //      Uart_DATA08.bf.DATA7=0;
-    //      //第9个数据8位
-    Uart_DATA09.DATA00 = Huan_temp / 10 + 40; //室外AC电流值
-    //  Uart_DATA09.bf.DATA0=0;
-    //  Uart_DATA09.bf.DATA1=0;
-    //  Uart_DATA09.bf.DATA2=0;
-    //  Uart_DATA09.bf.DATA3=0;
-    //  Uart_DATA09.bf.DATA4=0;
-    //  Uart_DATA09.bf.DATA5=0;
-    //  Uart_DATA09.bf.DATA6=0;
-    //  Uart_DATA09.bf.DATA7=0;
-    //      //第10个数据8位
-    Uart_DATA10.DATA00 = Guan_temp / 10 + 40; //室外DC电压值
-    //  Uart_DATA10.bf.DATA0=0;
-    //  Uart_DATA10.bf.DATA1=0;
-    //  Uart_DATA10.bf.DATA2=0;
-    //  Uart_DATA10.bf.DATA3=0;
-    //  Uart_DATA10.bf.DATA4=0;
-    //  Uart_DATA10.bf.DATA5=0;
-    //  Uart_DATA10.bf.DATA6=0;
-    //  Uart_DATA10.bf.DATA7=0;
-    //      //第11个数据8位
-    Uart_DATA11.DATA00 = Paiqi_temp / 10 + 40; //电子膨胀阀开度
-    //  Uart_DATA11.bf.DATA0=0;
-    //  Uart_DATA11.bf.DATA1=0;
-    //  Uart_DATA11.bf.DATA2=0;
-    //  Uart_DATA11.bf.DATA3=0;
-    //  Uart_DATA11.bf.DATA4=0;
-    //  Uart_DATA11.bf.DATA5=0;
-    //  Uart_DATA11.bf.DATA6=0;
-    //  Uart_DATA11.bf.DATA7=0;
-    //      //第12个数据8位
-    Uart_DATA12.DATA00 = 0; //外风机档位或转速
-    Uart_DATA12.bf.DATA0 = 0; //除霜要求  0:无要求  1:除霜要求
-    Uart_DATA12.bf.DATA1 = 0; //普通除霜状态 0:通常状态(default) 或特殊除霜状态  1:普通除霜中
-    Uart_DATA12.bf.DATA2 = 0; //回油状态  0:无需停内风机的制热回油或非回油状态  1:制冷回油 或 需要停内风机的制热回油
-    Uart_DATA12.bf.DATA3 = 0; //3分钟待机状态  0:通常状态   1:3分钟待机中
-    Uart_DATA12.bf.DATA4 = 0; //电子膨胀阀状态 0:通常状态  1:复位中
-    Uart_DATA12.bf.DATA5 = 0; //外机静音状态  0:通常状态  1:外机静音中
-    Uart_DATA12.bf.DATA6 = 0; //外机防凝露状态  0:通常状态 1:外机防凝露中
-    Uart_DATA12.bf.DATA7 = 0; //SAVE状态  0:通常状态   1:SAVE状态运行中
-    //      //第13个数据8位
-    //      Uart_DATA13.DATA13=0;//室外机标志位
-    Uart_DATA13.bf.DATA0 = 0; //回送自测状态
-    Uart_DATA13.bf.DATA1 = 0;
-    Uart_DATA13.bf.DATA2 = mcFaultSource; //外机任意停机故障  0:正常  1:故障
-    Uart_DATA13.bf.DATA3 = 0; //特殊除霜状态  0:通常状态(default) 或普通除霜状态  1:特殊除霜中
-    //  Uart_DATA13.bf.DATA4=0;//预留
-    //  Uart_DATA13.bf.DATA5=0;
-    //  Uart_DATA13.bf.DATA6=0;
-    //  Uart_DATA13.bf.DATA7=0;
-    //      //第14个数据8位
-    Uart_DATA14.DATA00 = 0; //IPM温度
-    //  Uart_DATA14.bf.DATA0=0;
-    //  Uart_DATA14.bf.DATA1=0;
-    //  Uart_DATA14.bf.DATA2=0;
-    //  Uart_DATA14.bf.DATA3=0;
-    //  Uart_DATA14.bf.DATA4=0;
-    //  Uart_DATA14.bf.DATA5=0;
-    //  Uart_DATA14.bf.DATA6=0;
-    //  Uart_DATA14.bf.DATA7=0;
-    //      //第15个数据8位
-    //    Uart_DATA15.DATA00=0;//室外AC电压值
-    Uart_DATA15.bf.DATA0 = 0; //DRED模式运行状态
-    Uart_DATA15.bf.DATA1 = 0;
-    Uart_DATA15.bf.DATA2 = 0; //强制制冷  0:未执行;1:执行
-    Uart_DATA15.bf.DATA3 = 0; //强制制热
-    Uart_DATA15.bf.DATA4 = 0; //强制除霜
-    Uart_DATA15.bf.DATA5 = 0; //收氟模式
-    Uart_DATA15.bf.DATA6 = 0; //试运行
-    //  Uart_DATA15.bf.DATA7=0; //预留
-    //第16个数据8位
-    Uart_DATA16.DATA00 = 0; //限频、降频标志位
-    //第17个数据8位
-    Uart_DATA17.DATA00 = 0; //预留
-}
-void Modbus_respond2(void)
-{
-    uint8 u16CRC = 0;
-    Uart.T_DATA[0]  = 0xCF;                          //识别码
-    Uart.T_DATA[1]  = 0x01;                              //正常工作
-    Uart.T_DATA[2]  = 19;                            //数据长度
-    Uart.T_DATA[3]  = 0;                         //
-    Uart.T_DATA[4]  = Uart_DATA00.DATA00;            //数据第0位
-    Uart.T_DATA[5]  = Uart_DATA01.DATA00;        //数据第1位
-    Uart.T_DATA[6]  = Uart_DATA02.DATA00;        //数据第2位
-    Uart.T_DATA[7]  = Uart_DATA03.DATA00;        //数据第3位
-    Uart.T_DATA[8]  = Uart_DATA04.DATA00;        //数据第4位
-    Uart.T_DATA[9]  = Uart_DATA05.DATA00;        //数据第5位
-    Uart.T_DATA[10] = Uart_DATA06.DATA00;            //数据第6位
-    Uart.T_DATA[11] = Uart_DATA07.DATA00;          //数据第7位
-    Uart.T_DATA[12] = Uart_DATA08.DATA00;        //数据第8位
-    Uart.T_DATA[13] = Uart_DATA09.DATA00;        //数据第9位
-    Uart.T_DATA[14] = Uart_DATA10.DATA00;        //数据第10位
-    Uart.T_DATA[15] = Uart_DATA11.DATA00;        //数据第11位
-    Uart.T_DATA[16] = Uart_DATA12.DATA00;            //数据第12位
-    Uart.T_DATA[17] = Uart_DATA13.DATA00;          //数据第13位
-    Uart.T_DATA[18] = Uart_DATA14.DATA00;        //数据第14位
-    Uart.T_DATA[19] = Uart_DATA15.DATA00;        //数据第14位
-    Uart.T_DATA[20] = Uart_DATA16.DATA00;        //数据第14位
-    Uart.T_DATA[21] = Uart_DATA17.DATA00;        //数据第14位
-    u16CRC = BBC2(&Uart.T_DATA[0], TX_LEN - 2);
-    Uart.T_DATA[22] = u16CRC;                    //CRC
-    Uart.T_DATA[23] = 0x55;                    //结束码
-    Uart.send_start_falg = 1;
-    
-    if (Uart.send_start_falg == 1)
-    {
-        Uart.Recive_Flag = 1;
-        UT2_DR = Uart.T_DATA[0];
-        UT2TB8 = even_or_odd(Uart.T_DATA[0], evnodd);
-        Uart.send_start_falg = 0;
-        Uart.TxCnt = 0;
-    }
-}
-void Modbus_task23(void)
-{
-    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg))
-    {
-        Uart_Run21();
-        Modbus_respond2();
-        Uart.Uart_Tmcomcyc = 0;
-    }
-}
-/**任务机接收**/
-void Modbus_Recive_task66(void)
-{
-    switch (Uart.R_DATA[0])//判断功能码
-    {
-        case 0x02:            //正常工作
-            Modbus_Recive_task23();
-            break;
-            
-        case 0x38:            //工厂初测
-            Modbus_Recive_task23();
-            break;
-            
-        case 0x58:            //工厂终测
-            Modbus_Recive_task23();
-            break;
-            
-        case 0x78:            //工装手动调试
-            Modbus_Recive_task23();
-            break;
-            
-        default:
-            break;
-    }
-}
-
-/*串口数据处理,处理接收到的串口数据,运行于大循环中*/
-void UartDealResponse2(void)
-{
-    //  if (Modbus_Slave_Receive2() == 1)//接收数据
-    //  {
-    //          Modbus_Recive_task66();
-    //        mcFaultDect.commu_time=0;
-    //          Uart.recive_sussf_falg = 0;
-    //  }
-    //  Modbus_task23();//发送数据
-    //}
-    if (Modbus_Slave_Receive2() == 1)//接收数据
-    {
-        Modbus_Recive_task01();
-        mcFaultDect.commu_time = 0;
-        Uart.recive_sussf_falg = 0;
-    }
-}
-
-#endif

+ 0 - 144
User/User_Drive/commution.h

@@ -1,144 +0,0 @@
-#ifndef __COMMUTION_H__
-#define __COMMUTION_H__
-
-
-#if (Uart_COMMUNICATION==0)
-    #define RX_LEN                        20
-    #define TX_LEN                        20
-#elif (Uart_COMMUNICATION==1)
-    #define RX_LEN                        23
-    #define TX_LEN                        23
-#endif
-
-#define RX_ZHENTOU                    0x00
-#define TX_ZHENTOU                    0x95
-
-#define RX_LEN1                        8
-#define TX_LEN1                        11
-
-#define RX_ZHENTOU1                   0x81
-#define TX_ZHENTOU1                   0x28
-
-#define T_mreset                    5000      //5000ms
-#define T_mrxerr                    180       //180s
-#define T_mchgerr                   120       //120s
-#define T_mtxcyc                    230       //230ms
-#define T_mcomcyc                   500       //500ms
-#define T_mfrmwt                    25        //25ms
-#define T_mwtchg                    50        //50ms
-
-#define evnodd                      0    //0:  ????1:???
-
-
-
-typedef union
-{
-    uint8 DATA00;
-    struct
-    {
-        uint8  DATA0 :  1;  //DATA1.0
-        uint8  DATA1 :  1;  //DATA1.1
-        uint8  DATA2 :  1;  //DATA1.2
-        uint8  DATA3 :  1;  //DATA1.3
-        uint8  DATA4 :  1;  //DATA1.4
-        uint8  DATA5 :  1;  //DATA1.5
-        uint8  DATA6 :  1;  //DATA1.6
-        uint8  DATA7 :  1;  //DATA1.7
-    } bf;
-} ddatet00;
-
-
-
-//????typedef struct
-
-typedef union
-{
-    uint8 DATAT00;
-    struct
-    {
-        uint8  DATA0 :  1;  //DATA1.0
-        uint8  DATA1 :  1;  //DATA1.1
-        uint8  DATA2 :  1;  //DATA1.2
-        uint8  DATA3 :  1;  //DATA1.3
-        uint8  DATA4 :  1;  //DATA1.4
-        uint8  DATA5 :  1;  //DATA1.5
-        uint8  DATA6 :  1;  //DATA1.6
-        uint8  DATA7 :  1;  //DATA1.7
-    } bf;
-} MCUART_Rec00;
-
-
-
-
-typedef struct
-{
-    uint8 R_DATA[42];
-    uint8 T_DATA[42];
-    int16 uarttimejishu;
-    uint8 recive_lenth;
-    uint16 Uart_Tmreset;
-    uint16 Uart_Tmcomcyc;
-    uint8  Uart_Recivetime;
-    uint8 Oder;
-    uint8 Recive_Flag;
-    
-    
-    uint8 recive_sussf_falg;
-    uint8 send_start_falg;
-    uint8     sussf_falg;
-    
-    uint8     sendflag;
-    uint8     ResponseFlag;
-    
-    uint16      time_cnt;
-    uint16    time_shuju;
-    
-    uint8     UartReadTemp;
-    uint8     UartReadCnt;
-    uint8     TxCnt;
-    uint8     send_delay_time;
-    
-    uint16    YaJI_Speed;
-    uint16    FengSpeed;
-    int16     PengZhangFa;
-    int16     PengZhangFa_ACT;
-    uint8     u1IduRevDataCnt;
-} MCUART;
-
-
-
-
-extern MCUART xdata Uart;
-extern uint8 BBC(uint8 * puchMsg, uint8 usDataLen);
-
-extern unsigned char        u1_cnt_idu_comm_task;
-
-extern MCUART_Rec00 xdata Uart_Rec_DATA00;
-extern MCUART_Rec00 xdata Uart_Rec_DATA01;
-extern MCUART_Rec00 xdata Uart_Rec_DATA02;
-extern MCUART_Rec00 xdata Uart_Rec_DATA03;
-extern MCUART_Rec00 xdata Uart_Rec_DATA04;
-extern MCUART_Rec00 xdata Uart_Rec_DATA05;
-extern MCUART_Rec00 xdata Uart_Rec_DATA06;
-extern MCUART_Rec00 xdata Uart_Rec_DATA09;
-extern MCUART_Rec00 xdata Uart_Rec_DATA10;
-extern MCUART_Rec00 xdata Uart_Rec_DATA12;
-extern MCUART_Rec00 xdata Uart_Rec_DATA13;
-extern MCUART_Rec00 xdata Uart_Rec_DATA14;
-extern MCUART_Rec00 xdata Uart_Rec_DATA15;
-
-extern void UartRecive1(void);
-extern void UartSend1(void);
-extern void UartDealResponse1(void);
-extern void UartDealResponse2(void);
-extern void Uart_Int01(void);
-extern void Uart_Int02(void);
-extern void Uart_Int_Finsh(void);
-extern void Uart_Run01(void);
-extern void Uart_Run02(void);
-extern void Uart_Run03(void);
-
-
-
-#endif
-

+ 0 - 111
User/User_Drive/watch.c

@@ -1,111 +0,0 @@
-#include "User_Dri_main.h"
-
-extern unsigned char xdata sg_ucUartDbgData[128];
-MCUART_watch xdata Uartwatch;
-
-void uart_boxing(uint8 ChNum, int32 CH0, int32 CH1, int32 CH2, int32 CH3, int32 CH4, int32 CH5, int32 CH6, int32 CH7)
-{
-    uint8 i = 0, tt = 0;
-    static float  CH[20] = 0;
-    static uint16 cmdTFT_CH1[4] = {0x00, 0x00, 0x80, 0x7F};
-    typedef union
-    {
-        float            fdata;
-        unsigned long    ldata;
-    } datetype;
-    datetype  Ddate;
-    Wait_DMA(1);
-    CH[0] = CH0; CH[1] = CH1; CH[2] = CH2; CH[3] = CH3; CH[4] = CH4; CH[5] = CH5; CH[6] = CH6; CH[7] = CH7;
-    
-    for (tt = 0; tt < ChNum; tt++)
-    {
-        Ddate.fdata = CH[tt];
-        sg_ucUartDbgData[0 + tt * 4] = Ddate.ldata;
-        sg_ucUartDbgData[1 + tt * 4] = (Ddate.ldata >> 8 & 0xFF);
-        sg_ucUartDbgData[2 + tt * 4] = (Ddate.ldata >> 16 & 0xFF);
-        sg_ucUartDbgData[3 + tt * 4] = (Ddate.ldata >> 24 & 0xFF);
-    }
-    
-    if (ChNum != 0)
-    {
-        for (i = 0; i < 4; i++)
-        {
-            sg_ucUartDbgData[4 + (tt - 1) * 4 + i] = cmdTFT_CH1[i];
-        }
-    }
-    
-    DMA1_LEN = 4 + (tt - 1) * 4 + (i - 1);
-    Switch_DMA(1);
-}
-
-
-void UART1RCE()
-{
-    Uartwatch.uarttimejishu = 0;
-    Uartwatch.uartre[Uartwatch.uartjia++] = UT_DR;
-}
-
-void UART1deal()
-{
-    static uint8 aa[6] = 0;
-    uint8 ii = 0;
-    
-    if (Uartwatch.uarttimejishu >= 30 && Uartwatch.uartjia != 0)
-    {
-        if ((Uartwatch.uartre[0] == 'T') && (Uartwatch.uartre[1] == ':') && (Uartwatch.uartre[Uartwatch.uartjia - 1] == 0x0A))
-        {
-            if (Uartwatch.uartre[2] == '1')
-            {
-                Uartwatch.fast = 1;
-            }
-            else if (Uartwatch.uartre[2] == '0')
-            {
-                Uartwatch.fast = 0;
-            }
-        }
-        else if ((Uartwatch.uartre[0] == 'S') && (Uartwatch.uartre[1] == ':') && (Uartwatch.uartre[Uartwatch.uartjia - 1] == 0x0A))
-        {
-            for (ii = 0; ii <= 5; ii++)
-            {
-                aa[ii] = 0;
-            }
-            
-            for (ii = 0; ii <= (Uartwatch.uartjia - 4); ii++)
-            {
-                aa[ii] = 1;
-            }
-            
-            ConTrolCmd.yajispeed = ((Uartwatch.uartre[Uartwatch.uartjia - 6] & 0x0f) * 10000 * aa[4]) + ((Uartwatch.uartre[Uartwatch.uartjia - 5] & 0x0f) * 1000 * aa[3])
-                + ((Uartwatch.uartre[Uartwatch.uartjia - 4] & 0x0f) * 100 * aa[2]) + ((Uartwatch.uartre[Uartwatch.uartjia - 3] & 0x0f) * 10 * aa[1]) + (Uartwatch.uartre[Uartwatch.uartjia - 2] & 0x0f) * aa[0];
-        }
-        
-        Uartwatch.uartjia = 0;
-    }
-}
-
-
-void trace1()
-{
-    static uint8 ii = 0;
-    
-    if (Uartwatch.cunflag == 1)
-    {
-        ii++;
-        Uartwatch.jiajia++;
-        Uartwatch.buff1[ii] = VoltageComp.testUq4; //Uartwatch.jiajia;
-        Uartwatch.buff2[ii] = VoltageComp.mcDcbus;
-        Uartwatch.buff3[ii] = FOC__ID;
-    }
-    
-    if (ii >= (Buge - 1))
-    {
-        ii = 0;
-        Uartwatch.jiajia = 0;
-        Uartwatch.faflag = 1;
-        Uartwatch.cunflag = 0;
-    }
-}
-extern uint16 AimFrequencyMaxVAC;
-
-
-

+ 0 - 34
User/User_Drive/watch.h

@@ -1,34 +0,0 @@
-
-#ifndef __SWATCH_H__
-#define __SWATCH_H__
-
-#include "FU68xx_5_Type.h"
-
-
-#define Buge    100
-typedef struct
-{
-    uint8  uartre[15];
-    uint8  uartjia;
-    uint8  uarttimejishu;
-    uint8  cunflag;
-    uint8  faflag;
-    uint8  jiajia;
-    int16  buff1[Buge];
-    int16  buff2[Buge];
-    int16  buff3[Buge];
-    uint8  fajishu;
-    uint8  fast;
-    
-} MCUART_watch;
-
-extern MCUART_watch xdata Uartwatch;
-
-extern void UART1RCE();
-extern void UART1deal();
-extern void trace1();
-extern void uart_boxing(uint8 ChNum, int32 CH0, int32 CH1, int32 CH2, int32 CH3, int32 CH4, int32 CH5, int32 CH6, int32 CH7);
-
-#endif
-
-

+ 0 - 18
User/include/AddFunction.h

@@ -50,7 +50,6 @@ typedef struct
     uint16 State_Count;                    // 电机各个状态的时间计数
     uint16 iiqq;                    // 电机各个状态的时间计数
     uint16 iiqq2;                    // 电机各个状态的时间计数
-    int16  IPMtemp;
     int16  foc_comp_temp;
     int16  STT_FOC_THECOMP;
     uint8  CurrentAlignStatus;
@@ -66,14 +65,6 @@ typedef struct
 } MCRAMP;
 
 
-typedef struct
-{
-    uint16 PWMARR;                   // 周期值
-    uint16 PWMARR2;                   // 周期值
-    int16 PWMARR_last;                   // 周期值
-} PWMINPUTCAL;
-
-
 typedef struct
 {
     int16     yajispeed;
@@ -99,22 +90,14 @@ typedef struct
     int16    Pflag;
 } ILIMIT;
 
-/* Exported variables ---------------------------------------------------------------------------*/
-extern PWMINPUTCAL    xdata   mcPwmInput;
 extern CurrentVarible xdata   mcCurVarible;
 extern FOCCTRL        xdata   mcFocCtrl;
 extern MCRAMP         xdata   mcSpeedRamp;
 extern ILIMIT         xdata   mcIimit;
 extern CONTROLCMDD    xdata   ConTrolCmd;
-extern int16     Huan_temp, Guan_temp, Paiqi_temp, Yaji_temp;
-
-extern int16 LPF_realize(int16 Xn1, int16 Xn0, int16 K);
-extern int16 LPF_realize1(int16 Xn1, int16 Xn0, int16 K);
-extern int16 LPF_realize2(int16 Xn1, int16 Xn0, int16 K);
 
 extern void   Fault_Detection(void);
 extern void   PFCFault_Detection(void);
-extern void   TargetRef_Process(void);
 extern void   Speed_response(void);
 extern void   mc_ramp(MCRAMP * hSpeedramp);
 extern void   STT_FOC_THECOMP_CLEAR(void);
@@ -125,7 +108,6 @@ extern void   StarRampDealwith(void);
 extern void Current_Speed_PI(void);
 extern void IsLimit_Over_tect(void);
 extern void IsLimit_Over_deal(void);
-extern uint16 VAC_Frequency_Max(void);
 
 #endif
 

+ 0 - 128
User/include/Communication.h

@@ -1,128 +0,0 @@
-/**************************** (C) COPYRIGHT 2018 Fortiortech shenzhen *****************************
-* File Name          : Communication.h
-* Author             : Cooper.fang, Fortiortech Appliction Team
-* Version            : V1.0
-* Date               : 10-25-2018
-* Description        : This file contains all the common data types used for
-*                      communication.
-***************************************************************************************************
-* All Rights Reserved
-**************************************************************************************************/
-
-
-#ifndef __COMMUNICATION_H_
-#define __COMMUNICATION_H_
- 
-#if (Debugg==1)
-
-#define CH_MAX			(2)				
-#define LEN_TRACE		(0)				// 	n=0:128, 1:256, 2:512, 3:1024 ��TRACE DATA=128*2^n(n=0~3)
-#define DEF_TRACEADDR		(0xFEDFA000)	
-
-
-#define SZ_SENDRINGBUF		(128)			
-#define SZ_RECVBUF		(24)			
-#define SZ_SENDBUF		(32)			
-#define SZ_TRACEBUF		(CH_MAX*128*(1<<LEN_TRACE))		
-
-
-
-#define TRIG_NON		(0)
-#define TRIG_EDGE_UP		(1)
-#define TRIG_EDGE_DOWN		(2)
-#define TRIG_LIMIT_INNER	(3)
-#define TRIG_LIMIT_OUTER	(4)
-
-
-
-#define RCVCMD6			(6)
-#define RCVCMD9			(9)
-#define RCVCMD11		(11)
-#define RCVCMD14		(14)
-#define RCVCMD16		(16)
-
-
-
-union UNION_STATUS 
-{
-	unsigned int ui;
-	unsigned char b[4];
-	struct {
-		unsigned halt_trace:	1;
-		unsigned cmd_gettrace:	1;
-		unsigned ch_trace:		2;
-		unsigned len_trace:		2;
-		unsigned trig_support: 	1;
-		unsigned dummy1:	 	1;
-
-		unsigned type_trig:		3;
-		unsigned triggered:		1;
-		unsigned ch_trig:		2;
-		unsigned trig_en:		1;
-		unsigned trig_normal: 	1;
-
-		unsigned interval:		16;
-		
-		
-	} bf;
-};
-
-union UNION_DWORD 
-{
-	unsigned int  dw;
-	unsigned char b[4];
-};
-
-union UNION_INT 
-{
-	int32  i;
-	int8 b[4];
-};
-
-union UNION_WORD {
-	unsigned short w;
-	unsigned char  b[2];
-};
-
-union UNION_SHORT 
-{
-	short s;
-	unsigned char  b[2];
-};
-
-
-#define BIGENDIAN 0
-
-
-
-#define	REG_RX		UT_DR
-#define	REG_TX		UT_DR
-#define	REG_STR		( (SCI1.SSR.BYTE >>4) &0x03)//错误状态
-#define	REG_TSF		(!SCI1.SSR.BIT.TDRE)//发送查空(查询)
-#define	REG_RESET()	{char i= SCI1.SSR.BYTE ; i=REG_RX; while ( 0 != (SCI1.SSR.BYTE&0x38) ) { SCI1.SSR.BYTE &= 0xc7 ; } }
-
-extern union UNION_STATUS xdata ubf_status;
-
-extern void  UartSend(void);
-
-extern void  UartRecive(void);
-
-
-extern void  UartDealResponse(void);
-//extern void  cumfault_6(void);
-
-extern void  PC_MONITOR_PWM(void);
-extern void  PC_MONITOR_MAIN(void);
-extern void  PC_MONITOR_1MS(void);
-extern void  senddeal(void);
-extern void  CMDMONI_WT_SENDCMD(void);
-extern void  CMDMONI_WT_INIT(void);
-extern void  PC_MONITOR_INTR(void);
-
-//extern uint16 crc16_x25(uint8 * cata, uint8 length);
-
-extern uint16 CRC16Compute(uint8 * CRCData, uint8 length);
-
-#endif
-
-#endif

+ 9 - 27
User/include/Customer.h

@@ -20,7 +20,6 @@
 #define PWM_FREQUENCY                  (5.0)
 #define PWM_DEADTIME                   (5.0)
 #define MIN_WIND_TIME                  (5.9)
-#define PWM_Level_Mode                 (High_Level)
 #define HW_ADC_VREF                    (VREF5_0)
 #define HW_ADC_REF                     (5.0)
 // 运放配置 运放倍数
@@ -45,19 +44,23 @@
 
 
 #define HW_RSHUNT                      (0.04)                                  // (Ω)  采样电阻
+
+
+
+
+
+
+
 #define I_ValueX(Curr_Value)            (Curr_Value * HW_RSHUNT * HW_AMPGAIN / (HW_ADC_REF))
 #define I_Value(Curr_Value)             _Q15(I_ValueX(Curr_Value))
 
-#define MCU_CLOCK                      (24.0)                                  // (MHz) 主频
 
 #define RV1                            (940.0)                                  // (kΩ) 母线电压分压电阻1
 #define RV2                            (940.0)                                  // (kΩ) 母线电压分压电阻2
 #define RV3                            (0.3)                                    // (kΩ) 母线电压分压电阻3
 #define VC1                            (1.0)                                    // 电压补偿系数
-// #define RV                             ((RV1 + RV2 + RV3) / RV3)                // 分压比
-#define RV                             (250.7 / 1.0)                // 分压比     ((RV1 + RV2 + RV3) / RV3/8/7.5*2.4)  
+#define RV                             ((RV1 + RV2 + RV3) / RV3)                // 分压比
 
-#define HW_BOARD_VOLT_MAX              (HW_ADC_REF * RV)                        // (V)  ADC可测得的最大母线电压  
 
 #define RL1                            (450.0)                                  // (kΩ) 母线电压分压电阻1
 #define RL2                            (2.0)                                    // (kΩ) 母线电压分压电阻2
@@ -84,7 +87,6 @@
 #define AlignTestMode                  (0)                                     // 预定位测试模式
 
 
-/***预定位的Kp、Ki****/
 #define DQKP_Alignment                 _Q12(5.0)                               // 预定位的KP
 #define DQKI_Alignment                 _Q15(0.01)                              // 预定位的KI
 
@@ -218,10 +220,7 @@
 #define LOOP_MODE						(SPEED_CONTROL_MODE)
 
 
-#define SPEED_MODE                     (UARTMODE)
-
-
-#define CONTROL_MODE					(NONEMODE) 
+#define CONTROL_MODE					(UARTMODE) 
 
 
 
@@ -237,20 +236,6 @@
 #define FiledWeakenKi					_Q15(0.0001)
 
 
-#define TIM_4_T                         (375000)          //定时器4频率
-#define TIM_4_T_Pole_Pairs              (4)                //风机脉冲数  
-#define TIM_4_fengji_speedxishu         ((60*TIM_4_T)/TIM_4_T_Pole_Pairs)         //60f/p
-
-#define Uart_MoNi                      (0)      //模拟串口
-#define Uart_Yingjian                  (1)      //硬件串口
-#define Uart_Select                    (Uart_Yingjian)    //  通信模式选择,380bps及其选择软件,否则硬件 
-
-
-#define Uart_COMMUNICATION             (1)    //  通信协议    0:格力   1;月兔
-
-
-#define Debugg                         (1)            //  调试工具选择   
-
 #define IFFDebugg                      (0)            //  强拖测试模式 
 #define IF_I_Value                     I_Value(10.0)   //  强拖测试电流
 
@@ -265,7 +250,4 @@
 #define VAC_Max_K                        ((float)(VAC_Max_F-VAC_Min_F)/(float)(VAC_Max-VAC_Min))
 	
 
-
-
-
 #endif

+ 33 - 11
User/include/Definition.h

@@ -22,8 +22,8 @@
 #define VREF5_0                         (0xD0)
 
 // 驱动电平
-#define High_Level                      (0xA0)
-#define Low_Level                       (0xB0)
+#define HIGH_LEVEL                      (0xA0)
+#define LOW_LEVEL                       (0xB0)
 #define UP_H_DOWN_L                     (0xC0)
 #define UP_L_DOWN_H                     (0xD0)
 
@@ -83,21 +83,38 @@
 // ------------------------------------------------------------------------------------------------------------------
 // 2.电机控制参数定义与配置
 
+#define MCU_CLOCK						(24.0)
+
+#define PWM_LEVEL_MODE                 	(HIGH_LEVEL)
 
 // DQ轴最大限幅值
-#define DOUTMAX                        _Q15(0.99)
-#define DOUTMIN                        _Q15(-0.99)
-#define QOUTMAX                        _Q15(0.99) 
-#define QOUTMIN                        _Q15(-0.99)
+#define DOUTMAX                        	_Q15(0.99)
+#define DOUTMIN                        	_Q15(-0.99)
+#define QOUTMAX                        	_Q15(0.99) 
+#define QOUTMIN                        	_Q15(-0.99)
 
 // 过调制
-#define OverModulation                 (0)
+#define OverModulation                 	(0)
+
+#define EstimateAlgorithm              	(AO)
+#define Open_Start_Mode                	(Omega_Start)
+#define Shunt_Resistor_Mode            	(Double_Resistor)
+
 
-#define EstimateAlgorithm              (AO)
-#define Open_Start_Mode                (Omega_Start)
-#define Shunt_Resistor_Mode            (Double_Resistor)
+#define LPF_K(K)                        _Q15(_2PI / 1000 * K)
 
 
+// 电流基准
+#define HW_BOARD_CURR_MAX               (HW_ADC_REF / 2 / HW_AMPGAIN / HW_RSHUNT)
+#define HW_BOARD_CURR_MIN               (-HW_BOARD_CURR_MAX)
+#define HW_BOARD_CURR_BASE              (HW_BOARD_CURR_MAX * 2) 
+
+// 母线电压采样分压电路
+#define HW_BOARD_VOLT_MAX               (HW_ADC_REF * RV) 
+#define HW_BOARD_VOLTAGE_BASE           (HW_BOARD_VOLT_MAX / 1.732)
+#define HW_BOARD_VOLTAGE_VC             ((RV1 + RV2 + RV3 * VC1) / (RV3 * VC1))
+#define HW_BOARD_VOLTAGE_BASE_Start     (HW_ADC_REF * HW_BOARD_VOLTAGE_VC / 1.732)
+
 
 // ------------------------------------------------------------------------------------------------------------------
 // 3.其他宏定义
@@ -163,8 +180,13 @@ typedef struct
 	// 模拟数据
 	uint16_t DCBus;
 	uint16_t ACBus;
-	uint16_t IPMTemp;
+	uint16_t IGBTTemp;
+	
+	// 数据处理
+	uint16_t ACBusMax;
+	uint16_t ACBusMin;
 	
+	// 速度相关
 	int16_t RampInc;
 	int16_t RampDec;
 	int16_t TargetRef;

+ 4 - 10
User/include/Myproject.h

@@ -8,22 +8,14 @@
 #include <Parameter.h>
 #include <AddFunction.h>
 #include <DMA.h>
-#include <UART.h>
-#include <Pfc.h>
-#include <Communication.h>
-#include <UART_4800.h>
 #include <Protect.h>
 #include <ProtectSet.h>
-#include <PfcSet.h>
-#include <commution.h>
 #include <Parameter.h>
 #include <VoltageCompensation.h>
 
-#include <SYS_Ctr_main.h>
-#include <User_Dri_main.h>
-#include <other.h>
-
 
+// math.h包含算术运算的数学函数
+#include <math.h>                       
 #include <Definition.h>
 
 typedef enum
@@ -72,6 +64,8 @@ void CMP5_Init(void);
 
 
 
+void UART1_Init(void);
+void UART2_Init(void);
 
 void Timer2_Init(void);
 void Timer3_Init(void);

+ 1 - 12
User/include/Parameter.h

@@ -21,18 +21,7 @@
 #define PWM_DT_LOAD                     (uint16)(_Q16 / PWM_CYCLE * DT_TIME / 16)                  // 死区补偿值
 #define PWM_TGLI_LOAD                   (uint16)(_Q16 / PWM_CYCLE * (GLI_TIME + PWM_DEADTIME) / 16)  // 最小脉冲
 
-#define LPF_K(K)                        _Q15(_2PI / 1000 * K)
-
-/*电流基准的电路参数*/
-#define HW_BOARD_CURR_MAX               (HW_ADC_REF / 2 / HW_AMPGAIN / HW_RSHUNT) // 最大采样电流,2.702A
-#define HW_BOARD_CURR_MIN               (-HW_BOARD_CURR_MAX)                      // 最小采样电流,-2.702A
-#define HW_BOARD_CURR_BASE              (HW_BOARD_CURR_MAX * 2)                   // 电流基准//5.4A
-
-/*hardware voltage sample Parameter*/
-/*母线电压采样分压电路参数*/
-#define HW_BOARD_VOLTAGE_BASE           (HW_BOARD_VOLT_MAX / 1.732)               // 电压基准
-#define HW_BOARD_VOLTAGE_VC             ((RV1 + RV2 + RV3 * VC1) / (RV3 * VC1))
-#define HW_BOARD_VOLTAGE_BASE_Start     (HW_ADC_REF * HW_BOARD_VOLTAGE_VC / 1.732)// 电压基准
+
 
 #define P_Power(POWER)                  _Q15(POWER*2/HW_BOARD_CURR_BASE/HW_BOARD_VOLTAGE_BASE/1.5)
 #define P_PowerReal          	         (3*((uint32)mcFocCtrl.Powerlpf*HW_BOARD_CURR_BASE*HW_BOARD_VOLTAGE_BASE))/4/32767

+ 0 - 40
User/include/Pfc.h

@@ -1,40 +0,0 @@
-
-#ifndef __PFC_H_
-#define __PFC_H_
-
-typedef struct
-{
-  int16   IacOffset;       // Iac的偏置电压
-  int32   IacOffsetSum;    // Iac的偏置电压总和
-  int16   OffsetCount;     // 偏置计数
-  int8    OffsetFlag;      // 偏置电压结束标志位    
-  int8    OverVoltFlag;    // 过压保护标志位
-  int16   UDCREFValue;     // Udc的给定值的变量
-	int16   UDCREF_RED;     // Udc的给定值的变量
-  int16   IACOUTMax;       // Iacout的最大值
-  int16   UDCOUTMax;       // Udcout的最大值
-  uint16  PFCKMREFValue;
-	uint16  KmSetValue_add;
-	uint8   KmSetValue_Slect; 
-
-}PFCValue;
-
-
-extern uint16 xdata Power_Currt ;
-extern uint16 PFCoffsetflag,PFCoffset;
-extern uint16 PFC_UDCREF_GET;
-
-extern PFCValue  PFCSet;
-extern void PFC_init(void);
-extern void PFC_start(void);
-extern void GetPFCCurrentOffset(void);
-extern void PFCVoltageRespone(void);
-extern void PFCRunResponse(void);
-extern void  PFC_Control(void);
-extern void  PFC_OFF_Voltage(void);
-extern void PFC_ONOFF(void);
-extern void  PFC_GetPFCCurrentOffset_ONOFF(void);
-extern void PI_CLEAR(void);
-extern void PFC_main(void);
-extern void PFC_timer1ms(void);
-#endif

+ 0 - 77
User/include/PfcSet.h

@@ -1,77 +0,0 @@
-#ifndef __PfcSET_H_
-#define __PfcSET_H_
-
-#include <Myproject.h>
-
- #define PFC_ValueX(Curr_Value)            (Curr_Value * PFC_RSHUNT * PFC_AMPGAIN / (HW_ADC_REF))
- #define PFC_Value(Curr_Value)             _Q15(PFC_ValueX(Curr_Value))
-
-/*PFC参数设置------------------------------------------------------------------*/
- #define PFCEnable                      (0)                                     //       PFC使能
- #define PFCPWM_FREQUENCY               (16.0)   //80                               // (kHz) 载波频率    //高频41K,低频16K
- #define PFCPWM_ARR                     (uint16)(MCU_CLOCK * 500 / PFCPWM_FREQUENCY)
- 
-  /*AC电压采样分压电路参数*/
- #define ACRV1                          (420.0)                                 // (kΩ) AC电压分压电阻1
- #define ACRV2                          (200.0)                                 // (kΩ) AC电压分压电阻2
- #define ACRV3                          (3.3)                                   // (kΩ) AC电压分压电阻3
- #define ACRV                           ((ACRV1 + ACRV2 + ACRV3) / ACRV3)       //      AC电压分压比    
- #define HW_BOARD_ACVOLT_MAX            (HW_ADC_REF * ACRV)                     // (V)  ADC可测得的最大母线电压   
-
- /* PFC电流采样电阻参数设置 */
- #define PFC_RSHUNT                     (0.01) //0.005
- #define PFC_AMPGAIN                    (9.56)
-
- /* PFC过流设置 */
- #define PFCOverCurrentProtectEnable    (1)                                      // 使能PFC过流保护
- #define PFCOverCurrentValue            (18.0)                                   // (A) DAC模式下的PFC过流值  19
- 
- #define PFCOVERCURRENT                 (0)                                      //过流
- #define PFCOVERCURRENTLimt             (1)                                      //限流
- #define PFCOverCurrentProtectMode      (PFCOVERCURRENTLimt)                     //过流保护选择
- 
- #define PFC_UDCREF_Selct               (1)                                       // 目标电压选择方式
- #define PFC_UDCREF_ZengL               (15)                                      // 在原基础电压上增加此值,作为PFC的目标电压值
- #define PFC_UDCREF                     _Q15(350.0 / HW_BOARD_VOLT_MAX)           //PFC目标电压
- #define PFC_UDCREF_Max                 _Q15(380.0 / HW_BOARD_VOLT_MAX)           //PFC目标电压最大值
- #define PFC_UDCREF_Min                 _Q15(300.0 / HW_BOARD_VOLT_MAX)           //PFC目标电压最大值
- #define PFC_VOLTAGEPROTECT             _Q15(420.0 / HW_BOARD_VOLT_MAX)                                     //PFC交流输入保护电压
- #define PFC_VOLTAGEPROTECT_RECOVER     _Q15(395.0 / HW_BOARD_VOLT_MAX)           //PFC交流输入恢复电压
- #define PFC_VOLTAGEPRO_RECOVEREN       (1)                                       //保护恢复使能位
- #define PFC_UDCREFINC                  (1)
- #define PFC_OUTINC                     (2)                                    //15
-
- 
- 
- /*PFC电压环PI*/
- #define PFC_UKP                         _Q10(4.003) //0.018 
- #define PFC_UKI                         _Q15(0.0508) //_Q15(0.0005) 
- #define PFC_UKPL                        _Q10(0.0001)  
- #define PFC_UKIL                        _Q15(0.0001) //_Q15(0.0005) 
- 
- /*PFC电压环输出限制*/
- #define PFC_UOUTMAX                    _Q15(0.98)     // 电压环最大限幅值  PFC_Value(Curr_Value)
- #define PFC_UOUTMIN                    _Q15(0.00)     // 电压环最小限幅值
-
- /*PFC电流环PI*///高频适时P:5.0.  I:0.1
- #define PFC_IKP                        _Q10(3.0)
- #define PFC_IKI                        _Q15(0.3)//太大,有电感啸叫 太小小功率时电压波动
- #define PFC_IKPL                       _Q10(3.0)
- #define PFC_IKIL                       _Q15(0.3)
- 
-
-/*PFC电流环输出限制*/
- #define PFC_IOUTMAX                    _Q15(0.97)   // 电流环最大限幅值
- #define PFC_IOUTMIN                    _Q15(0.00)    //0.02
-
- #define KmSetValue                     (60)//60
-
- #define SAMPLEDIV0                     (1)                                     // UAC采样频率=载波频率
- #define SAMPLEDIV2                     (2)                                     // UAC采样频率=载波频率/2
- #define SAMPLEDIV4                     (4)                                     // UAC采样频率=载波频率/4
- #define SAMPLEDIV8                     (8)                                     // UAC采样频率=载波频率/8
- #define SAMPLEFREQ                    	(SAMPLEDIV4)  
-
- #define UAC_N                          (int8)(1000 * PFCPWM_FREQUENCY / (SAMPLEFREQ * 65 * 32)) // PFC载波频率/65/采样频率系数
-
-#endif

+ 0 - 4270
User/include/UART.H

@@ -1,4270 +0,0 @@
-#ifndef __UART_H__
-#define __UART_H__
-
-/*************************************************************************************///External Function
-extern void UART1_Init(void);
-extern void UART2_Init(void);
-extern char putchar(char c);
-extern uint8 even_or_odd(uint8 Buf,uint8 o_or_e);
-//extern void put_string(unsigned char *str);
-
-/******************************************************************************///Including Header Files
-/******************************************************************************///Define Macro
-
-//#define RX_LEN                        8
-//#define TX_LEN                        11
-
-//#define RX_ZHENTOU                    0x81
-//#define TX_ZHENTOU                    0x28
-
-/*接收开关指令*/
-typedef union  
-{
-	 uint8 DATA12;
-	 struct 
-	 {
-		uint8  DATA1_0 :	1;  //DATA1.0 压缩机       		    0:OFF 		1:ON
-		uint8  DATA1_1 :	1;  //DATA1.1 四通阀       		    0:OFF 		1:ON
-		uint8  DATA1_2 :	1;	//DATA1.2 室外风机     		    0:OFF 		1:ON
-		uint8  DATA1_3 :	1;	//DATA1.3 预留继电器A       	0:OFF 		1:ON
-		uint8  DATA1_4 : 	1;	//DATA1.4 预留继电器B      	  0:OFF 		1:ON	
-		uint8  DATA1_5 :	1;	//DATA1.5 电子膨胀阀复位    	0:正常 	1:reset
-		uint8  DATA1_6 :	1;	//DATA1.6 电子膨胀阀开度高位	0:DATA4	1:DATA4+256 step
-		uint8  DATA1_7 :	1;	//DATA1.7 预留
-			
-	 } bf;
-}ddatet1; 
-
-/*回传开关转态*/
-typedef union  
-{
-	 uint8 DATA_HUI;
-	 struct 
-	 {
-		uint8  DATA2_0 :	1;  //DATA2.0 压缩机       		    0:OFF 		1:ON
-		uint8  DATA2_1 :	1;  //DATA2.1 四通阀       		    0:OFF 		1:ON
-		uint8  DATA2_2 :	1;	//DATA2.2 室外风机     		    0:OFF 		1:ON
-		uint8  DATA2_3 :	1;	//DATA2.3 预留继电器A       	0:OFF 		1:ON
-		uint8  DATA2_4 : 	1;	//DATA2.4 预留继电器B      	  0:OFF 		1:ON	
-		uint8  DATA2_5 :	1;	//DATA2.5 电子膨胀阀复位    	0:正常 	1:reset
-		uint8  DATA2_6 :	1;	//DATA2.6 电子膨胀阀开度高位	0:DATA4	1:DATA4+256 step
-		uint8  DATA2_7 :	1;	//DATA1.7 预留
-			
-	 } bf;
-}DATE_HUI; 
-
-
-
-
-/******************************************************************************///Function Subject
-//extern MCUART Uart;
-extern ddatet1  xdata DATA1;
-extern DATE_HUI xdata  DATA2_Hui;
-extern void UartRecive(void);
-extern void UartSend(void);
-extern void UartDealResponse(void);
-extern uint8 checkAdd1(uint8 *chCheckAdrr, uint8 chStartAddr,uint8 iCheckCnt);
-extern uint8 checkAdd2(uint8 *chCheckAdrr, uint8 chStartAddr,uint8 iCheckCnt);
-extern void  cumfault_6(void);
-extern void Uart_Check(void);
-
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

+ 0 - 40
User/include/UART_4800.h

@@ -1,40 +0,0 @@
-
-//********************************************************//
-#ifndef	INCLUDE_UART_4800_H
-#define INCLUDE_UART_4800_H
-
-#include <Myproject.h>
-#include "FU68xx_5_MCU.h"
-/******************************data type define*********************************/
-/******************************I/O Config**************************************/
-extern uint8 RX_BUF,TX_BUF;
-extern void MONI_UART1_Init(void);
-extern void UART1_Rx_4800(void);//无校验位: start + 8bit + stop
-extern void UART1_Tx_4800(void);
-extern void Uart_Send_Recive(void);
-
-// 1 个起始位(低电平)
-// 8 个数据位
-// 1 个校验位(偶校验:9位数据位里保证1的个数为偶数)。可以奇校验
-// 1 个停止位(高电平)
-// 1 个空闲位(高电平)
-#define  df_start_bit    	0
-#define  df_get_10_bit  	1
-#define  df_stop_bit      2
-
-#define  df_start_bit_rec    	0  //起始位 状态
-#define  df_get_10_bit_rec  	1  //取字节 状态
-#define  df_stop_bit_rec      2  //停止位 状态
-
-
-#define  UART1_In        GP36   //RX
-#define  UART1_Out       GP37  //TX  
-
-#define  uarttime    	15  //300波特率  对应的每一位宽度15*0.2ms
-
-
-
-
-#endif
-
-

+ 0 - 41
User/include/other.h

@@ -1,41 +0,0 @@
-/**
- * @file     commution.h
- * @version  V1.0.0
- * @author   jaise
- * @date     2023-8-16 09:35:55
- * @brief    This file contains ...
- * 
- * @copyright Copyright(C) 2022 Fortior Technology Co., Ltd. All rights reserved.
- */
-
-#ifndef __OTHER_H__
-#define __OTHER_H__
-
-
-typedef struct
-{
-	  int16  L1;                     // ????
-		int16  L2;                     // ????
-		int16  L3;                     // ????
-	  int16  LMAX;                     // ????
-		int16  mcDcbus;                     // ????
-		int16  mcDcbus_max_temp;                     // ???????
-	  int16  mcDcbus_min_temp;                     // ???????
-	  int16  mcDcbus_max;                     // ???????
-	  int16  mcDcbus_min;                     // ???????
-	  int16  mcDcbus_chazhi;                     // ???????
-	  int16  mcDcbus_chazhiFlt;                     // ???????
-	  uint16 mcDcbus_count;
-	  int16 mcDcbusRef;
-	  int16 WeakenUsRef;
-}OTHER;
-
-
-
-
-
-
-extern OTHER              xdata udc;
-
-
-#endif