⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ogr_gp2021.h

📁 The OpenGPSRec receiver software runs on the real time operating system RTAI-Linux. It compiles with
💻 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 + -