📄 isddriv.c
字号:
/****************************************************************
** *
** FILE : isddriv.C *
** COPYRIGHT : (c) 2001 .Xiamen Yaxon NetWork CO.LTD *
** *
** *
** By : Cyb 2006.12.15 *
****************************************************************/
#include "includes.h"
#include "errcode.h"
#include "errtask.h"
#include "bsp.h"
#include "isddriv.h"
static void Delay(INT8U nums)
{
INT8U i;
for(i = 0;i<nums;i++)
{
__asm
{
NOP
}
}
}
static void ConfigSpiPort(void)
{
Init_PIN_SCLK();
Init_PIN_MOSI();
Init_PIN_MISO();
Init_PIN_NSS();
}
static INT32U GetBit(INT8U order)
{
INT8U i;
INT32U temp;
for( i=0;i<3;i++)
{
if (Read_PIN_MOSI())
{
temp = 1 << order;
}
else
{
temp = 0;
}
}
return temp;
}
void InitISD(void)
{
ConfigSpiPort();
SET_PIN_NSS();
Delay(2);
SET_PIN_SCLK();
SET_PIN_MISO();
}
INT16U SendISDOP(INT8U op, INT16U adr)
{
INT8U i;
INT32U recev;
INT32U temp1;
INT32U temp2;
op <<= 3;
temp1 = op;
temp1 <<= 0x10;
temp1 = temp1 | adr;
recev = 0;
InitISD();
CLEAR_PIN_SCLK();
Delay(2);
CLEAR_PIN_NSS();
Delay(2);
for(i=0;i<24;i++)
{
if( temp1 & (1<< i))
{
SET_PIN_MISO();
}
else
{
CLEAR_PIN_MISO();
}
Delay(2);
SET_PIN_SCLK();
Delay(2);
CLEAR_PIN_SCLK();
temp2 = GetBit(i);
recev = recev | temp2;
}
recev >>=1;
InitISD();
Delay(10);
return (INT16U)recev;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -