⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led_task.c

📁 c51snd1c硬盘播放器全部资料.源码.线路图.protel99se的pcb图
💻 C
字号:
/*C**************************************************************************
* NAME:         led_task.c
*----------------------------------------------------------------------------
* Copyright (c) 2003 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      snd1c-refd-nf-4_0_3      
* REVISION:     1.1.2.13     
*----------------------------------------------------------------------------
* PURPOSE:
* This file contains the LED task and attached routines
*
* NOTES:
* Global Variables:
*   - gl_cpt_tick:  array of bytes in pdata space
*****************************************************************************/

/*_____ I N C L U D E S ____________________________________________________*/

#include "config.h"                         /* system configuration */
#include "board.h"                          /* board definition */
#include "led.h"                            /* led definition */
#include "led_task.h"                       /* led definition */


/*_____ M A C R O S ________________________________________________________*/


/*_____ D E F I N I T I O N ________________________________________________*/

extern  data    Byte    gl_led_tick;        /* general tick counter */

extern  xdata   Byte    LED_ON;
extern  xdata   Byte    LED_FAST;

extern  idata   Uint16  gl_act_tick;        /* Activity tick */
extern          bit     playing;
extern          bit     pause;
extern          bit     recording;
extern          bit     connected;


/*_____ D E C L A R A T I O N ______________________________________________*/


/*F**************************************************************************
* NAME: tempo
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Short blocking tempo
*****************************************************************************/
void tempo (void)
{
  Uint16  i;
  for (i= 0; i <= 10000; i++);
}


/*F**************************************************************************
* NAME: led_task_init
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Led task initialization
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void led_task_init (void)
{
  DAC_APPSEL = 1;
  FLASH_WP = 1;
  SHUT_PWR = 1;     // confirm Power ON
  SHUT_MIC = 1;     // disable MIC bias
  ENA_USB = 1;      // disconnect USB
  
  LED_VOL = 0;               tempo();
  LED_VOL = 1; LED_BASS = 0; tempo();
  LED_MED = 0; LED_BASS = 1; tempo();
  LED_MED = 1; LED_TREEB= 0; tempo();
               LED_TREEB= 1; tempo();
  LED_VOL = LED_BASS = LED_MED = LED_TREEB = 0;
  tempo();
  LED_VOL = LED_BASS = LED_MED = LED_TREEB = 1;
  gl_act_tick = 0;
  LED_ON = 0x00;    // X X X X 0 0 0 0 - Vol Bass Med Treeb
  LED_FAST = 2;
}


/*F**************************************************************************
* NAME: led_task
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   LED task handling LED ON/OFF
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void led_task (void)
{ 
  if ((LED_FAST >= 3 ) ||
   //((LED_FAST == 0 ) && (gl_led_tick >= LED_CLEAR_TIME_VS)) ||
     ((LED_FAST == 1 ) && (gl_led_tick >= LED_CLEAR_TIME_S )) ||
     ((LED_FAST == 2 ) && (gl_led_tick >= LED_CLEAR_TIME   )) )
  {
    if (gl_act_tick > INACTIVITY)
        {
        // Shut Power OFF if there is really no activity
        if (!connected && (pause || (!playing && !recording) )  && LED_FAST==3) SHUT_PWR = 0;
        gl_act_tick = 0;
        }
    gl_led_tick = 0;
    LED_TREEB = !(LED_ON&1);
    LED_MED   = !(LED_ON&2);
    LED_BASS  = !(LED_ON&4);
    LED_VOL   = !(LED_ON&8);
  }
  else if (//((LED_FAST == 0) && (gl_led_tick >= LED_ON_TIME_VS)) ||
           ((LED_FAST == 1) && (gl_led_tick >= LED_ON_TIME_S))  ||
           ((LED_FAST == 2) && (gl_led_tick >= LED_ON_TIME)))
  {
    LED_VOL = 1;
    LED_BASS = 1;
    LED_MED = 1; 
    LED_TREEB = 1;
  }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -