⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spi16.h

📁 CAN控制器2515的J1939库源程序
💻 H
字号:
#ifndef __SPI16_H
#define __SPI16_H

/*
spi16.h

This file is the PIC16 SPI peripheral header file.  It contains constants
for use with the SPI port on PIC16 devices.

Version     Date        Description
----------------------------------------------------------------------
v1.00       2003/12/11  Initial release

Copyright 2003 Kimberly Otten Software Consulting
*/

// Define the SPI pins on the PIC

#define SPI_SDI_PIN_TRIS	TRISC4
#define SPI_SDO_PIN_TRIS	TRISC5
#define SPI_CLOCK_PIN_TRIS	TRISC3
#define SPI_SS_PIN_TRIS		TRISA5


// SSPSTAT Register Values

// Master SPI mode only

#define   SMPEND        0x80           // Input data sample at end of data out
#define   SMPMID        0x00           // Input data sample at middle of data out

#define   MODE_00       0              // Setting for SPI bus Mode 0,0
//CKE           0x40                   // SSPSTAT register
//CKP           0x00                   // SSPCON1 register

#define   MODE_01       1              // Setting for SPI bus Mode 0,1
//CKE           0x00                   // SSPSTAT register
//CKP           0x00                   // SSPCON1 register

#define   MODE_10       2              // Setting for SPI bus Mode 1,0
//CKE           0x40                   // SSPSTAT register
//CKP           0x10                   // SSPCON1 register

#define   MODE_11       3              // Setting for SPI bus Mode 1,1
//CKE           0x00                   // SSPSTAT register
//CKP           0x10                   // SSPCON1 register


// SSPCON Register Values

#define   SPI_FOSC_4    0              // SPI Master mode, clock = Fosc/4
#define   SPI_FOSC_16   1              // SPI Master mode, clock = Fosc/16
#define   SPI_FOSC_64   2              // SPI Master mode, clock = Fosc/64
#define   SPI_FOSC_TMR2 3              // SPI Master mode, clock = TMR2 output/2
#define   SLV_SSON      4              // SPI Slave mode, /SS pin control enabled
#define   SLV_SSOFF     5              // SPI Slave mode, /SS pin control disabled


// Function Prototypes

void			CloseSPI( void );
unsigned char 	DataRdySPI( void );
unsigned char 	ReadSPI( void );
void 			OpenSPI( unsigned char sync_mode, unsigned char bus_mode, unsigned char smp_phase );
unsigned char 	WriteSPI( unsigned char data_out );
void 			getsSPI( unsigned char *rdptr, unsigned char length );
void 			putsSPI( unsigned char *wrptr );


// Define alternate function names

#define  getcSPI  ReadSPI
#define  putcSPI  WriteSPI

// Uncomment the #define for SPI_USE_ONLY_INLINE_DEFINITIONS in j1939cfg.h
// to use these inline alternates and save stack space.  Note that a significant
// amount of ROM will be required, so these should be used only if more stack space
// is absolutely required.

#define READSPI( Val )						\
					{						\
						SSPBUF = 0x00;		\
					    while ( !STAT_BF ); \
					    Val = SSPBUF;    \
					}

// Since we're doing things inline, we have to remove the error checking.

#define WRITESPI( Val )							\
					{							\
					    SSPBUF = Val;    		\
					    if ( !WCOL )         	\
					        while( !STAT_BF );	\
					}


#endif  /* __SPI16_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -