void Send_Byte(unsigned char out)//SPI MOD=0
{
unsigned char i = 0;
SPI_CK_L; /* toggle clock low */
for (i = 0; i < 8; i++)
{
if ((out & 0x80) == 0x80) /* check if MSB is high */
SPI_DI_H;
else
SPI_DI_L; /* if not, set to low */
Delay(10);
SPI_CK_H; /* toggle clock high */
out = (out << 1); /* shift 1 place for next bit */
Delay(10);
SPI_CK_L; /* toggle clock low */
}
}
unsigned char Get_Byte(void)//SPI MOD=0
{
unsigned char i = 0, in = 0;
uint32 temp = 0;
SPI_CK_L;
for (i = 0; i < 8; i++)
{
in = (in << 1);
temp = ReadIO;
if(temp)
{
in = (in|0x01);
}
SPI_CK_H;
Delay(10);
SPI_CK_L;
Delay(10);
}
Delay(20);
return in;
}
/*
unsigned char Get_Byte(void)//SPI MOD=0
{//这种读的方式--得到的结果和上面一样
//表明SST25VF080B确实是在CLK的下降沿输出数据-->
//-->然后保持-->
//-->直到下一个CLK的下降沿来临才更新输出-->
//-->所以上升沿之前读 和 上升沿之后读 是没有区别的
unsigned char i = 0, in = 0;
uint32 temp = 0;
SPI_CK_L;
for (i = 0; i < 8; i++)
{
in = (in << 1);
SPI_CK_H;
Delay(10);
temp = ReadIO;
if(temp)
{
in = (in|0x01);
}
SPI_CK_L;
Delay(10);
}
Delay(20);
return in;
}
*/