📄 ch375cfg.c.bak
字号:
#include "\CH375\CH375CFG.H"
#include "44b.h"
#include "def.h"
#define CMD_GET_STATUS 0x22
#define USB_INT_DISCONNECT 0x16
#define USB_INT_CONNECT 0x15 /* 检测到USB设备连接事件 */
#define DISK_DISCONNECT 0x01 /* 磁盘没有连接或者已经断开 */
#define DISK_CONNECT 0x02 /* 磁盘已经连接,但是尚未初始化或者无法识别该磁盘 */
#define ERR_SUCCESS 0x00 /* 操作成功 */
extern U8 volatile CH375IntStatus; /* CH375操作的中断状态 */
extern U8 volatile CH375IntStatus;
extern U8 volatile CH375DiskStatus;
//CH375外部配置文件
void mDelay1_2uS( ) /* 至少延时1.2uS,根据单片机主频调整 */
{
U32 i;
for ( i = 30; i != 0; i -- );
}
void __irq CH375Interrupt( void ) /* CH375中断服务程序,由CH375的INT#的低电平或者下降沿触发单片机中断 */
{
rEXTINTPND=0xf; //clear EXTINTPND reg.
rI_ISPC=BIT_EINT2; //clear pending_bit
xWriteCH375Cmd( CMD_GET_STATUS ); /* 获取中断状态并取消中断请求 */
CH375IntStatus = xReadCH375Data( ); /* 获取中断状态 */
if ( CH375IntStatus == USB_INT_DISCONNECT ) CH375DiskStatus = DISK_DISCONNECT; /* 检测到USB设备断开事件 */
else if ( CH375IntStatus == USB_INT_CONNECT ) CH375DiskStatus = DISK_CONNECT; /* 检测到USB设备连接事件 */
}
void CH375_PORT_INIT( ) /*初始化 */
{
rINTCON=0x5;
rINTMOD=0x0; //All=IRQ mode
rPDATG=0xff;
rPCONG=0xffff;
rPUPG=0x0; //should be enabled
rEXTINT=0x0;
pISR_EINT2 = (unsigned)CH375Interrupt;
rINTMSK &=(~(BIT_GLOBAL|BIT_EINT2)); //start INT
}
void xWriteCH375Cmd( U8 mCmd ) /* 外部定义的被CH375程序库调用的子程序,向CH375写命令 */
{
mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延时1uS */
CH375Cmd = mCmd;
mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延时2uS */
}
void xWriteCH375Data( U8 mData ) /* 外部定义的被CH375程序库调用的子程序,向CH375写数据 */
{
CH375Dat = mData ;
mDelay1_2uS( ); /* 至少延时1.2uS */
}
U8 xReadCH375Data( void ) /* 外部定义的被CH375程序库调用的子程序,从CH375读数据 */
{
U8 mData;
mDelay1_2uS( ); /* 至少延时1.2uS */
mData = (U8)CH375Dat;
return( mData );
}
/* 延时指定毫秒时间,根据单片机主频调整,不精确 */
void mDelaymS( U32 ms )
{
U32 i;
while ( ms -- ) for ( i = 25000; i != 0; i -- );
}
extern void OSTimeDly(U32);
/* 检查操作状态,如果错误则显示错误代码并停机 */
void mStopIfError( U8 iError )
{
if ( iError == ERR_SUCCESS ) return; /* 操作成功 */
LCD_Printf( "Error: %02X\n", (U16)iError ); /* 显示错误 */
OSTimeDly(900);
}
//*****************************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -