⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdio.lst

📁 近期完成的一个项目
💻 LST
📖 第 1 页 / 共 5 页
字号:
 448   1        while(SD_CLK_PIN==1);
 449   1        while(SD_CLK_PIN==0);
 450   1        while(SD_CLK_PIN==1);
 451   1      }
 452          
 453          void Data_Rv_Sync(void)
 454          {
 455   1        while(SD_DATA0_PIN==1);
C51 COMPILER V7.05   SDIO                                                                  06/14/2007 16:16:46 PAGE 9   

 456   1        while(SD_CLK_PIN==0);
 457   1        while(SD_CLK_PIN==1);
 458   1        while(SD_CLK_PIN==0);                   
 459   1        //while(SD_CLK_PIN==1);
 460   1      }
 461          
 462          void Data_Wr_Sync(void)
 463          {
 464   1        while(SD_CLK_PIN==0);
 465   1        while(SD_CLK_PIN==1);
 466   1        while(SD_CLK_PIN==0); 
 467   1        while(SD_CLK_PIN==1);
 468   1        while(SD_CLK_PIN==0); 
 469   1        SD_DATA0_PIN=0;
 470   1        while(SD_CLK_PIN==1);
 471   1      }
 472          
 473          void Slave_Mode_Sel(void)
 474          {
 475   1      }
 476          
 477          void Response_to_CMD0(void)
 478          {
 479   1         Slave_Mode_Sel();
 480   1      }
 481          
 482          void Response_to_CMD3(void)                    //R6 response
 483          {   
 484   1         P2MDOUT=0x02;
 485   1         Buffer_send[0]=0x03;                        //command index
 486   1         Buffer_send[1]=RCA_REG[0];                  
 487   1         Buffer_send[2]=RCA_REG[1];
 488   1         Buffer_send[3]=0x00;                                        
 489   1         Buffer_send[4]=0x00;
 490   1         Buffer_send[5]=0xeb;
 491   1         Timing_Sync();
 492   1         Write_Res_SD(Buffer_send[0]);
 493   1         Write_Res_SD(Buffer_send[1]);
 494   1         Write_Res_SD(Buffer_send[2]);
 495   1         Write_Res_SD(Buffer_send[3]);                //card status,0 stand for no error
 496   1         Write_Res_SD(Buffer_send[4]);
 497   1         Write_Res_SD(Buffer_send[5]);
 498   1         while(SD_CLK_PIN==0);
 499   1         SD_CMD_PIN=1;
 500   1         SD_CMD_PIN=1;
 501   1         P2MDOUT&=~0x02;
 502   1      }
 503          
 504          void Response_to_CMD5(void)                    //R4 response
 505          {
 506   1         P2MDOUT=0x02;
 507   1         Buffer_send[0]=0x3f;                        //command index
 508   1         Buffer_send[1]=0x90;                        //card status
 509   1         Buffer_send[2]=OCR_REG[0];
 510   1         Buffer_send[3]=OCR_REG[1];                  //ready for data                   
 511   1         Buffer_send[4]=OCR_REG[2];
 512   1         Buffer_send[5]=0xff;
 513   1         Timing_Sync();
 514   1         Write_Res_SD(Buffer_send[0]);
 515   1         Write_Res_SD(Buffer_send[1]);
 516   1         Write_Res_SD(Buffer_send[2]);               //0xff
 517   1         Write_Res_SD(Buffer_send[3]);               //0xC0
C51 COMPILER V7.05   SDIO                                                                  06/14/2007 16:16:46 PAGE 10  

 518   1         Write_Res_SD(Buffer_send[4]);               //0xff
 519   1         Write_Res_SD(Buffer_send[5]);               //reserved bits
 520   1         while(SD_CLK_PIN==0);
 521   1         SD_CMD_PIN=1;
 522   1         SD_CMD_PIN=1;
 523   1         P2MDOUT&=~0x02;
 524   1         Slave_state=Initialization_State;
 525   1      }
 526          
 527          void Response_to_CMD7(void)                   //R1b Response
 528          {
 529   1         P2MDOUT=0x02;
 530   1         Buffer_send[0]=0x01;                       //command index
 531   1         Buffer_send[1]=0x00;                       //card status
 532   1         Buffer_send[2]=0x00;
 533   1         Buffer_send[3]=0x01;                       //ready for data                   
 534   1         Buffer_send[4]=0x00;
 535   1         Buffer_send[5]=0x7B;
 536   1         Timing_Sync();
 537   1         Write_Res_SD(Buffer_send[0]);
 538   1         Write_Res_SD(Buffer_send[1]);
 539   1         Write_Res_SD(Buffer_send[2]);
 540   1         Write_Res_SD(Buffer_send[3]);
 541   1         Write_Res_SD(Buffer_send[4]);
 542   1         Write_Res_SD(Buffer_send[5]);
 543   1         while(SD_CLK_PIN==0);
 544   1         SD_CMD_PIN=1;
 545   1         SD_CMD_PIN=1;
 546   1         P2MDOUT&=~0x02;
 547   1         //Slave_state=Command_State;
 548   1      }
 549          
 550          void Response_to_CMD15(void)
 551          {
 552   1         Slave_state=Inactive_State;
 553   1      }
 554          
 555          void Response_to_CMD52(void)
 556          {  
 557   1        //SD_BUSY_LED=0;
 558   1        P2MDOUT=0x02;
 559   1        Reg_address=(CMD_R[3]+CMD_R[2]);
 560   1        if(((CMD_R[1]&0x80)==0))                       //Data Read Command
 561   1       { 
 562   2         switch (Reg_address)
 563   2         {
 564   3         case 0x00:                                   //GET CCRV 0X00
 565   3         if((CMD_R[1]&0x70)==0x00)
 566   3         {
 567   4         Buffer_send[0]=0x34;                         //command index
 568   4         Buffer_send[1]=0x00;                       
 569   4         Buffer_send[2]=0x00;
 570   4         Buffer_send[3]=0x20;                                        
 571   4         Buffer_send[4]=0x11;
 572   4         Buffer_send[5]=0x81;
 573   4         Timing_Sync();
 574   4         Write_Res_SD(Buffer_send[0]);
 575   4         Write_Res_SD(Buffer_send[1]);
 576   4         Write_Res_SD(Buffer_send[2]);
 577   4         Write_Res_SD(Buffer_send[3]);
 578   4         Write_Res_SD(Buffer_send[4]);
 579   4         Write_Res_SD(Buffer_send[5]);
C51 COMPILER V7.05   SDIO                                                                  06/14/2007 16:16:46 PAGE 11  

 580   4         while(SD_CLK_PIN==0);
 581   4         SD_CMD_PIN=1;
 582   4         }
 583   3         break;
 584   3         case 0x10:                                   //GET CCRV 0X08  CARD CAPACITY REG
 585   3         if((CMD_R[1]&0x70)==0x00)
 586   3         {
 587   4         Buffer_send[0]=0x34;                         //command index
 588   4         Buffer_send[1]=0x00;                      
 589   4         Buffer_send[2]=0x00;
 590   4         Buffer_send[3]=0x20;                                          
 591   4         Buffer_send[4]=0x40;
 592   4         Buffer_send[5]=0x69;
 593   4         //Buffer_send[4]=0x42;
 594   4         //Buffer_send[5]=0x4d;
 595   4         Timing_Sync();
 596   4         Write_Res_SD(Buffer_send[0]);
 597   4         Write_Res_SD(Buffer_send[1]);
 598   4         Write_Res_SD(Buffer_send[2]);
 599   4         Write_Res_SD(Buffer_send[3]);
 600   4         Write_Res_SD(Buffer_send[4]);
 601   4         Write_Res_SD(Buffer_send[5]);
 602   4         while(SD_CLK_PIN==0);
 603   4         SD_CMD_PIN=1;
 604   4         }
 605   3         else                                        //read 0x08 of function 1,DLL set
 606   3         {                                   
 607   4         Buffer_send[0]=0x34;                        //command index
 608   4         Buffer_send[1]=0x00;                      
 609   4         Buffer_send[2]=0x00;
 610   4         Buffer_send[3]=0x20;                                          
 611   4         Buffer_send[4]=0x01;
 612   4         Buffer_send[5]=crc7_CMD52[1];
 613   4         Timing_Sync();
 614   4         Write_Res_SD(Buffer_send[0]);
 615   4         Write_Res_SD(Buffer_send[1]);
 616   4         Write_Res_SD(Buffer_send[2]);
 617   4         Write_Res_SD(Buffer_send[3]);
 618   4         Write_Res_SD(Buffer_send[4]);
 619   4         Write_Res_SD(Buffer_send[5]);
 620   4         while(SD_CLK_PIN==0);
 621   4         SD_CMD_PIN=1;   
 622   4         }
 623   3         break;  
 624   3         case 0x02:                                
 625   3         if((CMD_R[1]&0x70)==0x00)
 626   3         {
 627   4         if(CMD_R[2]==0x00)                          //GET CCRV 0X01 SD REV
 628   4         { 
 629   5         Buffer_send[0]=0x34;                        //command index
 630   5         Buffer_send[1]=0x00;                      
 631   5         Buffer_send[2]=0x00;
 632   5         Buffer_send[3]=0x20;                                          
 633   5         Buffer_send[4]=0x01;
 634   5         Buffer_send[5]=0xb3;
 635   5         Timing_Sync();
 636   5         Write_Res_SD(Buffer_send[0]);
 637   5         Write_Res_SD(Buffer_send[1]);
 638   5         Write_Res_SD(Buffer_send[2]);
 639   5         Write_Res_SD(Buffer_send[3]);
 640   5         Write_Res_SD(Buffer_send[4]);
 641   5         Write_Res_SD(Buffer_send[5]);
C51 COMPILER V7.05   SDIO                                                                  06/14/2007 16:16:46 PAGE 12  

 642   5         while(SD_CLK_PIN==0);
 643   5         SD_CMD_PIN=1; 
 644   5         }//endif if(CMD_R[2]==0x00)
 645   4         else                                        //GET FBR DEVICE CODE
 646   4         {
 647   5         Buffer_send[0]=0x34;                        //command index
 648   5         Buffer_send[1]=0x00;                      
 649   5         Buffer_send[2]=0x00;
 650   5         Buffer_send[3]=0x20;                                          
 651   5         //Buffer_send[4]=0x00;
 652   5         //Buffer_send[5]=0xa1;
 653   5         Buffer_send[4]=0x01;                       //support standard uart
 654   5         Buffer_send[5]=0xb3;
 655   5         Timing_Sync();
 656   5         Write_Res_SD(Buffer_send[0]);
 657   5         Write_Res_SD(Buffer_send[1]);
 658   5         Write_Res_SD(Buffer_send[2]);
 659   5         Write_Res_SD(Buffer_send[3]);
 660   5         Write_Res_SD(Buffer_send[4]);
 661   5         Write_Res_SD(Buffer_send[5]);
 662   5         while(SD_CLK_PIN==0);
 663   5         SD_CMD_PIN=1;
 664   5         }//end else
 665   4         }//end if((CMD_R[1]&0x70)==0x00)
 666   3         break;
 667   3         case 0x12:                                 //GET CCRV 0X09 COMMON CIS BYTE1
 668   3         if((CMD_R[1]&0x70)==0x00)
 669   3         {
 670   4         Buffer_send[0]=0x34;                        //command index
 671   4         Buffer_send[1]=0x00;                      
 672   4         Buffer_send[2]=0x00;
 673   4         Buffer_send[3]=0x20;                                          
 674   4         Buffer_send[4]=0x00;
 675   4         Buffer_send[5]=0xa1;
 676   4         Timing_Sync();
 677   4         Write_Res_SD(Buffer_send[0]);
 678   4         Write_Res_SD(Buffer_send[1]);
 679   4         Write_Res_SD(Buffer_send[2]);
 680   4         Write_Res_SD(Buffer_send[3]);
 681   4         Write_Res_SD(Buffer_send[4]);
 682   4         Write_Res_SD(Buffer_send[5]); 
 683   4         while(SD_CLK_PIN==0);
 684   4         SD_CMD_PIN=1;
 685   4         }
 686   3         break; 
 687   3         case 0x14:                                  //GET CCRV 0X0A COMMON CIS BYTE2
 688   3         if((CMD_R[1]&0x70)==0x00)
 689   3         {
 690   4       
 691   4          if(CMD_R[2]==0x00)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -