int main(void) { int m,od,ext_div; int fvco,fout; int ret; int * freq_table = NULL; int flag; freq_table = init_freq_table(F_MIN, F_MAX, crystal); #ifdef DEBUG printf(" === Freq table before ===\n"); show_freq(freq_table); #endif for(ext_div = 0; ext_div < 1024; ext_div++){ for(od = 0; od <= 2; od++){ for(m = 1; m < 512; m++){ fvco = calc_fvco(m, 1); if(fvco < FVCO_MIN || fvco > FVCO_MAX){ continue; } fout = calc_fout(fvco, od, ext_div); debug("--- fvco: %d, fout: %d, od: %d, m: %d, ext_div: %d\n",fvco,fout, od, m, ext_div); if(fout < F_MIN || fout > F_MAX){ debug("=== skip fout %d\n",fout); continue; } debug("--- fout: %d, od: %d, m: %d, ext_div: %d\n",fout,od, m, ext_div); if((fout / (crystal / 1000)) != ((fout / crystal) * 1000)) continue; /* get a poper fout */ debug("=== found fvco %d, fout %d, m %d, od %d, ext_div, %d\n", fvco,fout,m, od, ext_div); ret = add_freq_to_table(freq_table, fout, fvco, m, od, ext_div); if(ret == 0)// Add successful continue; if(ret == -1)// Alread have this item continue; if(ret == -2) goto FINISH; } } } FINISH: printf(" ======= Meson8 syspll freq table =======\n"); show_freq(freq_table); printf(" ======= Meson8 syspll freq table finished =======\n"); free(freq_table); return 0; }
static int __init test_init(void) { spinlock_t lock; u64 count = 1024*1024*50; u64 i; //unsigned long start, end; unsigned long flags; struct timespec start, end; uint32_t jiff_s, jiff_e; unsigned long long tsc_s, tsc_e; int cpu = 0; spin_lock_init(&lock); set_affinity(cpu); show_freq(cpu); local_irq_save(flags); getnstimeofday(&start); jiff_s = jiffies; tsc_s = native_read_tsc(); for(i=0; i<count; i++) { spin_lock(&lock); spin_unlock(&lock); } tsc_e = native_read_tsc(); jiff_e = jiffies; getnstimeofday(&end); local_irq_restore(flags); show_freq(cpu); printk(KERN_DEBUG "start: %ld,%ld\n", start.tv_sec, start.tv_nsec); printk(KERN_DEBUG "end: %ld,%ld\n", end.tv_sec, end.tv_nsec); printk(KERN_DEBUG "offset:%ld, %ld\n", end.tv_sec - start.tv_sec, (end.tv_sec - start.tv_sec)*1000000 + (end.tv_nsec - start.tv_nsec)/1000); printk(KERN_DEBUG "HZ:%u\n", HZ); printk(KERN_DEBUG "Jiffies %u,%u, %u\n", jiff_e, jiff_s, jiffies_to_msecs(jiff_e - jiff_s)); printk(KERN_DEBUG "TSC %llu,%llu, delta %llu\n", tsc_s, tsc_e, (tsc_e - tsc_s) >> 20); return 0; }
RETURN_CODE display_hd_ui(void) { RETURN_CODE ret = SUCCESS; LCD_Clear(LCD_CLEAR_LINE2); show_freq(0,0); eeprom_save_parameter(); return ret; }
RETURN_CODE refresh_fm_ui(void) { RETURN_CODE ret = SUCCESS; LCD_Clear(LCD_CLEAR_LINE2); ret |= UpdateMetrics(); show_freq(0,0); eeprom_save_parameter(); return ret; }
/**************************************************************************************** fmhd main process ******************************************************************************************/ RETURN_CODE fmhd_amhd_work_mode(void) { RETURN_CODE ret = SUCCESS; //u8 temp_str[16]; #ifndef OPTION__OPERATE_AS_SLAVE_NO_MMI static bit hd_flag = 0; static u8 display_item_state = 0; #endif if( power_flag ==0) { power_flag =1; fmhd_amhd_initialize(); } #ifndef OPTION__OPERATE_AS_SLAVE_NO_MMI ret |=fmhd_amhd_key_process(); if(display_item_str_4ms >0) { //display_refresh_flag = 1; return 0;// wait for time up } if(ber_running_flag == 1) { fmhd_BER_update_display(); return 0; // We do not want to leave this screen until we have stopped running the BER test } if(display_refresh_flag==1) { display_refresh_flag=0; ret |= display_hd_ui(); } else //if(display_item_str_4ms == 0) { display_item_str_4ms = STATUS_UPDATE_INTERVAL; if(item_loop == ITEM_AUTO_ROLL) // display will auto change next next { if(work_mode == fmhd) { if(display_item_state > sizeof(FMHD_DISPLAY_ITEM)/sizeof(FMHD_DISPLAY_ITEM[0])-1) { display_item_state = 1; } } #ifdef OPTION__INCLUDE_MODE__AMHD else if(work_mode == amhd) { if(display_item_state > sizeof(AMHD_DISPLAY_ITEM)/sizeof(AMHD_DISPLAY_ITEM[0])-1) { display_item_state = 1; } } #endif // OPTION__INCLUDE_MODE__AMHD } else { display_item_state = item_loop;// fix display special item switched by hold tune knobs } if(work_mode == fmhd) { if (display_data_item(FMHD_DISPLAY_ITEM[display_item_state]) == ITEM_NEXT) { display_item_state ++; } ret = UpdateMetrics(); if(MetricsGetFMHDPtr()->AUDIO_SOURCE != hd_flag) { hd_flag= MetricsGetFMHDPtr()->AUDIO_SOURCE; show_freq(0,0); } } #ifdef OPTION__INCLUDE_MODE__AMHD else { if (display_data_item(AMHD_DISPLAY_ITEM[display_item_state]) == ITEM_NEXT) { display_item_state ++; } ret = UpdateMetrics(); if(MetricsGetAMHDPtr()->AUDIO_SOURCE != hd_flag) { hd_flag= MetricsGetAMHDPtr()->AUDIO_SOURCE; show_freq(0,0); } } #endif //OPTION__INCLUDE_MODE__AMHD } #endif //OPTION__OPERATE_AS_SLAVE_NO_MMI #ifdef OPTION__OPERATE_AS_SLAVE_NO_MMI ret |= UpdateMetrics(); ret |= UpdateDataServiceData(); #endif //OPTION__OPERATE_AS_SLAVE_NO_MMI ret |= UpdateServiceList(); // Need to periodically check for updates to the service list - reconfiguration return ret; }
RETURN_CODE fmhd_amhd_key_process(void) { RETURN_CODE ret = SUCCESS; if(key_flag==1) { key_flag = 0; display_refresh_flag = 1; switch(key_value) { case TUNE_PRESS_KNOBS: item_loop ++; if(item_loop>(sizeof(FMHD_ITEM_STR)/sizeof(FMHD_ITEM_STR[0]))-1) { item_loop = 0; } show_freq(0,0); LCD_Clear(LCD_CLEAR_LINE2); LCD_DisplayStr(FMHD_ITEM_STR[item_loop],0,1); display_item_str_4ms = 500; loop_display_times = 0; break; case DOWN_KEY: case TUNE_DEC_KNOBS: #ifdef OPTION__INCLUDE_FRONT_END_TEST_FUNCTIONS if(ber_running_flag == 1) { fmhd_ber_mode --; if(fmhd_ber_mode < HD_P1) { fmhd_ber_mode = HD_PIDS_BLOCK; } } else { #endif //OPTION__INCLUDE_FRONT_END_TEST_FUNCTIONS ret |= tune_up_down(0); if(ret == SUCCESS) { fmhd_key_update_display(); } #ifdef OPTION__INCLUDE_FRONT_END_TEST_FUNCTIONS } #endif //OPTION__INCLUDE_FRONT_END_TEST_FUNCTIONS break; case UP_KEY: case TUNE_INC_KNOBS: #ifdef OPTION__INCLUDE_FRONT_END_TEST_FUNCTIONS if(ber_running_flag == 1) { fmhd_ber_mode ++; if(fmhd_ber_mode > HD_PIDS_BLOCK) { fmhd_ber_mode = HD_P1; } } else { #endif //OPTION__INCLUDE_FRONT_END_TEST_FUNCTIONS ret |= tune_up_down(1); if(ret == SUCCESS) { fmhd_key_update_display(); } #ifdef OPTION__INCLUDE_FRONT_END_TEST_FUNCTIONS } #endif //OPTION__INCLUDE_FRONT_END_TEST_FUNCTIONS break; case HDSEEK_KEY: #ifdef OPTION__INCLUDE_MODE__AMHD if(work_mode == amhd) { return SUCCESS;//amhd mode will not support HD station only seeking } #endif if(seek_state == SEEK_NULL) { fmhd_seekonly ^= 1; LCD_Clear(LCD_CLEAR_ALL); LCD_DisplayStr("HD-Only Seek\n",0,0); if(fmhd_seekonly) { LCD_DisplayStr("Enabled\n",0,1); } else { LCD_DisplayStr("Disabled\n",0,1); } display_item_str_4ms = 500; } break; case SEEK_UP_KEY: if(seek_state == SEEK_NULL) { seek_state = SEEK_PROCESS; ret|=SeekStart(1,1,fmhd_seekonly); fmhd_key_update_display(); } break; case SEEK_DOWN_KEY: if(seek_state == SEEK_NULL) { seek_state = SEEK_PROCESS; ret|=SeekStart(0,1,fmhd_seekonly); fmhd_key_update_display(); } break; case PRESET_INC_KEY: case PRESET_DEC_KEY: ret |=pset_operate(key_value); display_item_str_4ms = 2000; break; case PRESET_INC_HOLD_KEY: case PRESET_DEC_HOLD_KEY: ret |=pset_operate(key_value); display_item_str_4ms = 1000; break; #ifdef OPTION__INCLUDE_FRONT_END_TEST_FUNCTIONS case DAB_RESCAN_KEY: //iBiquity has requested the push botton be used to start a free-running BER test. The previous 1,000,000 bit sample test is still included in the ATS commands if(ber_running_flag == 1) { display_item_str_4ms = 3000; } else { Test_StartFreeRunningBER_FMHD(); } ber_running_flag ^= 1; break; case DAB_RESCAN_HOLD_KEY: fmhd_split_mode_setting ++; if(fmhd_split_mode_setting > 2) { fmhd_split_mode_setting = 0; } ret |= SetProperty(0xE801, fmhd_split_mode_setting); // Test mode for HD split mode rotates through splits ret |= Tune(MetricsGetFMHDPtr()->FREQUENCY_10KHZ); //Retune to make the property change take effect LCD_Clear(LCD_CLEAR_ALL); LCD_DisplayStr("HD-SplitMode\n",0,0); LCD_DisplayNum(fmhd_split_mode_setting,0,1); display_item_str_4ms = 3000; break; #endif //OPTION__INCLUDE_FRONT_END_TEST_FUNCTIONS default: key_flag = 1;display_refresh_flag = 0; break; } } return ret; }
void fmhd_key_update_display() { show_freq(0,0); display_item_str_4ms = 500; }
void time_update(void) { extern struct tm *time_ptr; extern char qsonrstr[]; extern int bandinx; extern int this_second; extern int system_secs; extern int miniterm; char time_buf[11]; int currentterm = 0; static int s = 0; static int m = 0; static int oldsecs = -1; /* trigger immediate update */ get_time(); this_second = time_ptr->tm_sec; /* seconds */ system_secs = time_ptr->tm_min * 60 + time_ptr->tm_sec; if (this_second != oldsecs) { /* do it every second */ oldsecs = this_second; if (wpx == 1) { if (minute_timer > 0) minute_timer--; } s = (s + 1) % 2; if (s > 0) { /* every 2 seconds */ strftime(time_buf, 10, "%H:%M:%S", time_ptr); time_buf[5] = '\0'; if ((time_buf[6] == '1') && (m >= 30)) { m = 0; getwwv(); } else { m++; } currentterm = miniterm; miniterm = 0; broadcast_lan(); update_line(time_buf); show_freq(); clusterinfo(); /* update cluster info (2 seconds) */ attron(COLOR_PAIR(C_LOG) | A_STANDOUT); mvprintw(7, 0, logline0); mvprintw(8, 0, logline1); mvprintw(9, 0, logline2); mvprintw(10, 0, logline3); mvprintw(11, 0, logline4); mvprintw(13, 0, " "); attron(COLOR_PAIR(C_WINDOW)); mvprintw(12, 23, qsonrstr); printcall(); showscore(); /* update score window every 2 seconds */ show_zones(bandinx); miniterm = currentterm; } } }
RETURN_CODE fm_am_key_process(void) { RETURN_CODE ret = SUCCESS; if(key_flag) { key_flag = 0; display_refresh_flag = 1; switch(key_value) { case SELECT_KEY: case TUNE_PRESS_KNOBS: item_loop ++; LCD_Clear(LCD_CLEAR_LINE2); if(work_mode == fmonly) { if(item_loop>(sizeof(FM_ITEM_STR)/sizeof(FM_ITEM_STR[0]))-1) { item_loop = 0; } LCD_DisplayStr(FM_ITEM_STR[item_loop],0,1); } #ifdef OPTION__INCLUDE_MODE__AM else if(work_mode == am) { if(item_loop>(sizeof(AM_ITEM_STR)/sizeof(AM_ITEM_STR[0]))-1) { item_loop = 0; } LCD_DisplayStr(AM_ITEM_STR[item_loop],0,1); } #endif show_freq(0,0); display_item_str_4ms = 500; loop_display_times = 0; break; case DOWN_KEY: case TUNE_DEC_KNOBS: ret |= tune_up_down(0); show_freq(0,0); display_item_str_4ms = 500; break; case UP_KEY: case TUNE_INC_KNOBS: ret |= tune_up_down(1); show_freq(0,0); display_item_str_4ms = 500; break; case SEEK_UP_KEY: if(seek_state == SEEK_NULL) { seek_state = SEEK_PROCESS; ret|=SeekStart(1,1,0); } break; case SEEK_DOWN_KEY: if(seek_state == SEEK_NULL) { seek_state = SEEK_PROCESS; ret|=SeekStart(0,1,0); } break; case PRESET_INC_KEY: case PRESET_DEC_KEY: ret |=pset_operate(key_value); display_item_str_4ms = 1500; break; case PRESET_INC_HOLD_KEY: case PRESET_DEC_HOLD_KEY: ret |=pset_operate(key_value); display_item_str_4ms = 1000; break; default: display_refresh_flag = 0; key_flag = 1; break; } } return ret; }
void CALLBACK_Updated_Data(SDK_CALLBACKS_UPDATED_DATA_TYPE updatedType) { #ifdef OPTION__INCLUDE_MODE__DAB #ifndef OPTION__OPERATE_AS_SLAVE_NO_MMI u8 i; static u16 temp_index =0; u8 totalFrequencyIndex; #endif #endif switch(updatedType) { #ifdef OPTION__INCLUDE_MODE__FM case UPDATED_RDS_PI: rds_update_ready_item |=UPDATED_RDS_PI_ITEM; break; case UPDATED_RDS_PTY: rds_update_ready_item |=UPDATED_RDS_PTY_ITEM; break; case UPDATED_RDS_RT: rds_update_ready_item |=UPDATED_RDS_RT_ITEM; break; case UPDATED_RDS_PST: rds_update_ready_item |=UPDATED_RDS_PST_ITEM; break; case UPDATED_RDS_TIME: rds_update_ready_item |=UPDATED_RDS_TIME_ITEM; break; case UPDATED_RDS_ALT_FREQ: rds_update_ready_item |=UPDATED_RDS_ALT_FREQ_ITEM; break; #endif //OPTION__INCLUDE_MODE__FM #ifdef OPTION__INCLUDE_MODE__FMHD #ifdef OPTION__DECODE_SIS //SIS case UPDATED_SIS_SLOGAN: sis_update_ready_item |= UPDATED_SIS_SLOGAN_ITEM; break; case UPDATED_SIS_UNIVERSAL_SHORT_NAME: sis_update_ready_item |= UPDATED_SIS_UNIVERSAL_SHORT_NAME_ITEM; break; case UPDATED_SIS_STATION_MESSAGE: sis_update_ready_item |= UPDATED_SIS_STATION_MESSAGE_ITEM; break; case UPDATED_SIS_STATION_NAME_LONG: sis_update_ready_item |= UPDATED_SIS_STATION_NAME_LONG_ITEM; break; case UPDATED_SIS_STATION_NAME_SHORT: sis_update_ready_item |= UPDATED_SIS_STATION_NAME_SHORT_ITEM; break; case UPDATED_SIS_STATION_ID: sis_update_ready_item |= UPDATED_SIS_STATION_ID_ITEM; break; case UPDATED_SIS_LOC_LAT: sis_update_ready_item |= UPDATED_SIS_LOC_LAT_ITEM; break; case UPDATED_SIS_LOC_LON: sis_update_ready_item |= UPDATED_SIS_LOC_LON_ITEM; break; #endif //OPTION__DECODE_SIS #ifdef OPTION__DECODE_PSD //PSD case UPDATED_PSD_TITLE: psd_update_ready_item |= UPDATED_PSD_TITLE_ITEM; break; case UPDATED_PSD_ARTIST: psd_update_ready_item |= UPDATED_PSD_ARTIST_ITEM; break; case UPDATED_PSD_ALBUM: psd_update_ready_item |= UPDATED_PSD_ALBUM_ITEM; break; case UPDATED_PSD_GENRE: psd_update_ready_item |= UPDATED_PSD_GENRE_ITEM; break; #endif //OPTION__DECODE_PSD #ifdef OPTION__DECODE_HD_ALERTS case UPDATED_HD_ALERT: alert_update_ready_item |= UPDATED_ALERT_ITEM; break; #endif //OPTION__DECODE_HD_ALERTS case UPDATED_SERVICE_LIST_FAST: case UPDATED_SERVICE_LIST_AUDIO: case UPDATED_SERVICE_LIST_DATA: #ifndef OPTION__OPERATE_AS_SLAVE_NO_MMI show_freq(0,0); #endif //OPTION__OPERATE_AS_SLAVE_NO_MMI break; #endif //OPTION__INCLUDE_MODE__FMHD #ifdef OPTION__INCLUDE_MODE__DAB case DAB_SERVICE_LIST_REQUIRED_UPDATE: if(!dab_scan_flag)//avoid display scroll when tuning not scanning { #ifndef OPTION__OPERATE_AS_SLAVE_NO_MMI LCD_Clear(LCD_CLEAR_LINE1); LCD_DisplayStr("List Update\n",0,0); display_refresh_flag = 1; #endif //OPTION__OPERATE_AS_SLAVE_NO_MMI } break; //#ifdef OPTION__DAB_SERVICE_LIST_PERSISTENCE // case UPDATED_SERVICE_LIST_DAB: // eeprom_save_parameter(); // break; //#endif //OPTION__DAB_SERVICE_LIST_PERSISTENCE #ifdef OPTION__DECODE_DLS //DLS case UPDATED_DLS_STRING: dls_update_ready_item |= UPDATED_DLS_STRING_ITEM; break; #endif //OPTION__DECODE_DLS case SERVICE_LIST_BUFFER_FULL_ERROR: #ifndef OPTION__OPERATE_AS_SLAVE_NO_MMI LCD_DisplayStr("LIST FULL \n",0,0); wait_ms(1000); #endif //OPTION__OPERATE_AS_SLAVE_NO_MMI break; case DAB_TUNE_SCAN_PROCESS_UPDATE: #ifdef OPTION__OPERATE_AS_SLAVE_NO_MMI seek_scan_process_dispatch(); #endif #ifndef OPTION__OPERATE_AS_SLAVE_NO_MMI key_scan(); if(key_flag) { key_flag = 0; switch(key_value) { case MODE_KEY: case ON_OFF_KEY: case DAB_RESCAN_KEY: ScanBandCancel_DAB(); LCD_DisplayStr("Stop scan\n",0,0); wait_ms(1000); break; default:break; } } if(!dab_scan_flag)//avoid display scroll when tuning not scanning { break; } if(temp_index == MetricsGetDABPtr()->FREQUENCY_INDEX) { break; } temp_index = MetricsGetDABPtr()->FREQUENCY_INDEX; LCD_DisplayNum(DABServiceListAudioPtr()->SERVICE_COUNT,14,0); if(dab_reduced_list_flag) { totalFrequencyIndex = DAB_NUM_ENSEMBLES_UK_REGION; } else { totalFrequencyIndex = DAB_STANDARD__MAX_ENSEMBLES_EUROPE; } for(i=0;i<16;i++) { if((((temp_index+1)*16)/totalFrequencyIndex)>i) { LCD_DisplayCBD(DEF_SFRECTANGLE,i,1); } else { LCD_DisplayCBD(DEF_SERECTANLG,i,1); } } #endif //OPTION__OPERATE_AS_SLAVE_NO_MMI break; case DAB_TUNE_REQUIRED_UPDATE: #ifndef OPTION__OPERATE_AS_SLAVE_NO_MMI LCD_Clear(LCD_CLEAR_ALL); LCD_DisplayStr("Tuning...\n",0,0); LCD_DisplayStr("Please wait\n",0,1); #endif //OPTION__OPERATE_AS_SLAVE_NO_MMI break; case DAB_TUNE_SCAN_PROCESS_COMPLETE: #ifndef OPTION__OPERATE_AS_SLAVE_NO_MMI LCD_Clear(LCD_CLEAR_LINE2); //LCD_DisplayStr("- Complete -\n",2,1); //wait_ms(1000);//comment for speeding up in manual tuning #endif //OPTION__OPERATE_AS_SLAVE_NO_MMI break; // case EVENT_ENSEMBLE_RECONFIGURATION: // // break; // case EVENT_ENSEMBLE_RECONFIGURATION_WARNING: // // break; // case EVENT_CURRENT_SERVICE_NO_LONGER_AVAILABLE: // // break; case EVENT_FINDING_ALTERNATE_SERVICE: #ifndef OPTION__OPERATE_AS_SLAVE_NO_MMI LCD_Clear(LCD_CLEAR_ALL); LCD_DisplayStr("Searching\n",0,0); #endif //OPTION__OPERATE_AS_SLAVE_NO_MMI break; #ifdef OPTION__INCLUDE_FRONT_END_TEST_FUNCTIONS case DAB_FRONT_END_CAL_PROCESS_UPDATE: #ifndef OPTION__OPERATE_AS_SLAVE_NO_MMI LCD_Clear(LCD_CLEAR_LINE1); LCD_DisplayNum(_ANTCAP_DAB,0,0); #endif //OPTION__OPERATE_AS_SLAVE_NO_MMI break; #endif #endif //OPTION__INCLUDE_MODE__DAB case EVENT_READY_FOR_FIRMWARE_UPDATE: #ifndef OPTION__OPERATE_AS_SLAVE_NO_MMI LCD_DisplayStr("FIRMWARE UPDATE\n",0,0); #endif //OPTION__OPERATE_AS_SLAVE_NO_MMI //wait_ms(1000); break; #ifdef OPTION__INCLUDE_MODE__FM case FM_SEEK_PROCESS_UPDATE: case AM_SEEK_PROCESS_UPDATE: #ifdef OPTION__OPERATE_AS_SLAVE_NO_MMI seek_scan_process_dispatch(); #else if(work_mode == fmonly) { fm_freq = MetricsGetFMPtr()->FREQUENCY_10KHZ; rds_update_ready_item = 0; } #ifdef OPTION__INCLUDE_MODE__AM else if(work_mode == am) { am_freq = MetricsGetAMPtr()->FREQUENCY_1KHZ; } #endif #ifdef OPTION__INCLUDE_MODE__FMHD else if(work_mode == fmhd) { fmhd_freq = MetricsGetFMHDPtr()->FREQUENCY_10KHZ; rds_update_ready_item = 0; sis_update_ready_item = 0; psd_update_ready_item = 0; alert_update_ready_item = 0; } #endif //OPTION__INCLUDE_MODE__FMHD #ifdef OPTION__INCLUDE_MODE__AMHD else if(work_mode == amhd) { amhd_freq = MetricsGetAMHDPtr()->FREQUENCY_1KHZ; sis_update_ready_item = 0; psd_update_ready_item = 0; alert_update_ready_item = 0; } #endif //OPTION__INCLUDE_MODE__FMHD show_freq(0,0); #endif //OPTION__OPERATE_AS_SLAVE_NO_MMI break; case FM_SEEK_PROCESS_COMPLETE: case AM_SEEK_PROCESS_COMPLETE: if(work_mode == fmonly) { fm_freq = MetricsGetFMPtr()->FREQUENCY_10KHZ; } #ifdef OPTION__INCLUDE_MODE__FMHD else if(work_mode == fmhd) { fmhd_freq = MetricsGetFMHDPtr()->FREQUENCY_10KHZ; } #endif //OPTION__INCLUDE_MODE__FMHD #ifdef OPTION__INCLUDE_MODE__AM else if(work_mode == am) { am_freq = MetricsGetAMPtr()->FREQUENCY_1KHZ; } #endif #ifdef OPTION__INCLUDE_MODE__AMHD else if(work_mode == amhd) { amhd_freq = MetricsGetAMHDPtr()->FREQUENCY_1KHZ; } #endif seek_state = SEEK_NULL; display_refresh_flag = 1; break; #endif // OPTION__INCLUDE_MODE__FM default: break; } }