?? send_lla.c
字號:
#include "ext_temp.h"
extern senddsp(void);
extern unsigned char toasc(unsigned char m);
extern unsigned char *long_to_asc(long p);
extern unsigned char *char_to_asc(unsigned char m,bit ch);
extern wdt(void);
extern WriteCont(unsigned char CMD,unsigned char addr,unsigned char DataArray[],unsigned char offset);
extern send_lla(void)
{
unsigned char temp,i,*b;
long p;
unsigned char a[16];
char j;
wdt();
rdata[0]='$';rdata[1]='B';
rdata[2]='D';rdata[3]='L';
rdata[4]='L';rdata[5]='A';
rdata[6]=',';
//**緯度
// for (i=7;i<=40;i++)
if (lat_par>=0)
p=lat_par;
else
{
p=lat_par^0xffffffff;
p+=1;
}
temp=p/3600000; //緯度度部分(度)
b=char_to_asc(temp,0);
rdata[7]=*b++;
rdata[8]=*b;
/* rdata[7]=toasc(temp/10); //十位
rdata[8]=toasc(temp%10); //個位*/
/***********************/
temp=(p/60000)%60;//緯度分部分
b=char_to_asc(temp,0);
rdata[9]=*b++;
rdata[10]=*b;
/* rdata[9]=toasc(temp/10); //十位
rdata[10]=toasc(temp%10); //個位*/
for (i=0;i<4;i++)
lat_asc[i]=rdata[i+7]; //存取緯度ASCII值
rdata[11]='.';
/**********************/
b= long_to_asc(p);
for(i=12;i<=16;i++)//緯度分小數部分
{
rdata[i]=*b++;
}
/************************/
rdata[17]=',';
if (lat_par >=0)
rdata[18]='N'; //北緯
else
rdata[18]='S'; //南緯
//**經度
rdata[19]=',';
/******************************/
if (long_par>=0)
p=long_par;
else
{
p=long_par^0xffffffff;
p+=1;
}
//p=long_par;
temp=p/360000000; //經度 度
rdata[20]=toasc(temp); //百
temp=p/3600000%100;
b=char_to_asc(temp,0);
rdata[21]=*b++;
rdata[22]=*b;
/*****************************/
temp=(p/60000)%60;//經度 分
b=char_to_asc(temp,0);
rdata[23]=*b++;
rdata[24]=*b;
for(i=0;i<4;i++)
long_asc[i]=rdata[i+21];//存取經度ASCII值
rdata[25]='.';
/************************/
b= long_to_asc(p);
for(i=26;i<=30;i++)//經度分小數部分
{
rdata[i]=*b++;
}
rdata[31]=',';
if (long_par >=0)
rdata[32]='E'; //東經
else
rdata[32]='W'; //西經
rdata[33]=',';
/***************高度***********/
// p=high_par/100; //整數部分
if ((high_par&0x80000000)!=0)
{
p=high_par^0xffffffff; //取反
p+=1;rdata[34]='-';}
else
{
p=high_par%1000000;
rdata[34]=toasc(high_par/1000000);
} //取最高位
temp=p/10000; //千百
b=char_to_asc(temp,0);
rdata[35]=*b++;
rdata[36]=*b;
temp=p/100%100;//十個
b=char_to_asc(temp,0);
rdata[37]=*b++;
rdata[38]=*b;
rdata[39]='.';
temp=p%100;
b=char_to_asc(temp,0);
rdata[40]=*b++;
rdata[41]=*b;//小數
rdata[42]=0x0d;
rdata[43]=0x0a;
RXLen =44;
/****************************存取LLA幀***/
WriteCont(0x02,0x00,rdata,0);
WriteCont(0x02,0x10,rdata,16);
WriteCont(0x02,0x20,rdata,32);
WriteCont(0x02,0x30,rdata,48);
/********************************/
p=lat_par;
for(j=3;j>=0;j--)
{
a[j] =p;
p=p>>8;
}
p=long_par;
for (j=7;j>=4;j--)
{
a[j] =p;
p=p>>8;
}
p=high_par;
for (j=11;j>=8;j--)
{
a[j] =p;
p=p>>8;
}
WriteCont(0x02,0x90,a,0);
senddsp();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -