?? led_task.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 + -