📄 vfd._c
字号:
break;
};
}
break;
case DIS_RT:
if(rds_status&RT_EXIST)
{
r2=Set_String(&rds_dis_string[rds_dis_buffer[2]]);
//r2 = display_RT(rds_dis_buffer[2]);
if(!blink_time)
{
if(r2)
rds_dis_buffer[2]++; //
else
rds_dis_buffer[2] = 0; //oa
}
}
else
Set_String("NO RT");
break;
case DIS_CT:
if(rds_status&CT_EXIST)
{
g_vfd_grid_buffer[7] = num_trans(rds_dis_string[0]/10);
g_vfd_grid_buffer[6] = ((num_trans(rds_dis_string[0]%10)|VFD_LED_COL));
g_vfd_grid_buffer[5] = num_trans(rds_dis_string[1]/10);
g_vfd_grid_buffer[4] = num_trans(rds_dis_string[1]%10);
}
else
Set_String("NO CT");
break;
#endif
case RADIO_STORE:
if(blink_time<2)
{
Set_String("STORE");
//g_vfd_grid_buffer[9] |= VFD_alpha_S;
//g_vfd_grid_buffer[8] |= VFD_alpha_T;
//g_vfd_grid_buffer[7] |= VFD_alpha_O;
//g_vfd_grid_buffer[6] |= VFD_alpha_R;
//g_vfd_grid_buffer[5] |= VFD_alpha_E;
};
if(radio_count ==0)
{
g_vfd_grid_buffer[3] = VFD_alpha_DASH;
g_vfd_grid_buffer[2] = VFD_alpha_DASH;
}
else
{
display_digit(radio_count);
//g_vfd_grid_buffer[3] |= num_xlate[radio_count/10];
//g_vfd_grid_buffer[2] |= num_xlate[radio_count%10];
};
break;
};
if((!is_autosearching) &&(!radio_dout()))
g_vfd_grid_buffer[8] |= VFD_LED_STEREO;
if(is_autosearching)
{
if(blink_time<2)
g_vfd_grid_buffer[0] |= VFD_LED_AUTO;
}
}
void ui_fp_update_handler(void)
{
unsigned char i;
unsigned int value;
#ifndef TEST_KEY
if(work_mode!=0)
#endif
{
for(i=0;i<VFD_BUFFER_SIZE;i++)
{
g_vfd_grid_buffer[i] = 0;
#ifdef MORE_THAN_16SEGMENT
g_vfd_grid_ext_buffer[i] = 0;
#endif
}
blink_time = (blink_time+1)%5;
switch(display_type)
{
case DISPLAY_VERSION:
Set_String("A980R104");
/*
R104: MODIFIED BY SGJM IN 2002-10-23
add SCART AV/TV control
add RDS
*/
break;
#ifdef CLOCK_STANDBY
case DISPLAY_TIME:
if(hm_flag||(blink_time<3)) //display_hour
{
g_vfd_grid_buffer[7] = num_trans(time_val[0]/10);
g_vfd_grid_buffer[6] = (num_trans(time_val[0]%10)|VFD_LED_COL);
};
if(!hm_flag||(blink_time<3))
{
g_vfd_grid_buffer[5] = num_trans(time_val[1]/10);
g_vfd_grid_buffer[4] = num_trans(time_val[1]%10);
};
break;
#endif
#ifdef TEST_KEY
case DISPLAY_KEY:
display_digit(info);
break;
#endif
case DISPLAY_VOL:
Set_String("VOL");
//g_vfd_grid_buffer[9] |= VFD_alpha_V ;
//g_vfd_grid_buffer[8] |= VFD_alpha_O ;
//g_vfd_grid_buffer[7] |= VFD_alpha_L ;
if(Mchvol<60)
display_digit(Mchvol);
else
{
g_vfd_grid_buffer[4] |= VFD_alpha_M ;
g_vfd_grid_buffer[3] |= VFD_alpha_A ;
g_vfd_grid_buffer[2] |= VFD_alpha_X ;
};
//g_vfd_grid_buffer[1] |= num_xlate[Mchvol/10];//(Mchvolume-MAX_VOLUME)/10];
//g_vfd_grid_buffer[0] |= num_xlate[Mchvol%10];//(Mchvolume-MAX_VOLUME)%10];
break;
case DISPLAY_BASS:
Set_String("BASS");
//g_vfd_grid_buffer[9] |= VFD_alpha_B;
//g_vfd_grid_buffer[8] |= VFD_alpha_A;
//g_vfd_grid_buffer[7] |= VFD_alpha_S;
//g_vfd_grid_buffer[6] |= VFD_alpha_S;
if(Bassvol >=7)
{
g_vfd_grid_buffer[2] = num_trans(Bassvol-7);
g_vfd_grid_buffer[3] = VFD_alpha_PLUS;
}
else
{
//g_vfd_grid_buffer[3] |= VFD_alpha_MINUS;
g_vfd_grid_buffer[2] = num_trans(7-Bassvol);
g_vfd_grid_buffer[3] = VFD_alpha_MINUS;
}
break;
case DISPLAY_TREBLE:
Set_String("TREBLE");
//g_vfd_grid_buffer[9] |= VFD_alpha_T ;
//g_vfd_grid_buffer[8] |= VFD_alpha_R ;
//g_vfd_grid_buffer[7] |= VFD_alpha_E ;
//g_vfd_grid_buffer[6] |= VFD_alpha_B ;
//g_vfd_grid_buffer[5] |= VFD_alpha_L ;
//g_vfd_grid_buffer[4] |= VFD_alpha_E ;
if(Treblevol >=7)
{
//g_vfd_grid_buffer[3] |= VFD_alpha_PLUS;
g_vfd_grid_buffer[2] = num_trans(Treblevol-7);
g_vfd_grid_buffer[3] = VFD_alpha_PLUS;
}
else
{
//g_vfd_grid_buffer[3] |= VFD_alpha_MINUS;
g_vfd_grid_buffer[2] = num_trans(7-Treblevol);
g_vfd_grid_buffer[3] = VFD_alpha_MINUS;
}
break;
case ERROR_MSG: //err_msg
Set_String(err_msg);
break;
case DISPLAY_BALANCE:
Set_String("BAL");
if(Balanceval ==7)
{
g_vfd_grid_buffer[2] = VFD_alpha_L;
g_vfd_grid_buffer[3] = VFD_alpha_R;
}
else if(Balanceval >7)
{
//g_vfd_grid_buffer[3] |= VFD_alpha_PLUS;
g_vfd_grid_buffer[2] = num_trans(Balanceval-7);
g_vfd_grid_buffer[3] = VFD_alpha_R;
}
else
{
//g_vfd_grid_buffer[3] |= VFD_alpha_MINUS;
g_vfd_grid_buffer[2] = num_trans(7-Balanceval);
g_vfd_grid_buffer[3] = VFD_alpha_L;
}
break;
// display_digit(Balanceval);
// g_vfd_grid_buffer[6] |= VFD_LED_COL;
/*g_vfd_grid_buffer[9] |=VFD_alpha_L;
if(Balanceval>0)
g_vfd_grid_buffer[8] |=VFD_SPECIAL_1|VH|VR;
if(Balanceval>1)
g_vfd_grid_buffer[8] |=VFD_SPECIAL_2;
if(Balanceval>2)
g_vfd_grid_buffer[7] |=VFD_SPECIAL_1;
if(Balanceval>3)
g_vfd_grid_buffer[7] |=VFD_SPECIAL_2;
if(Balanceval>4)
g_vfd_grid_buffer[6] |=VFD_SPECIAL_1;
if(Balanceval>5)
g_vfd_grid_buffer[6] |=VFD_SPECIAL_2;
g_vfd_grid_buffer[2] |=VFD_alpha_R;
if(Balanceval<12)
g_vfd_grid_buffer[3] |=VFD_SPECIAL_2|VK|VN;
if(Balanceval<11)
g_vfd_grid_buffer[3] |=VFD_SPECIAL_1;
if(Balanceval<10)
g_vfd_grid_buffer[4] |=VFD_SPECIAL_2;
if(Balanceval<9)
g_vfd_grid_buffer[4] |=VFD_SPECIAL_1;
if(Balanceval<8)
g_vfd_grid_buffer[5] |=VFD_SPECIAL_2;
if(Balanceval<7)
g_vfd_grid_buffer[5] |=VFD_SPECIAL_1;*/
// break;
/*
case DISPLAY_LOUDNESS:
//g_vfd_grid_buffer[9] |= VFD_alpha_L ;
//g_vfd_grid_buffer[8] |= VFD_alpha_O ;
//g_vfd_grid_buffer[7] |= VFD_alpha_U ;
//g_vfd_grid_buffer[6] |= VFD_alpha_D ;
//Set_string("LOUD");
if(Loudnessval)
{
Set_String("3D ON");
//g_vfd_grid_buffer[4] |= VFD_alpha_O;
//g_vfd_grid_buffer[3] |= VFD_alpha_N;
//g_vfd_grid_buffer[2] |= VFD_alpha_F;
}
else
{
Set_String("3D OFF");
//g_vfd_grid_buffer[4] |= VFD_alpha_O;
// g_vfd_grid_buffer[3] |= VFD_alpha_F;
// g_vfd_grid_buffer[2] |= VFD_alpha_F;
}
break;*/
case DISPLAY_TIMING:
Set_String("SLEEP");
//g_vfd_grid_buffer[9] |= VFD_alpha_S ;
//g_vfd_grid_buffer[8] |= VFD_alpha_L ;
//g_vfd_grid_buffer[7] |= VFD_alpha_E ;
//g_vfd_grid_buffer[6] |= VFD_alpha_E ;
//g_vfd_grid_buffer[5] |= VFD_alpha_P;
value =( g_ui_timing_cnt/300);
if(g_ui_timing_cnt%300>10)
value++;
if(value==0)
{
g_vfd_grid_buffer[4] = VFD_alpha_O;
g_vfd_grid_buffer[3] = VFD_alpha_F;
g_vfd_grid_buffer[2] = VFD_alpha_F;
}
else
{
display_digit(value);
g_vfd_grid_buffer[0] = VFD_LED_SLEEP;
// radio_vfd = g_ui_timing_cnt%300;
// radio_vfd = radio_vfd/5;
// r2 = radio_vfd%10;
// r3 = radio_vfd/10;
// g_vfd_grid_buffer[3] |= num_xlate[r3];
// g_vfd_grid_buffer[2] |= num_xlate[r2];
}
break;
case DISPLAY_WELCOME:
switch(work_mode)
{
case TUNER_MODE:
Set_String(" TUNER");
break;
case AV1_MODE:
Set_String(" AV1");
break;
case AV2_MODE:
Set_String(" AV2");
break;
case AV3_MODE:
Set_String(" AV3");
break;
}
break;
default:
if(work_mode!=POWER_OFF_MODE)
{
g_vfd_grid_buffer[1] = num_xlate_left[Mchvol/10];//(Mchvolume-MAX_VOLUME)/10];
g_vfd_grid_buffer[1] |= num_xlate_right[Mchvol%10];//(Mchvolume-MAX_VOLUME)%10];
};
switch(work_mode)
{
case TUNER_MODE:
tuner_display();
break;
case TAPE_MODE:
Set_String(" AV1");
break;
case AV2_MODE:
Set_String(" AV2");
break;
case AV3_MODE:
Set_String(" AV3");
break;
case POWER_OFF_MODE:
#ifdef CLOCK_STANDBY
g_vfd_grid_buffer[7] = num_trans(time_val[0]/10);
g_vfd_grid_buffer[6] = (num_trans(time_val[0]%10)|VFD_LED_COL);
g_vfd_grid_buffer[5] = num_trans(time_val[1]/10);
g_vfd_grid_buffer[4] = (num_trans(time_val[1]%10)|VFD_LED_COL);
g_vfd_grid_buffer[3] = num_trans(time_val[2]/10);
g_vfd_grid_buffer[2] = num_trans(time_val[2]%10);
#endif
//Set_FS1_H();
//Set_FS2_H();
muted = 1;
MCU_mute();
delay_ms(100);
led_val = 0x01;
decoder_power_off();
break;
}
break;
}
};
if(work_mode != POWER_OFF_MODE)
{
if(muted)
g_vfd_grid_buffer[7] |= VFD_LED_MUTE;
if(g_ui_timing_cnt)
g_vfd_grid_buffer[0] |= VFD_LED_SLEEP;
//if(g_tape_s.pstate==TAPE_FWD_REC)
//g_vfd_grid_buffer[10] |= VFD_LED_REC;
};
VFD_LL_SetGrid();
for(i=0; i<VFD_BUFFER_SIZE; i++)
{
VFD_LL_WriteDisplayRAM( i, g_vfd_grid_buffer[i]);
VFD_LL_RefreshLED(led_val);
#ifdef MORE_THAN_16SEGMENT
VFD_LL_WriteExtDisplayRAM(i,g_vfd_grid_ext_buffer[i]);
#endif
};
VFD_LL_SetDim(0x0f);
}
unsigned char Set_String(unsigned char *str)
{
// int position;
// int counter = 0;
int pos;
// int letter_index;
for(pos = 9; pos > 1; pos--)
{
if (*str)
{
if ( ((*str)>='A') && ((*str)<='Z'))
{
g_vfd_grid_buffer[pos] = vfd_alpha[(*str)-'A'];
}
else if ( (*str) == '-' )
{
g_vfd_grid_buffer[pos] = VFD_alpha_DASH;
}
else if ( ((*str)>='0') && ((*str)<='9'))
{
g_vfd_grid_buffer[pos] = num_xlate[(*str)-'0'];
}
else if((*str)=='*')
{
g_vfd_grid_buffer[pos] = VFD_alpha_aster;
}
else if((*str)==0x0D)
return 0;
else if((*str)==0x0A)
return 1;
str++;
}
else
return 0;
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -