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

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

?? spi.c

?? 一款車載DVD的車機(jī)源程序(正在生成中的哦)
?? C
字號(hào):
/***************************************************************************
Project  :  Car two ting dvd System
Compiler :  ST7 HiCross C (HiWARE)
Module   :  autos.c 
Version  :  V 1.0
Created  :  24 11, 2005
Author   :  tomi / SA
Description
         -  Main Program of the car two ting dvd System.  
Modified
		 - tomi
***************************************************************************/
#include "SPI.h"
#include "Libr.h"
#include "St72321.h"
#include "IOport.h"
#include "Sys_config.h"

void SPI_HostWriteByte(unsigned char wByte);
unsigned char SPI_HostReadByte(void);
unsigned char AT45DB041B_StatusRegisterRead(void);
void AT45DB041B_ContinuousArrayRead(unsigned int PA,unsigned int BFA,unsigned char *pHeader,unsigned int len);
void AT45DB041B_BufferWrite(unsigned char buffer,unsigned int BFA,unsigned char *pHeader,unsigned int len);
void AT45DB041B_BufferToMainMemoryPageProgramWithBuilt_inErase(unsigned char buffer,unsigned int PA,unsigned int BFA,unsigned char *pHeader,unsigned int len);
void AT45DB041B_BufferToMainMemoryPageProgramWithoutBuilt_inErase(unsigned char buffer,unsigned int PA,unsigned int BFA,unsigned char *pHeader,unsigned int len);

void SPI_HostWriteByte(unsigned char wByte)
{
	unsigned char i,j;
	for(i=0;i<8;i++)
		{ 
        if((wByte<<i)&0x80)
        	Set_SPI_SI_high;
        else
        	Set_SPI_SI_low;
        Set_SPI_CLK_low; 
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        Set_SPI_CLK_high;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
	 	}
}

unsigned char SPI_HostReadByte(void)
{ 
    unsigned char i,j,rByte=0; 
    for(i=0;i<8;i++)
    	{ 
        Set_SPI_CLK_low; 
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        Set_SPI_CLK_high; 
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
        asm	nop;
         
        rByte<<=1; 
        if(IS_SPI_SO_high)
        rByte|=1; 
    	} 
    return rByte; 
} 

unsigned char AT45DB041B_StatusRegisterRead(void)
{ 
    unsigned char R_data; 
                 
    Set_SPI_CS_low; 
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    SPI_HostWriteByte(0x57); 
    R_data=SPI_HostReadByte(); 
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    Set_SPI_CS_high; 
    return R_data;     
} 


/******************************************************************************/ 
/*描述:                                                                      */ 
/*    When the last bit in the main memory array has been read,the device will*/ 
/*    continue reading back at the beginning of the first page of memory.As w-*/ 
/*    ith crossing over page boundaries,no delays will be incurred when wrapp-*/ 
/*    ing around from the end of the array to the beginning of the array.     */ 
/*參數(shù):                                                                      */ 
/*    PA      - 頁(yè)地址,0~2047                                                */ 
/*    BFA     - 指定BUFFER中的起始寫入地址                                    */ 
/*    pHeader - 指定數(shù)據(jù)的首地址                                              */ 
/*    len     - 指定數(shù)據(jù)的長(zhǎng)度                                                */ 
/******************************************************************************/ 
void AT45DB041B_ContinuousArrayRead(unsigned int PA,unsigned int BFA,unsigned char *pHeader,unsigned int len)
{        
    unsigned int i=0;       
     
    while(i++<255)
    	{if(AT45DB041B_StatusRegisterRead()&0x80)
    		{break;}
    	} 
    Set_SPI_CS_low;   
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    SPI_HostWriteByte(0xe8);     
    SPI_HostWriteByte((unsigned char)(PA>>7));     
    SPI_HostWriteByte((unsigned char)((PA<<1)|(BFA>>8))); 
    SPI_HostWriteByte((unsigned char)BFA); 
    for(i=0;i<4;i++){SPI_HostWriteByte(0x00);} 
     
    for(i=0;i<len;i++)
   		pHeader[i]=SPI_HostReadByte(); 
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    asm	nop;
    Set_SPI_CS_high; 
} 
/******************************************************************************/ 
/*描述:                                                                      */ 
/*    將指定數(shù)據(jù)寫入從某個(gè)地址(0~263)開始的BUFFER中。                       */ 
/*參數(shù):                                                                      */ 
/*    buffer  - 選擇BUFFER,01H選擇BUFFER 1,02H選擇BUFFER 2                  */ 
/*              在該指令序列中,操作碼84H選擇BUFFER 1,87H選擇BUFFER 2        */ 
/*    BFA     - BUFFER中的起始地址,0~263                                     */ 
/*    pHeader - 待存數(shù)據(jù)的頭指針                                              */ 
/*    len     - 待存數(shù)據(jù)的長(zhǎng)度1~264                                           */ 
/******************************************************************************/ 
void AT45DB041B_BufferWrite(unsigned char buffer,unsigned int BFA,unsigned char *pHeader,unsigned int len)
{ 
    unsigned int i=0; 
     
    while(i++<255)
    	{if(AT45DB041B_StatusRegisterRead()&0x80)
    		{break;}
    	} 
    Set_SPI_CS_low;     
    switch(buffer)
    	{ 
        case 1:SPI_HostWriteByte(0x84);break; 
        case 2:SPI_HostWriteByte(0x87);break; 
    	} 
    SPI_HostWriteByte(0x00); 
    SPI_HostWriteByte((unsigned char)(BFA>>8)); 
    SPI_HostWriteByte((unsigned char)BFA); 
     
    for(i=0;i<len;i++)
    	SPI_HostWriteByte(pHeader[i]);
    Set_SPI_CS_high;         
} 
/******************************************************************************/ 
/*描述:                                                                      */ 
/*    將指定數(shù)據(jù)寫入從某個(gè)地址(0~263)開始的頁(yè)中:包含2個(gè)動(dòng)作,首先將指定數(shù)據(jù)*/ 
/*    寫入到BUFFER 1或者BUFFER 2中,其中可以指定BUFFER中的起始寫入地址,此寫入*/ 
/*    動(dòng)作不影響B(tài)UFFER中其它地址中的數(shù)據(jù),然后再將BUFFER中的整個(gè)數(shù)據(jù)寫入到某指*/ 
/*    定頁(yè)中(帶預(yù)擦除)。                                                      */ 
/*參數(shù):                                                                      */ 
/*    buffer  - 選擇BUFFER,01H選擇BUFFER 1,02H選擇BUFFER 2                  */ 
/*    PA      - 頁(yè)地址,0~2047                                                */ 
/*    BFA     - 指定BUFFER中的起始寫入地址                                    */ 
/*    pHeader - 指定數(shù)據(jù)的首地址                                              */ 
/*    len     - 指定數(shù)據(jù)的長(zhǎng)度                                                */ 
/******************************************************************************/ 
void AT45DB041B_BufferToMainMemoryPageProgramWithBuilt_inErase(unsigned char buffer,unsigned int PA,unsigned int BFA,unsigned char *pHeader,unsigned int len)
{ 
    unsigned int i; 

    AT45DB041B_BufferWrite(buffer,BFA,pHeader,len); 
    while(i++<1000)
    	{if(AT45DB041B_StatusRegisterRead()&0x80)
    		{break;}
    	} 
             
    Set_SPI_CS_low;         
    switch(buffer)
    	{ 
        case 1:SPI_HostWriteByte(0x83);break; 
        case 2:SPI_HostWriteByte(0x86);break; 
    	} 
    SPI_HostWriteByte((unsigned char)(PA>>7)); 
    SPI_HostWriteByte((unsigned char)(PA<<1)); 
    SPI_HostWriteByte(0x00); 
    Set_SPI_CS_high; 
} 
/******************************************************************************/ 
/*描述:                                                                      */ 
/*    與上一個(gè)函數(shù)的唯一區(qū)別是不帶預(yù)擦除。                                    */ 
/******************************************************************************/ 
void AT45DB041B_BufferToMainMemoryPageProgramWithoutBuilt_inErase(unsigned char buffer,unsigned int PA,unsigned int BFA,unsigned char *pHeader,unsigned int len)
{ 
    unsigned int i=0; 

    AT45DB041B_BufferWrite(buffer,BFA,pHeader,len); 
    while(i++<1000)
    	{if(AT45DB041B_StatusRegisterRead()&0x80)
    		{break;}
    	} 
     
    Set_SPI_CS_low;  
    SPI_HostWriteByte(0x88+buffer); 
    SPI_HostWriteByte((unsigned char)(PA>>7)); 
    SPI_HostWriteByte((unsigned char)(PA<<1)); 
    SPI_HostWriteByte(0x00); 
     
    for(i=0;i<len;i++)
    	SPI_HostWriteByte(pHeader[i]); 
    Set_SPI_CS_high; 
} 












?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人一区在线| 国产乱妇无码大片在线观看| 91网址在线看| 日韩一区中文字幕| 成人av小说网| 国产精品私人自拍| 成人综合激情网| 国产精品久久久久国产精品日日| 国产黄色精品网站| 国产亚洲午夜高清国产拍精品| 国产美女在线观看一区| 国内精品免费在线观看| 欧美精品一区二区在线观看| 国产一区二区三区av电影| 久久一区二区视频| 国产麻豆9l精品三级站| 欧美激情一区二区三区| 成人国产一区二区三区精品| 欧美国产成人精品| 成人激情文学综合网| 1024成人网| 欧美无乱码久久久免费午夜一区| 亚洲高清视频在线| 欧美一级理论性理论a| 美女视频黄免费的久久| 久久午夜羞羞影院免费观看| 大美女一区二区三区| 最新不卡av在线| 在线日韩一区二区| 爽好多水快深点欧美视频| 日韩一级大片在线观看| 精久久久久久久久久久| 日本一区二区三区在线不卡| caoporm超碰国产精品| 亚洲一区二区视频在线| 欧美一级高清大全免费观看| 国产综合色视频| 国产精品每日更新| 欧美色图天堂网| 麻豆精品在线观看| 国产日韩视频一区二区三区| 99国产精品视频免费观看| 亚洲国产精品久久久久秋霞影院 | 亚洲欧洲三级电影| 日本高清视频一区二区| 日韩电影在线免费| 久久精品人人做人人爽97| eeuss鲁片一区二区三区 | 久久99国产精品成人| 国产无人区一区二区三区| 99久久er热在这里只有精品15 | 精品一区二区在线观看| 国产精品美女一区二区在线观看| 欧美系列一区二区| 久久99这里只有精品| 中文字幕日本不卡| 7777精品伊人久久久大香线蕉经典版下载| 韩国一区二区视频| 一区二区三区日韩欧美| 日韩免费视频一区| 91免费看`日韩一区二区| 日韩成人精品在线| 椎名由奈av一区二区三区| 91麻豆精品国产综合久久久久久| 国产成人精品免费视频网站| 亚洲电影你懂得| 国产亚洲精品bt天堂精选| 欧美午夜精品久久久久久孕妇| 韩国av一区二区| 亚洲欧美一区二区三区久本道91 | 中文字幕一区日韩精品欧美| 91麻豆精品国产91久久久资源速度| 懂色中文一区二区在线播放| 亚洲国产成人av好男人在线观看| 欧美激情中文不卡| 欧美高清视频一二三区| av成人老司机| 久久99热这里只有精品| 一区二区在线免费观看| 久久久精品黄色| 欧美高清视频不卡网| 91蜜桃网址入口| 国产乱码字幕精品高清av| 午夜在线成人av| 国产精品久久久久一区| 欧美va亚洲va| 欧美精品一级二级三级| 91亚洲永久精品| 国产精品白丝jk黑袜喷水| 午夜精品久久久| 亚洲黄一区二区三区| 中文字幕国产精品一区二区| 日韩一区二区三区四区五区六区| 91成人网在线| 成人午夜av电影| 国产在线观看一区二区| 日本欧美肥老太交大片| 亚洲一区二区三区四区的| 亚洲图片激情小说| 欧美国产激情一区二区三区蜜月| 欧美成va人片在线观看| 欧美日韩国产乱码电影| 在线亚洲人成电影网站色www| 国产91丝袜在线播放| 国内久久精品视频| 久久99精品一区二区三区三区| 午夜国产精品一区| 亚洲丰满少妇videoshd| 亚洲精品免费视频| 亚洲欧美日韩国产成人精品影院| 国产精品蜜臀在线观看| 中文文精品字幕一区二区| 久久免费看少妇高潮| 26uuu久久天堂性欧美| 日韩欧美区一区二| 欧美一级免费观看| 欧美精品日韩综合在线| 欧美在线观看一二区| 在线观看中文字幕不卡| 色婷婷久久久综合中文字幕| 91农村精品一区二区在线| av中文字幕亚洲| 97久久久精品综合88久久| 成人综合在线视频| 成人av资源在线| 成人免费视频视频| 成人免费视频视频| av午夜一区麻豆| 99视频精品免费视频| 96av麻豆蜜桃一区二区| 91免费观看国产| 欧美性色黄大片手机版| 欧美日韩国产在线播放网站| 欧美美女一区二区在线观看| 欧美电影在线免费观看| 91精品国产色综合久久ai换脸 | 亚洲大片一区二区三区| 亚洲高清久久久| 同产精品九九九| 蜜臀av一区二区| 狠狠久久亚洲欧美| 国产成人a级片| 99热在这里有精品免费| 91精品福利视频| 欧美丰满一区二区免费视频| 日韩视频一区二区三区在线播放 | 久久久亚洲午夜电影| 欧美激情一区在线观看| 亚洲色图20p| 亚洲国产一区二区三区| 日韩黄色免费网站| 精品系列免费在线观看| 粉嫩一区二区三区在线看| 91在线精品一区二区三区| 欧美视频一区在线| 日韩免费在线观看| 国产欧美一区二区三区鸳鸯浴| 国产精品理论在线观看| 一区二区三区四区在线| 石原莉奈在线亚洲三区| 国模一区二区三区白浆| 成人av在线一区二区三区| 91精品1区2区| 日韩欧美不卡一区| 国产嫩草影院久久久久| 亚洲日本成人在线观看| 香蕉乱码成人久久天堂爱免费| 精品一区二区三区视频| av在线不卡观看免费观看| 欧美日韩三级一区二区| 久久婷婷色综合| 一区二区在线看| 另类人妖一区二区av| av不卡在线播放| 欧美电影在线免费观看| 国产亚洲精品aa午夜观看| 一区二区三区成人在线视频| 久久99国产乱子伦精品免费| 99久久精品费精品国产一区二区| 6080午夜不卡| 国产日产亚洲精品系列| 亚洲福利一区二区| 国产成人亚洲综合a∨猫咪| 91国产精品成人| 精品国产91乱码一区二区三区| 亚洲欧洲www| 免费日韩伦理电影| 91亚洲国产成人精品一区二三 | 国产三级精品视频| 亚洲高清中文字幕| 丁香亚洲综合激情啪啪综合| 欧美日韩一区二区三区视频| 久久美女艺术照精彩视频福利播放| 一区二区三区免费看视频| 麻豆精品久久精品色综合| 91老师片黄在线观看| 久久综合精品国产一区二区三区 | 日本最新不卡在线| fc2成人免费人成在线观看播放 | 亚洲三级在线播放|