📄 vfd_drv_nec16312.c
字号:
#ifdef QISHENG_DVD
standby_cnt=0;
if((vfd_keycode[key_data - 1])==IRC_STOP)
standby_cnt=1;
#endif//#ifdef QISHENG_DVD
#ifdef NEXT_FORWARD_IN_A_KEY
key_data_flag = 1;
#endif//#ifdef NEXT_FORWARD_IN_A_KEY
if(power_on == 2) //2-6-18 13:36 to avoid accepting a VFD_key in the beginning.
{
power_on--;
if(key_data != 1)
{
#ifdef TWO_FUN_IN_ONE_VFD_KEY
if((vfd_keycode[key_data-1]!=IRC_NEXT) && (vfd_keycode[key_data-1]!=IRC_PREV))
#endif //TWO_FUN_IN_ONE_VFD_KEY
#ifdef TWO_FUNC_IN_LEFT_RIGHT_KEY //xyy add for Oritron 2004-11-10
if((vfd_keycode[key_data-1]!=IRC_LEFT) && (vfd_keycode[key_data-1]!=IRC_RIGHT))
#endif
//save_srn_start_t = get_rtc_val();//axel moved to top 2004/2/4 06:13PM
call_ir_func(vfd_keycode[key_data - 1]);
}
}
else
{
//save_srn_start_t = get_rtc_val(); //axel moved to top 2004/2/4 06:13PM
#ifdef USE_VFD_LED_TO_KEY_SOUND_INDICATE //gerry for PANDA6950,3-8-23 17:19
write_vfd_led(0);
#elif defined(USE_VFD_LED_TO_KEY_SOUND_INDICATE_HI_ON) //NONO 2003-10-15 16:14
write_vfd_led(0xf);
#endif
#ifdef TWO_FUN_IN_ONE_VFD_KEY
if((vfd_keycode[key_data-1]!=IRC_NEXT) && (vfd_keycode[key_data-1]!=IRC_PREV))
#endif //TWO_FUN_IN_ONE_VFD_KEY
#ifdef TWO_FUNC_IN_LEFT_RIGHT_KEY //xyy add for Oritron 2004-11-10
if((vfd_keycode[key_data-1]!=IRC_LEFT) && (vfd_keycode[key_data-1]!=IRC_RIGHT))
#endif
call_ir_func(vfd_keycode[key_data - 1]);
}
#ifdef NEXT_FORWARD_IN_A_KEY
key_data_flag = 0;
#endif//#ifdef NEXT_FORWARD_IN_A_KEY
}
#endif
}
else{
#ifdef TWO_FUN_IN_ONE_VFD_KEY
if((key_press_time_count>0)&&(key_press_time_count<15)&&(num_add_flag==0)&&(command_flag))
{
if(vfd_keycode[keycode_to_num(key_previ_temp)-1]==IRC_NEXT)
{
call_ir_func(IRC_NEXT);
command_flag=0;
}
else if(vfd_keycode[keycode_to_num(key_previ_temp)-1]==IRC_PREV)
{
call_ir_func(IRC_PREV);
command_flag=0;
}
}
key_press_time_count=0;
num_add_flag = 0;
#endif //TWO_FUN_IN_ONE_VFD_KEY
#ifdef TWO_FUNC_IN_LEFT_RIGHT_KEY //xyy add for Oritron 2004-11-10 9:58
if((uTimeCount>0)&&(uTimeCount<20)&&(num_add_flag==0)&&(command_flag))
{
if(vfd_keycode[keycode_to_num(uPrevKey)-1]==IRC_LEFT)
{
call_ir_func(IRC_LEFT);
command_flag=0;
}
else if(vfd_keycode[keycode_to_num(uPrevKey)-1]==IRC_RIGHT)
{
call_ir_func(IRC_RIGHT);
command_flag=0;
}
}
uTimeCount=0;
num_add_flag = 0;
#endif
#ifdef QISHENG_DVD
standby_cnt = 0;
#endif
}
}
#ifdef QISHENG_DVD
else if ((key_data!=0))
{
if(standby_cnt)
{
standby_cnt++;
printf("*");
if(standby_cnt==50)
{
vfd_state = VFD_WRITE;
call_ir_func(IRC_POWER);
}
}
}
#endif
#if defined(TWO_FUN_IN_ONE_VFD_KEY) || defined(TWO_FUNC_IN_LEFT_RIGHT_KEY)//xyy add for Oritron 2004-11-10
else
{
command_flag=1;
}
#endif
vfd_state = VFD_WRITE;
}
else
{
update_vfd_data();
#if defined(SUPPORT_APOGEE_AMP) && defined(AMPVOL_ADJUST_TYPE1)//xyy 2004-4-14
if(full_scrn==APOGEEAMPVOL && timeout_osd[REGION1] == 0)
{
full_scrn = 0;
erase_vfd_mem();
}
#endif
//int i;
#ifdef AUTO_INTO_STANDBY //for tonic dvd//20040206 //hongfeng add OPEN state auto standby 2005-10-24
//if(play_state==VCD_STATE_STOP||system_state==SYSTEM_NODISC)
if((system_state==SYSTEM_STOP||system_state==SYSTEM_NODISC||play_state==VCD_STATE_STOP||play_state==VCD_STATE_OPEN
#ifdef SCRN_SAVER_WHEN_PAUSE
||play_state==VCD_STATE_PAUSE
#endif
)
#ifdef SUPPORT_RECEIVER//chenzhao20051009
&&(current_rcvr_mode==RECEIVER_MODE_DVD)
#endif
)
{
//auto_standby_timer++;
//if(auto_standby_timer==100*60*30)
#ifndef MAX_AUTO_STANDBY_TIME
if(auto_standby_timer==100*60*25)
#else
if(auto_standby_timer>=MAX_AUTO_STANDBY_TIME)//zxb 2005-4-28 14:13
#endif
ircmd_power();
}
else
auto_standby_timer=0;
#endif
#ifdef BCT72328_DRIVER_VFD//lijd 2005-6-23 13:39
switch (bWriteState)
{
case 0:
//update to reset mode
#ifndef TEST_VFD
regs0->iop_data[VFD_CMD] = VFDC_SET_DISP | VFD_DISPLAY_MODE;
#else
regs0->iop_data[VFD_CMD] = VFDC_SET_DISP | COMMAND_MODE;
#endif
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) | (FUN_VFD_WRITE | VFD_DAT_LEN0);
bWriteState++;
break;
case 1:
regs0->iop_data[VFD_CMD] =0x44;
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) |
(FUN_VFD_WRITE | VFD_DAT_LEN0);
bWriteState++;
break;
case 2:
i=0;
regs0->iop_data[VFD_CMD] = (0xc0 | i);
regs0->iop_data[VFD_DAT0] = vfd_mem[i + 1] << 8 | vfd_mem[i];
regs0->iop_data[VFD_DAT1] = vfd_mem[i + 3] << 8 | vfd_mem[i + 2];
regs0->iop_data[VFD_DAT2] = vfd_mem[i + 5] << 8 | vfd_mem[i + 4];
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) | (FUN_VFD_WRITE | VFD_DAT_LEN6);
WaitIopFunRdy(IOP_RDY_WAIT);
i=6;
regs0->iop_data[VFD_CMD] = (0xc0 | i);
regs0->iop_data[VFD_DAT0] = vfd_mem[i + 1] << 8 | vfd_mem[i];
regs0->iop_data[VFD_DAT1] = vfd_mem[i + 3] << 8 | vfd_mem[i + 2];
regs0->iop_data[VFD_DAT2] = vfd_mem[i + 5] << 8 | vfd_mem[i + 4];
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) | (FUN_VFD_WRITE | VFD_DAT_LEN6);
WaitIopFunRdy(IOP_RDY_WAIT);
i=12;
regs0->iop_data[VFD_CMD] = (0xc0 | i);
regs0->iop_data[VFD_DAT0] = vfd_mem[i + 1] << 8 | vfd_mem[i];
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) | (FUN_VFD_WRITE | VFD_DAT_LEN2);
WaitIopFunRdy(IOP_RDY_WAIT);
bWriteState++;
break;
case 3:
regs0->iop_data[VFD_CMD] =
VFDC_DISP_CTRL | VFDC_DISP_CTRL_ON | VFDC_DISP_CTRL_10_16;
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) |
(FUN_VFD_WRITE | VFD_DAT_LEN0);
vfd_state = VFD_READ;
bWriteState=0;
break;
}
#else//BCT72328_DRIVER_VFD
switch (bWriteState)
{
case 0:
//update to reset mode
#ifndef TEST_VFD
regs0->iop_data[VFD_CMD] = VFDC_SET_DISP | VFD_DISPLAY_MODE;
#else
regs0->iop_data[VFD_CMD] = VFDC_SET_DISP | COMMAND_MODE;
#endif
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) | (FUN_VFD_WRITE | VFD_DAT_LEN0);
bWriteState++;
break;
case 1:
regs0->iop_data[VFD_CMD] =
#ifdef VFD_DIMMING_CONTROL
VFDC_DISP_CTRL | VFDC_DISP_CTRL_ON | dimming_level;
#else
VFDC_DISP_CTRL | VFDC_DISP_CTRL_ON | VFDC_DISP_CTRL_10_16;
#endif
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) |
(FUN_VFD_WRITE | VFD_DAT_LEN0);
bWriteState++;
break;
case 2:
#ifdef SM1623_DRIVER_VFD
//update in one polling
for(i=0;i<VFD_DISPLAY_SIZE;i+=4) // fengjl upload 3-11-23 17:33
{
regs0->iop_data[VFD_CMD] = (0xc0 | i); // transfer address
if((VFD_DISPLAY_SIZE-i)<=4)//modefied by wangfeng,2003-11-24 10:41
{
regs0->iop_data[VFD_DAT0] = vfd_mem[i + 1] << 8 | vfd_mem[i];
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) |
(FUN_VFD_WRITE | VFD_DAT_LEN2);
}
else
{
regs0->iop_data[VFD_DAT0] = vfd_mem[i + 1] << 8 | vfd_mem[i];
regs0->iop_data[VFD_DAT1] = vfd_mem[i + 3] << 8 | vfd_mem[i + 2];
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) |
(FUN_VFD_WRITE | VFD_DAT_LEN4);
}
WaitIopFunRdy(IOP_RDY_WAIT);
}
vfd_state = VFD_READ;
#elif defined(GBM_LED6961_PANEL)||defined(ET6201_PANNEL)||defined(GBM_PBCY_8202_PANNEL) || defined(SHINCO_PANNEL)||defined(HD6928_PANNEL)
//gerry for GBM_LED_PANEL,2004-2-4 22:41
//suxin fixed,add (defined(SHINCO_DVD)) for fix SHINCO_DVD display problem 2005-09-29
//zhoulin add HD6928_PANNEL
for(i=0;i<VFD_DISPLAY_SIZE;i+=2)
{
regs0->iop_data[VFD_CMD] = (0xc0 | i);
regs0->iop_data[VFD_DAT0] = vfd_mem[i + 1] << 8 | vfd_mem[i];
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) | (FUN_VFD_WRITE | VFD_DAT_LEN2);
WaitIopFunRdy(IOP_RDY_WAIT);
}
vfd_state = VFD_READ;
#elif defined(TP6311_DRIVER_VFD) || defined(XINGQIU_RECEIVER_PANNEL) || defined(KENLOON_PANEL3) || defined(ORITRON_PANEL)
for(i = 0; i < VFD_DISPLAY_SIZE; i += 6) //xyy 2003-10-31 19:42
{
regs0->iop_data[VFD_CMD] = (0xc0 | i);
regs0->iop_data[VFD_DAT0] = vfd_mem[i + 1] << 8 | vfd_mem[i];
regs0->iop_data[VFD_DAT1] = vfd_mem[i + 3] << 8 | vfd_mem[i + 2];
regs0->iop_data[VFD_DAT2] = vfd_mem[i + 5] << 8 | vfd_mem[i + 4];
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) |
(FUN_VFD_WRITE | VFD_DAT_LEN6);
WaitIopFunRdy(IOP_RDY_WAIT);
}
vfd_state = VFD_READ;
#else
regs0->iop_data[VFD_CMD] = (0xc0 | count);
#ifdef SHINCO_DVD
regs0->iop_data[VFD_DAT0] = vfd_mem[count + 1] << 8 | vfd_mem[count];
#else
regs0->iop_data[VFD_DAT0] = vfd_mem[count + 1] << 8 | vfd_mem[count];
regs0->iop_data[VFD_DAT1] = vfd_mem[count + 3] << 8 | vfd_mem[count + 2];
#ifndef SKYWORTH_DVD
regs0->iop_data[VFD_DAT2] = vfd_mem[count + 5] << 8 | vfd_mem[count + 4];
#endif
#endif
#if defined(SHINCO_DVD)
#define VFD_DAT_LEN VFD_DAT_LEN2
#elif defined(SKYWORTH_DVD)
#define VFD_DAT_LEN VFD_DAT_LEN4
#else
#define VFD_DAT_LEN VFD_DAT_LEN6
#endif
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) | (FUN_VFD_WRITE | VFD_DAT_LEN);
count += VFD_DAT_LEN;
if(count == VFD_DISPLAY_SIZE)
{
count = 0;
vfd_state = VFD_READ;
}
#endif
bWriteState=0;
break;
}//write state control
#endif//BCT72328_DRIVER_VFD
}
#elif defined(GPIO_KEY_LIGHT)//SUPPORT_VFD nono 3-8-18 14:41
check_gpio_keylight_status();
#elif defined(USE_VFDPORT_TRANDATA)
Communication_And_MCU4051();
#endif//SUPPORT_VFD
}
#ifdef TP6317_PANNEL //yaowh add 04-10-25
BYTE Read_SW(void)
{
BYTE key_datasw ;
key_datasw= (BYTE)regs0->iop_data[7] ;
//regs0->iop_data[7] = 0xF0 ;
return key_datasw ;
}
void write_vfd_data(BYTE bAddr, BYTE bData)
{
regs0->iop_data[VFD_CMD] = 0x40;//Writes data to display memory
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) | (FUN_VFD_WRITE | VFD_DAT_LEN0);
regs0->iop_data[VFD_CMD] = (0xc0 | bAddr);//Assress setting command
regs0->iop_data[VFD_DAT0] = 0xff00 | bData;
regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) | (FUN_VFD_WRITE | VFD_DAT_LEN1);
WaitIopFunRdy(IOP_RDY_WAIT);
}
void define_standbykey(void)
{
write_vfd_data(0x16,IR_USER_CODE_LOW8 & 0xff);
write_vfd_data(0x17,IR_USER_CODE_HIGHT8 & 0xff);
write_vfd_data(0x18,TP6317_IR_CODE1 & 0xff);
write_vfd_data(0x19,TP6317_IR_CODE2 & 0xff);
write_vfd_data(0x1a,TP6317_IR_CODE3 & 0xff);
write_vfd_data(0x1b,TP6317_IR_CODE4 & 0xff);
write_vfd_data(0x1c,TP6317_IR_CODE5 & 0xff);
write_vfd_data(0x1d,TP6317_IR_CODE6 & 0xff);
write_vfd_data(0x1e,TP6317_IR_CODE7 & 0xff);
write_vfd_data(0x1f,TP6317_IR_CODE8 & 0xff);
write_vfd_data(0x20,TP6317_VFD_KEY_CODE1 & 0xff);
write_vfd_data(0x21,TP6317_VFD_KEY_CODE2 & 0xff);
write_vfd_data(0x22,TP6317_VFD_KEY_CODE3 & 0xff);
}
void Power_off_define_TP6317_standbykey(void)
{
define_standbykey();
}
void TP6317_int(void)
{
define_standbykey();
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -