📄 sd.c
字号:
/*
;************************************************************************************************************
;* 北京精仪达盛科技有限公司
;* 研 发 部
;*
;* http://www.techshine.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------
;*
;* 文件名称 : IIS.c
;* 文件功能 : 该文件为S3C44B0硬件平台配置具体函数的初始化。
;* 补充说明 :
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : ARM7开发小组
;* 修改日期 : 2004/04/25
;* 版本声明 : V1.0.1
;*-------------------------------------------- 历史版本信息 -------------------------------------------------
;* 文件作者 : ARM7开发小组
;* 创建日期 : 2004/04/20
;* 版本声明 : v1.0.0
;*-----------------------------------------------------------------------------------------------------------
;*-----------------------------------------------------------------------------------------------------------
;************************************************************************************************************
;*/
#include "..\..\startup44b0\inc\44b.h"
#include "..\..\startup44b0\inc\44blib.h"
#include "..\..\startup44b0\inc\def.h"
#include "..\inc\SD.h"
unsigned short buffer[9];
unsigned short card,card1 ;
char s1=0;
/*
*************************************************************************************************************
- 函数名称 : void W86_Init(void)
- 函数说明 : 初始化W86
- 输入参数 : 无
- 输出参数 : 无
*************************************************************************************************************
*/
void W86_Init(void)
{
char i=0;
for(i=0;i<18;i++)
{
buffer[i]=0;
}
card = rCON_REG;
rCON_REG = 0xE7;
Delay(100);
rCON_REG = 0x15; //上电,打开SD总线,设定时钟频率
rGPIO_CON_REG = 0x1f1f;
//rGPIO_DAT_REG = 0xa1f;
//Delay(1000);
rGPIO_DAT_REG = 0x21f;
//rGPIO_DAT_REG = 0xa1f;
rIND_ADD_REG = 0x2;
rIND_DAT_REG = 0x0200;
rINT_ENA_REG = 0x8f;
do
{
Delay(100);
card = rSTA_REG;
rCMD_PIPE_REG = 0x7700; //CMD55
rCMD_PIPE_REG = 0x0000;
rCMD_PIPE_REG = 0x0001;
Delay(100);
card = rSTA_REG;
rCMD_PIPE_REG = 0x6900; //ACMD41 With OCR
rCMD_PIPE_REG = 0xff80;
rCMD_PIPE_REG = 0x0001;
Delay(100);
for(i=0;i<3;i++)
{
buffer[i] = rCMD_PIPE_REG;
}
Delay(1000);
}while((buffer[0]&0x0080)!=0x0080);
rCMD_PIPE_REG= 0x4200; //CMD2
rCMD_PIPE_REG= 0x0000;
rCMD_PIPE_REG= 0x0001;
Delay(100);
card = rSTA_REG;
for(i=0;i<9;i++)
{
buffer[i] = rCMD_PIPE_REG;
}
}
/*
*************************************************************************************************************
- 函数名称:void TouchINT_Init(void)
- 函数功能:触摸屏中断初始化
- 输入参数:无
- 输出参数:无
*************************************************************************************************************
*/
void SDINT_Init(void) //触摸屏硬件接口使能
{
if ((rINTPND & BIT_EINT4567))
{
rI_ISPC = BIT_EINT4567;
}
rINTMSK = ~(BIT_GLOBAL|BIT_EINT4567);
pISR_EINT4567 = (int)SDCHECK_ISR;
}
/*
*************************************************************************************************************
- 函数名称 : void Init1341(void)
- 函数说明 : SD卡的插拔卡检测程序
- 输入参数 : 无
- 输出参数 : 无
*************************************************************************************************************
*/
void __irq SDCHECK_ISR(void)
{
int rr;
rr = rEXTINPND;
card = rSTA_REG;
if(rr == 0x4)
{
card = rINT_STA_REG;
if( (card & 0x100) == 0x100)
{
rIND_ADD_REG = 0x00;
rIND_DAT_REG = 0x41;
}
}
rEXTINPND = 0x4;
rI_ISPC = BIT_EINT4567;
card = rINT_STA_REG;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -