?? keytask.lst
字號:
222:task/KeyTask.c **** if ((ValTemp += ValCount) >= MaxVal) //參數遞增函數
174 .LM2:
175 0000 860F add r24,r22
176 0002 911D adc r25,__zero_reg__
177 0004 8417 cp r24,r20
178 0006 9507 cpc r25,r21
179 0008 10F0 brlo .L2
223:task/KeyTask.c **** { ValTemp = 1; }
181 .LM3:
182 000a 81E0 ldi r24,lo8(1)
183 000c 90E0 ldi r25,hi8(1)
184 .L2:
224:task/KeyTask.c **** return (ValTemp);
225:task/KeyTask.c **** }
186 .LM4:
187 000e 0895 ret
188 /* epilogue: frame size=0 */
189 /* epilogue: noreturn */
190 /* epilogue end (size=0) */
191 /* function ValAdd size 8 (8) */
193 .Lscope0:
198 .global ValDec
200 ValDec:
226:task/KeyTask.c ****
227:task/KeyTask.c **** //---------------------------------------------------------
228:task/KeyTask.c **** uint16 ValDec(uint16 ValTemp,uint8 ValCount,uint16 MaxVal)
229:task/KeyTask.c **** {
202 .LM5:
203 /* prologue: frame size=0 */
204 /* prologue end (size=0) */
205 0010 262F mov r18,r22
230:task/KeyTask.c **** if (((ValTemp -= ValCount) == 0) || (ValTemp < ValCount)) //參數遞減函數
207 .LM6:
208 0012 3327 clr r19
209 0014 821B sub r24,r18
210 0016 930B sbc r25,r19
211 0018 19F0 breq .L5
213 .LM7:
214 001a 8217 cp r24,r18
215 001c 9307 cpc r25,r19
216 001e 10F4 brsh .L4
217 .L5:
231:task/KeyTask.c **** { ValTemp = MaxVal - 1; }
219 .LM8:
220 0020 CA01 movw r24,r20
221 0022 0197 sbiw r24,1
222 .L4:
232:task/KeyTask.c **** return (ValTemp);
233:task/KeyTask.c **** }
224 .LM9:
225 0024 0895 ret
226 /* epilogue: frame size=0 */
227 /* epilogue: noreturn */
228 /* epilogue end (size=0) */
229 /* function ValDec size 12 (12) */
231 .Lscope1:
235 .global Dis_info
237 Dis_info:
234:task/KeyTask.c ****
235:task/KeyTask.c **** //-----------------------------------------------------------
236:task/KeyTask.c ****
237:task/KeyTask.c **** void MenuDis(uint8 DisNum) //菜單顯示函數
238:task/KeyTask.c **** {
239:task/KeyTask.c **** DispBuf[ROW_5] = HIDE;
240:task/KeyTask.c **** switch (DisNum)
241:task/KeyTask.c **** {
242:task/KeyTask.c **** case 0x00:
243:task/KeyTask.c **** /* DoPot(&DispBuf[ROW_1],Ps);
244:task/KeyTask.c **** if (Ps_Neg == 1) DispBuf[ROW_5] = 0; */
245:task/KeyTask.c **** break;
246:task/KeyTask.c **** //----------------------------------------------------
247:task/KeyTask.c **** case 0x10 ... 0x16:
248:task/KeyTask.c **** Dis_info(&DispBuf[ROW_5],(char *)pgm_read_word(&first_menu[DisNum & 0x0f]));
249:task/KeyTask.c **** break;
250:task/KeyTask.c ****
251:task/KeyTask.c **** //---------------------------------------------------------
252:task/KeyTask.c **** case 0x20: //系統菜單下的二級菜單
253:task/KeyTask.c **** if (PtVal == 0)
254:task/KeyTask.c **** { PtVal = 1;}
255:task/KeyTask.c **** HexToBcd(&DispBuf[ROW_1],PtVal);
256:task/KeyTask.c **** DealZero(&DispBuf[ROW_1]);
257:task/KeyTask.c **** break;
258:task/KeyTask.c ****
259:task/KeyTask.c **** case 0x21: //系統菜單下的二級菜單
260:task/KeyTask.c **** if (CtVal == 0)
261:task/KeyTask.c **** { CtVal = 1;}
262:task/KeyTask.c **** HexToBcd(&DispBuf[ROW_1],CtVal);
263:task/KeyTask.c **** DealZero(&DispBuf[ROW_1]);
264:task/KeyTask.c ****
265:task/KeyTask.c **** break;
266:task/KeyTask.c ****
267:task/KeyTask.c **** case 0x22:
268:task/KeyTask.c **** if (H_Alarm == 0)
269:task/KeyTask.c **** { H_Alarm = 1;}
270:task/KeyTask.c **** HexToBcd(&DispBuf[ROW_1],H_Alarm);
271:task/KeyTask.c **** DealZero(&DispBuf[ROW_1]);
272:task/KeyTask.c ****
273:task/KeyTask.c **** break;
274:task/KeyTask.c ****
275:task/KeyTask.c **** case 0x23:
276:task/KeyTask.c **** if (L_Alarm == 0)
277:task/KeyTask.c **** { L_Alarm = 1;}
278:task/KeyTask.c **** HexToBcd(&DispBuf[ROW_1],L_Alarm);
279:task/KeyTask.c **** DealZero(&DispBuf[ROW_1]);
280:task/KeyTask.c ****
281:task/KeyTask.c ****
282:task/KeyTask.c **** break;
283:task/KeyTask.c ****
284:task/KeyTask.c **** case 0x24: //波特率值顯示
285:task/KeyTask.c **** if ((BaudAndData & 0x10) == 0x00)
286:task/KeyTask.c **** { Dis_info(&DispBuf[ROW_4],"4800"); }
287:task/KeyTask.c **** else
288:task/KeyTask.c **** { Dis_info(&DispBuf[ROW_4],"9600"); }
289:task/KeyTask.c **** break;
290:task/KeyTask.c ****
291:task/KeyTask.c **** case 0x25:
292:task/KeyTask.c **** if (AddrVal == 0)
293:task/KeyTask.c **** { AddrVal = 1; }
294:task/KeyTask.c **** HexToBcd(&DispBuf[ROW_1],AddrVal);
295:task/KeyTask.c **** DealZero(&DispBuf[ROW_1]);
296:task/KeyTask.c **** break;
297:task/KeyTask.c ****
298:task/KeyTask.c **** case 0x26:
299:task/KeyTask.c **** if (AlarmSwitch & 0x01)
300:task/KeyTask.c **** { Dis_info(&DispBuf[ROW_4]," off"); }
301:task/KeyTask.c **** else
302:task/KeyTask.c **** { Dis_info(&DispBuf[ROW_4]," on "); }
303:task/KeyTask.c **** break;
304:task/KeyTask.c ****
305:task/KeyTask.c **** default:
306:task/KeyTask.c **** break;
307:task/KeyTask.c **** }
308:task/KeyTask.c **** }
309:task/KeyTask.c **** //---------------------------------------------------------
310:task/KeyTask.c **** void Dis_info(uint8 *LedBuf,uint8 *pLed)
311:task/KeyTask.c **** {
239 .LM10:
240 /* prologue: frame size=0 */
241 /* prologue end (size=0) */
242 0026 FC01 movw r30,r24
243 0028 DB01 movw r26,r22
312:task/KeyTask.c **** for (;*pLed;LedBuf--,pLed++)
245 .LM11:
246 002a 8C91 ld r24,X
247 002c 8823 tst r24
248 002e D1F0 breq .L18
249 0030 3EE2 ldi r19,lo8(46)
250 0032 2FE2 ldi r18,lo8(47)
251 .L16:
313:task/KeyTask.c **** {
314:task/KeyTask.c **** if ((*pLed) == 0x2d)
253 .LM12:
254 0034 9C91 ld r25,X
255 0036 9D32 cpi r25,lo8(45)
256 0038 11F4 brne .L10
315:task/KeyTask.c **** { (*LedBuf) = 46; }
258 .LM13:
259 003a 3083 st Z,r19
260 003c 0EC0 rjmp .L9
261 .L10:
316:task/KeyTask.c ****
317:task/KeyTask.c **** else if ((*pLed) >= 0x30&&0x39 >= (*pLed))
263 .LM14:
264 003e 892F mov r24,r25
265 0040 8053 subi r24,lo8(-(-48))
266 0042 8A30 cpi r24,lo8(10)
267 0044 10F4 brsh .L12
318:task/KeyTask.c **** { (*LedBuf) = (*pLed) - 0x30; }
269 .LM15:
270 0046 8083 st Z,r24
271 0048 08C0 rjmp .L9
272 .L12:
319:task/KeyTask.c ****
320:task/KeyTask.c ****
321:task/KeyTask.c **** else if ((*pLed) >= 0x61&&0x7A >=(*pLed))
274 .LM16:
275 004a 892F mov r24,r25
276 004c 8156 subi r24,lo8(-(-97))
277 004e 8A31 cpi r24,lo8(26)
278 0050 18F4 brsh .L14
322:task/KeyTask.c **** { (*LedBuf) = (*pLed) - 0x4d; }
280 .LM17:
281 0052 9D54 subi r25,lo8(-(-77))
282 0054 9083 st Z,r25
283 0056 01C0 rjmp .L9
284 .L14:
323:task/KeyTask.c ****
324:task/KeyTask.c **** else
325:task/KeyTask.c **** { (*LedBuf) = 47 ;}
286 .LM18:
287 0058 2083 st Z,r18
288 .L9:
290 .LM19:
291 005a 3197 sbiw r30,1
292 005c 1196 adiw r26,1
293 005e 8C91 ld r24,X
294 0060 8823 tst r24
295 0062 41F7 brne .L16
296 .L18:
297 0064 0895 ret
298 /* epilogue: frame size=0 */
299 /* epilogue: noreturn */
300 /* epilogue end (size=0) */
301 /* function Dis_info size 32 (32) */
303 .Lscope2:
304 .data
305 .LC7:
306 002a 3438 3030 .string "4800"
306 00
307 .LC8:
308 002f 3936 3030 .string "9600"
308 00
309 .LC9:
310 0034 206F 6666 .string " off"
310 00
311 .LC10:
312 0039 206F 6E20 .string " on "
312 00
313 .text
316 .global MenuDis
318 MenuDis:
320 .LM20:
321 /* prologue: frame size=0 */
322 /* prologue end (size=0) */
323 0066 282F mov r18,r24
325 .LM21:
326 0068 8FE2 ldi r24,lo8(47)
327 006a 8093 0000 sts DispBuf+4,r24
329 .LM22:
330 006e 822F mov r24,r18
331 0070 9927 clr r25
332 0072 AA27 clr r26
333 0074 BB27 clr r27
334 0076 FC01 movw r30,r24
335 0078 7097 sbiw r30,16
336 007a E731 cpi r30,23
337 007c F105 cpc r31,__zero_reg__
338 007e 08F0 brlo .+2
339 0080 80C0 rjmp .L19
341 .LM23:
342 0082 E050 subi r30,lo8(-(pm(.L40)))
343 0084 F040 sbci r31,hi8(-(pm(.L40)))
344 0086 0994 ijmp
345 .data
346 .section .progmem.gcc_sw_table, "ax", @progbits
347 .p2align 1
348 .L40:
349 0000 00C0 rjmp .L22
350 0002 00C0 rjmp .L22
351 0004 00C0 rjmp .L22
352 0006 00C0 rjmp .L22
353 0008 00C0 rjmp .L22
354 000a 00C0 rjmp .L22
355 000c 00C0 rjmp .L22
356 000e 00C0 rjmp .L19
357 0010 00C0 rjmp .L19
358 0012 00C0 rjmp .L19
359 0014 00C0 rjmp .L19
360 0016 00C0 rjmp .L19
361 0018 00C0 rjmp .L19
362 001a 00C0 rjmp .L19
363 001c 00C0 rjmp .L19
364 001e 00C0 rjmp .L19
365 0020 00C0 rjmp .L23
366 0022 00C0 rjmp .L25
367 0024 00C0 rjmp .L27
368 0026 00C0 rjmp .L29
369 0028 00C0 rjmp .L31
370 002a 00C0 rjmp .L34
371 002c 00C0 rjmp .L36
372 .text
373 .L22:
374 .LBB2:
376 .LM24:
377 0088 E22F mov r30,r18
378 008a FF27 clr r31
379 008c EF70 andi r30,lo8(15)
380 008e F070 andi r31,hi8(15)
381 0090 EE0F add r30,r30
382 0092 FF1F adc r31,r31
383 0094 E050 subi r30,lo8(-(first_menu))
384 0096 F040 sbci r31,hi8(-(first_menu))
385 /* #APP */
386 0098 8591 lpm r24, Z+
387 009a 9491 lpm r25, Z
388
389 /* #NOAPP */
390 .LBE2:
391 009c BC01 movw r22,r24
392 009e 80E0 ldi r24,lo8(DispBuf+4)
393 00a0 90E0 ldi r25,hi8(DispBuf+4)
394 00a2 52C0 rjmp .L41
395 .L23:
397 .LM25:
398 00a4 8091 0000 lds r24,PtVal
399 00a8 9091 0000 lds r25,(PtVal)+1
400 00ac 892B or r24,r25
401 00ae 31F4 brne .L24
403 .LM26:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -