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

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

?? extflash.c

?? 利用zigbee進行定位的程序
?? C
字號:
//----------------------------------------------------////-------Institute Of  Computing Technology-----------////------------Chinese Academic  Science---------------////-----中國科學院計算技術研究所先進測試技術實驗室-----////----------------------------------------------------///** * @copyright:nbicc_lpp * @this is this is extflash support  code * @author  *              zhouqiang      (zhouhongren@163.com) *               * @data:2005.12.29 * @version:0.0.1 * @updata:$ * */#include "extflash.h"//--------------------------------//FLASH_IN--so//FLASH_OUT--si//FLASH_CLK--sck//FLASH_SELECT----cs//--------------------------------   //OS_SET_FLASH_SELECT_PIN();inline void extflash_ini(void){	OS_MAKE_FLASH_SELECT_OUTPUT();  	OS_MAKE_FLASH_OUT_OUTPUT();	OS_MAKE_FLASH_IN_INPUT();       OS_MAKE_FLASH_CLK_OUTPUT();	          OS_SET_FLASH_SELECT_PIN();	flash_busy=0;       /*another method	//----------------------------	//initial uart1 to syn model	//----------------------------		 UCSR1B = 0x00; //disable while setting baud rate	 UCSR1A = 0x03;	 UCSR1C = 0x41;	 UBRR1L = 0x22; //set baud rate lo	 UBRR1H = 0x00; //set baud rate hi	 UCSR1B = 0x18;       //115200 	//----------------------------	*/}inline static  void sendonebyte(uint8_t byte){    	uint8_t  tempbyte;	tempbyte=byte;	{ os_atomic_t _nesc_atomic = os_atomic_start();   				 {	for (int i=0;i<8;i++)		{						OS_CLR_FLASH_CLK_PIN();						if (tempbyte&0x80)				{										PORTD|=_BV(PIND3);									}			else				{										PORTD&=~_BV(PIND3);									}						//printf("\nPD is %02x\n",PORTD);			OS_SET_FLASH_CLK_PIN();									tempbyte<<=1;		}              	}			 os_atomic_end(_nesc_atomic); }}inline static  uint8_t readonebyte(void){       	uint8_t tempbyte=0;	{ os_atomic_t _nesc_atomic = os_atomic_start();   				 {	for (int i=0;i<7;i++)		{			OS_CLR_FLASH_CLK_PIN();			OS_SET_FLASH_CLK_PIN();			//printf("\nPD is %02x\n",PIND);			if (PIND&_BV(PIND2))				tempbyte|=0x01;			else				tempbyte&=0xfe;			//OS_CLR_FLASH_CLK_PIN();						tempbyte<<=1;		}	OS_CLR_FLASH_CLK_PIN();       OS_SET_FLASH_CLK_PIN();	   		//printf("\nPD is %02x\n",PIND);	if (PIND&_BV(PIND2))		tempbyte|=0x01;	else		tempbyte&=0xfe;	//OS_CLR_FLASH_CLK_PIN();	//printf("\ntempbyte  is %02x\n",tempbyte);		}	os_atomic_end(_nesc_atomic); }	return tempbyte;					}void Continuous_Array_Read(uint16_t address,uint16_t page,uint8_t * buffer,uint16_t numbers){	extflash_head temphead;	uint8_t * tempbuffer;	tempbuffer=buffer;	uint16_t tempnumbers;	tempnumbers=numbers;	temphead._extflash_head.opcode=Continuou_Array_Read;	temphead._extflash_head.page=page&0x07ff;	temphead._extflash_head.block_byte=address&0x01ff;	//OS_CLR_FLASH_CLK_PIN();		OS_CLR_FLASH_SELECT_PIN();//選通flash		sendonebyte(temphead.v[3]);		sendonebyte(temphead.v[2]);		sendonebyte(temphead.v[1]);		sendonebyte(temphead.v[0]);				//------------------------------------		sendonebyte(0x00);		sendonebyte(0x00);		sendonebyte(0x00);		sendonebyte(0x00);		//------------------------------------		for (uint16_t i=0;i<tempnumbers;i++)			{				tempbuffer[i]=readonebyte();			}	OS_SET_FLASH_SELECT_PIN();	}void Main_Memory_PageRead(uint16_t page,uint16_t address,uint8_t * buffer,uint16_t numbers){	extflash_head temphead;	uint8_t  * tempbuffer=buffer;	uint16_t tempnumbers;	tempnumbers=numbers;	temphead._extflash_head.opcode=Main_Memory_Page_Read;	temphead._extflash_head.page=page&0x07ff;	temphead._extflash_head.block_byte=address&0x01ff;		OS_CLR_FLASH_SELECT_PIN();//選通flash			sendonebyte(temphead.v[3]);		sendonebyte(temphead.v[2]);		sendonebyte(temphead.v[1]);		sendonebyte(temphead.v[0]);		//for (int i=0;i<4;i++)		//	printf("\nsend %02x\n",temphead.v[i]);		sendonebyte(0x00);		sendonebyte(0x00);		sendonebyte(0x00);		sendonebyte(0x00);		//------------------------------------		for (uint16_t i=0;i<tempnumbers;i++)			{				tempbuffer[i]=readonebyte();			}			OS_SET_FLASH_SELECT_PIN();}void Buffer_Read(uint8_t buffernum,uint16_t address,uint16_t numbers,uint8_t* buffer)//use buffer1_read or buffer2_read{	extflash_head temphead;	uint8_t  * tempbuffer=buffer;	temphead._extflash_head.opcode=buffernum;	temphead._extflash_head.page=0x0000;	temphead._extflash_head.block_byte=address&0x01ff;		OS_CLR_FLASH_SELECT_PIN();//選通flash			sendonebyte(temphead.v[3]);		sendonebyte(temphead.v[2]);		sendonebyte(temphead.v[1]);		sendonebyte(temphead.v[0]);		//for (int i=0;i<4;i++)		//	printf("\nsend %02x\n",temphead.v[i]);		sendonebyte(0x00);		for (int i=0;i<numbers;i++)			{				tempbuffer[i]=readonebyte();			}			OS_SET_FLASH_SELECT_PIN();}uint8_t  Status_Register_Get(void){	extflash_head temphead;	uint8_t state=0;	temphead._extflash_head.opcode=Status_Register_Read;	temphead._extflash_head.page=0x0000;	temphead._extflash_head.block_byte=0x0000;	{ os_atomic_t _nesc_atomic = os_atomic_start();   				 {	OS_CLR_FLASH_SELECT_PIN();//選通flash			sendonebyte(temphead.v[3]);		state=readonebyte();						OS_SET_FLASH_SELECT_PIN();			}	os_atomic_end(_nesc_atomic); }	return state;}void Buffer_Write(uint8_t buffernum,uint16_t address,uint16_t numbers,uint8_t* buffer )//use buffer1_write or buffer2_write{	extflash_head temphead;	uint8_t  * tempbuffer=buffer;	uint16_t tempnumbers=numbers;	temphead._extflash_head.opcode=buffernum;	temphead._extflash_head.page=0x0000;	temphead._extflash_head.block_byte=address&0x01ff;		OS_CLR_FLASH_SELECT_PIN();//選通flash		sendonebyte(temphead.v[3]);		sendonebyte(temphead.v[2]);		sendonebyte(temphead.v[1]);		sendonebyte(temphead.v[0]);		//for (int i=0;i<4;i++)		//	printf("\nsend %02x\n",temphead.v[i]);		//printf("\nbegin write to buffer\n");		for (int i=0;i<tempnumbers;i++)			{				sendonebyte(tempbuffer[i]);			}	OS_SET_FLASH_SELECT_PIN();}void Buffer_To_Main_Erase(uint8_t buffernum,uint16_t page){	extflash_head temphead;		temphead._extflash_head.opcode=buffernum;	temphead._extflash_head.block_byte=0x0000;	temphead._extflash_head.page=page&0x07ff;		OS_CLR_FLASH_SELECT_PIN();//選通flash		sendonebyte(temphead.v[3]);		sendonebyte(temphead.v[2]);		sendonebyte(temphead.v[1]);		sendonebyte(temphead.v[0]);		//for (int i=0;i<4;i++)		//	printf("\nsend %02x\n",temphead.v[i]);		//printf("\nbegin write to buffer\n");			OS_SET_FLASH_SELECT_PIN();}void Buffer_To_Main_noErase(uint8_t buffernum,uint16_t page)//不推薦使用,使用前需要先pageerase{	extflash_head temphead;		temphead._extflash_head.opcode=buffernum;//use Buffer1_Main_noErase or Buffer2_Main_noErase	temphead._extflash_head.block_byte=0x0000;	temphead._extflash_head.page=page&0x07ff;		OS_CLR_FLASH_SELECT_PIN();//選通flash		sendonebyte(temphead.v[3]);		sendonebyte(temphead.v[2]);		sendonebyte(temphead.v[1]);		sendonebyte(temphead.v[0]);		OS_SET_FLASH_SELECT_PIN();}void PageErase(uint16_t page){	extflash_head temphead;		temphead._extflash_head.opcode=Page_Erase;	temphead._extflash_head.block_byte=0x0000;	temphead._extflash_head.page=page&0x07ff;		//OS_CLR_FLASH_CLK_PIN();		OS_CLR_FLASH_SELECT_PIN();//選通flash		sendonebyte(temphead.v[3]);		sendonebyte(temphead.v[2]);		sendonebyte(temphead.v[1]);		sendonebyte(temphead.v[0]);	OS_SET_FLASH_SELECT_PIN();}void Memory_Pageprogram_throuth_Buffer(uint8_t buffernum,uint16_t page,uint16_t address,uint16_t numbers,uint8_t * buffer){	extflash_head temphead;	uint16_t tempnumbers=numbers;	uint8_t *tempbuffer=buffer;	temphead._extflash_head.opcode=buffernum;	temphead._extflash_head.block_byte=address&0x01ff;	temphead._extflash_head.page=page&0x07ff;	OS_CLR_FLASH_SELECT_PIN();//選通flash		sendonebyte(temphead.v[3]);		sendonebyte(temphead.v[2]);		sendonebyte(temphead.v[1]);		sendonebyte(temphead.v[0]);		for (int i=0;i<tempnumbers;i++)			{				sendonebyte(tempbuffer[i]);			}	OS_SET_FLASH_SELECT_PIN();}//-----------------------------------------------------------------------------------////-----------Adiitional_Commands函數完成三個功能://-----------1.main memory page to buffer transfer//-----------2.main memory page to buffer compare//-----------3.auto page rewrite//-----------commandtype list://-------------------------1.Auto_Page_Rewrite_Buffer1 or Auto_Page_Rewrite_Buffer2//-------------------------2.Main_Pageto_Buffer1_compare or Main_Pageto_Buffer2_compare//-------------------------3.Main_Pageto_Buffer1 or Main_Pageto_Buffer2//-----------------------------------------------------------------------------------//void Adiitional_Commands(uint8_t commandtype,uint16_t page){	extflash_head temphead;		temphead._extflash_head.opcode=commandtype;	temphead._extflash_head.block_byte=0x0000;	temphead._extflash_head.page=page&0x07ff;			OS_CLR_FLASH_SELECT_PIN();//選通flash		sendonebyte(temphead.v[3]);		sendonebyte(temphead.v[2]);		sendonebyte(temphead.v[1]);		sendonebyte(temphead.v[0]);	OS_SET_FLASH_SELECT_PIN();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产日韩亚洲一区| 激情五月激情综合网| 亚洲高清视频的网址| 青青青爽久久午夜综合久久午夜| 亚洲电影第三页| 国内精品伊人久久久久av影院 | 久久99久久久欧美国产| 91美女精品福利| 国产欧美精品国产国产专区| 亚洲国产色一区| 国产午夜亚洲精品不卡| 亚洲高清视频在线| 色综合久久综合中文综合网| 成人精品免费网站| 亚洲女人小视频在线观看| 不卡视频在线看| 婷婷国产在线综合| 婷婷综合五月天| 久久精品国产999大香线蕉| 久久久久国产一区二区三区四区| 亚洲欧美日韩在线播放| 99国产精品国产精品毛片| 亚洲黄色在线视频| 欧美日韩一区在线观看| 成人免费视频国产在线观看| 亚洲欧美国产毛片在线| 久久精品欧美一区二区三区不卡 | 欧美美女一区二区| 日本一区二区综合亚洲| 国产高清在线观看免费不卡| 一区二区三区加勒比av| 国产精品国产精品国产专区不片| 国产精品欧美一级免费| 一个色在线综合| 欧美巨大另类极品videosbest| av综合在线播放| 91精品国产综合久久精品app| 国产婷婷色一区二区三区四区| 中文字幕一区二区5566日韩| 日韩国产一二三区| 色域天天综合网| 国产精品毛片a∨一区二区三区| 亚洲国产日韩精品| 日韩毛片精品高清免费| 亚洲成精国产精品女| 国产宾馆实践打屁股91| 欧美一级久久久久久久大片| 亚洲愉拍自拍另类高清精品| 97久久超碰精品国产| 国产精品污污网站在线观看| 国内精品不卡在线| 久久久久久久久久久久久久久99 | 色八戒一区二区三区| 丰满白嫩尤物一区二区| 色综合久久中文综合久久97| 欧美精品久久天天躁| 国产精品美日韩| 国产麻豆视频精品| 九色|91porny| 亚洲欧美日韩精品久久久久| www日韩大片| 成人av影视在线观看| 美女一区二区视频| 亚洲乱码国产乱码精品精可以看| 久久一区二区三区四区| 国产午夜精品久久久久久久| 亚洲成a人片在线观看中文| 国产成人综合在线观看| 2021中文字幕一区亚洲| 爽爽淫人综合网网站| 欧美中文字幕一二三区视频| 中文字幕av一区二区三区高 | 国产成人精品免费一区二区| 日韩欧美国产麻豆| 亚洲成人一二三| 欧美视频日韩视频| 日韩精品色哟哟| 欧美国产禁国产网站cc| 视频一区中文字幕国产| 青娱乐精品视频在线| 国产suv一区二区三区88区| 国产福利一区二区| 成人永久免费视频| 日韩丝袜美女视频| 欧美xxxxx牲另类人与| 国产精品黄色在线观看| 欧美日韩1区2区| 日韩av二区在线播放| 国产91在线观看| 91小视频免费观看| 成人免费在线视频| 国产精品1区2区3区| 国产精品成人网| www.欧美亚洲| 国产精品热久久久久夜色精品三区| 精品制服美女丁香| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 色婷婷久久一区二区三区麻豆| 亚洲美女屁股眼交3| 久久综合五月天婷婷伊人| 成人黄色综合网站| 韩国毛片一区二区三区| 一区二区三区av电影 | 欧美色视频一区| 狠狠色丁香久久婷婷综合_中| 国产精品久久久久久久裸模| 日韩一区二区视频| 欧美日韩国产影片| 一本一道久久a久久精品| 国产在线视频精品一区| 午夜欧美在线一二页| 亚洲欧美日韩系列| 亚洲乱码国产乱码精品精的特点| 欧美激情综合五月色丁香| 欧美日韩成人综合在线一区二区| 99视频在线观看一区三区| 国内久久精品视频| 成人深夜视频在线观看| 国产高清在线观看免费不卡| 极品瑜伽女神91| 美女精品自拍一二三四| 麻豆久久一区二区| 久久福利资源站| 国产成人av电影在线播放| 捆绑紧缚一区二区三区视频| 久久精品久久99精品久久| 免费久久精品视频| 国产一区免费电影| 99久久精品国产导航| 91免费版在线| 日韩一区二区电影在线| 91麻豆精品国产综合久久久久久| 91精品国产色综合久久不卡电影 | 欧美色倩网站大全免费| 欧美剧在线免费观看网站| 久久精品夜夜夜夜久久| 日韩一区二区麻豆国产| 国产日产欧美一区二区视频| 亚洲精品国久久99热| 久久精品99国产精品| 99精品热视频| 日韩精品中午字幕| 亚洲在线视频免费观看| 成人黄页在线观看| 精品福利一区二区三区免费视频| 亚洲精品免费在线| 国产98色在线|日韩| 亚洲精品一线二线三线| 亚洲第一成人在线| 91在线视频免费观看| 日韩精品一区二| 亚洲国产欧美日韩另类综合| 精品系列免费在线观看| 欧美酷刑日本凌虐凌虐| 亚洲精品第1页| 欧美日韩一区二区三区高清| 亚洲18色成人| 欧美一二三四区在线| 午夜电影网亚洲视频| 91精品国产入口| 视频一区视频二区中文| 欧美一级一级性生活免费录像| 亚洲成人av电影| 日韩欧美专区在线| 国产一区在线看| 国产欧美日韩在线| 成人污视频在线观看| 国产精品婷婷午夜在线观看| 高清成人在线观看| 亚洲精品中文在线| 欧美久久久久久久久| 黄色日韩三级电影| 欧美三级日本三级少妇99| 午夜精品在线视频一区| 日韩精品中文字幕一区二区三区| 九九**精品视频免费播放| 久久亚洲一区二区三区明星换脸| 国产乱码精品一品二品| 亚洲乱码国产乱码精品精可以看| 91精品办公室少妇高潮对白| 免费高清在线视频一区·| 日本一区二区三区在线观看| 欧美日韩一区在线| 精品午夜久久福利影院| 秋霞电影网一区二区| 欧美专区日韩专区| 国产一区二区三区电影在线观看| 国产精品久久久久一区二区三区| 欧美性极品少妇| 91视频免费看| 国产aⅴ精品一区二区三区色成熟| 午夜a成v人精品| 亚洲免费大片在线观看| 国产精品免费久久| 2023国产精品| 欧美激情一区二区三区在线| 欧美一级一区二区| 日韩视频免费直播| 精品国产免费视频| 欧美精品一区在线观看|