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

📄 main.c

📁 MMC/SD on Olimex Sam7-EX256
💻 C
字号:
//#include "ioat91sam7x256.h"
#include "include/include.h"


#include "string.h"



//MAIN POINTER
AT91PS_PIO    m_pPioA  = AT91C_BASE_PIOA;
AT91PS_PIO    m_pPioB  = AT91C_BASE_PIOB;
AT91PS_PMC    m_pPMC   = AT91C_BASE_PMC;
AT91PS_USART  m_pUSART = AT91C_BASE_US0;
AT91PS_PDC    m_pPDC   = AT91C_BASE_PDC_US0;
AT91PS_MC     m_pMC    = AT91C_BASE_MC;
AT91PS_AIC    m_pAic   = AT91C_BASE_AIC;
AT91PS_SYS    m_pSys   = AT91C_BASE_SYS;
AT91PS_ADC    m_pADC   = AT91C_BASE_ADC;
AT91PS_RSTC   m_pRSTC  = AT91C_BASE_RSTC;

#define LCD_RESET_LOW     m_pPioA->PIO_CODR   = BIT2
#define LCD_RESET_HIGH    m_pPioA->PIO_SODR   = BIT2

//it's a simple delay
void Delay (unsigned long a) { while (--a!=0); }


extern char mmc_buffer[512];

unsigned char ch1 = 0x0;
unsigned char ch2 = 0x0;

char mmc_buffer_test_1[512];
char mmc_buffer_test_2[512];

char state_mmc  = 1;

// loop variable
unsigned int i;

int main()
{

  // Freq init
  InitFrec();

  // Init periphery
  InitPeriphery();
  
  //AT91C_BASE_PMC->PMC_PCER = ( 1 << AT91C_ID_PIOA ) | ( 1 << AT91C_ID_PIOB ) | ( 1 << AT91C_ID_US0 );
  //AT91C_BASE_PMC->PMC_PCER = ( 1 << AT91C_ID_US0 );
  //uart0_init();
  //uart0_puts("\n\nHI! INIT...OK\n");

	AT91C_BASE_PIOB->PIO_OER = (AT91B_LCD_BL);		// set to output
	AT91C_BASE_PIOB->PIO_PER = (AT91B_LCD_BL);		// set to PIO mode
	AT91C_BASE_PIOB->PIO_PPUDR = (AT91B_LCD_BL);	// disable pull up 
	


  /**** MMC CARD ****/
  if (initMMC() == MMC_SUCCESS)	// card found
  {
    //card_state |= 1;
    memset(&mmc_buffer,0,512);
    mmcReadRegister (10, 16);
    mmc_buffer[7]=0;

    // Fill first Block (0) with 'A'
    memset(&mmc_buffer,'0',512);    //set breakpoint and trace mmc_buffer contents
    mmcWriteBlock(0);
    // Fill second Block (1)-AbsAddr 512 with 'B'
    memset(&mmc_buffer,'1',512);
    mmcWriteBlock(512);

    // Read first Block back to buffer
    memset(&mmc_buffer,0x00,512);
    mmcReadBlock(0,512);
    if(strncmp(&mmc_buffer[0], &mmc_buffer_test_1[0], 512)) AT91C_BASE_PIOB->PIO_SODR = AT91B_LCD_BL;;

    // Read first Block back to buffer
    memset(&mmc_buffer,0x00,512);
    mmcReadBlock(512,512);
    if(strncmp(&mmc_buffer[0], &mmc_buffer_test_2[0], 512)) AT91C_BASE_PIOB->PIO_SODR = AT91B_LCD_BL;;

    memset(&mmc_buffer,0x00,512);
  }



  // loop forewer
  while(1) {

  }

}

⌨️ 快捷键说明

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