📄 spi_api.c
字号:
void VFD_state_refresh_3( )
{
LCD_objectSendcommand(LCD_RC_256);
LCD_objectSendcommand(LCD_SYS_EN);
//LCD_objectSendcommand(LCD_IRQ_DIS);
LCD_objectSendcommand(LCD_BIAS);
//LCD_objectSendcommand(DIS_TBT);
//LCD_objectSendcommand(DIS_WDT);
//LCD_objectSendcommand(LCD_OFF_TONE);
LCD_objectSendcommand(LCD_LCD_ON);
LCD_objectSendcommand(LCD_NORMAL);
#ifdef display_mode1
VFD_next_state = VFD_state_refresh_01_plugin;//VFD_state_refresh_0;
#else
VFD_next_state = VFD_state_refresh_0;
#endif
}
const unsigned char vfd_addr[12] = { 28,26, 24,22, 20,18, 16,15, 12,10, 8,6 };
void print_vfd_msg(unsigned char no, unsigned char data)
{
if(SysGetSema(&gVfd_RWSema,SYS_NO_WAIT ) == SYS_RETURN_SUCCESS )
{
if (no%2==0){
FpBuf[vfd_addr[no]]&=(~0xf0);
FpBuf[vfd_addr[no]]|=(vfd_digit[data]);
}else {
FpBuf[vfd_addr[no]]&=(~0x70);
FpBuf[vfd_addr[no]]|=(vfd_digit[data]);
}
SysReleaseSema(&gVfd_RWSema );
}
}
void vfd_disc_turn(unsigned char mode)
{
static unsigned char i = 0;
static unsigned char jj = 0;
if(SysGetSema(&gVfd_RWSema,SYS_NO_WAIT ) == SYS_RETURN_SUCCESS )
{
if(i >= 15) i = 0;
if(i % 4 ==0){
jj++;
if(jj >=8) jj = 0;
FpBuf[2]|= 0xf0;
FpBuf[32]|= 0xf0;
//vfd_dot(1,0x75);
}
#if 0 //YDF
if(mode)
{
if(jj<4)
//FpBuf[2] &= ~(0x80 >> jj);
FpBuf[2] &= ~(0x10 << jj); //YDF
else
//FpBuf[32] &= ~(0x10 <<(jj-4));
FpBuf[32] &= ~(0x80 >>(jj-4)); //YDF
}
else
{
FpBuf[2]|= 0xf0;
FpBuf[32]|= 0xf0;
}
#else //HTS
if(mode)
{
if(jj<3)
FpBuf[32] &=~(0x10<<jj);
else if((jj>=3)&&(jj<7))
FpBuf[2] &=~(0x80>>(jj-3));
else FpBuf[32] &=0x7f;
}
else
{
FpBuf[2]|= 0xf0;
FpBuf[32]|= 0xf0;
}
#endif
i++;
switch (i)
{
case 1:
vfd_dot(VFD_DOT_ON, VFD_DOT_COLON);
break;
case 8:
vfd_dot(VFD_DOT_OFF, VFD_DOT_COLON);
break;
case 2:
if( SUB1_TRACK_REPEAT_ALL == Vcd_GetSub1State())
{
vfd_dot(VFD_DOT_ON, VFD_DOT_REPEAT);
}
break;
case 9:
if( SUB1_TRACK_REPEAT_ALL == Vcd_GetSub1State())
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPEAT);
}
//FpBuf[VFD_DOT_PLAY / 8] |= (1 << (VFD_DOT_PLAY % 8));
//FpBuf[VFD_DOT_PAUSE / 8] &= (~(1 << (VFD_DOT_PAUSE % 8)));
break;
default:
break;
}
SysReleaseSema(&gVfd_RWSema );
}
}
void vfd_open(void)
{
FPClearFp();
print_vfd_msg(7, CHAR_O*2+1);
print_vfd_msg(6, CHAR_O*2);
print_vfd_msg(5, CHAR_P*2+1);
print_vfd_msg(4, CHAR_P*2);
print_vfd_msg(3, CHAR_E*2+1);
print_vfd_msg(2, CHAR_E*2);
print_vfd_msg(1, CHAR_N*2+1);
print_vfd_msg(0, CHAR_N*2);
VfdDiscTurnF = 0;
}
void vfd_close(void)
{
print_vfd_msg(9, CHAR_C*2+1);
print_vfd_msg(8, CHAR_C*2);
print_vfd_msg(7, CHAR_L*2+1);
print_vfd_msg(6, CHAR_L*2);
print_vfd_msg(5, CHAR_O*2+1);
print_vfd_msg(4, CHAR_O*2);
print_vfd_msg(3, CHAR_S*2+1);
print_vfd_msg(2, CHAR_S*2);
print_vfd_msg(1, CHAR_E*2+1);
print_vfd_msg(0, CHAR_E*2);
}
void vfd_nodisc(void)
{
print_vfd_msg(11, CHAR_N*2+1);
print_vfd_msg(10, CHAR_N*2);
print_vfd_msg(9, CHAR_O*2+1);
print_vfd_msg(8, CHAR_O*2);
print_vfd_msg(7, CHAR_D*2+1);
print_vfd_msg(6, CHAR_D*2);
print_vfd_msg(5, CHAR_I*2+1);
print_vfd_msg(4, CHAR_I*2);
print_vfd_msg(3, CHAR_S*2+1);
print_vfd_msg(2, CHAR_S*2);
print_vfd_msg(1, CHAR_C*2+1);
print_vfd_msg(0, CHAR_C*2);
}
void vfd_unkowndisc(void)
{
print_vfd_msg(11, CHAR_U*2+1);
print_vfd_msg(10, CHAR_U*2);
print_vfd_msg(9, CHAR_N*2+2);
print_vfd_msg(8, CHAR_N*2);
print_vfd_msg(7, CHAR_D*2+1);
print_vfd_msg(6, CHAR_D*2);
print_vfd_msg(5, CHAR_I*2+1);
print_vfd_msg(4, CHAR_I*2);
print_vfd_msg(3, CHAR_S*2+1);
print_vfd_msg(2, CHAR_S*2);
print_vfd_msg(1, CHAR_C*2+1);
print_vfd_msg(0, CHAR_C*2);
}
#if over_100
void vfd_show_over100(USHORT number)
{
USHORT T_number;
T_number=number;
if(T_number==1)
{
FpBuf[6] |=0x80;
FpBuf[10] &=0x7f;
FpBuf[15] &=0x7f;
FpBuf[31] &=0x8f;
FpBuf[31] |=0x40;
}
else if(T_number==2)
{
FpBuf[6] &=0x7f;
FpBuf[10] |=0x80;
FpBuf[15] &=0x7f;
FpBuf[31] &=0x8f;
FpBuf[31] |=0x70;
}
else
{
FpBuf[15] &=0x7f;
FpBuf[31] &=0x8f;
FpBuf[10] &=0x7f;
FpBuf[6] &=0x7f;
}
}
#endif
void vfd_show_time(USHORT cd_disp_trk , ULONG32 time)
{
unsigned char cd_disp_hh,cd_disp_mm,cd_disp_ss;
ULONG32 CurrentTime;
if(Vcd_GetMainState()==MAIN_STOP)
CurrentTime = time;
else{
if( TRK_ELAPSE_TIME == gVcdDisplayTime)
CurrentTime = VcdGetCurSec();
else if( TRK_REMAIN_TIME == gVcdDisplayTime)
CurrentTime = VcdGetRemSecInTrk();
else
CurrentTime = VcdGetRemSecInDisc();
}
//cd_disp_hh = (unsigned char) (CurrentTime/3600);
//cd_disp_mm = (unsigned char) ((CurrentTime%3600)/60);
cd_disp_mm = (unsigned char) ((CurrentTime)/60);
cd_disp_ss = (unsigned char) (CurrentTime%60);
//cd_disp_trk = (unsigned char) (gVcdTrackInfo.CurrTrack_no);
#if over_100
if(cd_disp_trk>99) //for MP3
{
vfd_show_over100(cd_disp_trk/100);
print_vfd_msg(11, ((cd_disp_trk-100) / 10)*2+1);
print_vfd_msg(10, ((cd_disp_trk-100) / 10)*2);
print_vfd_msg(9, ((cd_disp_trk-100) % 10)*2+1);
print_vfd_msg(8, ((cd_disp_trk-100) % 10)*2);
}
else
{
if(VcdGetTrackType()==DATA_CD_TRACK)
{
vfd_show_over100(0);
}
#endif
print_vfd_msg(11, (cd_disp_trk / 10)*2+1);
print_vfd_msg(10, (cd_disp_trk / 10)*2);
print_vfd_msg(9, (cd_disp_trk % 10)*2+1);
print_vfd_msg(8, (cd_disp_trk % 10)*2);
#if over_100
}
#endif
print_vfd_msg(7, (cd_disp_mm / 10)*2+1);
print_vfd_msg(6, (cd_disp_mm / 10)*2);
print_vfd_msg(5, (cd_disp_mm % 10)*2+1);
print_vfd_msg(4, (cd_disp_mm % 10)*2);
print_vfd_msg(3, (cd_disp_ss / 10)*2+1);
print_vfd_msg(2, (cd_disp_ss / 10)*2);
print_vfd_msg(1, (cd_disp_ss % 10)*2+1);
print_vfd_msg(0, (cd_disp_ss % 10)*2);
}
void vfd_normal_state(void)
{
ULONG32 CurrentTime;
CurrentTime = VcdGetCurSec();
vfd_show_time(gVcdTrackInfo.CurrTrack_no , CurrentTime);
//vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
//vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
}
void vfd_readtoc(void)
{
FPClearFp();
#if 0
print_vfd_msg(0, CHAR_DASH*2);
print_vfd_msg(2, CHAR_DASH*2);
print_vfd_msg(4, CHAR_DASH*2);
print_vfd_msg(6, CHAR_DASH*2);
print_vfd_msg(8, CHAR_DASH*2);
print_vfd_msg(10, CHAR_DASH*2);
//print_vfd_msg(6, CHAR_DASH);
//print_vfd_msg(7, CHAR_DASH);
#else
print_vfd_msg(9, CHAR_C*2+1);
print_vfd_msg(8, CHAR_C*2);
print_vfd_msg(7, CHAR_L*2+1);
print_vfd_msg(6, CHAR_L*2);
print_vfd_msg(5, CHAR_O*2+1);
print_vfd_msg(4, CHAR_O*2);
print_vfd_msg(3, CHAR_S*2+1);
print_vfd_msg(2, CHAR_S*2);
print_vfd_msg(1, CHAR_E*2+1);
print_vfd_msg(0, CHAR_E*2);
#endif
}
void vfd_mp3(void)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_MP3);
}
void vfd_repeatOne(void)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_REPEAT);
}
void vfd_repeatAll(void)
{
}
void vfd_repeatOff(void)
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPEAT);
}
void vfd_mp3_stop(void)
{
#if Mp3_Total
vfd_show_time(gMp3TotalFile,0);
#endif
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAY);
VfdDiscTurnF = 0;
}
#if 0//KeLong VCD-2000
unsigned char FpKeyArray[]={
KEY_NUM1, KEY_SCAN_REV, KEY_NULL, KEY_NTSCPAL,
KEY_NUM4, KEY_SKIP_BACK, KEY_STOP, KEY_OPEN_CLOSE, //00-07
KEY_NUM7, KEY_NUM0, KEY_NUM7, KEY_SKIP_NEXT,
KEY_NUM8, KEY_10PLUS, KEY_NUM9,
#if SEPERATE_PLAY_PAUSE //08-0F
KEY_PLAY,
#else
KEY_PLAY_PAUSE,
#endif
KEY_NUM5, KEY_SKIP_NEXT, KEY_NUM6, KEY_AUDIO, //10-17
KEY_NUM2, KEY_SCAN_FWD, KEY_NUM3, KEY_NULL,
KEY_NULL, KEY_NUM5, KEY_NULL, KEY_NULL, //18-1F
KEY_NULL, KEY_NUM2, KEY_NULL, KEY_NUM3,
#if 0
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //20-27
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL,
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //28-2F
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL,
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //30-37
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL,
#endif
};
#endif
#if 0//KeLong VCD-S638
unsigned char FpKeyArray[]={
#if SEPERATE_PLAY_PAUSE
KEY_PLAY,
#else
KEY_PLAY_PAUSE,
#endif
KEY_SCAN_REV, KEY_NULL, KEY_NTSCPAL,
KEY_NUM4, KEY_SKIP_BACK, KEY_STOP, KEY_OPEN_CLOSE, //00-07
KEY_NUM7, KEY_5PLUS_FP,
#if SEPERATE_PLAY_PAUSE
KEY_PLAY,
#else
KEY_PLAY_PAUSE,
#endif
#if SEPERATE_PLAY_PAUSE
KEY_PLAY,
#else
KEY_PLAY_PAUSE,
#endif
KEY_NULL, KEY_AUDIO, KEY_STOP,
#if SEPERATE_PLAY_PAUSE //08-0F
KEY_PLAY,
#else
KEY_PLAY_PAUSE,
#endif
KEY_5PLUS_FP, KEY_SKIP_NEXT, KEY_5PLUS_FP, KEY_AUDIO, //10-17
KEY_STOP, KEY_SCAN_FWD, KEY_NTSCPAL, KEY_NULL,
KEY_NULL, KEY_NUM5, KEY_NULL, KEY_NULL, //18-1F
KEY_NULL, KEY_NUM2, KEY_NULL, KEY_NUM3,
#if 0
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //20-27
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL,
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //28-2F
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL,
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //30-37
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL,
#endif
};
#endif
#if 1//KeLong VCD-S588
unsigned char FpKeyArray[]={
KEY_NUM1, KEY_SCAN_REV, KEY_NULL, KEY_NTSCPAL,
KEY_NUM2, KEY_SKIP_BACK, KEY_STOP, KEY_OPEN_CLOSE, //00-07
KEY_NUM7, KEY_5PLUS_FP,
//#if SEPERATE_PLAY_PAUSE
//KEY_PLAY,
//#else
KEY_PLAY_PAUSE,
// #endif
//#if SEPERATE_PLAY_PAUSE
// KEY_PLAY,
//#else
KEY_PLAY_PAUSE,
//#endif
KEY_NULL, KEY_5PLUS_FP, KEY_STOP,
//#if SEPERATE_PLAY_PAUSE //08-0F
//KEY_PLAY,
//#else
KEY_PLAY_PAUSE,
// #endif
KEY_NUM3, KEY_SKIP_NEXT, KEY_5PLUS_FP, KEY_AUDIO, //10-17
KEY_NUM2, KEY_SCAN_FWD, KEY_NUM1, KEY_NULL,
KEY_NULL, KEY_NUM5, KEY_NULL, KEY_NULL, //18-1F
KEY_NULL, KEY_NUM2, KEY_NULL, KEY_NUM3,
#if 0
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //20-27
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL,
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //28-2F
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL,
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //30-37
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL,
#endif
};
#endif
#if 0//KeLong VCD-S182
unsigned char FpKeyArray[]={
KEY_NUM1, KEY_SCAN_REV, KEY_NULL, KEY_NTSCPAL,
KEY_NUM4, KEY_SKIP_BACK, KEY_STOP, KEY_OPEN_CLOSE, //00-07
KEY_NUM7, KEY_SKIP_NEXT,
#if SEPERATE_PLAY_PAUSE
KEY_PLAY,
#else
KEY_PLAY_PAUSE,
#endif
#if SEPERATE_PLAY_PAUSE
KEY_PLAY,
#else
KEY_PLAY_PAUSE,
#endif
KEY_NULL, KEY_PBC, KEY_SKIP_BACK,
#if SEPERATE_PLAY_PAUSE //08-0F
KEY_PLAY,
#else
KEY_PLAY_PAUSE,
#endif
KEY_NUM5, KEY_SKIP_NEXT, KEY_5PLUS_FP, KEY_AUDIO, //10-17
KEY_NUM2, KEY_SCAN_FWD, KEY_NUM3, KEY_NULL,
KEY_NULL, KEY_NUM5, KEY_NULL, KEY_NULL, //18-1F
KEY_NULL, KEY_NUM2, KEY_NULL, KEY_NUM3,
#if 0
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //20-27
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL,
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //28-2F
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL,
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //30-37
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL,
#endif
};
#endif
#if 0//THS_A1 normal 5+ 2005-11-28
unsigned char FpKeyArray[]={
KEY_NUM1, KEY_SCAN_REV, KEY_NULL, KEY_NTSCPAL,
KEY_NUM4, KEY_SKIP_BACK, KEY_STOP, KEY_OPEN_CLOSE, //00-07
KEY_NUM7, KEY_5PLUS_FP,
#if SEPERATE_PLAY_PAUSE
KEY_PLAY,
#else
KEY_PLAY_PAUSE,
#endif
#if SEPERATE_PLAY_PAUSE
KEY_PLAY,
#else
KEY_PLAY_PAUSE,
#endif
KEY_NULL, KEY_5PLUS_FP, KEY_STOP,
#if SEPERATE_PLAY_PAUSE //08-0F
KEY_PLAY,
#else
KEY_PLAY_P
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -