📄 spi.h
字号:
/***************************************************************************\
Copyright (c) 2004-2007 threewater@up-tech.com, All rights reserved.
by threewter 2005.2.26
\***************************************************************************/
/***************************************************************************\
#说明: spi接口驱动程序
---------------------------------- Bug --------------------------------------
---------------------------------- TODO list --------------------------------------
----------------------------------修正--------------------------------------
2005-2-26 创建
\***************************************************************************/
#ifndef __ASM_ARCH_SPI_H__
#define __ASM_ARCH_SPI_H__
#define fSPCON_SMOD Fld(2,5) /* SPI Mode Select */
#define SPCON_SMOD FMsk(fSPCON_SMOD)
#define SPCON_SMOD_POLL FInsrt(0x0, fSPCON_SMOD) /* polling mode */
#define SPCON_SMOD_INT FInsrt(0x1, fSPCON_SMOD) /* interrupt mode */
#define SPCON_SMOD_DMA FInsrt(0x2, fSPCON_SMOD) /* DMA mode */
#define SPCON_ENSCK (1 << 4) /* Enable SCK */
#define SPCON_MSTR (1 << 3) /* Master/Slave select
0: slave, 1: master */
#define SPCON_CPOL (1 << 2) /* Clock polarity select
1: active low, 0: active high */
#define SPCON_CPOL_LOW (1 << 2)
#define SPCON_CPOL_HIGH (0 << 2)
#define SPCON_CPHA (1 << 1) /* Clock Phase Select
0: format A, 1: format B */
#define SPCON_CPHA_FMTA (0 << 1)
#define SPCON_CPHA_FMTB (1 << 1)
#define SPCON_TAGD (1 << 0) /* Tx auto garbage data mode enable
in normal mode, you only want to receive data,
you should tranmit dummy 0xFF data */
#define SPSTA_DCOL (1 << 2) /* Data Collision Error */
#define SPSTA_MULF (1 << 1) /* Multi Master Error */
#define SPSTA_READY (1 << 0) /* data Tx/Rx ready */
#define SPPIN_ENMUL (1 << 2) /* Multi Master Error detect Enable */
#define SPPIN_KEEP (1 << 0) /* Master Out keep */
void SPISend ( unsigned char val, int channel );
unsigned char SPIRecv ( int channel );
void Set_SIO_mode(int channel, int nSPCON, int nSPPRE, int SPPIN,
int *poldnSPCON, int *poldnSPPRE, int *poldSPPIN);
void SPI_initIO(int channel);
void SPI_init(void);
__inline static unsigned char SendReadData(unsigned char data, int ch)
{
SPISend(data, ch);
return SPIRecv(ch);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -