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

📄 compiler.h

📁 用于Microchip 16位单片机的通信应用程序库 1042
💻 H
📖 第 1 页 / 共 2 页
字号:
	#define UARTRX_IO		(PORTFbits.RF4)

	// ENC28J60 I/O pins
	#define ENC_RST_TRIS	(TRISDbits.TRISD15)	// Not connected by default
	#define ENC_RST_IO		(PORTDbits.RD15)
	#define ENC_CS_TRIS		(TRISDbits.TRISD14)
	#define ENC_CS_IO		(PORTDbits.RD14)
	#define ENC_SCK_TRIS	(TRISFbits.TRISF6)
	#define ENC_SDI_TRIS	(TRISFbits.TRISF7)
	#define ENC_SDO_TRIS	(TRISFbits.TRISF8)
	#define ENC_SPI_IF		(IFS0bits.SPI1IF)
	#define ENC_SSPBUF		(SPI1BUF)
	#define ENC_SPISTAT		(SPI1STAT)
	#define ENC_SPISTATbits	(SPI1STATbits)
	#define ENC_SPICON1		(SPI1CON1)
	#define ENC_SPICON1bits	(SPI1CON1bits)
	#define ENC_SPICON2		(SPI1CON2)

	// 25LC256 I/O pins
	#define EEPROM_CS_TRIS		(TRISDbits.TRISD12)
	#define EEPROM_CS_IO		(PORTDbits.RD12)
	#define EEPROM_SCK_TRIS		(TRISGbits.TRISG6)
	#define EEPROM_SDI_TRIS		(TRISGbits.TRISG7)
	#define EEPROM_SDO_TRIS		(TRISGbits.TRISG8)
	#define EEPROM_SPI_IF		(IFS2bits.SPI2IF)
	#define EEPROM_SSPBUF		(SPI2BUF)
	#define EEPROM_SPICON1		(SPI2CON1)
	#define EEPROM_SPICON1bits	(SPI2CON1bits)
	#define EEPROM_SPICON2		(SPI2CON2)
	#define EEPROM_SPISTAT		(SPI2STAT)
	#define EEPROM_SPISTATbits	(SPI2STATbits)

	// LCD Module I/O pins
	typedef struct
	{
		unsigned char data : 8;	// Bits 0 through 7
		unsigned char : 8;		// Bits 8 through 15
	} LCD_DATA;
	#define LCD_DATA_TRIS		(((LCD_DATA*)&TRISE)->data)
	#define LCD_DATA_IO			(((LCD_DATA*)&LATE)->data)
	#define LCD_RD_WR_TRIS		(TRISDbits.TRISD5)
	#define LCD_RD_WR_IO		(LATDbits.LATD5)
	#define LCD_RS_TRIS			(TRISBbits.TRISB15)
	#define LCD_RS_IO			(LATBbits.LATB15)
	#define LCD_E_TRIS			(TRISDbits.TRISD4)
	#define LCD_E_IO			(LATDbits.LATD4)


#elif defined(DSPICDEM11)
// dsPICDEM 1.1 Development Board + Ethernet PICtail airwired. There 
// is no PICtail header on this development board.  The following 
// airwires must be made:
// 1. dsPICDEM GND <-> PICtail GND (PICtail pin 27)
// 2. dsPICDEM Vdd <- PICtail VPIC (PICtail pin 25)
// 3. dsPICDEM RG2 -> PICtail ENC28J60 CS (PICtail pin 22)
// 4. dsPICDEM RF6 -> PICtail SCK (PICtail pin 11)
// 5. dsPICDEM RF7 <- PICtail SDI (PICtail pin 9)
// 6. dsPICDEM RF8 -> PICtail SDO (PICtail pin 7)
// 7. dsPICDEM RG3 -> PICtail 25LC256 CS (PICtail pin 20)

	#define LED0_TRIS		(TRISDbits.TRISD3)	// Ref LED4
	#define LED0_IO			(PORTDbits.RD3)	
	#define LED1_TRIS		(TRISDbits.TRISD2)	// Ref LED3
	#define LED1_IO			(PORTDbits.RD2)
	#define LED2_TRIS		(TRISDbits.TRISD1)	// Ref LED2
	#define LED2_IO			(PORTDbits.RD1)
	#define LED3_TRIS		(TRISDbits.TRISD0)	// Ref LED1
	#define LED3_IO			(PORTDbits.RD0)
	#define LED4_TRIS		(TRISDbits.TRISD3)	// No LED, Remapped to Ref LED4
	#define LED4_IO			(PORTDbits.RD3)	
	#define LED5_TRIS		(TRISDbits.TRISD2)	// No LED, Remapped to Ref LED3
	#define LED5_IO			(PORTDbits.RD2)
	#define LED6_TRIS		(TRISDbits.TRISD1)	// No LED, Remapped to Ref LED2
	#define LED6_IO			(PORTDbits.RD1)
	#define LED7_TRIS		(TRISDbits.TRISD0)	// No LED, Remapped to Ref LED1
	#define LED7_IO			(PORTDbits.RD0)

	#define BUTTON0_TRIS	(TRISAbits.TRISA15)	// Ref SW4
	#define	BUTTON0_IO		(PORTAbits.RA15)
	#define BUTTON1_TRIS	(TRISAbits.TRISA14)	// Ref SW3
	#define	BUTTON1_IO		(PORTAbits.RA14)
	#define BUTTON2_TRIS	(TRISAbits.TRISA13)	// Ref SW2
	#define	BUTTON2_IO		(PORTAbits.RA13)
	#define BUTTON3_TRIS	(TRISAbits.TRISA12)	// Ref SW1
	#define	BUTTON3_IO		(PORTAbits.RA12)

	#define UARTTX_TRIS		(TRISFbits.TRISF3)
	#define UARTTX_IO		(PORTFbits.RF3)
	#define UARTRX_TRIS		(TRISFbits.TRISF2)
	#define UARTRX_IO		(PORTFbits.RF2)

	// ENC28J60 I/O pins
	#define ENC_RST_TRIS	(0)	// Not connected
	#define ENC_RST_IO		(0)
	#define ENC_CS_TRIS		(TRISGbits.TRISG2)		// User must airwire this
	#define ENC_CS_IO		(PORTGbits.RG2)
	#define ENC_SCK_TRIS	(TRISFbits.TRISF6)		// User must airwire this
	#define ENC_SDI_TRIS	(TRISFbits.TRISF7)		// User must airwire this
	#define ENC_SDO_TRIS	(TRISFbits.TRISF8)		// User must airwire this
	#define ENC_SPI_IF		(IFS0bits.SPI1IF)
	#define ENC_SSPBUF		(SPI1BUF)
	#define ENC_SPICON1		(SPI1CON)
	#define ENC_SPICON1bits	(SPI1CONbits)
	#define ENC_SPICON2		(SPI1BUF)				// SPI1CON2 doesn't exist, remap to unimportant register
	#define ENC_SPISTAT		(SPI1STAT)
	#define ENC_SPISTATbits	(SPI1STATbits)

	// 25LC256 I/O pins
	#define EEPROM_CS_TRIS		(TRISGbits.TRISG3)	// User must airwire this
	#define EEPROM_CS_IO		(PORTGbits.RG3)
	#define EEPROM_SCK_TRIS		(TRISGbits.TRISG6)
	#define EEPROM_SDI_TRIS		(TRISGbits.TRISG7)
	#define EEPROM_SDO_TRIS		(TRISGbits.TRISG8)
	#define EEPROM_SPI_IF		(IFS0bits.SPI1IF)
	#define EEPROM_SSPBUF		(SPI1BUF)
	#define EEPROM_SPICON1		(SPI1CON)
	#define EEPROM_SPICON1bits	(SPI1CONbits)
	#define EEPROM_SPICON2		(SPI1BUF)			// SPI1CON2 doesn't exist, remap to unimportant register
	#define EEPROM_SPISTAT		(SPI1STAT)
	#define EEPROM_SPISTATbits	(SPI1STATbits)

	// SI3000 codec pins
	#define CODEC_RST_TRIS	(TRISFbits.TRISF6)
	#define CODEC_RST_IO	(PORTFbits.RF6)
	
	// PIC18F252 LCD Controller
	#define LCDCTRL_CS_TRIS	(TRISGbits.TRISG9)
	#define LCDCTRL_CS_IO	(PORTGbits.RG9)

#elif defined(PICDEMNET2)
// PICDEM.net 2 (PIC18F97J60 + ENC28J60)

	// I/O pins
	#define LED0_TRIS		(TRISJbits.TRISJ0)
	#define LED0_IO			(PORTJbits.RJ0)
	#define LED1_TRIS		(TRISJbits.TRISJ1)
	#define LED1_IO			(PORTJbits.RJ1)
	#define LED2_TRIS		(TRISJbits.TRISJ2)
	#define LED2_IO			(PORTJbits.RJ2)
	#define LED3_TRIS		(TRISJbits.TRISJ3)
	#define LED3_IO			(PORTJbits.RJ3)
	#define LED4_TRIS		(TRISJbits.TRISJ4)
	#define LED4_IO			(PORTJbits.RJ4)
	#define LED5_TRIS		(TRISJbits.TRISJ5)
	#define LED5_IO			(PORTJbits.RJ5)
	#define LED6_TRIS		(TRISJbits.TRISJ6)
	#define LED6_IO			(PORTJbits.RJ6)
	#define LED7_TRIS		(TRISJbits.TRISJ7)
	#define LED7_IO			(PORTJbits.RJ7)
	#define LED_IO			(*((volatile unsigned char*)(&PORTJ)))

	#define BUTTON0_TRIS	(TRISBbits.TRISB3)
	#define	BUTTON0_IO		(PORTBbits.RB3)
	#define BUTTON1_TRIS	(TRISBbits.TRISB2)
	#define	BUTTON1_IO		(PORTBbits.RB2)
	#define BUTTON2_TRIS	(TRISBbits.TRISB1)
	#define	BUTTON2_IO		(PORTBbits.RB1)
	#define BUTTON3_TRIS	(TRISBbits.TRISB0)
	#define	BUTTON3_IO		(PORTBbits.RB0)

	// ENC28J60 I/O pins
	#define ENC_RST_TRIS	(TRISDbits.TRISD2)	// Not connected by default
	#define ENC_RST_IO		(LATDbits.LATD2)
	#define ENC_CS_TRIS		(TRISDbits.TRISD3)
	#define ENC_CS_IO		(LATDbits.LATD3)
	#define ENC_SCK_TRIS	(TRISCbits.TRISC3)
	#define ENC_SDI_TRIS	(TRISCbits.TRISC4)
	#define ENC_SDO_TRIS	(TRISCbits.TRISC5)
	#define ENC_SPI_IF		(PIR1bits.SSPIF)
	#define ENC_SSPBUF		(SSP1BUF)
	#define ENC_SPISTAT		(SSP1STAT)
	#define ENC_SPISTATbits	(SSP1STATbits)
	#define ENC_SPICON1		(SSP1CON1)
	#define ENC_SPICON1bits	(SSP1CON1bits)
	#define ENC_SPICON2		(SSP1CON2)

	// 25LC256 I/O pins
	#define EEPROM_CS_TRIS		(TRISDbits.TRISD7)
	#define EEPROM_CS_IO		(LATDbits.LATD7)
	#define EEPROM_SCK_TRIS		(TRISCbits.TRISC3)
	#define EEPROM_SDI_TRIS		(TRISCbits.TRISC4)
	#define EEPROM_SDO_TRIS		(TRISCbits.TRISC5)
	#define EEPROM_SPI_IF		(PIR1bits.SSPIF)
	#define EEPROM_SSPBUF		(SSPBUF)
	#define EEPROM_SPICON1		(SSP1CON1)
	#define EEPROM_SPICON1bits	(SSP1CON1bits)
	#define EEPROM_SPICON2		(SSP1CON2)
	#define EEPROM_SPISTAT		(SSP1STAT)
	#define EEPROM_SPISTATbits	(SSP1STATbits)

	#define LCD_DATA_TRIS		(TRISE)
	#define LCD_DATA_IO			(LATE)
	#define LCD_RD_WR_TRIS		(TRISHbits.TRISH1)
	#define LCD_RD_WR_IO		(LATHbits.LATH1)
	#define LCD_RS_TRIS			(TRISHbits.TRISH2)
	#define LCD_RS_IO			(LATHbits.LATH2)
	#define LCD_E_TRIS			(TRISHbits.TRISH0)
	#define LCD_E_IO			(LATHbits.LATH0)

#elif defined(PIC18F97J60_TEST_BOARD)
// PIC18F97J60 Test board for early Adopters and beta customers

	// I/O pins
	#define LED0_TRIS		(TRISDbits.TRISD0)
	#define LED0_IO			(PORTDbits.RD0)
	#define LED1_TRIS		(TRISDbits.TRISD1)
	#define LED1_IO			(PORTDbits.RD1)
	#define LED2_TRIS		(TRISDbits.TRISD2)
	#define LED2_IO			(PORTDbits.RD2)
	#define LED3_TRIS		(TRISDbits.TRISD3)
	#define LED3_IO			(PORTDbits.RD3)
	#define LED4_TRIS		(TRISDbits.TRISD4)
	#define LED4_IO			(PORTDbits.RD4)
	#define LED5_TRIS		(TRISDbits.TRISD5)
	#define LED5_IO			(PORTDbits.RD5)
	#define LED6_TRIS		(TRISDbits.TRISD6)
	#define LED6_IO			(PORTDbits.RD6)
	#define LED7_TRIS		(TRISDbits.TRISD7)
	#define LED7_IO			(PORTDbits.RD7)
	#define LED_IO			(*((volatile unsigned char*)(&PORTD)))

	#define BUTTON0_TRIS	(TRISBbits.TRISB3)
	#define	BUTTON0_IO		(PORTBbits.RB3)
	#define BUTTON1_TRIS	(TRISBbits.TRISB2)
	#define	BUTTON1_IO		(PORTBbits.RB2)
	#define BUTTON2_TRIS	(TRISBbits.TRISB1)
	#define	BUTTON2_IO		(PORTBbits.RB1)
	#define BUTTON3_TRIS	(TRISBbits.TRISB0)
	#define	BUTTON3_IO		(PORTBbits.RB0)

	// 25LC256 I/O pins
	#define EEPROM_CS_TRIS		(TRISBbits.TRISB4)
	#define EEPROM_CS_IO		(LATBbits.LATB4)
	#define EEPROM_SCK_TRIS		(TRISCbits.TRISC3)
	#define EEPROM_SDI_TRIS		(TRISCbits.TRISC4)
	#define EEPROM_SDO_TRIS		(TRISCbits.TRISC5)
	#define EEPROM_SPI_IF		(PIR1bits.SSPIF)
	#define EEPROM_SSPBUF		(SSPBUF)
	#define EEPROM_SPICON1		(SSP1CON1)
	#define EEPROM_SPICON1bits	(SSP1CON1bits)
	#define EEPROM_SPICON2		(SSP1CON2)
	#define EEPROM_SPISTAT		(SSP1STAT)
	#define EEPROM_SPISTATbits	(SSP1STATbits)

#elif defined(YOUR_BOARD)
// Define your own board hardware profile here

#endif

#if defined(DEBUG)
	#define DebugPrint(a)			{putrsUART(a);}
#else
	#define DebugPrint(a)			{}
#endif


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef __C30__
	#include <stdlib.h>
#endif

#if defined(__18CXX) && !defined(HI_TECH_C)
    #define ROM                 	rom
	#define strcpypgm2ram(a, b)		strcpypgm2ram(a,(far rom char*)b)
#elif defined(__18CXX) && defined(HI_TECH_C)
    #define ROM                 	const
	#define rom
    #define Nop()               	asm("NOP");
    #define Reset()					asm("RESET");
	#define memcmppgm2ram(a,b,c)	memcmp(a,b,c)
	#define memcpypgm2ram(a,b,c)	memcpy(a,b,c)
	#define strcpypgm2ram(a, b)		strcpy(a,b)
	#define strcpypgm2ram(a, b)		strcpy(a,b)
#endif

#if defined(__18CXX)
	#define	__attribute__(a)
	#define BusyUART()				BusyUSART()
	#define CloseUART()				CloseUSART()
	#define ConfigIntUART(a)		ConfigIntUSART(a)
	#define DataRdyUART()			DataRdyUSART()
	#define OpenUART(a,b,c)			OpenUSART(a,b,c)
	#define ReadUART()				ReadUSART()
	#define WriteUART(a)			WriteUSART(a)
	#define getsUART(a,b,c)			getsUSART(b,a)
	#define putsUART(a)				putsUSART(a)
	#define getcUART()				ReadUSART()
	#define putcUART(a)				WriteUSART(a)
	#define putrsUART(a)			putrsUSART((far rom char*)a)

	#if defined(__18F8720) || defined(__18F87J10) || defined(__18F97J60)
	    #define TXSTAbits       	TXSTA1bits
	    #define TXREG           	TXREG1
	    #define TXSTA           	TXSTA1
	    #define RCSTA           	RCSTA1
	    #define SPBRG           	SPBRG1
	    #define RCREG           	RCREG1
		#define SPICON				SSP1CON1
		#define SPISTATbits			SPI1STATbits
	#endif

#elif defined(__C30__)
    #define ROM						const

	#define BusyUART()				BusyUART2()
	#define CloseUART()				CloseUART2()
	#define ConfigIntUART(a)		ConfigIntUART2(a)
	#define DataRdyUART()			DataRdyUART2()
	#define OpenUART(a,b,c)			OpenUART2(a,b,c)
	#define ReadUART()				ReadUART2()
	#define WriteUART(a)			WriteUART2(a)
	#define getsUART(a,b,c)			getsUART2(a,b,c)
	#define putsUART(a)				putsUART2((unsigned int *)a)
	#define getcUART()				getcUART2()
	#define putcUART()				putcUART2()
	#define putrsUART(a)			putsUART2((unsigned int *)a)

	#define memcmppgm2ram(a,b,c)	memcmp(a,b,c)
	#define memcpypgm2ram(a,b,c)	memcpy(a,b,c)
	#define strcpypgm2ram(a, b)		strcpy(a,b)

	#define Reset()					asm("reset")

	#if defined(__dsPIC33F__) || defined(__PIC24H__)
		#define AD1PCFGbits			AD1PCFGLbits
		#define AD1CHS				AD1CHS0
	#elif defined(__dsPIC30F__)
		#define ADC1BUF0			ADCBUF0
		#define AD1CHS				ADCHS
		#define	AD1CON1				ADCON1
		#define AD1CON2				ADCON2
		#define AD1CON3				ADCON3
		#define AD1PCFGbits			ADPCFGbits
		#define AD1CSSL				ADCSSL
		#define AD1IF				ADIF
		#define AD1IE				ADIE
		#define _ADC1Interrupt		_ADCInterrupt
	#endif
#endif

// Various compilation warnings
#if defined(__18F97J60) && !(defined(PICDEMNET2) || defined(PIC18F97J60_TEST_BOARD)) || \
	(defined(__18F18F8722) || defined(__18F87J10)) && !defined(HPC_EXPLORER) || \
	(defined(__PIC24F__) || defined(__PIC24H__) || defined(__dsPIC33F__)) && !defined(EXPLORER_16) || \
	defined(__dsPIC30F__) && !defined(DSPICDEM11)
	#error "Warning: The board profile may not be configured correctly."
	#error
	#error "Make sure that a proper board profile macro (HPC_EXPLORER, "
	#error "EXPLORER_16, PICDEMNET2, DSPICDEM11, etc) is defined in your "
	#error "project settings (Project -> Build Options... -> Project -> "
	#error "MPLAB Cxx -> Add (macro)"
#endif


#endif

⌨️ 快捷键说明

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