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

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

?? sdopration.c

?? SPI模式下
?? C
字號:
/*--------------------------------------------------------*/

#include "AT91SAM7X256.h"
#include "Board.h"
#include "mytype.h"
#include "integer.h"
#include "function.h"    //用來聲明各個外部函數
int error_flag=0;
int sdd_buf[512];
static uint8 spircvbyte;

void SSPI_Clk400k(void)
{	
	/* 設置SPI時鐘為300k,小于400k */
        uint32 reg;
	reg = AT91C_BASE_SPI0->SPI_CSR[3];
	reg = ( reg & ~(AT91C_SPI_SCBR) ) | ( (DWORD) 0xa0<< 8 ); 
	AT91C_BASE_SPI0->SPI_CSR[3] = reg;        
}

/*--------------------------------------------------------*/

MMC_Disable()
{
  AT91C_BASE_PIOA->PIO_SODR=PIN_CS_CARD_NEI; 
}

MMC_Enable()
{
  AT91C_BASE_PIOA->PIO_CODR=PIN_CS_CARD_NEI;
}

Read_Byte_MMC()
{
  while( !( AT91C_BASE_SPI0->SPI_SR & AT91C_SPI_TDRE ) ); // transfer compl. wait
  while( !( AT91C_BASE_SPI0->SPI_SR & AT91C_SPI_RDRF ) )// wait for char
  spircvbyte=AT91C_BASE_SPI0->SPI_RDR;
  return (uint8)(spircvbyte);
}



 Write_Byte_MMC(uint8 DATA)
{
  while( !( AT91C_BASE_SPI0->SPI_SR & AT91C_SPI_TDRE ) ); // transfer compl. wait
  AT91C_BASE_SPI0->SPI_TDR = (uint32)( DATA )+(unsigned int)(0x07<<16);
  //AT91C_BASE_SPI0->SPI_TDR = DATA;
  while( !( AT91C_BASE_SPI0->SPI_SR & AT91C_SPI_RDRF ) ); // wait for char
  spircvbyte=AT91C_BASE_SPI0->SPI_RDR;    //讀一字節
  return (uint8)spircvbyte;
}
  


 unsigned char Write_Command_MMC(unsigned char *CMD) { 
 uint8 temp1 = 0xff;
 //int retry2 = 0;
 //Write_Byte_MMC(0xff);
 //MMC_Disable();
// delays(1);
  for(int i = 0; i < 0x06; i++)
    {
     temp1=Write_Byte_MMC(*CMD++);
    }
  return temp1;
}

/*----------------------------------------------------------------*/
void InitSPI_Hard(void)
{
  AT91C_BASE_SPI0->SPI_CR=0x80; //復位SPI
  delays(20);
  AT91C_BASE_SPI0->SPI_MR=(AT91C_SPI_MSTR|AT91C_SPI_PS_VARIABLE|AT91C_SPI_MODFDIS|AT91C_SPI_DLYBCS);
  //AT91C_BASE_SPI0->SPI_MR=0x01070001;
  
  //AT91C_BASE_SPI0->SPI_CSR[0]=AT91C_SPI_CPOL+AT91C_SPI_BITS_8+((MCK/1000000)<<8);//buadrate=10M
  //AT91C_BASE_SPI0->SPI_CSR[1]=AT91C_SPI_CPOL+AT91C_SPI_BITS_8+((MCK/1000000)<<8);//buadrate=10M
  //AT91C_BASE_SPI0->SPI_CSR[2]=AT91C_SPI_CPOL+AT91C_SPI_BITS_8+((MCK/1000000)<<8);//buadrate=10M
  AT91C_BASE_SPI0->SPI_CSR[3]=AT91C_SPI_NCPHA+AT91C_SPI_BITS_8+((MCK/4000000)<<8);//buadrate=4M
  AT91C_BASE_PIOA->PIO_PDR=PIN_SPI0_MISO|PIN_SPI0_MOSI|PIN_SPI0_SCK;    //分配給外設A					/* MOSI 引腳置低   set MOSI to zero */
  AT91C_BASE_PIOA->PIO_ASR=PIN_SPI0_MISO|PIN_SPI0_MOSI|PIN_SPI0_SCK;
  AT91C_BASE_PIOA->PIO_PPUER=PIN_SPI0_MISO|PIN_SPI0_MOSI|PIN_SPI0_SCK;
  SSPI_Clk400k();
  AT91C_BASE_SPI0->SPI_CR=0x01; //啟動SPI
  delays(120);
 
}

/*------------------------------------------------------------------*/
void InitSPI_Soft(void)
{
  uint8 retry=0,temp=0xff;
  int wait=0;
  unsigned char CMD[] = {0x40,0x00,0x00,0x00,0x00,0x95}; 

  MMC_Disable(); 
  delays(20);  
  for(int i=0;i<15;i++)         //寫74個高電平
   {
    Write_Byte_MMC(0xff); 
   }

  
  MMC_Enable();
  delays(20); 
  Write_Command_MMC(CMD);  //發送CMD0復位 
  for(int i=0;i<50;i++)   //等待響應
   {
    temp=Write_Byte_MMC(0xff);
    if(temp!=0xff) break;
   }
 //已經收到響應0x01
  
    Write_Byte_MMC(0xff); 
  
  CMD[0]=0x41;                   
  CMD[5]=0xff;    
  for(int j=0;j<100;j++)
  {
     Write_Command_MMC(CMD);  //發送CMD1擊活SD
     for(int i=0;i<20;i++)   //等待響應
      {
       temp=Write_Byte_MMC(0xff);
       if(temp==0x00)
         {
          wait=1;
          //AT91C_BASE_PIOA->PIO_CODR=PIN_BACKLED_OE;
          break;
         }
      }
     if(wait==1)break;
  }
 //已經收到響應0x00
  MMC_Disable();
  return;
}
 

/*--------------------------------------------------*/ 
void InitSPI(void)
{
  InitSPI_Hard();
  InitSPI_Soft();
}

/*------------------------------------------------------*/
void SD_Restart(void)      //上電和引腳清0初始化
{ 
        AT91C_BASE_PMC->PMC_PCER=(AT91C_ID_SPI0<<2);  

	AT91C_BASE_PIOB->PIO_PER=PIN_SD1_PWR_CTRL;
	AT91C_BASE_PIOB->PIO_OER=PIN_SD1_PWR_CTRL;
	AT91C_BASE_PIOB->PIO_SODR=PIN_SD1_PWR_CTRL;	//斷電
        
	AT91C_BASE_PIOA->PIO_PER=PIN_SPI0_MISO|PIN_SPI0_MOSI|PIN_SPI0_SCK|PIN_CS_CARD_NEI;   //SCK,MOSI,MISO,CS置0
	AT91C_BASE_PIOA->PIO_OER=PIN_SPI0_MISO|PIN_SPI0_MOSI|PIN_SPI0_SCK|PIN_CS_CARD_NEI;
	AT91C_BASE_PIOA->PIO_CODR=PIN_SPI0_MISO|PIN_SPI0_MOSI|PIN_SPI0_SCK|PIN_CS_CARD_NEI;	 
        delays(40);
        AT91C_BASE_PIOB->PIO_CODR=PIN_SD1_PWR_CTRL;    //上電
}


/*----------------------------------------------------*/ 

//***************************************************
void SD_read_block_toOLED(unsigned long addr,unsigned char Buffer) 
{
        int response=0;
        int tempp=0xff;
        int retryy = 0;
  	unsigned char CMD[] = {0x51,0x00,0x00,0x00,0x00,0xff};
	addr = addr << 9; //addr = addr * 512
	CMD[1] = ((addr & 0xFF000000) >>24 );
	CMD[2] = ((addr & 0x00FF0000) >>16 );
	CMD[3] = ((addr & 0x0000FF00) >>8 );
  MMC_Enable();  
  //delays(1);
  for(int j=0;j<80000;j++)
  {
     Write_Command_MMC(CMD);  //發送CMD17
     for(int i=0;i<20;i++)   //等待響應
      {
       tempp=Write_Byte_MMC(0xff);
       if(tempp==0xfe)
         {
          response=1;
          break;
         }
      }
     if(response==1)break;
  }

       for(int j=0;j<512;j++)
          {
           Buffer=Write_Byte_MMC(0xff);
           WriteOLEDData(Buffer>>2);
          }
        
       Write_Byte_MMC(0xff);
       Write_Byte_MMC(0xff);     
       MMC_Disable();
       return;
}      
 

//***************************************************       
ReadSD_Writeoled(uint8 x1,uint8 y1,uint8 width,uint8 hight)
{
  unsigned char Buffer_Data;
  unsigned char CMD[] = {0x51,0x00,0x00,0x00,0x00,0xff};
  OLEDCsLow();
  WriteOLEDCmd(0x15);WriteOLEDData(x1);WriteOLEDData(x1+width-1);
  WriteOLEDCmd(0x75);WriteOLEDData(y1);WriteOLEDData(y1+hight-1);
  OLEDCsHigh();
  OLEDCsLow();
  WriteOLEDCmd(0x5c);
  Write_Command_MMC(CMD);
  
  for(int i=256;i<376;i++)
    {
     SD_read_block_toOLED(i,Buffer_Data);//每塊512字節,共讀取120塊,61440字節
     }
 OLEDCsHigh();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区二区在线观看| 在线观看日韩电影| 免费高清在线一区| 污片在线观看一区二区| 亚洲国产一二三| 亚洲午夜在线电影| 亚洲综合激情网| 亚洲一区二区三区中文字幕| 亚洲国产成人精品视频| 亚洲成av人片一区二区三区| 亚洲超丰满肉感bbw| 亚洲一区二三区| 免费日本视频一区| 蜜桃久久久久久久| 国产盗摄女厕一区二区三区 | 欧美人与性动xxxx| 欧美妇女性影城| 精品国产百合女同互慰| 国产精品三级在线观看| 亚洲摸摸操操av| 日本亚洲视频在线| 国产一区二区看久久| 97精品国产97久久久久久久久久久久| 色屁屁一区二区| 欧美一区二区视频在线观看 | 日韩丝袜美女视频| 欧美国产激情一区二区三区蜜月| 国产精品久久久久久久蜜臀| 亚洲成人久久影院| 国产九色精品成人porny| 91玉足脚交白嫩脚丫在线播放| 欧美日韩国产小视频| 久久久99久久| 水蜜桃久久夜色精品一区的特点| 国产在线视视频有精品| 91碰在线视频| 久久嫩草精品久久久久| 亚洲精品久久7777| 国产一区二区三区四区在线观看| 色综合久久88色综合天天 | 亚洲国产电影在线观看| 午夜精品久久一牛影视| 国产福利视频一区二区三区| 欧美性大战xxxxx久久久| wwwwww.欧美系列| 亚洲美女在线一区| 国产精品 日产精品 欧美精品| 日本高清视频一区二区| 国产欧美日韩亚州综合 | 亚洲第一福利一区| 成人高清av在线| 久久伊人蜜桃av一区二区| 日韩精品亚洲一区二区三区免费| 国产sm精品调教视频网站| 91精品国产91热久久久做人人| 亚洲免费在线观看视频| 国产ts人妖一区二区| 精品国产乱码久久久久久影片| 亚洲成av人片在线观看| 色综合中文字幕国产 | 国产精品自拍网站| 91精品国产全国免费观看| 一区二区视频在线| 成人av免费在线观看| 久久久精品国产免大香伊| 久久国产精品一区二区| 91麻豆精品久久久久蜜臀| 亚洲成人综合在线| 在线免费观看视频一区| √…a在线天堂一区| 成人精品gif动图一区| 久久久久国色av免费看影院| 久久成人久久爱| 日韩一区二区三区电影在线观看 | 日韩美一区二区三区| 午夜电影一区二区三区| 欧美三级在线播放| 午夜影院久久久| 欧美一区二区三区日韩| 日本伊人午夜精品| 欧美大白屁股肥臀xxxxxx| 老司机精品视频在线| 久久日韩精品一区二区五区| 国产在线精品一区二区| 久久亚洲捆绑美女| 国产91在线|亚洲| 中文字幕人成不卡一区| 在线中文字幕一区| 日本亚洲一区二区| 久久精品亚洲麻豆av一区二区| 国产精品中文欧美| 综合色天天鬼久久鬼色| 欧美亚洲动漫制服丝袜| 视频一区二区国产| 精品国一区二区三区| 粉嫩aⅴ一区二区三区四区五区| 亚洲国产精品av| 一本久久综合亚洲鲁鲁五月天| 一区二区在线观看av| 日韩免费视频一区二区| a在线播放不卡| 亚洲精品国产一区二区精华液 | 久久综合九色综合97婷婷| 国产精品一二三区在线| 亚洲人成在线播放网站岛国| 在线亚洲高清视频| 极品瑜伽女神91| 亚洲女性喷水在线观看一区| 欧美一级二级三级蜜桃| av日韩在线网站| 奇米亚洲午夜久久精品| 国产精品成人免费| 欧美一区午夜视频在线观看 | 亚洲综合免费观看高清完整版在线| 日韩午夜电影在线观看| fc2成人免费人成在线观看播放| 人人超碰91尤物精品国产| 亚洲欧洲美洲综合色网| 日韩精品专区在线影院观看| 在线精品国精品国产尤物884a| 激情综合一区二区三区| 午夜精品久久久久久久蜜桃app| 国产亚洲精品资源在线26u| 欧美在线|欧美| 成人黄色电影在线| 美女视频黄频大全不卡视频在线播放| 国产精品国产自产拍在线| 欧美va亚洲va在线观看蝴蝶网| 日本韩国精品在线| www.久久精品| 国产精品自拍一区| 蜜桃精品视频在线| 亚洲最大的成人av| 亚洲欧美电影一区二区| 中文字幕 久热精品 视频在线| 日韩视频一区二区三区| 91精品久久久久久久91蜜桃| 色天使久久综合网天天| 成人sese在线| 成人精品一区二区三区四区| 精品伊人久久久久7777人| 日韩av在线播放中文字幕| 午夜视频在线观看一区二区| 亚洲女女做受ⅹxx高潮| 国产精品欧美综合在线| 国产精品情趣视频| 国产精品免费丝袜| 中文字幕在线观看一区二区| 国产精品麻豆一区二区| 欧美国产一区二区在线观看| 国产欧美日韩在线| 亚洲色图另类专区| 一区二区三区小说| 亚洲一区二区四区蜜桃| 亚洲成人久久影院| 日韩激情在线观看| 蜜臀av一区二区在线免费观看 | 婷婷久久综合九色综合伊人色| 一个色在线综合| 亚洲va欧美va人人爽午夜| 天天色综合成人网| 老司机午夜精品| 成人小视频在线| 欧美主播一区二区三区美女| 欧美视频一区二区三区四区 | 国产网站一区二区| 一色桃子久久精品亚洲| 亚洲制服欧美中文字幕中文字幕| 亚洲一区二区欧美日韩| 日本中文字幕不卡| 国产很黄免费观看久久| jlzzjlzz亚洲日本少妇| 精品污污网站免费看| 日韩欧美www| 综合网在线视频| 午夜不卡在线视频| 国产一区欧美日韩| 99精品在线免费| 在线成人免费视频| 国产精品丝袜久久久久久app| 亚洲精品videosex极品| 污片在线观看一区二区| 国产激情一区二区三区四区 | 成人av动漫网站| 欧美日韩精品一区二区| 日韩精品一区二区三区中文不卡| 国产精品丝袜在线| 麻豆久久一区二区| 97久久超碰国产精品| 日韩亚洲欧美中文三级| 亚洲毛片av在线| 国产美女娇喘av呻吟久久| 在线精品视频一区二区三四| 久久亚洲综合av| 亚洲成av人综合在线观看| 成人毛片视频在线观看| 日韩一区二区中文字幕| 亚洲欧美精品午睡沙发| 国产精品一区不卡| 日韩一区二区精品|