📄 12ul_play.lst
字号:
1 .file "12ul_Play.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
79 .global bAshRgb
80 .data
83 bAshRgb:
84 0000 10 .byte 16
85 0001 00 .byte 0
86 0002 00 .byte 0
87 0003 10 .byte 16
88 0004 04 .byte 4
89 0005 00 .byte 0
90 0006 10 .byte 16
91 0007 08 .byte 8
92 0008 00 .byte 0
93 0009 10 .byte 16
94 000a 0C .byte 12
95 000b 00 .byte 0
96 000c 10 .byte 16
97 000d 10 .byte 16
98 000e 00 .byte 0
99 000f 0C .byte 12
100 0010 10 .byte 16
101 0011 00 .byte 0
102 0012 08 .byte 8
103 0013 10 .byte 16
104 0014 00 .byte 0
105 0015 04 .byte 4
106 0016 10 .byte 16
107 0017 00 .byte 0
108 0018 00 .byte 0
109 0019 10 .byte 16
110 001a 00 .byte 0
111 001b 00 .byte 0
112 001c 10 .byte 16
113 001d 04 .byte 4
114 001e 00 .byte 0
115 001f 10 .byte 16
116 0020 08 .byte 8
117 0021 00 .byte 0
118 0022 10 .byte 16
119 0023 0C .byte 12
120 0024 00 .byte 0
121 0025 10 .byte 16
122 0026 10 .byte 16
123 0027 00 .byte 0
124 0028 0C .byte 12
125 0029 10 .byte 16
126 002a 00 .byte 0
127 002b 08 .byte 8
128 002c 10 .byte 16
129 002d 00 .byte 0
130 002e 04 .byte 4
131 002f 10 .byte 16
132 0030 00 .byte 0
133 0031 00 .byte 0
134 0032 10 .byte 16
135 0033 04 .byte 4
136 0034 00 .byte 0
137 0035 10 .byte 16
138 0036 08 .byte 8
139 0037 00 .byte 0
140 0038 10 .byte 16
141 0039 0C .byte 12
142 003a 00 .byte 0
143 003b 10 .byte 16
144 003c 10 .byte 16
145 003d 00 .byte 0
146 003e 10 .byte 16
147 003f 10 .byte 16
148 0040 00 .byte 0
149 0041 0C .byte 12
150 0042 10 .byte 16
151 0043 00 .byte 0
152 0044 08 .byte 8
153 0045 10 .byte 16
154 0046 00 .byte 0
155 0047 04 .byte 4
158 bRgb_Logic:
159 0048 01 .byte 1
160 0049 00 .byte 0
161 004a 00 .byte 0
162 004b 00 .byte 0
163 004c 01 .byte 1
164 004d 00 .byte 0
165 004e 00 .byte 0
166 004f 00 .byte 0
167 0050 01 .byte 1
168 0051 01 .byte 1
169 0052 00 .byte 0
170 0053 01 .byte 1
171 0054 00 .byte 0
172 0055 01 .byte 1
173 0056 01 .byte 1
174 0057 01 .byte 1
175 0058 01 .byte 1
176 0059 00 .byte 0
177 005a 01 .byte 1
178 005b 01 .byte 1
179 005c 01 .byte 1
180 005d 01 .byte 1
181 005e 01 .byte 1
182 005f 01 .byte 1
183 0060 01 .byte 1
184 0061 01 .byte 1
185 0062 01 .byte 1
186 0063 01 .byte 1
187 0064 01 .byte 1
188 0065 01 .byte 1
189 0066 01 .byte 1
190 0067 01 .byte 1
191 0068 01 .byte 1
192 .text
195 .global SendOneDotColorData
197 SendOneDotColorData:
1:12ul_Play.c **** /****************************************************************************
2:12ul_Play.c **** //------------------ All color 12ul play implement-----------------------
3:12ul_Play.c **** //FileName : 12ul_Play.c
4:12ul_Play.c **** //Function : All color(RGB) play implement
5:12ul_Play.c **** //Created by : Zhoushengzhi
6:12ul_Play.c **** //Created date : 12/10/2006
7:12ul_Play.c **** //Version : V0.1
8:12ul_Play.c ****
9:12ul_Play.c **** //CopyRight (c) 2006 Zhoushengzhi
10:12ul_Play.c **** //E-mail : zhounanxu@163.com
11:12ul_Play.c **** //--------------------------------------------------------------------------
12:12ul_Play.c **** ****************************************************************************/
13:12ul_Play.c **** #include <avrx/avrx.h>
14:12ul_Play.c **** #include "Hardware.h"
15:12ul_Play.c **** #include "12ul_Play.h"
16:12ul_Play.c ****
17:12ul_Play.c **** //----------------------------------------------------------------
18:12ul_Play.c **** TimerControlBlock delay;// Declare the control blocks for timers
19:12ul_Play.c **** /*================================================================
20:12ul_Play.c **** Function: All lamps revolve the same color:R-G-B-RB-GB-RG-RGB.
21:12ul_Play.c **** -----------------------------------------------------------------*/
22:12ul_Play.c **** void Play_Jump_All(WORD bDelayT1ms)
23:12ul_Play.c **** {
24:12ul_Play.c **** BYTE bi;
25:12ul_Play.c **** for(bi = 0; bi < 7; bi++)
26:12ul_Play.c **** {
27:12ul_Play.c **** PlayAllOneColor(bi);
28:12ul_Play.c **** AvrXDelay(&delay, bDelayT1ms);
29:12ul_Play.c **** }
30:12ul_Play.c **** }
31:12ul_Play.c ****
32:12ul_Play.c **** //----------------------------------------------------------------
33:12ul_Play.c **** void PlayAllOneColor(BYTE bColor)
34:12ul_Play.c **** {
35:12ul_Play.c **** WORD bi;
36:12ul_Play.c **** Set_Stb();
37:12ul_Play.c **** for(bi = 0; bi < BLAMPS*BXDOTS; bi++)
38:12ul_Play.c **** {
39:12ul_Play.c **** SendOneDotColorData(bColor);
40:12ul_Play.c **** }
41:12ul_Play.c **** Clr_Stb();
42:12ul_Play.c **** }
43:12ul_Play.c ****
44:12ul_Play.c **** //----------------------------------------------------------------
45:12ul_Play.c **** void SendOneDotColorData(BYTE bColor)
46:12ul_Play.c **** {
199 .LM1:
200 /* prologue: frame size=0 */
201 /* prologue end (size=0) */
47:12ul_Play.c **** BYTE bi;
48:12ul_Play.c **** Set_Clk();Set_Sdi();Clr_Clk();
203 .LM2:
204 0000 939A sbi 50-0x20,3
205 0002 949A sbi 50-0x20,4
206 0004 9398 cbi 50-0x20,3
207 0006 9927 clr r25
208 0008 FC01 movw r30,r24
209 000a EE0F lsl r30
210 000c FF1F rol r31
211 000e E80F add r30,r24
212 0010 F91F adc r31,r25
213 0012 E050 subi r30,lo8(-(bRgb_Logic))
214 0014 F040 sbci r31,hi8(-(bRgb_Logic))
215 0016 92E0 ldi r25,lo8(2)
216 .L7:
49:12ul_Play.c **** for(bi=0; bi<3; bi++)
50:12ul_Play.c **** {
51:12ul_Play.c **** Set_Clk();
218 .LM3:
219 0018 939A sbi 50-0x20,3
52:12ul_Play.c **** if(bRgb_Logic[bColor*3+bi] == 1)
221 .LM4:
222 001a 8191 ld r24,Z+
223 001c 8130 cpi r24,lo8(1)
224 001e 11F4 brne .L5
53:12ul_Play.c **** Clr_Sdi();
226 .LM5:
227 0020 9498 cbi 50-0x20,4
228 0022 01C0 rjmp .L6
229 .L5:
54:12ul_Play.c **** else
55:12ul_Play.c **** Set_Sdi();
231 .LM6:
232 0024 949A sbi 50-0x20,4
233 .L6:
56:12ul_Play.c **** Clr_Clk();
235 .LM7:
236 0026 9398 cbi 50-0x20,3
238 .LM8:
239 0028 9150 subi r25,lo8(-(-1))
240 002a 97FF sbrs r25,7
241 002c F5CF rjmp .L7
242 /* epilogue: frame size=0 */
243 002e 0895 ret
244 /* epilogue end (size=1) */
245 /* function SendOneDotColorData size 24 (23) */
250 .Lscope0:
253 .global PlayAllOneColor
255 PlayAllOneColor:
257 .LM9:
258 /* prologue: frame size=0 */
259 0030 1F93 push r17
260 0032 CF93 push r28
261 0034 DF93 push r29
262 /* prologue end (size=3) */
263 0036 182F mov r17,r24
265 .LM10:
266 0038 919A sbi 50-0x20,1
267 003a C7E1 ldi r28,lo8(23)
268 003c D0E0 ldi r29,hi8(23)
269 .L14:
271 .LM11:
272 003e 812F mov r24,r17
273 0040 DFDF rcall SendOneDotColorData
275 .LM12:
276 0042 2197 sbiw r28,1
277 0044 D7FF sbrs r29,7
278 0046 FBCF rjmp .L14
280 .LM13:
281 0048 9198 cbi 50-0x20,1
282 /* epilogue: frame size=0 */
283 004a DF91 pop r29
284 004c CF91 pop r28
285 004e 1F91 pop r17
286 0050 0895 ret
287 /* epilogue end (size=4) */
288 /* function PlayAllOneColor size 17 (10) */
293 .Lscope1:
296 .global Play_Jump_All
298 Play_Jump_All:
300 .LM14:
301 /* prologue: frame size=0 */
302 0052 0F93 push r16
303 0054 1F93 push r17
304 0056 CF93 push r28
305 /* prologue end (size=3) */
306 0058 8C01 movw r16,r24
308 .LM15:
309 005a C0E0 ldi r28,lo8(0)
310 .L21:
312 .LM16:
313 005c 8C2F mov r24,r28
314 005e E8DF rcall PlayAllOneColor
316 .LM17:
317 0060 B801 movw r22,r16
318 0062 80E0 ldi r24,lo8(delay)
319 0064 90E0 ldi r25,hi8(delay)
320 0066 00D0 rcall AvrXDelay
322 .LM18:
323 0068 CF5F subi r28,lo8(-(1))
324 006a C730 cpi r28,lo8(7)
325 006c B8F3 brlo .L21
326 /* epilogue: frame size=0 */
327 006e CF91 pop r28
328 0070 1F91 pop r17
329 0072 0F91 pop r16
330 0074 0895 ret
331 /* epilogue end (size=4) */
332 /* function Play_Jump_All size 18 (11) */
337 .Lscope2:
341 .global SetCloseColor
343 SetCloseColor:
57:12ul_Play.c **** }
58:12ul_Play.c **** }
59:12ul_Play.c ****
60:12ul_Play.c ****
61:12ul_Play.c **** /*================================================================
62:12ul_Play.c **** Function: Run color close and open,R-G-B-RB-GB-RG.
63:12ul_Play.c **** -----------------------------------------------------------------*/
64:12ul_Play.c **** void Play_CloseOpenMoveUpt( WORD bRunSpeed)
65:12ul_Play.c **** {
66:12ul_Play.c **** BYTE bi;
67:12ul_Play.c **** PlayAllOneColor(YELLOW);
68:12ul_Play.c **** for(bi = RED; bi<= YELLOW; bi++)
69:12ul_Play.c **** if(bi%2 == 0)
70:12ul_Play.c **** SetCloseColor( bi, bRunSpeed);
71:12ul_Play.c **** else
72:12ul_Play.c **** SetOpenColor( bi, bRunSpeed);
73:12ul_Play.c **** }
74:12ul_Play.c **** //----------------------------------------------------------------
75:12ul_Play.c **** void SetCloseColor( BYTE bMoveColor, WORD bMoveSpeed)
76:12ul_Play.c **** {
345 .LM19:
346 /* prologue: frame size=0 */
347 0076 AF92 push r10
348 0078 BF92 push r11
349 007a DF92 push r13
350 007c EF92 push r14
351 007e FF92 push r15
352 0080 0F93 push r16
353 0082 1F93 push r17
354 0084 CF93 push r28
355 0086 DF93 push r29
356 /* prologue end (size=9) */
357 0088 D82E mov r13,r24
358 008a 5B01 movw r10,r22
77:12ul_Play.c **** WORD bi, loop;
78:12ul_Play.c **** for(loop=0; loop < (BLAMPS*BXDOTS)/2; loop++)
360 .LM20:
361 008c 00E0 ldi r16,lo8(0)
362 008e 10E0 ldi r17,hi8(0)
363 0090 38E1 ldi r19,lo8(24)
364 0092 E32E mov r14,r19
365 0094 F12C mov r15,__zero_reg__
366 .L37:
79:12ul_Play.c **** {
80:12ul_Play.c **** Set_Stb();
368 .LM21:
369 0096 919A sbi 50-0x20,1
81:12ul_Play.c **** for(bi=0; bi < (BLAMPS*BXDOTS); bi++)
371 .LM22:
372 0098 C0E0 ldi r28,lo8(0)
373 009a D0E0 ldi r29,hi8(0)
374 .L36:
82:12ul_Play.c **** {
83:12ul_Play.c **** if((bi <= loop) || (bi >= ((BLAMPS*BXDOTS)-loop)))
376 .LM23:
377 009c 0C17 cp r16,r28
378 009e 1D07 cpc r17,r29
379 00a0 18F4 brsh .L32
380 00a2 CE15 cp r28,r14
381 00a4 DF05 cpc r29,r15
382 00a6 10F0 brlo .L31
383 .L32:
84:12ul_Play.c **** {
85:12ul_Play.c **** SendOneDotColorData(bMoveColor);
385 .LM24:
386 00a8 8D2D mov r24,r13
387 00aa 06C0 rjmp .L42
388 .L31:
86:12ul_Play.c **** }
87:12ul_Play.c **** else
88:12ul_Play.c **** {
89:12ul_Play.c **** if(bMoveColor == RED)
390 .LM25:
391 00ac DD20 tst r13
392 00ae 11F4 brne .L34
90:12ul_Play.c **** {
91:12ul_Play.c **** SendOneDotColorData(YELLOW);
394 .LM26:
395 00b0 84E0 ldi r24,lo8(4)
396 00b2 02C0 rjmp .L42
397 .L34:
92:12ul_Play.c **** }
93:12ul_Play.c **** else
94:12ul_Play.c **** {
95:12ul_Play.c **** SendOneDotColorData(bMoveColor-1);
399 .LM27:
400 00b4 8D2D mov r24,r13
401 00b6 8150 subi r24,lo8(-(-1))
402 .L42:
403 00b8 A3DF rcall SendOneDotColorData
405 .LM28:
406 00ba 2196 adiw r28,1
407 00bc C831 cpi r28,24
408 00be D105 cpc r29,__zero_reg__
409 00c0 68F3 brlo .L36
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -