📄 disp_task.c
字号:
#include "config.h" /* system configuration */
#include "lib_mcu\kbd\key_drv.h" /* Keyboard driver definition */
#include "modules\song\song_drv.h" /* song driver definition */
#include "modules\file\file.h" /* file definition */
#include "disp_task.h" /* display task definition */
#include "lib_mcu\lcd\lcd_drv.h" /* display definition */
#include <stdio.h>
extern Byte key_mode_last;
extern Byte key_mode;
extern Byte song_sound;
extern data Byte gl_cpt_tick; /* general tick counter */
static data Byte disp_state; /* task state */
static bdata bit disp_clock_on; /* set to TRUE to start clock */
static data Byte disp_sec_cpt; /* second counter */
static data Byte disp_min_cpt; /* minute counter */
static bdata bit disp_clock_on; /* set to TRUE to start clock */
static data char pdata * disp_buffer;
void print_repeat(bit a)
{
a=a;
}
void print_state_error()
{
}
void disp_name_stop()
{
}
void disp_end_of_play()
{
}
/////////////////////////////////////////////////////////////////////////////////////
void print_init (void)
{
lcd_ini(); /* lcd initialization */
}
////////////////////////////////////////////////////////////////////////////////////
void print_state_play(void)
{
lcd_print_string(22,">>");
}
////////////////////////////////////////////////////////////////////////////////////
void print_state_pause()
{
lcd_print_string(22,"||");
}
/*
////////////////////////////////////////////////////////////////////////////////////
bit print_name (char pdata *string)
{
#if CONF_DISPLAY == LCD
lcd_set_cur(POS_FILE);
lcd_putchar(*string++);
lcd_putchar(*string++);
lcd_putchar(*string++);
lcd_putchar(*string++);
lcd_putchar(*string++);
lcd_putchar(*string++);
lcd_putchar(*string++);
lcd_putchar(*string++);
lcd_putchar(*string++);
lcd_putchar(*string++);
lcd_putchar(*string++);
lcd_putchar(*string++);
lcd_putchar(*string++);
lcd_putchar(*string++);
return (*string == '\0');
#else
if (string);
return 1;
#endif
}
*/
////////////////////////////////////////////////////////////////////////////////////
void print_file_name()
{
#if CONF_DISPLAY == LCD
switch(File_type()) /* print file type icon */
{
case FILE_DIR:
lcd_print_string(18,"DIR"); /* select directory icon */
break;
case FILE_MP3:
lcd_print_string(18,"MP3"); /* select song icon */
break;
case FILE_WAV:
lcd_print_string(18,"WAV"); /* select voice icon */
break;
default:
lcd_print_string(16," "); /* select voice icon */
break;
}
#endif
//disp_name_start(); /* start name display */
disp_buffer = File_get_name();
lcd_print_string(0x40, disp_buffer);
}
////////////////////////////////////////////////////////////////////////////////////
void print_key_mode(void)
{
switch(key_mode)
{
case MP3_PLAY_MODE:
lcd_print_string(10,"PLAY");
break;
case MP3_VOL_MODE:
lcd_print_string(10,"VOLU");
break;
case MP3_BASS_MODE:
lcd_print_string(10,"BASS");
break;
case MP3_MED_MODE:
lcd_print_string(10,"MEDI");
break;
case MP3_TRE_MODE:
lcd_print_string(10,"TREB");
break;
case MP3_BOOST_MODE:
lcd_print_string(10,"BOOS");
break;
default:
break;
}
}
///////////////////////////////////////////////////////////////////////////////
void print_sound_level()
{
INT8U pStr[9] = " ";
INT16U u16Value;
u16Value = song_get_level();
switch (song_sound)
{
case SND_VOLUME:
sprintf(pStr, "VOLU:%02d\0", u16Value);
lcd_print_string(0x51, pStr);
break;
case SND_BASS:
sprintf(pStr, "BASS:%02d\0", u16Value);
lcd_print_string(0x51, pStr);
break;
case SND_MEDIUM:
sprintf(pStr, "MEDI:%02d\0", u16Value);
lcd_print_string(0x51, pStr);
break;
case SND_TREBLE:
sprintf(pStr, "TREB:%02d\0", u16Value);
lcd_print_string(0x51, pStr);
break;
case SND_BBOOST:
sprintf(pStr, "BBST:%02d\0", u16Value);
lcd_print_string(0x51, pStr);
break;
case SND_NONDIS:
sprintf(pStr, " ");
lcd_print_string(0x51, pStr);
break;
}
}
///////////////////////////////////////////////////////////////////////////////
void print_min(INT8U u8Min)
{
INT8U pStr[4];
INT16U u16Min;
u16Min = u8Min;
sprintf(pStr, "%02d:\0", u16Min);
lcd_print_string(0x4a, pStr);
}
///////////////////////////////////////////////////////////////////////////////
void print_sec(INT8U u8Sec)
{
INT8U pStr[3];
INT16U u16Sec;
u16Sec = u8Sec;
sprintf(pStr, "%02d\0", u16Sec);
lcd_print_string(0x4d, pStr);
}
///////////////////////////////////////////////////////////////////////////////
void print_time(INT8U u8Min,INT8U u8Sec)
{
print_min(u8Min);
print_sec(u8Sec);
}
///////////////////////////////////////////////////////////////////////////////
void disp_clock_reset (void)
{
disp_clock_on = FALSE;
disp_sec_cpt = 0;
disp_min_cpt = 0;
print_time(0, 0); /* display 0:00 */
}
///////////////////////////////////////////////////////////////////////////////
void disp_clock_start (void)
{
disp_clock_on = TRUE;
}
///////////////////////////////////////////////////////////////////////////////
void disp_clock_stop (void)
{
disp_clock_on = FALSE;
}
///////////////////////////////////////////////////////////////////////////////
void disp_cdrom_time(INT8U u8Track,INT8U u8Min,INT8U u8Sec)
{
INT8U pStr[20];
INT16U u16Track,u16Min,u16Sec;
u16Track = u8Track;
u16Min = u8Min;
u16Sec = u8Sec;
sprintf(pStr, "Track %02d %02d:%02d", u16Track,u16Min,u16Sec);
lcd_print_string(0x09, pStr);
}
///////////////////////////////////////////////////////////////////////////////
void disp_task_init(void)
{
disp_clock_on = FALSE;
disp_state = DISP_INIT;
//print_init();
}
///////////////////////////////////////////////////////////////////////////////
void disp_task (void)
{
switch (disp_state)
{
case DISP_IDLE:
{
break;
}
case DISP_INIT:
{
disp_state = DISP_TICK0;
gl_cpt_tick = 0;
break;
}
case DISP_TICK0:
{
disp_state = DISP_TICK1;
break;
}
case DISP_TICK1:
{
if (gl_cpt_tick > DISP_TICK_SEC) /* 1/2 sec expiration */
{
gl_cpt_tick -= DISP_TICK_SEC;
if (disp_clock_on)
{
disp_state = DISP_SEC;
}
else
{
disp_state = DISP_TICK0;
}
}
break;
}
case DISP_SEC:
{
if (disp_sec_cpt == DISP_SEC_MIN) /* 1 min expiration */
{
disp_sec_cpt = 0;
print_sec(disp_sec_cpt);
disp_state = DISP_MIN;
}
else
{
disp_sec_cpt++;
print_sec(disp_sec_cpt);
disp_state = DISP_TICK0;
}
break;
}
case DISP_MIN:
{
disp_min_cpt++;
print_min(disp_min_cpt);
disp_state = DISP_TICK0;
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -