hardwareprofile.h

来自「本附件为嵌入式Web的相关资料」· C头文件 代码 · 共 1,384 行 · 第 1/4 页

H
1,384
字号
	#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(DSPICDEMNET1) || defined(DSPICDEMNET2)
// dsPICDEM.net 1 and 2 Development Board with RTL8019AS MAC, 24LC515 EEPROM
	#define LED0_TRIS			(TRISCbits.TRISC4)	// Ref LED3
	#define LED0_IO				(PORTCbits.RC4)	
	#define LED1_TRIS			(TRISCbits.TRISC3)	// Ref LED2
	#define LED1_IO				(PORTCbits.RC3)
	#define LED2_TRIS			(TRISCbits.TRISC2)	// Ref LED1
	#define LED2_IO				(PORTCbits.RC2)
	#define LED3_TRIS			(TRISCbits.TRISC4)	// No LED, Remapped to Ref LED3
	#define LED3_IO				(PORTCbits.RC4)	
	#define LED4_TRIS			(TRISCbits.TRISC3)	// No LED, Remapped to Ref LED2
	#define LED4_IO				(PORTCbits.RC3)
	#define LED5_TRIS			(TRISCbits.TRISC2)	// No LED, Remapped to Ref LED1
	#define LED5_IO				(PORTCbits.RC2)
	#define LED6_TRIS			(TRISCbits.TRISC4)	// No LED, Remapped to Ref LED3
	#define LED6_IO				(PORTCbits.RC4)	
	#define LED7_TRIS			(TRISCbits.TRISC3)	// No LED, Remapped to Ref LED2
	#define LED7_IO				(PORTCbits.RC3)

	#define BUTTON0_TRIS		(TRISAbits.TRISA14)	// Ref S3
	#define	BUTTON0_IO			(PORTAbits.RA14)
	#define BUTTON1_TRIS		(TRISAbits.TRISA13)	// Ref S2
	#define	BUTTON1_IO			(PORTAbits.RA13)
	#define BUTTON2_TRIS		(TRISAbits.TRISA12)	// Ref S1
	#define	BUTTON2_IO			(PORTAbits.RA12)
	#define BUTTON3_TRIS		(TRISAbits.TRISA14)	// No switch, remapped to Ref S3
	#define	BUTTON3_IO			(PORTAbits.RA14)

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

	// RTL8019AS I/O pins
	typedef struct
	{
		unsigned char data : 5;	// Bits 0 through 4
		unsigned char : 3;		// Bits 5 through 7
		unsigned char : 8;		// Bits 8 through 15
	} NIC_ADDR;
	typedef struct
	{
		unsigned int data : 16;	// Bits 0 through 15
	} NIC_DATA;
	#define NIC_ADDR_TRIS		(((NIC_ADDR*)&TRISD)->data)
	#define NIC_ADDR_IO			(((NIC_ADDR*)&LATD)->data)
	#define NIC_DATA_TRIS		(((NIC_DATA*)&TRISD)->data)
	#define NIC_DATA_IO			(((NIC_DATA*)&PORTD)->data)
	#define NIC_RESET_ADPCFG	(ADPCFGbits.PCFG15)
	#define NIC_RESET_TRIS		(TRISBbits.TRISB15)
	#define NIC_RESET_IO		(PORTBbits.RB15)
	#define NIC_ADDR_LATCH_ADPCFG	(ADPCFGbits.PCFG12)
	#define NIC_ADDR_LATCH_TRIS	(TRISBbits.TRISB12)
	#define NIC_ADDR_LATCH_IO	(PORTBbits.RB12)
	#define NIC_IOW_ADPCFG		(ADPCFGbits.PCFG14)
	#define NIC_IOW_TRIS		(TRISBbits.TRISB14)
	#define NIC_IOW_IO			(PORTBbits.RB14)
	#define NIC_IOR_ADPCFG		(ADPCFGbits.PCFG13)
	#define NIC_IOR_TRIS		(TRISBbits.TRISB13)
	#define NIC_IOR_IO			(PORTBbits.RB13)

	// 24LC515 I/O pins
	#define EEPROM_I2CRCV		(I2CRCV)
	#define EEPROM_I2CTRN		(I2CTRN)
	#define EEPROM_I2CCON		(I2CCON)
	#define EEPROM_I2CCONbits	(I2CCONbits)
	#define EEPROM_I2CSTAT		(I2CSTAT)
	#define EEPROM_I2CSTATbits	(I2CSTATbits)

	// 24LC515 configuration
	#define EEPROM_CONTROL	(0xA0)		// Address 0
	#define I2CBAUD			(400000)	// Hz

	// 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*)&TRISD)->data)
	#define LCD_DATA_IO			(((LCD_DATA*)&LATD)->data)
	#define LCD_RD_WR_TRIS		(TRISBbits.TRISB11)
	#define LCD_RD_WR_IO		(LATBbits.LATB11)
	#define LCD_RS_TRIS			(TRISAbits.TRISA6)
	#define LCD_RS_IO			(LATAbits.LATA6)
	#define LCD_E_TRIS			(TRISAbits.TRISA7)
	#define LCD_E_IO			(LATAbits.LATA7)

	//SRAM I/O
	#define SRAM_CE_ADPCFG		(ADPCFGbits.PCFG9)
	#define SRAM_OE_ADPCFG		(ADPCFGbits.PCFG10)
	#define SRAM_CE_TRIS		(TRISBbits.TRISB9)
	#define SRAM_CE_IO			(LATBbits.LATB9)
	#define SRAM_OE_TRIS		(TRISBbits.TRISB10)
	#define SRAM_OE_IO			(LATBbits.LATB10)
	

	// Do not use the DMA and other goodies that Microchip Ethernet modules have
	#define NON_MCHP_MAC

#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)	// Uncomment this line if you wish to use the ENC28J60 on the PICDEM.net 2 board instead of the internal PIC18F97J60 Ethernet module
	#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(PICDEMNET2_MINI)
// PICDEM.net(TM) 2 mini (not in production)
// PIC18F67J60 board 05-60091 (Rev 1)

	// I/O pins
	#define LED0_TRIS			(TRISDbits.TRISD0)
	#define LED0_IO				(PORTDbits.RD0)
	#define LED1_TRIS			(TRISDbits.TRISD0)
	#define LED1_IO				(PORTDbits.RD0)
	#define LED2_TRIS			(TRISDbits.TRISD0)
	#define LED2_IO				(PORTDbits.RD0)
	#define LED3_TRIS			(TRISDbits.TRISD0)
	#define LED3_IO				(PORTDbits.RD0)
	#define LED4_TRIS			(TRISDbits.TRISD0)
	#define LED4_IO				(PORTDbits.RD0)
	#define LED5_TRIS			(TRISDbits.TRISD0)
	#define LED5_IO				(PORTDbits.RD0)
	#define LED6_TRIS			(TRISDbits.TRISD0)
	#define LED6_IO				(PORTDbits.RD0)
	#define LED7_TRIS			(TRISDbits.TRISD0)
	#define LED7_IO				(PORTDbits.RD0)

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

	// 25LC256 I/O pins
	#define EEPROM_CS_TRIS		(TRISCbits.TRISC2)
	#define EEPROM_CS_IO		(LATCbits.LATC2)
	#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(PIC18F97J60_TEST_BOARD)
// PIC18F97J60 Test board for early Adopters and beta customers

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

	#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

#else
	#error "Hardware profile not defined.  See available profiles in HardwareProfile.h.  Add the appropriate macro definition to your application configuration file ('TCPIPConfig.h', etc.)"
#endif


#if defined(__18CXX) || defined(HI_TECH_C)
	#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)

#elif defined(__C30__)
#if defined(DSPICDEMNET1) || defined(DSPICDEMNET2)
	#define UBRG					U1BRG
	#define UMODE					U1MODE
	#define USTA					U1STA
	#define BusyUART()				BusyUART1()
	#define CloseUART()				CloseUART1()
	#define ConfigIntUART(a)		ConfigIntUART1(a)
	#define DataRdyUART()			DataRdyUART1()
	#define OpenUART(a,b,c)			OpenUART1(a,b,c)
	#define ReadUART()				ReadUART1()
	#define WriteUART(a)			WriteUART1(a)
	#define getsUART(a,b,c)			getsUART1(a,b,c)
	#define putsUART(a)				putsUART1((unsigned int *)a)
	#define getcUART()				getcUART1()
	#define putcUART(a)				WriteUART1(a)
	#define putrsUART(a)			putsUART1((unsigned int *)a)
#else
	#define UBRG					U2BRG
	#define UMODE					U2MODE
	#define USTA					U2STA
	#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(a)				WriteUART2(a)
	#define putrsUART(a)			putsUART2((unsigned int *)a)
#endif
#endif

// Various compilation warnings specific to the TCP/IP stack
#if ((defined(__18F97J60)) && !defined(PICDEMNET2) && !defined(PIC18F97J60_TEST_BOARD) && !defined(YOUR_BOARD)) || \
	((defined(__18F67J60)) && !defined(PICDEMNET2_MINI) && !defined(YOUR_BOARD)) || \
	((defined(__18F18F8722) || defined(__18F87J10) || defined(__18F45J10)) && !defined(HPC_EXPLORER) && !defined(YOUR_BOARD)) || \
	((defined(__PIC24F__) || defined(__PIC24H__) || defined(__dsPIC33F__)) && !defined(EXPLORER_16) && !defined(YOUR_BOARD)) || \
	((defined(__dsPIC30F__)) && !defined(DSPICDEM11) && !defined(DSPICDEMNET1) && !defined(DSPICDEMNET2) && !defined(YOUR_BOARD))
	#error "Warning: The board profile may not be configured correctly."
	#error
	#error "Make sure that a proper board profile macro is defined at the top of 'TCPIPConfig.h' and your processor is selected correctly in MPLAB."
#endif


#endif

⌨️ 快捷键说明

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