Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.naic.edu/~phil/hardware/vertex/sharemegsvertex/lcu/pcr/user/v2_0/PUTOCU.LST
Дата изменения: Tue Mar 6 22:36:26 2001
Дата индексирования: Thu Jan 15 13:28:30 2009
Кодировка:


CP581 PAGE 1
putocu 09-09-97
16:42:01

Line# Source Line Microsoft C Compiler Version 6.00A

1 /* PUTOCU.C CP581/LCU S1095034L-1.5 27.06.1997 */
2 #include /* HEADER-DATEI aus MICROSOFT C */
3 #include /* HEADER-DATEI aus MICROSOFT C */
4 #include /* HEADER-DATEI aus MICROSOFT C */
5 #include /* HEADER-DATEI aus MICROSOFT C */
6 #include /* HEADER-DATEI aus MICROSOFT C */
7 #include /* HEADER-DATEI aus MICROSOFT C */
8 #include /* HEADER-DATEI aus MICROSOFT C */
9 #include "file.h"
10 #include "prog.h"
11 void putocu(int nr)
12 {
13 #include"extern.c"
14 int i;
15 char k;
16 if (ser_busy != 0) return; /* Serial interface busy */
17 switch(nr)
18 {
19 case 1:
20 ocu4.header_no = 0x3c3e; /* Header Number */
21 ocu4.header_lg = 82; /* Header length */
22 ocu4.msg_id = 0x07; /* Message ID number */
23 ocu4.time_day = time_ms; /* Time in ms of day */
24 ocu4.time_offs = paramet[3]; /* Time offset */
25 ocu4.phiist[0] = m_pos[0]; /* Measured position */
26 ocu4.phiist[1] = m_pos[1];
27 ocu4.phiist[2] = m_pos[2];
28 ocu4.setpoint[0] = setpoint[0]; /* Setpoint */
29 ocu4.setpoint[1] = setpoint[1];
30 ocu4.setpoint[2] = setpoint[2];
31 ocu4.speed[0] = m_rate[0]; /* Measured rate */
32 ocu4.speed[1] = m_rate[1];
33 ocu4.speed[2] = m_rate[2];
34 ocu4.gestdr = gestdr;
35 for (i = 0;i<18;i++)
36 ocu4.stat[i] = stat1[i]; /* Status */
37 ocu4.stat[4] = (ocu4.stat[4]&0xff00)| net_error;
38 ocu4.stat[10] = (ocu4.stat[10]&0xff00)| to_err;
39 ocu4.stat[0] = (ocu4.stat[0]&0xf0f0)|(mode_sel[0]&0x0f0f)|report[0];
40 ocu4.stat[6] = (ocu4.stat[6]&0xf0f0)|(mode_sel[2]&0x0f0f)|report[1];
41 ocu4.stat[12] = (ocu4.stat[12]&0xf0f0)|(mode_sel[4]&0x0f0f)|report[2];

42 if ((stat1[0] & 0x0001) == 0x0001)
43 ocu4.stat[0] = stat1[0];
44 if ((stat1[6] & 0x0001) == 0x0001)
45 ocu4.stat[6] = stat1[6];
46 if ((stat1[12] & 0x0001) == 0x0001)
47 ocu4.stat[12] = stat1[12];
48 if ((stat1[0] & 0x0f00) == 0) /* Stop bit */
49 ocu4.stat[0] = ocu4.stat[0] | 0x0010;
50 if ((stat1[6] & 0x0f00) == 0) /* Stop bit */
51 ocu4.stat[6] = ocu4.stat[6] | 0x0010;
52 if ((stat1[12] & 0x0f00) == 0) /* Stop bit */
53 ocu4.stat[12] = ocu4.stat[12] | 0x0010;
54
55 ser_out_buf = (char*)&ocu4.header_no;


CP581 PAGE 2
putocu 09-09-97
16:42:01

Line# Source Line Microsoft C Compiler Version 6.00A

56 ocu4.end = psum(ser_out_buf,80);
57 //printf("\x1b[10;1H %x ",ocu4.stat[6]);
58 ser_busy = 1;
59 break;
60
61 case 2: /* Monitor/Parameter Data*/
62 /* -----------------------------*/
63 ocu5.header_no = 0x3c3e; /* Header number */
64 ocu5.header_lg = 94; /* Header length */
65 ocu5.msg_id = 0x08; /* Message ID Number */
66 ocu5.phiist1[0] = m_pos[3]; /* Position Encoder AZ */
67 ocu5.phiist1[1] = m_pos[4]; /* Position Encoder AZ */
68 for (k = 0;k<18;k++)
69 ocu5.torque[k] = m_torque[k]; /* Torque Axes */
70 ocu5.time_rst = time_rs; /* Time Counter after Reset */
71 for (k = 0;k<10;k++)
72 ocu5.inp_stat[k] = inp_stat[k]; /* Input Status Bytes */
73 for (k = 0; k<10;k++)
74 ocu5.out_stat[k] = out_stat[k]; /* Output Status Bytes */
75 ser_out_buf = (char*)&ocu5.header_no;
76 ocu5.end = psum(ser_out_buf,92);
77 ser_busy = 2;
78 break;
79 case 3:
80 ocu6.header_no = 0x3c3e; /* Header Number */
81 ocu6.header_lg = 44; /* Header length */
82 ocu6.msg_id = 0x09; /* Message ID number */
83 for (k = 0;k<6;k++)
84 ocu6.limit[k] = pos_lim[k]; /* Travel Limits */
85 ocu6.offset[0] = paramet[0]; /* Encoder Corrections */
86 ocu6.offset[1] = paramet[1]; /* Encoder Corrections */
87 ocu6.offset[2] = paramet[2]; /* Encoder Corrections */
88 ocu6.time_out = paramet1; /* Host Time Out */
89 ser_out_buf = (char*)&ocu6.header_no;
90 ocu6.end = psum(ser_out_buf,42);
91 ser_busy = 3;
92 break;
93 }
94 return;
95 }


putocu Local Symbols

Name Class Type Size Offset Register

k . . . . . . . . . . . . auto -0004
i . . . . . . . . . . . . auto -0002
nr. . . . . . . . . . . . param 0006
m_pos . . . . . . . . . . extern struct/array 20 ***
pos_lim . . . . . . . . . extern struct/array 24 ***
m_torque. . . . . . . . . extern struct/array 36 ***
setpoint. . . . . . . . . extern struct/array 12 ***
ser_out_buf . . . . . . . extern far pointer 4 ***
to_err. . . . . . . . . . extern int 2 ***
ocu4. . . . . . . . . . . extern struct/array 82 ***


CP581 PAGE 3
putocu 09-09-97
16:42:01

Microsoft C Compiler Version 6.00A


putocu Local Symbols

Name Class Type Size Offset Register

net_error . . . . . . . . extern int 2 ***
ocu5. . . . . . . . . . . extern struct/array 94 ***
ocu6. . . . . . . . . . . extern struct/array 44 ***
ser_busy. . . . . . . . . extern int 2 ***
time_ms . . . . . . . . . extern long 4 ***
mode_sel. . . . . . . . . extern struct/array 12 ***
paramet . . . . . . . . . extern struct/array 24 ***
paramet1. . . . . . . . . extern int 2 ***
stat1 . . . . . . . . . . extern struct/array 36 ***
gestdr. . . . . . . . . . extern unsigned int 2 ***
m_rate. . . . . . . . . . extern struct/array 14 ***
report. . . . . . . . . . extern struct/array 6 ***
time_rs . . . . . . . . . extern long 4 ***
inp_stat. . . . . . . . . extern struct/array 20 ***
out_stat. . . . . . . . . extern struct/array 24 ***


Global Symbols

Name Class Type Size Offset

psum. . . . . . . . . . . extern far function *** ***
putocu. . . . . . . . . . global far function *** 0000

Code size = 050a (1290)
Data size = 002c (44)
Bss size = 0000 (0)

No errors detected