📄 spi.h
字号:
//****************************************************************************//// spi.h - The common spi declaration for ep93xx//// Copyright (c) 2006 Cirrus Logic, Inc.////****************************************************************************#ifndef SPI_H#define SPI_H//****************************************************************************// spi eeprom operate declaration//****************************************************************************typedef struct eeprom { char manufacture_id; char device_id; void (*init)(void); int (*query)(unsigned int manu_id,unsigned int device_id); int (*erase)(unsigned int addr, int length); int (*program)(unsigned int addr, unsigned char *pBuffer, int length); unsigned long (*read)(unsigned int addr, unsigned char *pBuffer, int length); } eeprom_t;//****************************************************************************// Maybe you can add other eeprom support.//****************************************************************************typedef struct tSSP{ union { // SSP Control register 0 struct { unsigned int DSS:4; unsigned int FRF:2; unsigned int SPO:1; unsigned int SPH:1; unsigned int SCR:8; unsigned int RSVD:16; } Field; unsigned int Value; } SSPCR0; union { // SSP Control register 1 struct { unsigned int RIE:1; unsigned int TIE:1; unsigned int RORIE:1; unsigned int LBM:1; unsigned int SSE:1; unsigned int MS:1; unsigned int SOD:1; unsigned int RSVD:25; } Field; unsigned int Value; } SSPCR1; union { // SSP Data register struct { unsigned int DATA:16; unsigned int RSVD:16; } Field; unsigned int Value; } SSPDR; union { // SSP Status register struct { unsigned int TFE:1; unsigned int TNF:1; unsigned int RNE:1; unsigned int RFF:1; unsigned int BSY:1; unsigned int RSVD:27; } Field; unsigned int Value; } SSPSR; union { // SSP clock prescale register struct { unsigned int CPSDVSR:8; unsigned int RSVD:24; } Field; unsigned int Value; } SSPCPSR; union { // SSP interrupt identification register struct { unsigned int RIS:1; unsigned int TIS:1; unsigned int RORIS:1; unsigned int RSVD:13; } Field; unsigned int Value; } SSPIIR; //// Test registers// unsigned int const SSPTCER[(-(0x0040-0x007C))>>2]; union { // SSP Test control register struct { unsigned int TESTEN:1; unsigned int TESTCLKEN:1; unsigned int REGCLK:1; unsigned int TESTRST:1; unsigned int TESTINPSEL:1; unsigned int RSVD:27; } Field; unsigned int Value; } SSPTCR; union { // SSP Test mode register struct { unsigned int NIBMODE:1; unsigned int CPSCNIBMODE:1; unsigned int RSVD:30; } Field; unsigned int Value; } SSPTMR; union { // SSP Test input stimulus register struct { unsigned int SSPRXD:1; unsigned int SFRMIN:1; unsigned int SCLKIN:1; unsigned int RSVD:29; } Field; unsigned int Value; } SSPTISR; union { // SSP Test output capture register struct { unsigned int SFRMOUT:1; unsigned int SCLKOUT:1; unsigned int SSPTXD:1; unsigned int SSPOE:1; unsigned int SSPINTR:1; unsigned int SSPCTLOE:1; unsigned int RSVD:26; } Field; unsigned int Value; } SSPTOCR; union { // SSP Test clock prescale counter register struct { unsigned int SSPCPSC:6; unsigned int RSVD:26; } Field; unsigned int Value; } SSPTCPCR; } SSP;//-----------------------------------------------------------------------------// Global Register Anchor Definitions//-----------------------------------------------------------------------------static volatile SSP * const SSP1 = (SSP *) 0x808A0000;#endif // SPI_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -