?? k1_diag.lst
字號:
C51 COMPILER V7.20 K1_DIAG 08/04/2007 17:20:18 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE K1_DIAG
OBJECT MODULE PLACED IN .\Obj\K1_Diag.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Src\K1_Diag.C LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\Lst\K1_Diag.lst) OBJE
-CT(.\Obj\K1_Diag.obj)
line level source
1 /*
2 *****************************************************************************
3 * K1_Diag.C - K1診斷代碼
4 *
5 * Copyright 2007-2010 BEIJING KND CNC TECHIQUE Co.,Ltd.
6 * Copyright 2007-2010 北京凱恩帝數(shù)控技術(shù)有限公司
7 *
8 * DESCRIPTION: -
9 * K1
10 * modification history
11 * --------------------
12 * 01a, 30/jul/2007, 梁炎昌 written
13 * --------------------
14 *****************************************************************************
15 */
16
17 #include "CPU.H"
18 #include "Serial.H"
19 #include "Ks0108.H"
20 #include "K1_Adapter.H"
21 #include "K1_Diag.H"
22 #include "Menu.H"
23 #include "KeyScan.H"
24
25 //extern unsigned char code Sound[];
26 extern unsigned char code Warning[];
27 //extern unsigned char code Question[];
28
29
30 //位功能 位置提示
31 code U8 *SysErrDispStr[] = {
32 //24Bit Input Port string ByteL-->ByteM -->ByteH
33 {"XDALM XS51.5 "},//0 InputErrDiffByteL
34 {"ZDALM XS52.5 "},//1
35 {"#OV1 XS54.11"},//2
36 {"#OV2 XS54.3 "},//3
37 {"#OV4 XS54.12"},//4
38 {"#OV8 XS54.4 "},//5
39 {"#ESP1 XS50.7 "},//6
40 {"#QPI XS50.8 "},//7
41 {"T05 XS54.9 "},//0 InputErrDiffByteM
42 {"T06 XS54.1 "},//1
43 {"T07 XS54.10"},//2
44 {"T08 XS54.2 "},//3
45 {"T01 XS50.5 "},//4
46 {"T02 XS50.18"},//5
47 {"T03 XS54.6 "},//6
48 {"T04 XS54.19"},//7
49 {"#DECZ XS50.20"},//0 InputErrDiffByteH
50 {"#DECX XS50.21"},//1
51 {"XPC+"}, //2
52 {"ZPC+"}, //3
53 {""}, //4
54 {""}, //5
C51 COMPILER V7.20 K1_DIAG 08/04/2007 17:20:18 PAGE 2
55 {""}, //6
56 {""}, //7
57 //-OutputErrDiffByteL OutputErrDiffByteH
58 {"S01 XS57.1 "},//0 OutputErrDiffByteL Z00
59 {"S02 XS57.2 "},//1
60 {"QPJ XS57.3 "},//2
61 {"S03 XS57.4 "},//3
62 {"QPS XS57.5 "},//4
63 {"Y25 XS57.6 "},//5
64 {"S04 XS57.7 "},//6
65 {"ESPO XS57.8 "},//7 Z07
66 {"M03 XS50.17 "},//0 OutputErrDiffByteH Z08
67 {"M04 XS50.4 "},//1
68 {"Y12 XS50.16 "},//2
69 {"M08 XS50.3 "},//3
70 {"Y14 XS50.15 "},//4
71 {"TL+ XS50.2 "},//5
72 {"TL- XS50.14 "},//6
73 {"SPZD XS50.1 "},//7 Z15
74 //-MiscErrDiffByteL
75 {"XMRDY1 "},
76 {"ZMRDY1 "},
77 {"Rs232 DCD "},
78 {"Rs232 DSR "},
79 {"SVC "},
80 {"手輪 HAHB "},
81 {"編碼器PASPBS "},
82 {"編碼器PCS "},
83 //-AxisErrDiff
84 {"X軸信號 XCP "},
85 {"X軸信號 XDIR "},
86 {"Z軸信號 ZCP "},
87 {"Z軸信號 ZDIR "},
88 };
89
90
91
92
93
94
95 /*
96 IN2_Port
97 0---Bit0
98 1---Bit1
99 2---Bit7
100 3---Bit2
101 4---Bit6
102 5---Bit5
103 6---Bit3
104 7---Bit4
105
106 */
107
108 extern U8 code InPutDataBitSwap[];
109 extern data struct RxdData RxdData;
110 extern data struct TxdData TxdData;
111 extern U8 ReadAdc(void); //讀出TLC0831轉(zhuǎn)換數(shù)據(jù)函數(shù)
112 extern void InitPortData(void);
113 extern void CutOffAllPort(void);
114 extern void Delayms(U16 Ms);
115 extern void Delay_50us(U16 t);
116 //extern U8 WaitKey(void);
C51 COMPILER V7.20 K1_DIAG 08/04/2007 17:20:18 PAGE 3
117 extern void SetPortData(U32 Port_Data,Bool Force);
118
119
120 #if 0
/******************************************************************************
* DispActiveFlag - 顯示動態(tài)符號
* DESCRIPTION: -
* 用于表示程序運行中
* Input:
* Output:
* Returns:
*
* modification history
* --------------------
* 01a, 30/jul/2007, 梁炎昌 written
* --------------------
******************************************************************************/
void DispActiveFlag(U8Count)
{
GUI_SetEnFont(En_5x8);
switch(U8Count%4){
case 0:
GUI_DispCharAt('-',LCD_XSIZE-Char_XSIZE,0);
break;
case 1:
GUI_DispCharAt('\\',LCD_XSIZE-Char_XSIZE,0);
break;
case 2:
GUI_DispCharAt('|',LCD_XSIZE-Char_XSIZE,0);
break;
case 3:
GUI_DispCharAt('/',LCD_XSIZE-Char_XSIZE,0);
break;
default:
break;
}
GUI_SetEnFont(En_8x16);
}
#endif
157 /******************************************************************************
158 * ProgBar - 水平進度條
159 * DESCRIPTION: -
160 * 帶有xx%進度提示
161 * Input:
162 * Output:
163 * Returns:
164 *
165 * modification history
166 * --------------------
167 * 01a, 30/jul/2007, 梁炎昌 written
168 * --------------------
169 ******************************************************************************/
170 void ProgBar(U8 y, U8 x0, U8 x1,U8 Precent,U8 MaxPrecentSize)
171 {
172 1 float FTemp;
173 1
174 1 FTemp = Precent;
175 1 FTemp /= MaxPrecentSize;
176 1 FTemp *= 100;
177 1 GUI_SetEnFont(En_5x8);
178 1 GUI_DispDecAt((U8)FTemp,x1+1,y,2);
C51 COMPILER V7.20 K1_DIAG 08/04/2007 17:20:18 PAGE 4
179 1 GUI_DispCharAt('%',x1+1+16,y);
180 1 GUI_SetEnFont(En_8x16);
181 1 HBar(y, x0, x1,(U8)(FTemp));
182 1
183 1 }
184
185 /*
186 *****************************************************************************
187 * SendCMDPackage - 發(fā)送命令包給K1
188 * DESCRIPTION: -
189 * 該函數(shù)被調(diào)用前要填充好TxdData.DataBuf DataLen CMD TxdData.CheckByte
190 * Input: ACK 檢查的ACK
191 TimeoutDiv 超時的分頻值 TimeoutInitData/TimeoutDiv是實際超時計數(shù)值
192 Retry 重試次數(shù)
193 * Output:
194 * Returns: true false
195 *
196 *****************************************************************************
197 */
198 Bool SendCMDPackage(U8 TimeoutDiv,U8 ACK,U8 Retry)
199 {
200 1 U16 Timeout;
201 1 do{
202 2 if(TxdData.State == Txd_Empty){
203 3 //數(shù)據(jù)包填充由外部程序完成,這里只是啟動發(fā)送
204 3 StartTXD();
205 3 }
206 2 Timeout = TimeoutInitData;
207 2 do{
208 3 if(TxdData.State == Txd_Empty){//發(fā)送完畢
209 4 break;
210 4 }
211 3 Timeout--;
212 3 }while(Timeout);
213 2 LED1 = 0x00;
214 2 Timeout = TimeoutInitData/TimeoutDiv;
215 2 do{
216 3 if((RxdData.State == Rxd_CheckByteOk)&&(RxdData.ACK == ACK)){
217 4 RxdData.State = Rxd_Empty;
218 4 //Retry = 1;//Retry 設(shè)置為1 通知退出循環(huán)
219 4 //break;
220 4 return true;
221 4 }
222 3 Timeout --;
223 3 }while(Timeout);
224 2 Retry--;
225 2 if(Retry == 0){
226 3 break;
227 3 }
228 2 LED1 = 0x01;
229 2 }while(Retry);
230 1
231 1 // if(Timeout){
232 1 // return true;
233 1 // }else{
234 1 return false;
235 1 // }
236 1 }
237
238
239 //--------------------------------
240 //顯示電壓值
C51 COMPILER V7.20 K1_DIAG 08/04/2007 17:20:18 PAGE 5
241 //x0 y0 起點位置
242 void DispVolt(U8 VoltData,U8 x0,U8 y0)
243 {
244 1 U16 U16Temp;
245 1 U8 U8Temp;
246 1 float vol;
247 1
248 1
249 1
250 1 vol = VoltData;
251 1
252 1 vol *= 10000;//10V -- 8Bit AD
253 1 vol /= 256;
254 1
255 1
256 1 U16Temp = (U16)vol/10;
257 1 GUI_DispCharAt('V',x0+5*Char_XSIZE,y0);
258 1 U8Temp = U16Temp%10;
259 1
260 1 GUI_DispCharAt(U8Temp+'0',x0+4*Char_XSIZE,y0);
261 1
262 1 U16Temp = U16Temp/10;
263 1 U8Temp = U16Temp%10;
264 1 GUI_DispCharAt(U8Temp+'0',x0+3*Char_XSIZE,y0);
265 1
266 1 GUI_DispCharAt('.',x0+2*Char_XSIZE,y0);
267 1
268 1 U16Temp = U16Temp/10;
269 1 U8Temp = U16Temp%10;
270 1 GUI_DispCharAt(U8Temp+'0',x0+Char_XSIZE,y0);
271 1
272 1 U16Temp = U16Temp/10;
273 1 U8Temp = U16Temp%10;
274 1 if(U8Temp){
275 2 GUI_DispCharAt(U8Temp+'0',x0,y0);
276 2 }else{
277 2 GUI_DispCharAt(' ',x0,y0);
278 2 }
279 1 }
280
281 /*
282 *****************************************************************************
283 * CheckSVCOutput - 以指定值測試模擬電壓輸出
284 * DESCRIPTION: -
285 *
286 * Input: SVCSetData 指定的電壓值
287 * Output:
288 * Returns: Err_Pass Err_unPass Err_Timeout 測試通過/未通過/超時
289 *
290 *****************************************************************************
291 */
292 U8 CheckSVCOutput(U8 SVCSetData)
293 {
294 1 U8 InData;
295 1 Bool FailFlag;
296 1 U8 SVCReadData;
297 1
298 1 FailFlag = false;
299 1
300 1
301 1 TxdData.CMD = CMD_SetOutput;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -