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 + -
显示快捷键?