idereset.c

来自「在51下的外挂硬盘和FLASH的MP3方案程序以及原理图」· C语言 代码 · 共 30 行

C
30
字号
#ifndef _IDEIO_DEFINE
 #include "IDEIO.c"
#endif

BYTE IDEReset(BYTE bRestMode);

BYTE IDEReset(BYTE bRestMode)
{
	register WORD i;
	register BYTE status;
	if (bRestMode==IDE_RESET_HARDWARE)			//hardware reset
	{
		IDE_IO_RESET=0;
		for (i=0;i<10;i++);
		IDE_IO_RESET=1;
	}
	else if (bRestMode==IDE_RESET_SOFTWARE)		//software reset
	{
		IDE_WRITE_LSB(IDE_ADDR_CTRL_CONTROL,IDE_CTRL_SRST);					//enable interrupt mode
	}
	//检查状态
	for(i=0;i<65535;i++)
	{
		IDE_READ_LSB(IDE_ADDR_CTRL_STATUS,status);
		if (status&IDE_STATUS_DRDY) return(IDE_SUCCESSFUL);
		for(status=0;status<255;status++);
	}
	return(IDE_ERROR_RESET);
}

⌨️ 快捷键说明

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