阅读:1083回复:0
IDE模式的小问题
uchar cfbusy()
{ uchar ss; ss = Status; while((ss&0xc1)!=0x40) { delay(100); ss = Error_Reg; ss = Status; } return 1; } void Enable8bit() { cfbusy(); Features = 0x01; #if __MAST__ Drv_Head = 0xe0;//11100000b;// bit4=0 as MASTER, #else Drv_Head = 0xf0; #endif Command = 0xef;//SetFeature ; cfbusy();//这里就出问题了 } 调试程序如上,想将硬盘设置成8位数据方式,可第一次调用cfbusy()时,Status返回0x50,这是正常的,命令发完后,第二次调用cfbusy()时,Status返回0x51,老是报错。这是怎么回事啊?发其他命令时好象可以成功返回。哪位大虾能解释一下啊? |
|
|