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

📄 compiler.h

📁 这是一个自动测量zigbee发射信号强度的原代码,可以直接运行,不用修改,测试已成功
💻 H
字号:
/*********************************************************************
 *
 *                  Compiler specific defs.
 *
 *********************************************************************
 * FileName:        Compiler.h
 * Dependencies:    None
 * Processor:       PIC18
 * Complier:        MCC18 v1.00.50 or higher
 *                  HITECH PICC-18 V8.10PL1 or higher
 * Company:         Microchip Technology, Inc.
 *
 * Software License Agreement
 *
 * The software supplied herewith by Microchip Technology Incorporated
 * (the 揅ompany? for its PICmicro?Microcontroller is intended and
 * supplied to you, the Company抯 customer, for use solely and
 * exclusively on Microchip PICmicro Microcontroller products. The
 * software is owned by the Company and/or its supplier, and is
 * protected under applicable copyright laws. All rights are reserved.
 * Any use in violation of the foregoing restrictions may subject the
 * user to criminal sanctions under applicable laws, as well as to
 * civil liability for the breach of the terms and conditions of this
 * license.
 *
 * THIS SOFTWARE IS PROVIDED IN AN 揂S IS?CONDITION. NO WARRANTIES,
 * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
 * TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
 * IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
 *
 *
 * Author               Date        Comment
 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Nilesh Rajbharti     7/12/04     Rel 0.9
 * Nilesh Rajbharti     11/1/04     Pre-release version
 * DF/KO                04/29/05 Microchip ZigBee Stack v1.0-2.0
 * DF/KO                07/18/05 Microchip ZigBee Stack v1.0-3.0
 * DF/KO                07/27/05 Microchip ZigBee Stack v1.0-3.1
 * DF/KO                01/09/06 Microchip ZigBee Stack v1.0-3.5
 ********************************************************************/
#ifndef COMPILER_H
#define COMPILER_H

#if defined(HI_TECH_C)
    #if defined(_MPC_)
        #define HITECH_C18
    #else
        #error "Unknown compiler is selected."
    #endif
#else
    #if !defined(_WIN32)
        #define MCHP_C18
    #endif
#endif

#if defined(MCHP_C18) && defined(HITECH_C18)
#error "Invalid Compiler selection."
#endif

#if !defined(MCHP_C18) && !defined(HITECH_C18) && !defined(_WIN32)
#error "Compiler not supported."
#endif

#if defined(MCHP_C18)
    #include <p18f4620.h>    // p18cxxx.h must have current processor
                            // defined.
#endif

#if defined(HITECH_C18)
    #include <pic18.h>
    #include <stdio.h>
#endif

#include <stdlib.h>


#if defined(WIN32)
    #define ROM
#endif

#if defined(MCHP_C18)
    #if defined(__18F67J11)
        #define TXSTAbits           TXSTA2bits
        #define TXSTA               TXSTA2
        #define TXREG               TXREG2
        #define RCSTA           	RCSTA2
	    #define SPBRG           	SPBRG2
	    #define RCREG           	RCREG2
		#define SPICON				SSP2CON1
		#define SPISTATbits			SPI2STATbits
    #endif
    
    #define ROM                 rom

    #define SWDTEN              WDTCONbits.SWDTEN

    #define DC                  STATUSbits.DC

    #define EEWR                EECON1bits.WR
    #define EEWREN              EECON1bits.WREN

    #define LATA0               LATAbits.LATA0
    #define LATA1               LATAbits.LATA1
    #define LATA2               LATAbits.LATA2
    #define LATA3               LATAbits.LATA3
    #define LATA4               LATAbits.LATA4
    #define LATA5               LATAbits.LATA5
    #define LATA6               LATAbits.LATA6
    #define LATA7               LATAbits.LATA7

    #define RB0                 PORTBbits.RB0
    #define RB1                 PORTBbits.RB1
    #define RB2                 PORTBbits.RB2
    #define RB3                 PORTBbits.RB3
    #define RB4                 PORTBbits.RB4
    #define RB5                 PORTBbits.RB5
    #define RB6                 PORTBbits.RB6
    #define RB7                 PORTBbits.RB7

    #define TRISB0              TRISBbits.TRISB0
    #define TRISB1              TRISBbits.TRISB1
    #define TRISB2              TRISBbits.TRISB2
    #define TRISB3              TRISBbits.TRISB3
    #define TRISB4              TRISBbits.TRISB4
    #define TRISB5              TRISBbits.TRISB5
    #define TRISB6              TRISBbits.TRISB6
    #define TRISB7              TRISBbits.TRISB7

    #define RA0                 PORTAbits.RA0
    #define RA1                 PORTAbits.RA1
    #define RA2                 PORTAbits.RA2
    #define RA3                 PORTAbits.RA3
    #define RA4                 PORTAbits.RA4
    #define RA5                 PORTAbits.RA5
    #define RA6                 PORTAbits.RA6
    #define RA7                 PORTAbits.RA7

    #define TRISA0              TRISAbits.TRISA0
    #define TRISA1              TRISAbits.TRISA1
    #define TRISA2              TRISAbits.TRISA2
    #define TRISA3              TRISAbits.TRISA3
    #define TRISA4              TRISAbits.TRISA4
    #define TRISA5              TRISAbits.TRISA5
    #define TRISA6              TRISAbits.TRISA6
    #define TRISA7              TRISAbits.TRISA7

    #define LATC0               LATCbits.LATC0
    #define LATC1               LATCbits.LATC1
    #define LATC2               LATCbits.LATC2
    #define LATC3               LATCbits.LATC3
    #define LATC4               LATCbits.LATC4
    #define LATC5               LATCbits.LATC5
    #define LATC6               LATCbits.LATC6
    #define LATC7               LATCbits.LATC7

    #define TRISC0              TRISCbits.TRISC0
    #define TRISC1              TRISCbits.TRISC1
    #define TRISC2              TRISCbits.TRISC2
    #define TRISC3              TRISCbits.TRISC3
    #define TRISC4              TRISCbits.TRISC4
    #define TRISC5              TRISCbits.TRISC5
    #define TRISC6              TRISCbits.TRISC6
    #define TRISC7              TRISCbits.TRISC7

    #define RC0                 PORTCbits.RC0
    #define RC1                 PORTCbits.RC1
    #define RC2                 PORTCbits.RC2
    #define RC3                 PORTCbits.RC3
    #define RC4                 PORTCbits.RC4
    #define RC5                 PORTCbits.RC5
    #define RC6                 PORTCbits.RC6
    #define RC7                 PORTCbits.RC7

    #define TRISD7              TRISDbits.TRISD7
    #define TRISD6              TRISDbits.TRISD6
    #define TRISD5              TRISDbits.TRISD5
    #define TRISD4              TRISDbits.TRISD4
    #define TRISD3              TRISDbits.TRISD3
    #define TRISD2              TRISDbits.TRISD2
    #define TRISD1              TRISDbits.TRISD1
    #define TRISD0              TRISDbits.TRISD0

    #define LATD0               LATDbits.LATD0
    #define LATD1               LATDbits.LATD1
    #define LATD2               LATDbits.LATD2
    #define LATD3               LATDbits.LATD3
    #define LATD4               LATDbits.LATD4
    #define LATD5               LATDbits.LATD5
    #define LATD6               LATDbits.LATD6
    #define LATD7               LATDbits.LATD7


    #define RD7                 PORTDbits.RD7
    #define RD6                 PORTDbits.RD6
    #define RD5                 PORTDbits.RD5
    #define RD4                 PORTDbits.RD4
    #define RD3                 PORTDbits.RD3
    #define RD2                 PORTDbits.RD2
    #define RD1                 PORTDbits.RD1
    #define RD0                 PORTDbits.RD0

    #define RE0                 PORTEbits.RE0
    #define RE1                 PORTEbits.RE1
    #define RE2                 PORTEbits.RE2
    #define RE3                 PORTEbits.RE3
    #define RE4                 PORTEbits.RE4
    #define RE5                 PORTEbits.RE5
    #define RE6                 PORTEbits.RE6
    #define RE7                 PORTEbits.RE7

    #define TMR0IE              INTCONbits.TMR0IE
    #define TMR0IF              INTCONbits.TMR0IF
    #define INT0IE              INTCONbits.INT0IE
    #define INT0IF              INTCONbits.INT0IF
    #define RBPU                INTCON2bits.RBPU
    #define RBIF                INTCONbits.RBIF
    #define RBIE                INTCONbits.RBIE

    #define CCP2IF              PIR2bits.CCP2IF
    #define CCP2IE              PIE2bits.CCP2IE
    #define CCP2IP              IPR2bits.CCP2IP

    #define INT2IE              INTCON3bits.INT2IE
    #define INT2IF              INTCON3bits.INT2IF
    #define INT0IF              INTCONbits.INT0IF

    #define INT2IP              INTCON3bits.INT2IP
    #define INTEDG2             INTCON2bits.INTEDG2
    #define TMR0IP              INTCON2bits.TMR0IP

    #define TMR0ON              T0CONbits.TMR0ON

    #define TMR1ON              T1CONbits.TMR1ON

    #define TMR3IE              PIE2bits.TMR3IE
    #define TMR3IF              PIR2bits.TMR3IF
    #define TMR3ON              T3CONbits.TMR3ON


    #define SEN                 SSPCON2bits.SEN
    #define ACKSTAT             SSPCON2bits.ACKSTAT
    #define RSEN                SSPCON2bits.RSEN
    #define RCEN                SSPCON2bits.RCEN
    #define ACKEN               SSPCON2bits.ACKEN
    #define PEN                 SSPCON2bits.PEN
    #define ACKDT               SSPCON2bits.ACKDT

    #define SSPRW               SSPSTATbits.R_W
    #define SSPBF               SSPSTATbits.BF
    #define CKE                 SSPSTATbits.CKE
    #define SMP                 SSPSTATbits.SMP

    #define GIEH                INTCONbits.GIEH
    #define GIEL                INTCONbits.GIEL

    #define BCLIF               PIR2bits.BCLIF

    #define TXIE                PIE1bits.TXIE
    #define RCIE                PIE1bits.RCIE
    #define TMR1IE              PIE1bits.TMR1IE

    
    #define TMR1IF              PIR1bits.TMR1IF

    #define RCIP                IPR1bits.RCIP


    #define TRMT                TXSTAbits.TRMT
    #define BRGH                TXSTAbits.BRGH

    #if defined(__18F4620)
        #define RCIF                PIR1bits.RCIF
        #define TXIF                PIR1bits.TXIF
        
        #define SSPIF               PIR1bits.SSPIF
        #define WCOL                SSPCON1bits.WCOL
            
        #define CREN                RCSTAbits.CREN
        #define OERR                RCSTAbits.OERR
    #else
        #define RCIF                PIR3bits.RC2IF
        #define TXIF                PIR3bits.TX2IF
        
        #define SSPIF               PIR3bits.SSP2IF
        #define WCOL                SSP2CON1bits.WCOL
        #define SSPBUF              SSP2BUF
        
        #define CREN                RCSTA2bits.CREN
        #define OERR                RCSTA2bits.OERR
    #endif
    
    #define ADGO                ADCON0bits.GO
    #define ADON                ADCON0bits.ADON

    #define RI                  RCONbits.RI
    #define TO                  RCONbits.TO
    #define PD                  RCONbits.PD
    #define POR                 RCONbits.POR
    #define BOR                 RCONbits.BOR
    #define IPEN                RCONbits.IPEN

    #define WUE                 BAUDCONbits.WUE

    #define STKFUL              STKPTRbits.STKFUL
    #define STKUNF              STKPTRbits.STKUNF

    #define NOP()               Nop()
    #define CLRWDT()            ClrWdt()
    #define RESET()             Reset()
    #define SLEEP()             Sleep()
    #define DISABLE_WDT()       (WDTCONbits.SWDTEN = 0)
    #define ENABLE_WDT()        (WDTCONbits.SWDTEN = 1)

    #define TBLWTPOSTINC()      _asm tblwtpostinc _endasm


#endif

#if defined(HITECH_C18)
    #define ROM                 const

    #define memcmppgm2ram(a, b, c)      memcmp(a, b, c)
    #define memcpypgm2ram(a, b, c)      mymemcpy(a, b, c)
    #define itoa(val, string)           sprintf(string, "%u", val)

    extern void *mymemcpy(void * d1, const void * s1, unsigned char n);
    extern char *strupr(char*);

    /* Fix for HITECH C */
    #define TXREG       _TXREG
    static volatile near unsigned char       _TXREG       @ 0xFAD;


    #define EEWR                WR
    #define EEWREN              WREN

    #define TRISA2              TRISA2
    #define TRISA5              TRISA5

    #define SSPRW               RW
    #define SSPBF               BF

    #define ADGO                GODONE

    #define DISABLE_WDT()       (SWDTEN = 0)
    #define ENABLE_WDT()        (SWDTEN = 1)
    #define TBLWTPOSTINC()      asm(" tblwt*+")


#endif

#if defined(WIN32)
    #define memcpypgm2ram(d, s, c)  memcpy(d, s, c)
    #define TBLWTPOSTINC()
#endif

#endif

⌨️ 快捷键说明

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