📄 light_struct.lst
字号:
=1 #endif
20 =1
21 =1 #ifndef _WCHAR_T_DEFINED_
22 =1 #define _WCHAR_T_DEFINED_
23 =1 typedef char wchar_t;
24 =1 #endif
25 =1
26 =1
27 =1 #pragma SAVE
28 =1 #pragma REGPARMS
29 =1
30 =1 extern int abs (int val);
31 =1 extern long labs (long val);
32 =1
33 =1 extern float atof (char *s1);
34 =1 extern long atol (char *s1);
35 =1 extern int atoi (char *s1);
36 =1 extern int rand ();
37 =1 extern void srand (int);
38 =1
39 =1 extern float strtod (char *, char **);
40 =1 extern long strtol (char *, char **, unsigned char);
41 =1 extern unsigned long strtoul (char *, char **, unsigned char);
42 =1
43 =1 #define _MALLOC_MEM_ xdata
44 =1
45 =1 extern int init_mempool (void _MALLOC_MEM_ *p, unsigned int size);
46 =1 extern void _MALLOC_MEM_ *malloc (unsigned int size);
47 =1 extern void free (void _MALLOC_MEM_ *p);
48 =1 extern void _MALLOC_MEM_ *realloc (void _MALLOC_MEM_ *p, unsigned int size);
49 =1 extern void _MALLOC_MEM_ *calloc (unsigned int size, unsigned int len);
50 =1
51 =1 #pragma RESTORE
52 =1
53 =1 #endif
5
6
7 void TaskStartyya(void *yydata) ;
8 void TaskStartyyb(void *yydata) ;
9 void TaskStartyyc(void *yydata) ;
C51 COMPILER V7.50 LIGHT_STRUCT 03/31/2006 10:11:25 PAGE 17
10 void TaskStartyyd(void *yydata) ;
11
12
13 OS_STK TaskStartStkyya[MaxStkSize];//注意:我在ASM文件中设置?STACK空间为40H即64。
14 OS_STK TaskStartStkyyb[MaxStkSize];
15 OS_STK TaskStartStkyyc[MaxStkSize];
16 OS_STK TaskStartStkyyd[MaxStkSize];
17
18
19 sbit LED0 = P1^0;
20 sbit LED1 = P1^1;
21 sbit LED2 = P1^2;
22 sbit LED3 = P1^3;
23 sbit LED4 = P3^4;
24 sbit LED5 = P3^5;
25 sbit LED6 = P3^2;
26 sbit LED7 = P3^3;
27
28 OS_EVENT *sem;
29 OS_EVENT *CommQ1,*CommQ2,*CommQ3;
30 void *CommMsg0[10];
31 void *CommMsg1[10];
32 void *CommMsg2[10];
33 struct num_data
34 {
35 unsigned int data1;
36 unsigned int data2;
37 unsigned int data3;
38 };
39
40
41 void main(void)
42 {
43 1 OSInit();
44 1
45 1
46 1 InitTimer0();
47 1 InitSerial();
48 1 InitSerialBuffer();
49 1
50 1 sem = OSSemCreate(1);
51 1 CommQ1 = OSQCreate(&CommMsg0[0],10);
52 1 CommQ2 = OSQCreate(&CommMsg1[0],10);
53 1
54 1
55 1 OSTaskCreate(TaskStartyya, (void *)0, &TaskStartStkyya[0],8);
56 1 OSTaskCreate(TaskStartyyb, (void *)0, &TaskStartStkyyb[0],7);
57 1 OSTaskCreate(TaskStartyyc, (void *)0, &TaskStartStkyyc[0],5);
58 1 OSTaskCreate(TaskStartyyd, (void *)0, &TaskStartStkyyd[0],10);
59 1
60 1 OSStart();
61 1
62 1 }
63
64
65 /*
66 void TaskStartyya(void *yydata) reentrant
67 {
68 yydata=yydata;
69 clrscr();
70 PrintStr("\n\t\t*******************************\n");
71 PrintStr("\t\t* Hello! The world. *\n");
C51 COMPILER V7.50 LIGHT_STRUCT 03/31/2006 10:11:25 PAGE 18
72 PrintStr("\t\t*******************************\n\n\n");
73
74 for(;;)
75 {
76 PrintStr("\tAAAAAA111111 is active.\n");
77 OSTimeDly(OS_TICKS_PER_SEC);
78 }
79 }
80
81 void TaskStartyyb(void *yydata) reentrant
82 {
83 yydata=yydata;
84
85 for(;;)
86 {
87 PrintStr("\tBBBBBB333333 is active.\n");
88 OSTimeDly(3*OS_TICKS_PER_SEC);
89 }
90 }
91
92 void TaskStartyyc(void *yydata) reentrant
93 {
94 yydata=yydata;
95
96 for(;;)
97 {
98 PrintStr("\tCCCCCC666666 is active.\n");
99 OSTimeDly(6*OS_TICKS_PER_SEC);
100 }
101 }
102
103
104
105 void TaskStartyy(void *yydata)
106 {
107 INT8U err;
108 unsigned char *msg;
109
110 while(1)
111 {
112
113 msg = OSSemPend(CommQ, 0, &err);
114
115 LED0=1;
116 OSTimeDly(6*OS_TICKS_PER_SEC);
117 LED0=0;
118 OSTimeDly(6*OS_TICKS_PER_SEC);
119
120 }
121 }
122
123 */
124
125 void TaskStartyya(void *yydata)
126 {
127 1 INT8U err;
128 1 int i;
129 1 static struct num_data ddd;
130 1
131 1 yydata =yydata;
132 1 while(1)
133 1 {
C51 COMPILER V7.50 LIGHT_STRUCT 03/31/2006 10:11:25 PAGE 19
134 2 /*ddd.data1=rand()%3+1;
135 2 ddd.data2=rand()%3;
136 2 ddd.data3=ddd.data1+ddd.data2;*/
137 2 ddd.data1=8;
138 2 for(i=0;i<16;i++)
139 2 {
140 3
141 3 switch(i)
142 3 {
143 4 case 0: ddd.data2=0;break;
144 4 case 1: ddd.data2=1;break;
145 4 case 2: ddd.data2=3;break;
146 4 case 3: ddd.data2=7;break;
147 4 case 4: ddd.data2=15;break;
148 4 case 5: ddd.data2=31;break;
149 4 case 6: ddd.data2=63;break;
150 4 case 7: ddd.data2=127;break;
151 4 case 8: ddd.data2=255;break;
152 4 case 9: ddd.data2=128;break;
153 4 case 10: ddd.data2=192;break;
154 4 case 11: ddd.data2=224;break;
155 4 case 12: ddd.data2=240;break;
156 4 case 13: ddd.data2=248;break;
157 4 case 14: ddd.data2=252;break;
158 4 case 15: ddd.data2=254;break;
159 4 case 16: ddd.data2=255;break;
160 4
161 4 }
162 3 ddd.data3=ddd.data1+ddd.data2;
163 3 OSTimeDly(200);
164 3 err = OSQPost(CommQ1,&ddd);
165 3
166 3 }
167 2
168 2
169 2 }
170 1 }
171
172
173
174 void TaskStartyyb(void *yydata)
175 {
176 1 INT8U err;
177 1 static struct num_data *pdat_taskb;
178 1 static unsigned char buf0,buf1,buf2;
179 1 yydata =yydata;
180 1 while(1)
181 1 {
182 2 pdat_taskb = OSQPend(CommQ1, 0, &err);
183 2 buf0 = pdat_taskb->data1;
184 2 buf1 = pdat_taskb->data2;
185 2 buf2 = pdat_taskb->data3;
186 2 OSSemPend(sem, 0, &err);
187 2
188 2 /* switch(buf0)
189 2 { case 0: PrintStr("0\n"); break;
190 2 case 1: PrintStr("1\n"); break;
191 2 case 2: PrintStr("2\n"); break;
192 2 case 3: PrintStr("3\n"); break;
193 2
194 2 }
195 2
C51 COMPILER V7.50 LIGHT_STRUCT 03/31/2006 10:11:25 PAGE 20
196 2 switch(buf1)
197 2 {
198 2 case 0: PrintStr("0\n"); break;
199 2 case 1: PrintStr("1\n"); break;
200 2 case 2: PrintStr("2\n"); break;
201 2
202 2
203 2 }
204 2 switch(buf2)
205 2 {
206 2 case 0: PrintStr("0\n"); break;
207 2 case 1: Prin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -