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

📄 main.c

📁 atmelsam7s64做mp3解码的源程序
💻 C
字号:

#include "AT91SAM7S64.h"
#include "Board.h"
#include "datatype.h"
#include "spi.h"
#include "fat.h" 


extern  Byte    gl_buffer[];
extern  Byte    fat_is_fat16;         /* TRUE: FAT16 - FALSE: FAT12 */
extern  Byte    fat_is_fat32;         /* TRUE: FAT32 - FALSE: FAT12/FAT16 */

Byte    SPI_Init = 1;

//------------------------------------------------------------------------
void DbguSend(INT8U a)
{
     while(!(*AT91C_DBGU_CSR & 0x00000200));
     *AT91C_DBGU_THR = a;  
}


//------------------------------------------------------------------------
void DBGU_Print(char* pString)
{
   while(*pString)
   {
       while(! (*AT91C_DBGU_CSR & 0x00000200));
       *AT91C_DBGU_THR = *pString ++;
   }
}

//------------------------------------------------------------------------
void vDebugUintInit()
{
    *AT91C_PIOA_PDR |= DBUG_MASK;       //PIO Disable
    *AT91C_PIOA_ASR |= DBUG_MASK;       //A,B Peripheral,select A
    *AT91C_PIOA_PPUDR |= DBUG_MASK;     //Pull-up disable
    *AT91C_DBGU_BRGR = 48;              //CD = 48. Baud Rate = MCK/(16*CD)
    *AT91C_DBGU_MR = 0x00000800;        //Normal Mode,
    *AT91C_DBGU_CR = 0x00000040;        //TXEN = 1;
}

 

//------------------------------------------------------------------------
void Main(void)
{

   INT8U mark=0;

   // #define FILE_START_SECTOR   555
   // #define FILE_END_SECTOR     (11668+4) 
    
    #define FILE_START_SECTOR  33319 
    #define FILE_END_SECTOR    43319  
   
    INT16U i;
    INT16U j;
    INT32U u32FileSector;
    INT16U u16Offset;
    
    fat_is_fat16 = 0;
    fat_is_fat32 = 0;
    
         //vSpiInit();
    vDebugUintInit();
    
    PIO_Init();
    
    VS1003_CS_HIGH();
    
    VS1003_RST_LOW();
    delay(0xffff);
    delay(0xffff);
    VS1003_RST_HIGH();
    delay(0xffff);
     
    while(!vGet_DREQ());
    VS1003_SCI_Write(0x03,0x9000);
    while(!vGet_DREQ());
    VS1003_SCI_Write(0x02,0x1fff);
    while(!vGet_DREQ());
    VS1003_SCI_Write(0x0b,0x3030);
    
    
    RESTART: 
    if(MMC_Init() != 1)
    {
       *AT91C_PIOA_CODR = LED1; 
       goto RESTART;
    }
    
    SPI_Init = 0;
    
    //-----------------test---------------
  /*vMmcReadSector(523,gl_buffer);
    for(i=0; i<512; i++)
    {
      DbguSend(gl_buffer[i]);
    }
    
    while(1);*/
    //--------------------------------------
    
    if( fat_install() )
        DBGU_Print("xyz");
    
    if(fat_is_fat16)
       DBGU_Print("fat16\n");
    if(fat_is_fat32)
       DBGU_Print("fat32\n");
       
    
while(1)
{
    for(u32FileSector=FILE_START_SECTOR; u32FileSector<=FILE_END_SECTOR; u32FileSector++)
    {
    
       if(mark ==0 )
       {  
          mark = 1;
          *AT91C_PIOA_CODR = LED1;
       }
       else
       {
          mark = 0;
          *AT91C_PIOA_SODR = LED1; 
       }
       
       vMmcReadSector(u32FileSector, gl_buffer);
       u16Offset = 0;
       
       while(u16Offset < 510)
       {
          while(!vGet_DREQ());
          VS1003_SDI_Write(&gl_buffer[u16Offset], 32);
          u16Offset += 32;
       }
    }
}


}

⌨️ 快捷键说明

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