📄 disp_task.lst
字号:
313
314
315 /*F**************************************************************************
316 * NAME: disp_name_stop
317 *----------------------------------------------------------------------------
318 * PARAMS:
319 *
320 * return:
321 *----------------------------------------------------------------------------
322 * PURPOSE:
323 * Suspend name display
324 *----------------------------------------------------------------------------
325 * EXAMPLE:
326 *----------------------------------------------------------------------------
327 * NOTE:
328 *----------------------------------------------------------------------------
329 * REQUIREMENTS:
330 *****************************************************************************/
331 void disp_name_stop (void)
332 {
333 1 disp_state = DISP_IDLE;
334 1 }
335
336
337 /*F**************************************************************************
338 * NAME: disp_clock_reset
339 *----------------------------------------------------------------------------
340 * PARAMS:
341 *
342 * return:
343 *----------------------------------------------------------------------------
344 * PURPOSE:
345 * Reset chrono to 0:00
346 *----------------------------------------------------------------------------
347 * EXAMPLE:
348 *----------------------------------------------------------------------------
349 * NOTE:
350 *----------------------------------------------------------------------------
351 * REQUIREMENTS:
352 *****************************************************************************/
353 void disp_clock_reset (void)
354 {
355 1 #if CONF_DISPLAY == LED
356 1 LED_VOL = 0;
357 1 LED_BASS = 0;
358 1 LED_MED = 0;
359 1 LED_TREEB = 0;
360 1 #endif
361 1 disp_clock_on = FALSE;
362 1 disp_sec_cpt = 0;
363 1 disp_min_cpt = 0;
364 1 print_time(0, 0); /* display 0:00 */
C51 COMPILER V7.50 DISP_TASK 09/20/2005 21:47:45 PAGE 7
365 1 #if CONF_DISPLAY == LCD
disp_state = DISP_INIT; /* reset task */
#endif
368 1 }
369
370
371
372 /*F**************************************************************************
373 * NAME: disp_clock_start
374 *----------------------------------------------------------------------------
375 * PARAMS:
376 *
377 * return:
378 *----------------------------------------------------------------------------
379 * PURPOSE:
380 * Start or re-start clock display
381 *----------------------------------------------------------------------------
382 * EXAMPLE:
383 *----------------------------------------------------------------------------
384 * NOTE:
385 *----------------------------------------------------------------------------
386 * REQUIREMENTS:
387 *****************************************************************************/
388 void disp_clock_start (void)
389 {
390 1 disp_clock_on = TRUE;
391 1 }
392
393
394 /*F**************************************************************************
395 * NAME: disp_clock_stop
396 *----------------------------------------------------------------------------
397 * PARAMS:
398 *
399 * return:
400 *----------------------------------------------------------------------------
401 * PURPOSE:
402 * Suspend clock display
403 *----------------------------------------------------------------------------
404 * EXAMPLE:
405 *----------------------------------------------------------------------------
406 * NOTE:
407 *----------------------------------------------------------------------------
408 * REQUIREMENTS:
409 *****************************************************************************/
410 void disp_clock_stop (void)
411 {
412 1 disp_clock_on = FALSE;
413 1 }
414
415
416 /*F**************************************************************************
417 * NAME: disp_get_min
418 *----------------------------------------------------------------------------
419 * PARAMS:
420 *
421 * return:
422 * minutes
423 *----------------------------------------------------------------------------
424 * PURPOSE:
425 * Return minutes of current time
426 *----------------------------------------------------------------------------
C51 COMPILER V7.50 DISP_TASK 09/20/2005 21:47:45 PAGE 8
427 * EXAMPLE:
428 *----------------------------------------------------------------------------
429 * NOTE:
430 *----------------------------------------------------------------------------
431 * REQUIREMENTS:
432 *****************************************************************************/
433 Byte disp_get_min (void)
434 {
435 1 return disp_min_cpt;
436 1 }
437
438
439 /*F**************************************************************************
440 * NAME: disp_get_sec
441 *----------------------------------------------------------------------------
442 * PARAMS:
443 *
444 * return:
445 * seconds
446 *----------------------------------------------------------------------------
447 * PURPOSE:
448 * Return seconds of current time
449 *----------------------------------------------------------------------------
450 * EXAMPLE:
451 *----------------------------------------------------------------------------
452 * NOTE:
453 *----------------------------------------------------------------------------
454 * REQUIREMENTS:
455 *****************************************************************************/
456 Byte disp_get_sec (void)
457 {
458 1 return disp_sec_cpt;
459 1 }
460
461
462
463 /*F**************************************************************************
464 * NAME: disp_save_time
465 *----------------------------------------------------------------------------
466 * PARAMS:
467 *
468 * return:
469 * seconds
470 *----------------------------------------------------------------------------
471 * PURPOSE:
472 * Save time info in local variables
473 *----------------------------------------------------------------------------
474 * EXAMPLE:
475 *----------------------------------------------------------------------------
476 * NOTE:
477 *----------------------------------------------------------------------------
478 * REQUIREMENTS:
479 *****************************************************************************/
480 void disp_save_time (void)
481 {
482 1 #if CONF_DISPLAY == LCD
gl_cpt_tick_save = gl_cpt_tick;
disp_sec_cpt_save = disp_sec_cpt;
disp_min_cpt_save = disp_min_cpt;
#endif
487 1 }
488
C51 COMPILER V7.50 DISP_TASK 09/20/2005 21:47:45 PAGE 9
489
490 /*F**************************************************************************
491 * NAME: disp_recall_time
492 *----------------------------------------------------------------------------
493 * PARAMS:
494 *
495 * return:
496 * seconds
497 *----------------------------------------------------------------------------
498 * PURPOSE:
499 * Reset time with local variables value
500 *----------------------------------------------------------------------------
501 * EXAMPLE:
502 *----------------------------------------------------------------------------
503 * NOTE:
504 *----------------------------------------------------------------------------
505 * REQUIREMENTS:
506 *****************************************************************************/
507 void disp_recall_time(void)
508 {
509 1 #if CONF_DISPLAY == LCD
gl_cpt_tick = gl_cpt_tick_save;
disp_sec_cpt = disp_sec_cpt_save;
disp_min_cpt = disp_min_cpt_save;
/* Refresh second and minute display */
print_sec(disp_sec_cpt);
print_min(disp_min_cpt);
#endif
517 1 }
518
519
520 /*F**************************************************************************
521 * NAME: disp_inc_time
522 *----------------------------------------------------------------------------
523 * PARAMS:
524 * Byte second
525 * return:
526 *
527 *----------------------------------------------------------------------------
528 * PURPOSE:
529 * increase time with second value
530 *----------------------------------------------------------------------------
531 * EXAMPLE:
532 *----------------------------------------------------------------------------
533 * NOTE:
534 *----------------------------------------------------------------------------
535 * REQUIREMENTS:
536 *****************************************************************************/
537 void disp_inc_time(Byte second)
538 {
539 1 #if CONF_DISPLAY == LCD
disp_sec_cpt += second;
if (disp_sec_cpt >= DISP_SEC_MIN) /* 1 min expiration */
{
disp_sec_cpt = disp_sec_cpt - DISP_SEC_MIN;
disp_min_cpt++;
print_min(disp_min_cpt);
}
print_sec(disp_sec_cpt);
#else
549 1 disp_sec_cpt += second;
550 1 if (disp_sec_cpt >= DISP_SEC_MIN) /* 1 min expiration */
C51 COMPILER V7.50 DISP_TASK 09/20/2005 21:47:45 PAGE 10
551 1 {
552 2 disp_sec_cpt = disp_sec_cpt - DISP_SEC_MIN;
553 2 disp_min_cpt++;
554 2 }
555 1 #endif
556 1 }
557
558
559 /*F**************************************************************************
560 * NAME: disp_dec_time
561 *----------------------------------------------------------------------------
562 * PARAMS:
563 * Byte second
564 * return:
565 *
566 *----------------------------------------------------------------------------
567 * PURPOSE:
568 * decrease time with second value
569 *----------------------------------------------------------------------------
570 * EXAMPLE:
571 *----------------------------------------------------------------------------
572 * NOTE:
573 *----------------------------------------------------------------------------
574 * REQUIREMENTS:
575 *****************************************************************************/
576 void disp_dec_time(Byte second)
577 {
578 1 #if CONF_DISPLAY == LCD
if (disp_sec_cpt <= second)
{
if (disp_min_cpt == 0)
{
disp_sec_cpt = 0;
print_sec(disp_sec_cpt);
}
else
{
disp_sec_cpt = DISP_SEC_MIN + disp_sec_cpt - second;
disp_min_cpt--;
print_min(disp_min_cpt);
print_sec(disp_sec_cpt);
}
}
else
{
disp_sec_cpt-=second;
print_sec(disp_sec_cpt);
}
#else
600 1 if (disp_sec_cpt <= second)
601 1 {
602 2 if (disp_min_cpt == 0)
603 2 {
604 3 disp_sec_cpt = 0;
605 3 }
606 2 else
607 2 {
608 3 disp_sec_cpt = DISP_SEC_MIN + disp_sec_cpt - second;
609 3 disp_min_cpt--;
610 3 }
611 2 }
612 1 else
C51 COMPILER V7.50 DISP_TASK 09/20/2005 21:47:45 PAGE 11
613 1 {
614 2 disp_sec_cpt-=second;
615 2 }
616 1
617 1 #endif
618 1 }
619
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 336 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 3 ----
PDATA SIZE = ---- ----
DATA SIZE = 4 ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -