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

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

?? smb363.c

?? 加速度傳感器
?? C
字號(hào):
#include	<reg931.h>
#include	<stdio.h>
#include	<math.h>
#include	<intrins.h>
#include	<flashiap.h>
#include	"ad7705.h"
#include	"resconfig.h"
#include	"macrodefine.h"

//---------------------------------------------------------------------------
//功能:看門狗初始化
//---------------------------------------------------------------------------
void WatchdogInit(void)
{
  	WDL 	=0XFF; 				//看門狗復(fù)位時(shí)間
  	EA 		=0;
  	WDCON 	=0XE6;    //選擇看門狗振蕩器為看門狗時(shí)鐘源;//0XE5;選擇PCLK為看門狗時(shí)鐘源
  	WFEED1 	=0XA5;
  	WFEED2 	=0X5A;
  	EA 		=1;
}
///---------------------------------------------------------------------------
//功能:關(guān)看門狗定時(shí)器時(shí)鐘
//---------------------------------------------------------------------------
/*void WatchdogStop(void)
{
	EA 		=0;
	WDCON 	=0XE1;
	WFEED1 	=0XA5;
	WFEED2	 =0X5A;
	EA 		=1;
} */
//---------------------------------------------------------------------------
//功能:喂狗程序
//---------------------------------------------------------------------------
void WatchdogFeed(void)
{
  	EA =0;
  	WFEED1 	=0XA5;
  	WFEED2 	=0X5A;
  	EA	 	=1;
}
void Init_SPI(void)
{
	SPCTL 	=0XDC;//工作頻率1/4PCLK 先高后低 主機(jī) 忽略片選 空閑時(shí)高電平 前沿驅(qū)動(dòng)后沿采樣
}
//SPI通訊 用查詢方式 行參為發(fā)送數(shù)據(jù) 返回讀到數(shù)據(jù)
uint8 Communication_SPI(uint8 TDATA)
{
	uint8 temp;
	SPDAT 	=TDATA;
	while((SPSTAT &0X80)==0);
	temp 	=SPDAT;
	SPSTAT |=0XC0;
	return temp;
}
//I/O口初始化
void Init_IO(void)
{
	P0M1 	=0X00;
	P0M2 	=0X00;		//P0口全部為雙向I/O
	P1M1 	=0X2C;
	P1M2 	=0X0C;		//P1口7、6、1、0為雙向I/O;5為輸入;3、2為開(kāi)漏
	P2M1 	=0X00;
	P2M2 	=0X00;		//P2口全部為雙向I/O
	P3M1 	=0X00;
	P3M2 	=0X00;		//P3口全部為雙向I/O
	P0 		=0XFF;
	P1 		=0XFF;
	P2 		=0XFF;
	P3 		=0XFF;
}
//串口初始化
void Init_Uart(void)
{
	SCON 	=0X52;
	BRGCON 	=0X02;
	BRGR1 	=0X01;//BRGR1_DATA;
	BRGR0 	=0X70;//BRGR0_DATA;
	BRGCON 	=0X03;
	SSTAT 	=0X20;
	REN 	=1;
}
void Serial_Send(uint8 a)      //串口發(fā)送      
{
   SBUF	=a;
   while(TI!=1);
   TI	=0;
}
//定時(shí)器0初始化
void Init_Timer0(void)
{
  	DIVM 	=0;   			//不分頻
  	TMOD 	=0X01;			//設(shè)置T0作定時(shí)器用,并且工作在模式1
  	TAMOD 	=0X00;
  	TL0 	=TL0DAT;
  	TH0 	=TH0DAT;
}
//啟動(dòng)定時(shí)器0
void T0Run(void)
{
	TR0 	=1; 
}
//停止定時(shí)器0
//void T0Stop(void)
//{
//  	TR0 	=0;
//}
//開(kāi)啟定時(shí)器0中斷
void EnT0Int(void)
{
  	ET0 	=1;
}
//關(guān)閉定時(shí)器0
//void InvT0Int(void)
//{
//  	ET0 	=0;
//}
//復(fù)位AD7705
void Rest_AD7705(void)
{
	uint16 i =0x0fff;
	WatchdogFeed();
	ADRstn 	=0;
	while(i !=0)
	{
		i--;
	}
	ADRstn 	=1;
	bChannel =0;
	WatchdogFeed();
}
//AD7705初始化
void Init_AD7705(uint8 Channel)
{
	Rest_AD7705();
	ADCSn 	=0;
	_nop_(); _nop_();_nop_();_nop_();
	Config_ClkReg(Channel);		//配置時(shí)鐘寄存器
	Config_SetupReg(Channel);	//配置設(shè)置寄存器
	_nop_(); _nop_();_nop_();_nop_();
	ADCSn 	=1;
}
//配置各個(gè)通道的設(shè)置寄存器函數(shù)
void Config_SetupReg(uint8 Channel)
{
	switch(Channel)
	{
		case 0://初始化通道0
			Communication_SPI(CMD_W_SetReg_0);//激活0通道,下一步操作選擇寫設(shè)置寄存器
			Communication_SPI(CMD_SelfCalibration);
		break;
		case 1://初始化通道1
			Communication_SPI(CMD_W_SetReg_1);//激活1通道,下一步操作選擇寫設(shè)置寄存器
			Communication_SPI(CMD_SelfCalibration);
		break;
		default:
		break;
	} 	
}
//配置各個(gè)通道的時(shí)鐘寄存器函數(shù)
void Config_ClkReg(uint8 Channel)
{
	switch(Channel)
	{
		case 0://初始化通道0
			Communication_SPI(CMD_W_ClkReg_0);//激活0通道,下一步操作選擇寫時(shí)鐘寄存器
			Communication_SPI(CMD_Clk_Config);
		break;
		case 1://初始化通道1
			Communication_SPI(CMD_W_ClkReg_1);//激活1通道,下一步操作選擇寫時(shí)鐘寄存器
			Communication_SPI(CMD_Clk_Config);
		break;
		default:
		break;
	} 	
}
//讀AD7705轉(zhuǎn)換數(shù)據(jù)
void ReadAD7705Data(void)
{
	float	tempx=0.0,tempy=0.0;
	if(DRDYn ==1)
	{
		return;
	}
	ADCSn =0;
	AD7705Dog =0;
	_nop_(); _nop_();_nop_();_nop_();
	if(bChannel ==0)
	{
		Communication_SPI(CMD_R_DataReg_0);
		Axis_X.axis_voltage[0] = Communication_SPI(0xff);
		Axis_X.axis_voltage[1] = Communication_SPI(0xff);
		_nop_(); _nop_();_nop_();_nop_();
		Communication_SPI(CMD_W_SetReg_1);
		Communication_SPI(CMD_Clk_Config);
		WatchdogFeed();
		Axis_X_Buff[Axis_X_Counter] = Axis_X.Axis_voltage;
		Axis_X_Counter++;
		if(Axis_X_Counter>4)
		{
			Axis_X_Counter =0;
			Axis_X_Angle = IntChangeFloat(Axis_X_Buff);
			//if(bDataEnd ==1)
			//{
			//	printf("XV: %2.5f,XA: %2.4f\n",Axis_X_Angle,Axis_Y_Angle);
			//	bDataEnd =0;
			//}			
			bInitialX	=1;
		}  
	}
	else
	{
		Communication_SPI(CMD_R_DataReg_1);
		Axis_Y.axis_voltage[0] = Communication_SPI(0xff);
		Axis_Y.axis_voltage[1] = Communication_SPI(0xff);
		_nop_(); _nop_();_nop_();_nop_();
		Communication_SPI(CMD_W_SetReg_0);
		Communication_SPI(CMD_Clk_Config);
		WatchdogFeed();
		Axis_Y_Buff[Axis_Y_Counter] = Axis_Y.Axis_voltage;
		Axis_Y_Counter++;
		if(Axis_Y_Counter>4)
		{
			Axis_Y_Counter =0;
			Axis_Y_Angle = IntChangeFloat(Axis_Y_Buff);
			bInitialX	=1;	   
		}  
	}	
	if(bDataEnd ==1)
	{
//		printf("X= %2.5f,Y =%2.5f\n",Axis_X_Angle,Axis_Y_Angle);
		if(Axis_X_Angle>1.2884)
			tempx	=(Axis_X_Angle-1.2884)*0.971628449;
		else
			tempx	=(Axis_X_Angle-1.2844)*1.0078836667;
		if(Axis_Y_Angle>1.2574)
			tempy	=(Axis_Y_Angle-1.2574)*0.987109728;
		else
			tempy	=(Axis_Y_Angle-1.2574)*0.9809692;
		Axis_X_Angle_Temp.Zero_axis = 180.0/Pi*asin(tempx*2.0+0.001);
		Axis_Y_Angle_Temp.Zero_axis = 180.0/Pi*asin(tempy*2.0);
//		printf("X= %2.5f,Y =%2.5f\n",tempx,tempy);
		WatchdogFeed();
//		printf("X= %2.5f,Y =%2.5f\n",Axis_X_Angle,Axis_Y_Angle);
//		printf("%2.5f",Axis_X_Angle);
		Axis_X_HEX.Zero_axis	=Axis_X_Angle_Temp.Zero_axis;
		Axis_Y_HEX.Zero_axis	=Axis_Y_Angle_Temp.Zero_axis;
//以ASCII碼發(fā)送
		if(HEXorASIIC_Temp==0x30)
		{
			if(((Axis_X_Angle_Temp.Zero_axis)-Zero_X.Zero_axis)<(-15.0))
			{
				printf("X =-----;");
			}
			else if(((Axis_X_Angle_Temp.Zero_axis)-Zero_X.Zero_axis)>15.0)
			{
				printf("X =+++++;");
			}
			else if(((Axis_X_Angle_Temp.Zero_axis)-Zero_X.Zero_axis)>(-15.0)&&((Axis_X_Angle_Temp.Zero_axis)-Zero_X.Zero_axis)<15.0)
			{
				printf("X =%2.2f;",((Axis_X_Angle_Temp.Zero_axis)-Zero_X.Zero_axis));
			}
			WatchdogFeed();
			if((Axis_Y_Angle_Temp.Zero_axis-Zero_Y.Zero_axis)<(-15.0))
			{
				printf("Y =-----\n");
			}
			else if((Axis_Y_Angle_Temp.Zero_axis-Zero_Y.Zero_axis)>15.0)
			{
				printf("Y =+++++\n");
			}				
			else if((Axis_Y_Angle_Temp.Zero_axis-Zero_Y.Zero_axis)>(-15.0)&&(Axis_Y_Angle_Temp.Zero_axis-Zero_Y.Zero_axis)<15.0)
			{
				printf("Y =%2.2f\n",(Axis_Y_Angle_Temp.Zero_axis-Zero_Y.Zero_axis));
			}
		}
//以16近制發(fā)送		
		else
		{
			if(((Axis_X_HEX.Zero_axis)-Zero_X.Zero_axis)>(-90.0) && ((Axis_X_HEX.Zero_axis)-Zero_X.Zero_axis)<90.0)
			{
				//SEND DATA;
				if(Axis_X_Angle_Temp.Zero_axis-Zero_X.Zero_axis>0)
				{
				 	Serial_Send(0xa5);
					Serial_Send('-');
					Serial_Send((int)(Axis_X_Angle_Temp.Zero_axis-Zero_X.Zero_axis+0.5));
					Serial_Send(';');
				}
				else
				{
				  	Serial_Send(0xa5);
					Serial_Send('+');
					Serial_Send((int)(Axis_X_Angle_Temp.Zero_axis-Zero_X.Zero_axis-0.5));
					Serial_Send(';');
				}
				WatchdogFeed();
			}
			else
			{
				if(Axis_X_Angle_Temp.Zero_axis-Zero_X.Zero_axis>0)
				{
				 	Serial_Send(0xa5);
					Serial_Send('-');
					Serial_Send((int)(Axis_X_Angle_Temp.Zero_axis-Zero_X.Zero_axis+0.5));
					Serial_Send(';');
				}
				else
				{
				  	Serial_Send(0xa5);
					Serial_Send('+');
					Serial_Send((int)(Axis_X_Angle_Temp.Zero_axis-Zero_X.Zero_axis-0.5));
					Serial_Send(';');
				}
				ALARM_X	=1;
			}
			if((Axis_Y_HEX.Zero_axis-Zero_Y.Zero_axis)>-45.0 && (Axis_Y_HEX.Zero_axis-Zero_Y.Zero_axis)<45.0)
			{
				if(Axis_Y_Angle_Temp.Zero_axis-Zero_Y.Zero_axis>0)
				{
					Serial_Send('+');
					Serial_Send((int)(Axis_Y_Angle_Temp.Zero_axis-Zero_Y.Zero_axis+0.5));
					Serial_Send(0x5a);
				}
				else
				{
					Serial_Send('-');
					Serial_Send((int)(Axis_Y_Angle_Temp.Zero_axis-Zero_Y.Zero_axis-0.5));
					Serial_Send(0x5a);	
				}
				WatchdogFeed();
			}
			else
			{
				//SANDDATA
				if(Axis_Y_Angle_Temp.Zero_axis-Zero_Y.Zero_axis>0)
				{
					Serial_Send('+');
					Serial_Send((int)(Axis_Y_Angle_Temp.Zero_axis-Zero_Y.Zero_axis+0.5));
					Serial_Send(0x5a);
				}
				else
				{
					Serial_Send('-');
					Serial_Send((int)(Axis_Y_Angle_Temp.Zero_axis-Zero_Y.Zero_axis-0.5));
					Serial_Send(0x5a);	
				}
			}	
		}
		WatchdogFeed();
		bDataEnd =0;
	}
//	printf("X	=%x,Y	=%x\n",Axis_X_Buff[0],Axis_Y_Buff[0]);			
	_nop_(); _nop_();_nop_();_nop_();
	ADCSn =1;
}
float IntChangeFloat(uint16 *pAxis_Buff)
{
	uint8 i;
	float temp[5];
	float tempbuff;
	tempbuff	=0;
	WatchdogFeed();
	for(i =0;i<5;i++)
	{
		temp[i] =((*(pAxis_Buff+i))*LSB);//-2.5)/2.0);
	}
	WatchdogFeed();
	for(i =0;i<5;i++)
	{
		tempbuff += temp[i];
	}
	databuff[testcount] = tempbuff/5.0;
	testcount++;
	if(testcount>2)
	{
		testcount =0;
		if(databuff[0]>databuff[1])
		{
			if(databuff[0]<databuff[2])
			{
				tempbuff = databuff[0];
			}
			else if(databuff[1]<databuff[2])
			{
				tempbuff = databuff[2];
			}
			else
			{
				tempbuff = databuff[1];
			}
		}
		else
		{
			if(databuff[0]>databuff[2])
			{
				tempbuff = databuff[0];
			}
			else if(databuff[1]>databuff[2])
			{
				tempbuff = databuff[2];
			}
			else
			{
				tempbuff = databuff[1];
			}			
		}
		if(bChannel ==1)
		{
			bDataEnd =1;
			bChannel =0;
			Config_SetupReg(0);
		}
		else
		{
			bChannel =1;
			Config_SetupReg(1);
		}
//		printf("tempbuff	=%2.5f\n",tempbuff);
		return (tempbuff);
	}
	WatchdogFeed();
	//return tempbuff;
}
//定時(shí)器0中斷
void T0Int(void) interrupt 1
{
  TF0 = 0;
  TL0 = TL0DAT;
  TH0 = TH0DAT;
  if(bInitialX ==0)
  {
  	return;
  }
  //if(bInitialY ==0)
  //{
  //	return;
  //}
  TransUpdata++;
  if(TransUpdata>1000)
  {
 	TransUpdata =0;
	//printf("X: %2.5f\n",Axis_X_Angle);
  }
  AD7705Dog++;
  if(AD7705Dog>5000)
  {
  	Init_AD7705(0);
  }
}

void Serial() interrupt 4 using 1
{
 	if(RI)
    {
	  	CommandData[Command_i-1] = SBUF;
	  	if(CommandData[Command_i-1] == 0x0d)
	    {
		   	RIFlag = 1;
		   	Command_i = 7;
		}
	  	Command_i--;
		if(Command_i==0)
		{
			Command_i	=6;	
		}
	}						
 	RI = 0;
}
void	Delay(void)
{
	int	i;
	for(i=500;i>0;i--);
}		
void	main(void)
{
	uint8	i;
	Init_SPI();	
	Init_IO();
	Init_Uart();
	Init_Timer0();
	HEXorASIIC_Temp	=HEXorASIIC;
	Init_AD7705(0);
	EnT0Int();
	T0Run();
	EA 	=1;
	ES	=1;
	WatchdogInit();
	while(1)
	{
//		printf("hello world!\n");
		if(ZERO==0)
		{
			Delay();
			if(ZERO==0)
			{
			  	EA =0;
				for(i =0;i<8;i++)
				{
					FLASH_WriteByte(&(Zero_X.zero[i]),Axis_X_Angle_Temp.zero[i]);
					FLASH_WriteByte(&(Zero_Y.zero[i]),Axis_Y_Angle_Temp.zero[i]);
				}
				EA	=1;
			}
			else
				return;
		}
		ReadAD7705Data();
/*		if(RIFlag==1)
		{
			SerialRange();
			RIFlag	=0;
		}	  */
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线观看一区| 国产综合成人久久大片91| 日韩小视频在线观看专区| 国产黄色精品网站| 亚洲第一激情av| 久久男人中文字幕资源站| 日本高清无吗v一区| 激情小说欧美图片| 亚洲综合在线电影| 国产精品三级视频| 精品国产凹凸成av人导航| 欧美综合天天夜夜久久| 狠狠久久亚洲欧美| 男男视频亚洲欧美| 亚洲在线免费播放| 自拍偷拍亚洲欧美日韩| 欧美成人r级一区二区三区| 欧美三级电影在线观看| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 青草av.久久免费一区| 综合欧美一区二区三区| 久久久国产一区二区三区四区小说 | 2023国产精品自拍| 欧美艳星brazzers| 91视频国产资源| 国产成人综合亚洲91猫咪| 美女视频一区二区| 免费在线观看视频一区| 亚洲国产另类av| 一区二区三区在线视频观看| 日本一区二区三区久久久久久久久不 | 免费观看一级特黄欧美大片| 亚洲国产成人91porn| 尤物在线观看一区| 亚洲精品你懂的| 亚洲视频资源在线| 亚洲欧洲美洲综合色网| 国产精品短视频| 亚洲欧美日韩一区二区三区在线观看| 国产精品青草综合久久久久99| 久久婷婷成人综合色| 久久色在线观看| 久久精品亚洲国产奇米99| 国产亚洲婷婷免费| 国产精品久久久久一区| 亚洲色图第一区| 一区二区在线观看视频| 亚洲激情五月婷婷| 午夜国产不卡在线观看视频| 日韩国产精品大片| 久久狠狠亚洲综合| 国产剧情在线观看一区二区| 国产激情一区二区三区桃花岛亚洲| 国产精品18久久久久| 风间由美一区二区av101 | 欧美一区二区三区思思人| 日韩视频永久免费| 久久综合九色综合欧美亚洲| 国产欧美一区二区精品忘忧草| 国产精品久久久久久久第一福利| 日韩毛片视频在线看| 怡红院av一区二区三区| 婷婷开心激情综合| 国产毛片精品视频| 91丨porny丨首页| 欧美在线播放高清精品| 日韩一区二区在线免费观看| 久久久九九九九| 一区二区三区美女视频| 日韩经典一区二区| 国产福利一区在线观看| 色综合久久66| 欧美一区二区三区免费视频 | 2024国产精品视频| 亚洲美女视频一区| 日本va欧美va欧美va精品| 国产精品亚洲视频| 欧美日韩中文字幕一区| 久久久久一区二区三区四区| 亚洲人成网站在线| 日本成人中文字幕| 97久久精品人人爽人人爽蜜臀| 欧美日韩高清不卡| 欧美激情一区二区三区全黄| 亚洲观看高清完整版在线观看 | 国产一区二区三区久久悠悠色av| 99re视频这里只有精品| 日韩精品影音先锋| 一区二区三区影院| 国产美女娇喘av呻吟久久| 欧美体内she精视频| 久久麻豆一区二区| 天天影视色香欲综合网老头| 国产成人免费视| 5858s免费视频成人| 国产欧美1区2区3区| 美腿丝袜亚洲色图| 色视频成人在线观看免| 久久精品人人做人人综合 | 韩日精品视频一区| 欧美日韩一区三区四区| 中文字幕在线一区| 黄页视频在线91| 欧美日韩国产在线播放网站| 中文字幕一区二区三区在线播放| 日本女人一区二区三区| 色狠狠综合天天综合综合| 欧美激情一区二区| 久久国产人妖系列| 欧美酷刑日本凌虐凌虐| 1区2区3区精品视频| 国产精品996| 2017欧美狠狠色| 久久精品国产亚洲5555| 欧美乱熟臀69xxxxxx| 亚洲日本免费电影| 成人性生交大片免费看中文| 日韩一区二区三区电影在线观看| 亚洲乱码一区二区三区在线观看| 国产精品系列在线观看| 久久婷婷色综合| 久久99国产精品久久| 日韩亚洲欧美中文三级| 日韩精品成人一区二区三区| 欧美日韩久久一区| 亚洲va在线va天堂| 色综合一区二区三区| 1000部国产精品成人观看| 成人高清视频在线| 国产女人水真多18毛片18精品视频| 狠狠色丁香久久婷婷综| 久久综合九色综合欧美就去吻| 久久99精品久久久久久国产越南| 91精品国产高清一区二区三区 | 亚洲国产美女搞黄色| 在线日韩一区二区| 亚洲精品一卡二卡| 欧洲国产伦久久久久久久| 亚洲制服丝袜av| 欧美色涩在线第一页| 丝袜美腿亚洲一区| 日韩一区二区三区av| 日韩av电影免费观看高清完整版| 欧美精品自拍偷拍| 美女一区二区三区在线观看| 欧美va日韩va| 国产精品亚洲第一| 亚洲欧洲精品天堂一级| 欧美午夜精品理论片a级按摩| 亚洲成人av资源| 欧美v亚洲v综合ⅴ国产v| 国产自产视频一区二区三区| 国产精品欧美经典| 色乱码一区二区三区88| 性做久久久久久久免费看| 日韩精品一区二区三区四区 | 国产精品自拍在线| 中文字幕日韩欧美一区二区三区| 91亚洲精品久久久蜜桃网站| 亚洲一区在线播放| 91精品国产综合久久久久| 精品一区二区免费视频| 国产精品视频九色porn| 精品视频一区三区九区| 久久国产尿小便嘘嘘尿| 国产精品免费av| 欧美日韩大陆在线| 国产一区二区三区免费| 一区二区三区资源| 欧美xxxx在线观看| 91碰在线视频| 蜜桃精品在线观看| 日韩美女视频19| 在线播放91灌醉迷j高跟美女| 国产精品资源网| 午夜视频在线观看一区| 国产亚洲福利社区一区| 在线免费观看成人短视频| 国内精品国产成人国产三级粉色| 亚洲欧洲av色图| 日韩一区二区三免费高清| av在线不卡免费看| 蜜臀精品久久久久久蜜臀| 亚洲男同1069视频| 337p粉嫩大胆噜噜噜噜噜91av | 精品国产一区二区三区久久影院| 成人av先锋影音| 蜜桃视频一区二区三区| 亚洲精品免费一二三区| 久久久不卡影院| 91.麻豆视频| 99热这里都是精品| 激情综合一区二区三区| 亚洲福利视频一区| 国产精品美女一区二区三区 | www国产精品av| 欧美人与禽zozo性伦| 91在线视频免费91| 国产乱码字幕精品高清av| 日韩专区中文字幕一区二区|