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

📄 send_lla.c

📁 单片机C源程序souce
💻 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 + -