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

📄 sd_config.h

📁 Atmega64单片机程序(完整工程)
💻 H
字号:
/*--------------File Info-------------------------------------------------------
** 文   件   名:    SD_Config.h
** 最后修改日期:    2008.3.28
** 版        本:    V1.0
** 描        述:    sd 卡驱动软件包: 配置文件					
**------------------------------------------------------------------------------
** Created   by:    		
** Created date:			
*******************************************************************************/
#ifndef __SD_Config_h
#define __SD_Config_h
              
/* 测试SD卡函数是否使能 */
#define SD_MMC_TEST_EN	          0
                 
		 
/* 下面函数不常用,如果不需要,可置为 0 裁剪指定函数 */
/* 设置数据传输时是否使用CRC */
#define SD_CRC_EN		          0

#define SD_EraseBlock_EN	      1			
/* 是否使能擦卡函数 */

#define SD_Read_Word_EN           0	
#define SD_Read_Dword_EN          0	

#define SD_ReadMultiBlock_EN      0			
/* 是否使能读多块函数 */

#define SD_WriteMultiBlock_EN     0			
/* 是否使能写多块函数 */

#define SD_ProgramCSD_EN   	      0			
/* 是否使能写CSD寄存器函数 */
	 
#define SD_ReadCID_EN	   	      0			
/* 是否使能读CID寄存器函数 */
	
#define	SD_ReadSD_Status_EN	      0			
/* 是否使能读SD_Status寄存器函数 */

#define	SD_ReadSCR_EN		      0			
/* 是否使能读SCR寄存器函数 */

#define SPI_CLOCK		          8000000		
/* 正常通信时,SPI时钟频率  */

#define SD_BLOCKSIZE 		      512			
/* SD卡块的长度 */

#define SD_BLOCKSIZE_NBITS	      9  

/* 下面为SD卡使用的硬件条件配置,用户可根据实际需要修改 */						
//电源3.3V控制端
#define  SD_POWER_OUT()     DDRB|=(1<<PB5)  
#define  SD_POWER_ON()      PORTB|=(1<<PB5)
#define  SD_POWER_OFF()     PORTB&=~(1<<PB5)

//低电平点亮
#define  SD_BUSY_LED_OUT()  DDRB|=(1<<PB0)
#define  SD_BUSY_LED_ON()   PORTB&=~(1<<PB0)
#define  SD_BUSY_LED_OFF()  PORTB|=(1<<PB0)

#define  SPI_MISO_IN()      DDRB&=~(1<<PB3)
#define  SPI_MISO_OUT()     DDRB|=(1<<PB3)
#define  SPI_MISO_SET()     PORTB|=(1<<PB3)
#define  SPI_MISO_CLR()     PORTB&=~(1<<PB3)

#define  SPI_MOSI_OUT()     DDRB|=(1<<PB2)
#define  SPI_MOSI_SET()     PORTB|=(1<<PB2)
#define  SPI_MOSI_CLR()     PORTB&=~(1<<PB2)

#define  SPI_SCK_OUT()      DDRB|=(1<<PB1)
#define  SPI_SCK_SET()      PORTB|=(1<<PB1)
#define  SPI_SCK_CLR()      PORTB&=~(1<<PB1)

#define  SPI_CS_OUT()       DDRB|=(1<<PB4)
#define  SPI_CS_SET()       PORTB|=(1<<PB4)
#define  SPI_CS_CLR()       PORTB&=~(1<<PB4)

#define  SD_INSERT_IN()     DDRE&=~(1<<PE7)
#define  SD_INSERT_STATUS() (PINE&(1<<PE7)) 

#define  SD_WP_IN()         DDRE&=~(1<<PE6)
#define  SD_WP_STATUS()     (PINE&(1<<PE6)) 
															
//设置SPI速率最小,Fosc/128
#define  SPI_Clk_MIN()      {SPCR|=((1<<SPR1)|(1<<SPR0));SPSR&=~0x01;}
//设置SPI速率最大,Fosc/2
#define  SPI_Clk_MAX()      {SPCR&=~((1<<SPR1)|(1<<SPR0));SPSR|=0x01;}	

#endif

⌨️ 快捷键说明

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