亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? gpstest_cpp.mht

?? 一份軟件GPS的C++代碼
?? MHT
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
From: =?gb2312?B?08kgV2luZG93cyBJbnRlcm5ldCBFeHBsb3JlciA3ILGjtOY=?=
Subject: GPSTEST.CPP
Date: Fri, 24 Aug 2007 18:57:40 +0800
MIME-Version: 1.0
Content-Type: text/html;
	charset="gb2312"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://home.earthlink.net/~cwkelley/gpstest.htm
X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6000.16480

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>GPSTEST.CPP</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
<META content=3D"MSHTML 6.00.6000.16527" name=3DGENERATOR></HEAD>
<BODY><PRE>struct channel
{
  int  state;
  long code_freq,carrier_freq,doppler,carrier_corr;
  char message[1500],sat_use,prn,bit,frame_ready;
  int  offset,codes,n_freq,del_freq,snr;
  int  bit_no,t_count,ms_count,i_confirm;
  int  ms_epoch,n_frame,ch_time,i_count;
  int  con_thresh,n_thresh,sfid,missed,page5;
  int  i_track,q_track,i_prompt,q_prompt;
  long sum,avg,old_theta,old_q_sum,th_rms;
  long dfreq,dfreq1,dcarr1,dcarr;
  long q_track_20,q_prompt_20,i_track_20,i_prompt_20;
  long prompt_mag,track_mag;
  long tr_bit_time,meas_bit_time,TOW;
  unsigned int epoch_ms,epoch_bit,epoch_code_phase,epoch_code_DCO_phase;
  unsigned int epoch_carrier_DCO_phase;
  long epoch_carrier_cycle;
  float CNo;
};

enum {off,acquisition,confirm,pull_in,track};
//     0       1         2       3      4
channel chan[12];
long carrier_ref=3D0x1f7b1b9L,code_ref=3D0x016ea4a8L;

int a_missed,test_cnt;
int =
prn_code[37]=3D{0,0x3f6,0x3ec,0x3d8,0x3b0,0x04b,0x096,0x2cb,0x196,0x32c,
		    0x3ba,0x374,0x1d0,0x3a0,0x340,0x280,0x100,0x113,0x226,
		    0x04c,0x098,0x130,0x260,0x267,0x338,0x270,0x0e0,0x1c0,
			 0x380,0x22b,0x056,0x0ac,0x158,0x058,0x18b,0x316,0x058};
//int GIC[8]=3D{0x2c4,0x10a,0x3e3,0x0f8,0x25f,0x1e7,0x2b5,0x10e};
unsigned test[16]=3D
 {0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,
  0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000};
float clock_offset=3D0.0;

//int iii,out_debug;

#include "gp2021.cpp"
//#include "gpsfuncs.cpp"
inline long rss(long a,long b );
inline long fix_atan2(long y,long x);
long fix_sqrt(long x);

#define IRQLEVEL        0       // IRQ Line

void interrupt (*Old_Interrupt)(...); // Old IRQ0 interrupt handler
void interrupt  GPS_Interrupt(...);   // New IRQ0 interrupt handler

void Interrupt_Install(void);
void Interrupt_Remove(void);
void display(void);
long near_int(double);
void test_allocate(void);

//inline int bit_test(int,char);
void ch_acq(char);
void ch_confirm(char);
void ch_pull_in(char);
void ch_track(char);
inline int sign(long);
//inline int bsign(long);
//int xors(long);


int  nav_tic,search_max_f,search_min_f=3D0,cold_prn=3D1;
long rms=3D312,acq_thresh=3D575,code_corr,time_on=3D0;
long =
pull_code_k=3D111,pull_code_d=3D7,pull_carr_k=3D-12,pull_carr_d=3D28;
long trk_code_k=3D55, trk_code_d=3D3, trk_carr_k=3D-9, trk_carr_d=3D21;
double speed,heading,nav_up=3D1.0;
int  pull_in_time=3D1500,phase_test=3D500;
long  d_freq=3D2349,d_tow,trk_div=3D19643;
int   confirm_m=3D5,n_of_m_thresh=3D5,key,tic_count=3D0,hms_count=3D0;
int   =
nav_count,min_flag,nav_flag,sec_flag,n_track,test_type,counter=3D0;
unsigned int interr_int=3D512;

void main()
{
//  int   i,j;//,indatam,imask;
  char  ch;
  self_test();
  io_config(0x301);
  test_cnt=3D0x10;
  test_control(test_cnt);  // set up ch 0 as a test pattern generator
  system_setup(0x00);
  reset_cntl(0x1fff);             // release reset
  ch_status=3D0x1;
  nav_tic=3Dnav_up*10;
  interr_int=3D512;
  code_corr=3D0.0;
  for (ch=3D0;ch&lt;=3D11;ch++) chan[ch].state=3Doff;
  clrscr();
  test_allocate();
  Interrupt_Install();
//
  do
  {
	 if (kbhit()) key =3D getch();
	 else         key =3D '\0';
	 if (sec_flag=3D=3D1)
	 {
//        key=3D'x';
	  sec_flag=3D0;
	  for (ch=3D0;ch&lt;=3D11;ch++)
	  {
		  if (chan[ch].state=3D=3Dtrack)
		  {
			  =
chan[ch].CNo=3D10.*log10(chan[ch].avg/1395.*chan[ch].avg/1395.*25.*1.7777=
+1.0);
			  if (chan[ch].CNo&lt;25.0)
			  {
			 chan[ch].carrier_corr=3D0.0;
	// calculate code correction
			 code_corr=3D0.0;
			 chan[ch].code_freq=3Dcode_ref+code_corr;
			 ch_code(ch,chan[ch].code_freq);               // 1.023 MHz chipping =
rate
			 chan[ch].state=3Dacquisition;
			 chan[ch].t_count=3D0;
			 chan[ch].n_frame=3D0;
			 chan[ch].codes=3D0;
			 chan[ch].n_freq=3Dsearch_min_f;
			 chan[ch].del_freq=3D1;
			 =
chan[ch].carrier_freq=3Dcarrier_ref+chan[ch].carrier_corr+d_freq*chan[ch]=
.n_freq;   // set carrier
			 ch_carrier(ch,chan[ch].carrier_freq);             // select carrier
			  }
			}
		}

	 }
	 display();
  } while (key !=3D 'x' &amp;&amp; key !=3D 'X'); /* Stay in loop until =
'X' key is pressed. */
  Interrupt_Remove();

}


void display(void)
{
  char ch;
  gotoxy(1,1);
  printf("   \n");
  printf(  " ch prn state code carr bit  ms cd_ph cd_dco car_dco =
carcycle\n");
  for (ch=3D0;ch&lt;=3D11;ch++)
  {
	 printf(" %2d %2d %2d %6lx %6lx %4d %4d %4d %5d %5d %6ld\n",
	 ch,chan[ch].prn,chan[ch].state,chan[ch].code_freq,
	 chan[ch].carrier_freq,chan[ch].epoch_bit,
	 chan[ch].epoch_ms,chan[ch].epoch_code_phase,
	 chan[ch].epoch_code_DCO_phase,chan[ch].epoch_carrier_DCO_phase,
	 chan[ch].epoch_carrier_cycle);
  }
}

/*
*************************************************************************=
*****
FUNCTION Interrupt_Install()
RETURNS  None.

PARAMETERS None.

PURPOSE
	This function replaces the current IRQ0 Interrupt service routine with
	our own custom function. The old vector is stored in a global variable
	and will be reinstalled at the end of program execution. IRQ0 is
	enabled by altering the interrupt mask stored by the 8259 interrupt
	handler.

*************************************************************************=
*****
*/

void Interrupt_Install()
{
  unsigned char     int_mask,i_high,i_low;
  i_high=3Dinterr_int&gt;&gt;8;
  i_low=3Dinterr_int&amp;0xff;
  Old_Interrupt =3D getvect(8 + IRQLEVEL);
  disable();
  setvect(8 + IRQLEVEL,GPS_Interrupt);
  int_mask =3D inportb(0x21);     // get hardware interrupt mask
  int_mask =3D int_mask &amp; ~(1 &lt;&lt; IRQLEVEL);
  outportb(0x21,int_mask);      // send new mask to 8259
  enable();
// modify the timer to divide by interr_int
  outportb(0x43,0x34);
  outportb(0x40,i_low);
  outportb(0x40,i_high);
  outportb(0x20,0x20); // Clear PIC

}

/*
*************************************************************************=
*****
FUNCTION Interrupt_Remove()
RETURNS  None.

PARAMETERS None.

PURPOSE
	This function removes the custom interrupt vector from the vector
	table and restores the previous vector.

*************************************************************************=
*****
*/

void Interrupt_Remove()
{
  unsigned char     int_mask;

  outportb(0x20,0x20);           // clear interrupt and allow next one
  int_mask =3D inportb(0x21);      // get hardware interrupt mask
  int_mask =3D int_mask | (1 &lt;&lt; IRQLEVEL);
  disable();
//outportb(0x21,int_mask);       // send new mask to 8259
  setvect(8 + IRQLEVEL,Old_Interrupt);
  enable();                      // allow hardware interrupts
  outportb(0x20,0x20);           // clear interrupt and allow next one
  outportb(0x43,0x34);           // reset clock
  outportb(0x40,0xff);
  outportb(0x40,0xff);
}


void  test_allocate()
{
	 char ch;
	 search_max_f=3D20;
	 reset_cntl(0x1fff); // turn all the channels on
	 for (ch=3D0;ch&lt;=3D11;ch++)
	 {
		chan[ch].code_freq=3Dcode_ref;
		ch_code(ch,chan[ch].code_freq);        // 1.023 MHz chipping rate
		ch_cntl(ch,prn_code[1]|0xa000);       // select satellite track late
		chan[ch].prn=3D1;
		chan[ch].state=3Dacquisition;
		chan[ch].codes=3D0;
		chan[ch].n_freq=3Dsearch_min_f;
		chan[ch].del_freq=3D1;
		chan[ch].carrier_freq=3Dcarrier_ref;    // set carrier
		if (ch&gt;0) chan[ch].carrier_freq+=3D15000;
		ch_carrier(ch,chan[ch].carrier_freq); // select carrier
	 }
}

void interrupt GPS_Interrupt(...)
{
	 int astat,mstat,itemp;
	 unsigned int epoch,add;
	 char ch;
	 to_gps(0x80,0);
	 a_missed=3Dfrom_gps(0x83);
	 astat=3Dfrom_gps(0x82);
	 for (ch=3D0;ch&lt;=3D11;ch++)
	 {
		if (astat &amp; test[ch])
		{
	  add=3D(ch&lt;&lt;2)+0x84;
	  itemp=3Dfrom_gps(add);
	  chan[ch].i_track=3Ditemp;
	  add++;
	  itemp=3Dfrom_gps(add);
	  chan[ch].q_track=3Ditemp;
	  add++;
	  itemp=3Dfrom_gps(add);
	  chan[ch].i_prompt=3Ditemp;
	  add++;
	  itemp=3Dfrom_gps(add);
	  chan[ch].q_prompt=3Ditemp;
	  if (a_missed &amp; test[ch])
	  {
		chan[ch].missed++;
		ch_accum_reset(ch);
		}
		 }
	 }
	 mstat=3Dfrom_gps(0x81)&amp; 0x2000;
	 if (mstat)
	 {
		tic_count=3D(++tic_count)%10;
		if (tic_count=3D=3D0) sec_flag=3D1;
		hms_count=3D(++hms_count)%600;
		if (hms_count=3D=3D0) min_flag=3D1;
		nav_count=3D(nav_count+1)%nav_tic;
		if (nav_count=3D=3D0) nav_flag=3D1;
		test_cnt=3Dtest_cnt ^ 0x20;
		test_control(test_cnt);
	 }
	 for (ch=3D0;ch&lt;=3D11;ch++)
	 {
		if (nav_count=3D=3D0)
		{
	epoch=3Dch_epoch(ch);
	chan[ch].epoch_ms=3Depoch&amp;0x1f;
	chan[ch].epoch_bit=3Depoch&gt;&gt;8;
	chan[ch].epoch_code_phase=3Dch_code_phase(ch);
	chan[ch].epoch_code_DCO_phase=3Dch_code_DCO_phase(ch);
	chan[ch].meas_bit_time=3Dchan[ch].tr_bit_time;
	chan[ch].epoch_carrier_DCO_phase=3Dch_carrier_DCO_phase(ch);
	chan[ch].epoch_carrier_cycle=3Dch_carrier_cycle(ch);
	chan[ch].doppler=3Dchan[ch].carrier_freq;
		 }
	 }
	 for (ch=3D0;ch&lt;=3D11;ch++)
	 {
		if (astat &amp; test[ch])
		{
	switch(chan[ch].state)
	{
	  case acquisition:
		 ch_acq(ch);
		 break;
	  case confirm    :
		 ch_confirm(ch);
		 break;
	  case pull_in    :
		 ch_pull_in(ch);
		 break;
	  case track      :
		 ch_track(ch);
		 break;
	}
		}
	 }
// reset the interrupt
	 outportb(0x20,0x20);
}

void ch_acq(char ch)
{
  long prompt_mag,track_mag;
if (ch&gt;0)
{
  if (abs(chan[ch].n_freq)&lt;=3Dsearch_max_f)//  search frequencies
  {
	 prompt_mag=3Drss(chan[ch].i_prompt,chan[ch].q_prompt);
	 track_mag  =3Drss(chan[ch].i_track,chan[ch].q_track);
	 if ((track_mag &gt; acq_thresh) &amp;&amp; (prompt_mag &gt; =
acq_thresh))
	 {
		 ch_code_slew(ch,2044);     // slew back 1 chip
		 chan[ch].state=3Dconfirm;         // confirm the signal
		 chan[ch].i_confirm=3D0;
		 chan[ch].n_thresh=3D0;
	 }
	 else
	 {
		ch_code_slew(ch,2);
		chan[ch].codes+=3D2;
	 }
	 if (chan[ch].codes=3D=3D2044)
	 {
		chan[ch].n_freq+=3Dchan[ch].del_freq;
		chan[ch].del_freq=3D-(chan[ch].del_freq+sign(chan[ch].del_freq));
		=
chan[ch].carrier_freq=3Dcarrier_ref+chan[ch].carrier_corr+d_freq*chan[ch]=
.n_freq;   // set carrier
		ch_carrier(ch,chan[ch].carrier_freq);             // select carrier
		chan[ch].codes=3D0;
	 }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一本二本av| 欧美国产禁国产网站cc| 亚洲欧美日韩国产成人精品影院| 粗大黑人巨茎大战欧美成人| 亚洲国产一区二区a毛片| 久久品道一品道久久精品| 国产在线精品免费| 亚洲韩国一区二区三区| 91精品国产综合久久久蜜臀粉嫩| 日韩精品91亚洲二区在线观看 | 日韩不卡手机在线v区| 国产欧美综合色| 99精品国产99久久久久久白柏 | 亚洲中国最大av网站| 国产亚洲成aⅴ人片在线观看| 成人精品视频一区二区三区尤物| 中文字幕在线一区| 国产亚洲欧美在线| 欧美电视剧免费观看| thepron国产精品| 亚洲二区在线视频| 亚洲欧美福利一区二区| 国产欧美日韩三级| 国产欧美一区二区精品性色| 欧美刺激午夜性久久久久久久| 成人永久免费视频| 国产一区二区三区久久久| 亚洲欧美国产高清| 中文字幕亚洲一区二区va在线| 日本道色综合久久| 久久精品国产精品青草| 蜜桃久久av一区| 另类小说综合欧美亚洲| 欧美bbbbb| 美腿丝袜亚洲综合| 国内精品国产成人国产三级粉色| 亚洲女人的天堂| 亚洲天堂精品在线观看| 自拍偷拍亚洲激情| 亚洲色图第一区| 亚洲视频在线一区| 亚洲欧美国产三级| 亚洲国产精品久久久男人的天堂| 精品久久久网站| 欧美亚洲国产一卡| 在线不卡免费欧美| 日韩欧美国产一区在线观看| 色爱区综合激月婷婷| 国产一区二区女| 成人丝袜18视频在线观看| 成人免费毛片嘿嘿连载视频| 成人免费视频播放| 91国产成人在线| 欧美精品vⅰdeose4hd| 日韩欧美亚洲一区二区| 国产欧美日韩一区二区三区在线观看| 欧美一三区三区四区免费在线看| 色综合天天综合色综合av| 制服丝袜亚洲网站| 91麻豆精品国产91久久久久久久久 | 亚洲一区免费观看| 青青青伊人色综合久久| 国产一区二区三区美女| av在线一区二区| 欧美美女直播网站| 久久先锋资源网| 日韩午夜精品电影| 中文字幕免费不卡| 亚洲成人7777| 国产精品中文有码| 91国产精品成人| 久久久综合视频| 欧美大片在线观看| 亚洲欧洲av色图| 午夜私人影院久久久久| 国内外成人在线| 色悠久久久久综合欧美99| 欧美精品电影在线播放| 中文字幕国产一区| 三级精品在线观看| 成人国产精品免费观看视频| 久久婷婷成人综合色| 日韩亚洲电影在线| 亚洲素人一区二区| 韩国在线一区二区| 国产精品1024| 69成人精品免费视频| 国产精品毛片a∨一区二区三区| 久久久久国产精品麻豆ai换脸 | 国产精品欧美一级免费| 五月天亚洲精品| av在线不卡电影| 色综合天天在线| 精品国产伦理网| 亚洲国产精品天堂| 不卡的av中国片| 精品国产91久久久久久久妲己| 精品国产精品一区二区夜夜嗨 | 亚洲精品欧美综合四区| 久久99精品国产麻豆婷婷洗澡| 精品一区二区三区欧美| 在线精品亚洲一区二区不卡| 欧美日韩国产天堂| 精品少妇一区二区三区在线播放| 久久嫩草精品久久久精品一| 亚洲电影在线免费观看| 91视频在线观看| 在线播放日韩导航| 欧美成人精品高清在线播放| 夜夜夜精品看看| 91亚洲精品久久久蜜桃网站| 欧美日韩中文字幕一区| 中文字幕一区二区三区在线播放 | 91精品在线免费| 一区二区三区四区在线免费观看| 亚洲成av人片一区二区| 色综合一区二区| 欧美国产日韩精品免费观看| 国产在线不卡一区| 一区二区三区欧美日韩| 97精品电影院| 欧美日韩国产一级二级| 亚洲国产成人tv| 欧美这里有精品| 亚洲精品在线免费观看视频| 亚洲欧美一区二区三区久本道91| 午夜精品在线看| 精品视频一区三区九区| 亚洲在线免费播放| 在线精品视频免费播放| 亚洲主播在线观看| 欧美三级视频在线| 亚洲va天堂va国产va久| 欧美日韩一卡二卡三卡 | 国产亚洲精品7777| 国产91综合一区在线观看| 久久久久国产精品厨房| 高清成人在线观看| 91精品国产91久久久久久最新毛片| 国产婷婷色一区二区三区| 国产99久久久久久免费看农村| 在线观看亚洲精品| 亚洲成人av福利| 日韩视频永久免费| 国产精一品亚洲二区在线视频| 91久久奴性调教| 亚洲国产日韩一级| 日韩一区二区精品葵司在线 | 亚洲第一会所有码转帖| 777色狠狠一区二区三区| 欧美最猛性xxxxx直播| 精品剧情在线观看| 调教+趴+乳夹+国产+精品| 91精品国产欧美一区二区成人| 亚洲精品视频一区二区| 欧美精品第1页| 国产乱一区二区| 国产精品网站导航| 欧美亚洲日本一区| 久久不见久久见免费视频1| 欧美三级乱人伦电影| 蜜臀av在线播放一区二区三区| 91麻豆国产香蕉久久精品| 国产网站一区二区| 一本久久a久久免费精品不卡| 国产精品色哟哟网站| 欧美影院精品一区| 久久aⅴ国产欧美74aaa| 国产精品久久久久久户外露出 | 国产精品久久看| 欧美在线你懂得| 亚洲免费高清视频在线| 69久久夜色精品国产69蝌蚪网| 亚洲成人激情综合网| 精品国产乱码久久久久久1区2区 | 激情久久五月天| 18成人在线观看| 成人影视亚洲图片在线| 亚洲成人一区二区在线观看| 久久亚洲综合av| 欧美艳星brazzers| 亚洲福利一区二区| 久久精品日韩一区二区三区| 欧美在线观看一区二区| 国产大陆a不卡| 午夜av电影一区| 国产精品国产馆在线真实露脸| 97成人超碰视| 激情综合色综合久久综合| 久久久青草青青国产亚洲免观| 欧美精品免费视频| 国产精品一区二区在线观看网站| 久久亚洲精品国产精品紫薇| 国产精品影视在线| 偷窥国产亚洲免费视频| 自拍偷拍亚洲欧美日韩| 欧美偷拍一区二区| 成人污视频在线观看| 精品亚洲成a人| 丝袜美腿成人在线|