📄 sysata.c
字号:
//********************************************************************************************************
#include "def.h"
#include "2410addr.h"
#include "config.h"
#include "board.h"
#include "utils.h"
#include "SysATA.h"
#include "CF_TureIDE.h"
/*********************************************************************************************************
** 函数名称: SYS_IdeHardReset
** 功能描述: ATA设备硬件复位
********************************************************************************************************/
void SYS_IdeHardReset(void)
{
/*复位引脚置低,延时大于25微秒之后复位引脚置高 */
Delay(500); /*延时大于2毫秒,设备通常在480ms内完成硬件初始化和自诊断*/
}
/*********************************************************************************************************
** 函数名称: ATA_HaveCard
** 功能描述: 判断CF卡是否连接到,CF卡的CD1、CD2引脚与GND直接相接,可以通过该引脚判断CF卡是否存在
** (对于IDE硬盘也有也多共地的引脚,也可以像CF卡那样检测但是这点ATA规范中并没有说明)。
** 如果硬件上没有相关的检测,则应一直返回TRUE。
** 输 出: TRUE,如果有设备存在,不管设备是主或是从,或可以返回TRUE(1);
** FALSE,如果设备不存在,即返回FALSE(0)
********************************************************************************************************/
U8 SYS_HaveCard(void)
{
if( CFCard_Dected )
return FALSE; /*DEVICE_IS_ATTACHED不为0,没有设备存在,返回FALSE*/
else
return TRUE; /*DEVICE_IS_ATTACHED为0,有设备存在,返回TRUE*/
}
/*********************************************************************************************************
** 函数名称: SYS_BusIni
** 功能描述: ATA总线初始化
********************************************************************************************************/
void SYS_BusIni(void)
{
rGPGCON = rGPGCON & (~(0x0f<<14)) ; //GPG7,GPG8 is input
rGPECON = rGPECON & (~(0x03<<24)) ; //GPE12 is input
rGPFCON = rGPFCON & (~(0x03<<6)) ; //GPF3 is input
rGPHCON = rGPHCON & (~(0x03<<20)) | (1<<20) ; //GPH10 is output
CFCard_Power( OFF ) ;
if( SYS_HaveCard() == TRUE )
{
CFCard_Power( ON ) ;
//printf("Any Key To Next!\n") ; getch() ; //Any Key To Next
}
else
{
printf( "CF Card is NOT Pluged!!!\n" ) ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -