📄 ogr_gp2021.h
字号:
/* ------------------------------ procedures ------------------------------ */inline void to_gps( INT16 adr, INT16 data){// disable(); outpw( IO_COMMAND, adr); outpw( IO_DATA, data);// enable();}inline INT16 from_gps( INT16 adr){ INT16 res;// disable(); outpw( IO_COMMAND, adr); res = inpw( IO_DATA);// enable(); return (res);}void ch_carrier( INT16 ch, long freq){ INT16 freq_hi, freq_lo; UINT16 adr; freq_hi = (INT16)( freq >> 16); freq_lo = (INT16)( freq & 0xffff); adr = CHx_CNTL_BASE + (ch << 3) + CARRIER_DCO_INCR_HIGH;// disable();// carr_incr_hi(ch,freq_hi); outpw( IO_COMMAND, adr); outpw( IO_DATA, freq_hi); adr++;// carr_incr_lo(ch,freq_lo); outpw( IO_COMMAND, adr); outpw( IO_DATA, freq_lo);// enable();}void multi_carrier( long freq){ INT16 freq_hi, freq_lo; UINT16 adr; freq_hi = (INT16)( freq >> 16); freq_lo = (INT16)( freq & 0xffff); adr = MULTI_CONTROL + CARRIER_DCO_INCR_HIGH;// disable();// carr_incr_hi(ch,freq_hi); outpw( IO_COMMAND, adr); outpw( IO_DATA, freq_hi); adr++;// carr_incr_lo(ch,freq_lo); outpw( IO_COMMAND, adr); outpw( IO_DATA, freq_lo);// enable();}void all_carrier( long freq){ INT16 freq_hi, freq_lo; UINT16 adr; freq_hi = (INT16)( freq >> 16); freq_lo = (INT16)( freq & 0xffff); adr = ALL_CONTROL + CARRIER_DCO_INCR_HIGH;// disable();// carr_incr_hi(ch,freq_hi); outpw( IO_COMMAND, adr); outpw( IO_DATA, freq_hi); adr++;// carr_incr_lo(ch,freq_lo); outpw( IO_COMMAND, adr); outpw( IO_DATA, freq_lo);// enable();}void ch_code( INT16 ch, long freq){ INT16 freq_hi, freq_lo; UINT16 adr; freq_hi = (INT16)( freq >> 16); freq_lo = (INT16)( freq & 0xffff); adr = CHx_CNTL_BASE + (ch<<3) + CODE_DCO_INCR_HIGH;// disable(); outpw( IO_COMMAND, adr); outpw( IO_DATA, freq_hi);// ch_code_incr_hi(ch,freq_hi); adr++; outpw( IO_COMMAND, adr); outpw( IO_DATA, freq_lo);// enable();// ch_code_incr_lo(ch,freq_lo);}void multi_code( long freq){ INT16 freq_hi, freq_lo; UINT16 adr; freq_hi = (INT16)( freq >> 16); freq_lo = (INT16)( freq & 0xffff); adr = MULTI_CONTROL + CODE_DCO_INCR_HIGH;// disable(); outpw( IO_COMMAND, adr); outpw( IO_DATA, freq_hi);// ch_code_incr_hi(ch,freq_hi); adr++; outpw( IO_COMMAND, adr); outpw( IO_DATA, freq_lo);// enable();// ch_code_incr_lo(ch,freq_lo);}void all_code( long freq){ INT16 freq_hi, freq_lo; UINT16 adr; freq_hi = (INT16)( freq >> 16); freq_lo = (INT16)( freq & 0xffff); adr = ALL_CONTROL + CODE_DCO_INCR_HIGH;// disable(); outpw( IO_COMMAND, adr); outpw( IO_DATA, freq_hi);// ch_code_incr_hi(ch,freq_hi); adr++; outpw( IO_COMMAND, adr); outpw( IO_DATA, freq_lo);// enable();// ch_code_incr_lo(ch,freq_lo);}inline INT16 accum_status( void){ return( from_gps( ACCUM_STATUS_A));}//void all_accum_reset( void)//{// return;//}void data_tst( INT16 data){ to_gps( DATABUSTEST, data);}UINT16 ch_epoch(INT16 ch){ return (from_gps( CHx_CNTL_BASE + (ch<<3) + EPOCH));}UINT16 ch_epoch_chk(INT16 ch){ return (from_gps( CHx_CNTL_BASE + (ch<<3) + EPOCH_CHECK));}void ch_epoch_count_load( INT16 ch, UINT16 data){ to_gps( CHx_CNTL_BASE + (ch<<3) + EPOCH_COUNT_LOAD, data); return;}void multi_epoch_count_load( UINT16 data){ to_gps( MULTI_CONTROL + EPOCH_COUNT_LOAD, data); return;}void all_epoch_count_load( UINT16 data){ to_gps( ALL_CONTROL + EPOCH_COUNT_LOAD, data); return;}long ch_carrier_cycle(INT16 ch){ long res; res = from_gps( (ch<<3)+CARRIER_CYCLE_HIGH); res = res << 16; res += from_gps( (ch<<3)+CARRIER_CYCLE_LOW); return (res);}INT16 ch_code_DCO_phase( INT16 ch){ return (from_gps( (ch<<3)+CODE_DCO_PHASE));}void ch_code_DCO_preset_phase( INT16 ch, INT16 data){// to_gps( (ch<<2) + CODE_DCO_PRESET_PHASE, data); to_gps( CHx_ACCUM_BASE + (ch<<2) + CODE_DCO_PRESET_PHASE, data); return;}void multi_code_DCO_preset_phase( INT16 data){ to_gps( MULTI_ACCUM + CODE_DCO_PRESET_PHASE, data);// to_gps( (ch<<2) + CODE_DCO_PRESET_PHASE, data); return;}void all_code_DCO_preset_phase( INT16 data){ to_gps( ALL_ACCUM + CODE_DCO_PRESET_PHASE, data);// to_gps( (ch<<2) + CODE_DCO_PRESET_PHASE, data); return;}void ch_code_incr_hi(INT16 ch,INT16 data){ to_gps( (ch<<3)+CODE_DCO_INCR_HIGH, data);}void ch_code_incr_lo(INT16 ch,INT16 data){ to_gps( (ch<<3) + CODE_DCO_INCR_LOW, data);}INT16 ch_code_phase( INT16 ch){ return (from_gps( (ch<<3) + CODE_PHASE));}INT16 ch_carrier_DCO_phase( INT16 ch){ return (from_gps( (ch<<3) + CARRIER_DCO_PHASE));}//void carr_incr_hi( INT16 ch, INT16 data)//{// to_gps( (ch<<3) + CARRIER_DCO_INCR_HIGH, data);// return;//}////void carr_incr_lo(INT16 ch,INT16 data)//{// to_gps( (ch<<3) + CARRIER_DCO_INCR_LOW, data);// return;//}void ch_cntl( INT16 ch, INT16 data){// printf("ch=%d port=%x\n",ch,port(ch<<3)); to_gps( (ch<<3) + SATCNTL, data); return;}void all_cntl(INT16 data){ to_gps( ALL_CONTROL, data); return;}void multi_cntl(INT16 data){ to_gps( MULTI_CONTROL, data); return;}INT16 ch_i_track( INT16 ch){ return (from_gps( CHx_ACCUM_BASE + (ch<<2) + I_TRACK));}INT16 ch_q_track( INT16 ch){ return (from_gps( CHx_ACCUM_BASE + (ch<<2) + Q_TRACK));}INT16 ch_i_prompt( INT16 ch){ return (from_gps( CHx_ACCUM_BASE + (ch<<2) + I_PROMPT));}INT16 ch_q_prompt( INT16 ch){ return (from_gps( CHx_ACCUM_BASE + (ch<<2) + Q_PROMPT));}void ch_accum_reset( INT16 ch){// to_gps( (ch<<2) + ACCUM_RESET, 0); to_gps( CHx_ACCUM_BASE + (ch<<2) + ACCUM_RESET, 0); return;}void ch_code_slew( INT16 ch, INT16 data){// to_gps( (ch<<2) + CODE_SLEW_COUNTER, data); to_gps( CHx_ACCUM_BASE + (ch<<2) + CODE_SLEW_COUNTER, data); return;}void multi_code_slew( INT16 data){// to_gps( MULTI_CONTROL, data); to_gps( MULTI_ACCUM + CODE_SLEW_COUNTER, data); return;}void all_code_slew( INT16 data){// to_gps( ALL_CONTROL, data); to_gps( ALL_ACCUM + CODE_SLEW_COUNTER, data); return;}void data_retent_w( INT16 data){ to_gps( DATA_RETENT, data); return;}INT16 data_retent_r( void){ return (from_gps( DATA_RETENT));}void data_bus_test_w( INT16 data){ to_gps( DATABUSTEST, data); return;}INT16 data_bus_test_r( void){ return (from_gps( DATABUSTEST));}inline INT16 meas_status( void){ return (from_gps( MEAS_STATUS_A));}void program_TIC( long data){ UINT16 high, low; high = (INT16)( data >> 16); low = (INT16)( data & 0xffff); to_gps( PROC_TIC_HIGH, high); to_gps( PROC_TIC_LOW, low); return;}void reset_cntl( INT16 data){// ch_status = data; // save register content to global to_gps( RESET_CONTROL, data); return;}#if 0void ch_on( INT16 ch){ ch_status |= (0x1 << ch); reset_cntl( ch_status); return;}void ch_off( INT16 ch){ ch_status &= ~(0x1 << ch); reset_cntl( ch_status); return;}#endifvoid system_setup( INT16 data){ to_gps( SYSTEM_SETUP, data); return;}void test_control( INT16 data){ to_gps( TEST_CONTROL, data); return;}void status_latch( void){ to_gps( STATUS, 0); return;}void io_config( INT16 data){ to_gps( IO_CONFIG, data); return;}void multi_channel_select( INT16 data){ to_gps( MULTI_CHANNEL_SELECT, data); return;}/* ------------------------------- end of file ---------------------------- */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -