下面的程序不能调用子函数不知道怎么了
//发送一个字节
void SendByte(unsigned char ucData)
{
unsigned char i;
for(i=0; i<8; i++)
{
L_SID=ucData&0x80; //高位在前发出
L_SCLK=1;
_nop_();
L_SCLK=0;
ucData<<=1; //左移一位
}
}
//接收一个字节
unsigned char ReceByte(void)
{
unsigned char i;
unsigned char ucBackValue=0;
for(i=0; i<8; i++)
{
L_SCLK=1;
_nop_();
if(L_SID)
ucBackValue|=0x01<<i;
L_SCLK=0;
}
return(ucBackValue);
}
//忙检测
unsigned char CheckBusy(void)
{
unsigned char a = 0;
unsigned char b = 0;
unsigned char ucBackValue = 0;
unsigned char num=250;
unsigned char i=0;
//SendByte(0xfc);//发送检测指令???????为什么用调用发送子函数SendByte(0xfc)就会出错??????
//错误提示*** error 65: access violation at I:0x80 : no 'write' permission
ucBackValue =0xfc;
for(i=0; i<8; i++)
{
L_SID=ucBackValue&0x80; //高位在前发出
L_SCLK=1;
_nop_();
L_SCLK=0;
ucBackValue<<=1; //左移一位
}
//a = ReceByte();
for(i=0; i<8; i++)
{
L_SCLK=1;
_nop_();
if(L_SID)
a|=0x01<<i;
L_SCLK=0;
}
//b = ReceByte();//读两个字节
for(i=0; i<8; i++)
{
L_SCLK=1;
_nop_();
if(L_SID)
b|=0x01<<i;
L_SCLK=0;
}
ucBackValue = 0;
ucBackValue=a&0x80;
while((num>2)&&ucBackValue)
num--;
return(ucBackValue); //返回检测状态
} |