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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lna3.c

?? GSM低噪聲放大器模塊監控處理程序
?? C
?? 第 1 頁 / 共 4 頁
字號:
							break;	
			case poffset2:	 Prmter1.POFFSET2=*P++ ;
							wrom(poff2add,Prmter1.POFFSET2);
//							buff=rrom(poff2add);
//							if(buff!=Prmter1.POFFSET2)
//							{
//								wrom(poff2add,Prmter1.POFFSET2);
//							}			
							length--; 
							break;	
			case ctrbb:	 Prmter1.CTRBB=*P++ ;
							wrom(ctrbbadd,Prmter1.CTRBB);
//							buff=rrom(ctrbbadd);
//							if(buff!=Prmter1.CTRBB)
//							{
//								wrom(ctrbbadd,Prmter1.CTRBB);
//							}			
							length--; 
							break;				
			default: 	receive_buf[9] = *--P;
						receive_buf[8] = *--P;
						erro = erro | 0x02;
						length = 0;
						break;//特殊處理
		}
	}
	if(erro & 0x02)
	{
		length = 2;//設置參數失敗
	//	receive_buf[4] = 0x05;
	}
	else
	{
		length = receive_buf[7];
	}
	return length;
}
/**********************************************************
** 功能說明:  參數查詢函數
** 輸入參數:  無	 
** 輸出參數:  
** 返 回 值:  參數個數
** 引用函數: 
*********************************************************/
uchar Query_Parameter()
{
	auto union buf_union comm;
	uchar length;
	uchar * P1 = 0;
	erro = 0;
	P1 = receive_buf+8;
	length = receive_buf[7];
	while(length)
	{
		comm.buf2[0] = *P1++;
		comm.buf2[1] = *P1++;
		length = length - 2;
		switch(comm.buf1)
		{
			case maxpwr:  	* P1++ = Prmter1.max;		
					    	length--;     	 
						break;
			case gcu1:	      * P1++  = Prmter1.GCU1;
						length--;
						break;
			case gcu2:	      * P1++  = Prmter1.GCU2;
						length--;
						break;	
			case maxpu:  	* P1++ = Prmter1.maxu;
					* P1++ = 0;		
					    	length--;
					    	 length--;    	 
						break;	
			case idst:  	* P1++ = Prmter1.IDST;		
					    	length--;   	 
						break;				
			case pwr:	  //Prmter1.PWRJZ=TEMP(3);
  						 // * P1++ = Prmter1.PWR+Prmter1.PWRJZ; 
  						 * P1++ = Prmter1.PWR; 
						length--; 
						break;
			case lanalm:		* P1++ = Prmter1.alm;
					    	length--;
						break;
			case pwrctr:		 * P1++ = Prmter1.ctr;
					    	length--;
						break;
			case v7:		* P1++ = Prmter1.v7L;
						length--;
						* P1++ = Prmter1.v7H;
					    	length--;
						break;
			case temp:		* P1++ = Prmter1.TEMP;
						length--;
						break;	
			case pwru:		* P1++ = Prmter1.PWRU; 	
						length--; 
						* P1++ = 0;
					    	length--;
						break;
			case ctru:		 * P1++ = Prmter1.CTRU;
					    	length--;
					    	* P1++ = 0;
					    	length--;
						break;
			case v7u:		* P1++ = Prmter1.v7U;
						length--;
						* P1++ = 0;
					    	length--;
						break;
			case tempu:		* P1++ = Prmter1.TEMPU;
						length--;
						* P1++ = 0;
					    	length--;
						break;	
			case idu:		* P1++ = Prmter1.IDU;
						length--;
						* P1++ = 0;
					    	length--;
						break;	
			case id1:		* P1++ = Prmter1.ID1;
						length--;
						* P1++ = 0;
					    	length--;
						break;		
			case poffset1:	 *P1++=Prmter1.POFFSET1 ;			
							length--; 
							break;	
			case poffset2:	 *P1++=Prmter1.POFFSET2 ;			
							length--; 
							break;	
			case ctrbb:	 *P1++=Prmter1.CTRBB ;			
							length--; 
							break;			
		//	case gcu1jz: 	*P1++= Prmter1.GCU1JZ;
		//				  length--; 
		//				  break;
		//	case gcu2jz:  	*P1++= Prmter1.GCU2JZ;
		//				  length--; 
		//				  break;													
			default: 	receive_buf[9] = *--P1;
						receive_buf[8] = *--P1;
						erro = erro | 0x01;
						length = 0;
						break;//特殊處理
		}
	}
	if(erro & 0x01)
	{
		length = 2;//查詢參數失敗
		//receive_buf[4] = 0x05;
	}
	else
	{
		length = receive_buf[7];
	}
	return length;
}

/**********************************************************
** 功能說明:  發送參數函數
** 輸入參數:  	類型:	uchar	應答標志位
		類型:	uchar	命令體的長度	   	 
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*********************************************************/		
void send_reply_flag(uchar reply_flag,uchar length)
{
	auto uchar start,i;
	receive_buf[7] = length;
	receive_buf[6] = reply_flag;	
	start = 1;                 //CRC校驗
	length = length + 7;
	CheckCRC(receive_buf,length,start,pChecksum);
	receive_buf[length + 1] = pChecksum[0];
	receive_buf[length + 2] = pChecksum[1];	
	length = length + 3;//加上校驗字節(2BYTE),再加一個字節,就為包的總長度-1
	receive_buf[length] = 0x4e;//最后一個字節是包尾
	
	portd_wbuf = portd_wbuf | 0x80; //485發送使能
	PORTD = portd_wbuf;		
	
	TXEN = 1;                       //USART 使能
	delay_unit(2000);
	length = length + 1;
	
	for(i = 0;i < length;i ++)
	{
		if((i==0)||(i==(length-1)))
		{
			TXREG = receive_buf[i];	
		}
		else if(receive_buf[i]==0x5e)
		{
			TXREG = 0x5e;
			receive_buf[i]=0x5d;
			i--;
		}
		else if(receive_buf[i]==0x4e)
		{
			TXREG = 0x5e;
			receive_buf[i]=0x4d;
			i--;
		}
		else
		{
			TXREG = receive_buf[i];		
		}
		while(TRMT == 0)
		{
			;
		}
	}
	delay_unit(1000);
	TXEN = 0;
	portd_wbuf = portd_wbuf & 0x7f;
	PORTD = portd_wbuf;   
	headend_flag=0x00;  
	  tran_flag=0;//轉義處理標志位,1:進行了0X4E的轉義處理(將0X4E轉義為0X5E,0X4D);0:未進行轉義處理

	return;             
}

/**********************************************************
** 功能說明: CRC校驗函數
** 輸入參數:  	類型:	uchar*	須校驗的數組
		類型:	uchar	命令體的長度
		類型:	uchar	開始位置
		類型:	uchar*	校驗配置表	   	 
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*********************************************************/	
void CheckCRC(uchar *pData, uchar length,uchar start, uchar *pChecksum)
{
	auto uchar  i = 0;
	auto uint checksum = 0;
	for(i = 0;i < length;i ++)
	{		
		checksum = ( checksum << 8) ^ CRCTable[( checksum >> 8 ) ^ pData[i + start]];
	}
	pChecksum[0] = checksum % 256;  
	pChecksum[1] = checksum / 256;   
	return;
}

/**********************************************************
** 功能說明:  接受數據數組的初始化
** 輸入參數:  
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
***********************************************************/
void receive_free()
{
	auto uchar i;
	for(i = 0; i < BUF_LENGTH; i ++)
	{
		receive_buf[i] = 0;
	}
}

/**********************************************************
** 功能說明: 查詢溫度值或頻率信道號
** 輸入參數:  fstadr  類型:uint: 溫度值首地址或頻率值首地址	 
			  bytenumb  類型:uchar:占字節數,1代表占1個字節,2代表占2個字節
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*********************************************************/
uchar Query_tp(uint fstadr,uchar bytenumb)
{
	uchar i;
	uchar length;
	uchar buf;
	//buf = receive_buf[9];//包序號
	
	//length =rrom(tpdots) ;//溫度或頻率劃分點數
	buf=bytenumb*30;
	for(i=0; i<buf; i++)
	{
		receive_buf[i+10]= rrom(fstadr+i);
	}
	length =buf+2;

	return length;	
}

/**********************************************************
** 功能說明: 查詢所有溫補、標稱值補償、頻響補償參數編碼,編碼占2個字節
** 輸入參數:  adsnumb  類型:uchar: =1,選擇溫補編碼表格;=2,選擇標稱值補償編碼表格;=3,選擇頻補編碼表格
			  bubuf	 類型:uchar: 溫度或標稱值或頻響補償參數總數
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*********************************************************/
uchar Query_csd(uchar adsnumb,uchar bubuf )
{
	uchar i,buf;
	uchar length;
	buf = receive_buf[9];//包序號
	
	for(i=0; i<(bubuf*2); i++)
	{
		dog();	       			
		if(adsnumb==1)
		{
			receive_buf[i+10]= prtemp[i];
		}

		else
		{
			receive_buf[i+10]= attact[i];
		}
	}
	length =bubuf*2+2;
	return length;	
}

/**********************************************************
** 功能說明: 查詢所有溫補、標稱值補償、頻響補償參數表內容,所有補償參數占1個字節
** 輸入參數:  firstadr  類型:uint: 補償參數表的首地址
			  bubuf	 類型:uchar: 溫度或標稱值或頻響補償參數總數
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*********************************************************/
uchar Query_cszd(uint firstadr,uchar bubuf)
{
	uchar i,buf;
	uchar length;
	buf = receive_buf[10];//位置	
	for(i=0; i<bubuf; i++)
	{
	dog();
	receive_buf[i+11]= rrom(firstadr+i+(buf-1)*bubuf);
	}
	length =bubuf+3;
	return length;		
}
/**********************************************************
** 功能說明: 設置溫度值或頻率信道號
** 輸入參數:  fstadr  類型:uint: 溫度值首地址或頻率值首地址	 
			  bytenumb  類型:uchar:占字節數,1代表占1個字節,2代表占2個字節
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*********************************************************/
uchar Set_tp(uint fstadr )
{
	uchar i;
	uchar length;
	uchar *P = 0;
	//uchar buf;
	//erro=0;
	length = receive_buf[7]-2;//命令體長度-2
	//wrom(tpdots,length);//將溫度點數或頻率點數寫入EEPROM對應地址
//	buf = receive_buf[7];//包序號
	P = receive_buf+10;
	i=0;
	while(length)
	{
	dog();
	wrom(fstadr+i,*P++);
	i++;
	length--;
	}
//	length = receive_buf[5];
length = 2;//回應命令體為2字節
	return length;
}


/**********************************************************
** 功能說明: 設置所有溫補、標稱值補償、頻響補償參數表內容,所有補償參數占1個字節
** 輸入參數:  firstadr  類型:uint: 補償參數表的首地址
			  bubuf	 類型:uchar: 溫度或標稱值或頻響補償參數總數
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*********************************************************/
uchar Set_cszd(uint firstadr,uchar bubuf)
{	
	uchar i,buf;
	uchar length;
	uchar *P = 0;
	//erro=0;
	length = receive_buf[7]-3;
	buf = receive_buf[10];//位置
	P = receive_buf+11;
	i=0;
	while(length)
	{
	dog();
	wrom(firstadr+(buf-1)*bubuf+i,*P++);
	i++;
	length--;
	}
//	length = receive_buf[5];
length = 2;
	return length;		
}
/**********************************************************
** 功能說明: 中斷處理子程序(包括接收中斷、定時器中斷)
** 輸入參數:  
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*********************************************************/
void interrupt int_process(void)
{
	auto uchar i;
//	uchar buf;
	if(RCIF == 1)  //USART接收中斷標志位為1
	{
		if(portd_wbuf&0x80)//如果處于發送狀態,返回主程序,不處理緩沖區中的數據
		{
			return;
		}
		if(receive_over == 1 )//如果接收完成標志為1,則接收完成,不再接收數據.
		{
			return;
		}
		if(receive_cnt > 79)//接收緩沖超過80個字節時,就為溢出,將接收緩沖重新計數
		{
			receive_time_on = 0;//接收超時定時器開關關閉
			receive_time_count = 0;//接收超時定時計數器清零
			receive_cnt = 0;//發送或接收的字節數清零.
			for(i = 0; i < BUF_LENGTH; i++)  //將接收緩沖清零
			{
				receive_buf[i] = 0;
			}
			return;
		}		
		receive_buf[receive_cnt] = RCREG;
//		if (receive_cnt==1)
//		{
//			buf=receive_buf[receive_cnt];
//		}
		if(receive_buf[receive_cnt] == 0x4E)//接收到的字節是包頭或包尾
		{
			if(headend_flag==0x01)//判斷接收到的是包頭還是包尾,如果標志=1,則接收到過包頭,現在接收到的是包尾;
			{
				headend_flag=0x02;//接收到的是包尾
			}
			if(headend_flag==0x00)//判斷接收到的是包頭還是包尾,如果標志=0,則接收到的是包頭,之前沒接收到包尾和包頭;
			{
				receive_buf[0]=0x4E;
				headend_flag=0x01;//接收到的是包頭
				receive_cnt = 0x01;//接收的字節數為1個.
				receive_time_on = 0x01;//接收超時定時器開關打開
				receive_time_count = 0x00;//接收超時定時計數器清零
//				for(i = 0; i < BUF_LENGTH;i++)//將接收緩沖清零
//				{
//					receive_buf[i] = 0;
//				}
				return;				
			}
		}		
		else if(receive_buf[0] != 0x4E)//如果緩沖區接收到的第一個字節不是包頭
		{
			receive_cnt = 0x00;//發送或接收的字節數清零.
			receive_time_on = 0x00;//接收超時定時器開關關閉
			receive_time_count = 0x00;//接收超時定時計數器清零
			return;
		}	
		
		if((receive_buf[receive_cnt-1] == 0x5E)&&(tran_flag==0x00))//接收到轉義字節0x5E
		{
		//	tran_flag=0x01;
			if	(receive_buf[receive_cnt] == 0x4D)//0X5E的轉義處理
			{
				receive_buf[receive_cnt-1]	=0X4E;
				tran_flag=0x01;//完成轉義處理
				//receive_cnt--;
				return;
			}
			else if(receive_buf[receive_cnt]==0x5D)//0X5E的轉義處理
			{
				
				tran_flag=0x01;//完成轉義處理
				receive_buf[receive_cnt-1]=0x5E;
				//receive_cnt--;
				return;
			}
			else //說明接收錯誤,返回
			{
				tran_flag=0x00;
				headend_flag=0x00;
				receive_time_on = 0;//接收超時定時器開關關閉
				receive_time_count = 0;//接收超時定時計數器清零
				receive_cnt = 0;//發送或接收的字節數清零.
				return;
			}			
		}
		receive_cnt++;		
		if(headend_flag==0x02)//接收到了包頭和包尾,并且沒有接收到轉義字節0X5E或轉義處理已完成
		{
			tran_flag=0x00;
			headend_flag==0x00;//包頭包尾標志清零
			receive_time_on = 0;//接收超時定時器開關關閉
			receive_time_count = 0;//接收超時定時計數器清零
			receive_over = 1;//接收完成標志置1
			RCIE = 0;//接收允許標志位清零,不允許接收
			CREN = 0;  
			return;
		}
	}
	else if(TMR1IF == 1)
	{
		chushi++;
	//	if (chushi<=0x0d6b)
	//	{
			TMR1IF=0;
	//	}
		return;		
	}
	else if(TMR2IF == 1)
	{
	//	i= 100;
		TMR2IF =0;
		return;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色图一区二区三区| 欧美国产精品劲爆| 日本一区二区三区免费乱视频| 中文字幕不卡一区| 捆绑调教一区二区三区| 日本精品一区二区三区高清| 久久九九久精品国产免费直播| 亚洲v中文字幕| 成人国产电影网| 日韩午夜激情视频| 亚洲国产日韩综合久久精品| 国产v综合v亚洲欧| 日韩欧美激情在线| 亚洲一区在线视频观看| 99视频精品全部免费在线| 精品国产网站在线观看| 日韩高清中文字幕一区| 在线看日本不卡| 亚洲视频在线观看三级| 丁香啪啪综合成人亚洲小说 | 久久九九99视频| 午夜久久电影网| 欧洲激情一区二区| 亚洲天堂福利av| 不卡高清视频专区| 国产精品国产三级国产有无不卡| 久久99精品国产麻豆婷婷洗澡| 欧美精品一级二级| 亚洲成人在线免费| 欧美日韩激情在线| 日韩一区精品视频| 欧美日韩免费电影| 日韩电影在线观看一区| 欧美老年两性高潮| 日本亚洲一区二区| 日韩三级在线观看| 狠狠色2019综合网| 国产视频一区不卡| 成人av在线影院| 一区二区视频免费在线观看| 日本国产一区二区| 日韩精品视频网| 欧美一区二区国产| 激情深爱一区二区| 国产欧美日本一区视频| 99久久国产综合精品麻豆| 亚洲青青青在线视频| 日本乱人伦一区| 三级影片在线观看欧美日韩一区二区| 5566中文字幕一区二区电影| 蜜桃久久久久久| 国产亚洲美州欧州综合国| 国产不卡在线播放| 国产精品国产三级国产普通话99| 99精品视频一区二区| 亚洲成人av电影在线| 欧美大片在线观看| 波多野洁衣一区| 亚洲bt欧美bt精品| 26uuu精品一区二区| av欧美精品.com| 五月婷婷色综合| 国产欧美视频在线观看| 99久久精品国产精品久久| 午夜久久久久久久久久一区二区| www欧美成人18+| 色婷婷久久99综合精品jk白丝| 天堂一区二区在线免费观看| 国产日本欧美一区二区| 欧美丝袜第三区| 国产九色sp调教91| 亚洲一区二区欧美激情| 日韩免费性生活视频播放| av成人老司机| 免费一级欧美片在线观看| 中文字幕一区二区三区视频| 欧美精选一区二区| 99精品一区二区三区| 日韩黄色片在线观看| 久久综合狠狠综合久久激情 | 国产剧情av麻豆香蕉精品| 亚洲图片欧美视频| 欧美激情一区三区| 日韩美女在线视频| 欧美日韩三级在线| 成人av在线资源网| 国模无码大尺度一区二区三区| 亚洲一区二区三区美女| 欧美经典三级视频一区二区三区| 欧美精品第1页| 色呦呦日韩精品| av在线一区二区| 国产精品一区二区三区99| 青青草成人在线观看| 亚洲激情图片qvod| 日韩一区欧美小说| 国产性天天综合网| 精品伦理精品一区| 69堂精品视频| 欧美日韩不卡一区| 欧美亚洲高清一区二区三区不卡| 成人免费看黄yyy456| 国产一区二区三区在线观看免费| 日韩和欧美一区二区三区| 亚洲一区在线免费观看| 一区二区三区中文字幕在线观看| 欧美激情综合五月色丁香| 国产网站一区二区三区| 精品国产乱码久久久久久夜甘婷婷| 欧美日韩国产天堂| 欧美日韩国产片| 欧美视频一区二区| 欧美日韩国产成人在线免费| 在线观看www91| 欧美日韩在线直播| 欧美日韩和欧美的一区二区| 欧美三级电影在线观看| 欧美三级资源在线| 欧美乱妇一区二区三区不卡视频 | 国产精品99精品久久免费| 精品写真视频在线观看| 精品制服美女丁香| 国产一区二区导航在线播放| 国产精品一品二品| av一区二区三区四区| 日本久久电影网| 欧美日韩成人综合在线一区二区| 欧美福利视频一区| 日韩写真欧美这视频| 久久精品男人的天堂| 国产日产精品一区| 中文字幕中文字幕在线一区| 亚洲男同1069视频| 丝袜美腿亚洲色图| 国产一区久久久| av电影天堂一区二区在线| 在线观看免费一区| 制服丝袜国产精品| 国产日韩高清在线| 亚洲综合色区另类av| 免费的成人av| 成人妖精视频yjsp地址| 欧洲视频一区二区| 精品少妇一区二区三区日产乱码 | 亚洲伦在线观看| 日韩av电影免费观看高清完整版 | 欧美系列在线观看| 欧美大片国产精品| 中文字幕亚洲在| 亚洲成人激情综合网| 国产一区二区免费在线| 色综合久久中文字幕| 欧美一区中文字幕| 国产精品麻豆网站| 日韩av电影一区| 99国产精品久久久久久久久久| 欧美日韩国产经典色站一区二区三区| 欧美不卡在线视频| 亚洲黄色av一区| 国内精品伊人久久久久av影院| 91一区二区三区在线观看| 日韩一级黄色大片| 欧美国产日韩精品免费观看| 五月婷婷激情综合| 99精品一区二区| 精品盗摄一区二区三区| 一区二区高清视频在线观看| 寂寞少妇一区二区三区| 在线精品亚洲一区二区不卡| 久久久精品黄色| 日韩在线一二三区| 色综合久久综合网97色综合| 日韩欧美电影一二三| 亚洲国产精品麻豆| eeuss鲁片一区二区三区| 欧美电影免费观看高清完整版在线 | 激情伊人五月天久久综合| 色婷婷综合久久久中文一区二区 | 福利一区福利二区| 欧美xxxx老人做受| 亚洲成人动漫在线观看| 色诱亚洲精品久久久久久| 中文字幕精品综合| 国产在线播放一区二区三区| 欧美精品丝袜久久久中文字幕| 亚洲欧美日韩小说| 91影院在线观看| 国产精品传媒视频| 国产成人啪免费观看软件| 精品福利二区三区| 免费成人性网站| 日韩一级大片在线观看| 天天色天天操综合| 欧美日韩激情一区二区| 亚洲午夜一区二区| 欧美日韩三级一区| 日本欧美大码aⅴ在线播放| 欧美日精品一区视频| 亚洲国产精品天堂| 欧美日本不卡视频|