X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Finclude%2Fpic%2Fpic16f687.h;h=65674c2fd7d83aaca596ae004320c390a5b02e65;hb=HEAD;hp=2b1e0479b7f6fc116c37116fac049590d5c6dc9d;hpb=5682577164cf23e4c6663decdfcad7846d0aa10c;p=fw%2Fsdcc diff --git a/device/include/pic/pic16f687.h b/device/include/pic/pic16f687.h index 2b1e0479..65674c2f 100644 --- a/device/include/pic/pic16f687.h +++ b/device/include/pic/pic16f687.h @@ -4,7 +4,7 @@ // // This header file was automatically generated by: // -// inc2h.pl V1.6 +// inc2h.pl V4783 // // Copyright (c) 2002, Kevin L. Pauba, All Rights Reserved // @@ -71,6 +71,7 @@ #define BAUDCTL_ADDR 0x009B #define ADRESL_ADDR 0x009E #define ADCON1_ADDR 0x009F +#define EEDAT_ADDR 0x010C #define EEDATA_ADDR 0x010C #define EEADR_ADDR 0x010D #define EEDATH_ADDR 0x010E @@ -91,67 +92,6 @@ // Memory organization. // -#pragma memmap INDF_ADDR INDF_ADDR SFR 0x000 // INDF -#pragma memmap TMR0_ADDR TMR0_ADDR SFR 0x000 // TMR0 -#pragma memmap PCL_ADDR PCL_ADDR SFR 0x000 // PCL -#pragma memmap STATUS_ADDR STATUS_ADDR SFR 0x000 // STATUS -#pragma memmap FSR_ADDR FSR_ADDR SFR 0x000 // FSR -#pragma memmap PORTA_ADDR PORTA_ADDR SFR 0x000 // PORTA -#pragma memmap PORTB_ADDR PORTB_ADDR SFR 0x000 // PORTB -#pragma memmap PORTC_ADDR PORTC_ADDR SFR 0x000 // PORTC -#pragma memmap PCLATH_ADDR PCLATH_ADDR SFR 0x000 // PCLATH -#pragma memmap INTCON_ADDR INTCON_ADDR SFR 0x000 // INTCON -#pragma memmap PIR1_ADDR PIR1_ADDR SFR 0x000 // PIR1 -#pragma memmap PIR2_ADDR PIR2_ADDR SFR 0x000 // PIR2 -#pragma memmap TMR1L_ADDR TMR1L_ADDR SFR 0x000 // TMR1L -#pragma memmap TMR1H_ADDR TMR1H_ADDR SFR 0x000 // TMR1H -#pragma memmap T1CON_ADDR T1CON_ADDR SFR 0x000 // T1CON -#pragma memmap SSPBUF_ADDR SSPBUF_ADDR SFR 0x000 // SSPBUF -#pragma memmap SSPCON_ADDR SSPCON_ADDR SFR 0x000 // SSPCON -#pragma memmap RCSTA_ADDR RCSTA_ADDR SFR 0x000 // RCSTA -#pragma memmap TXREG_ADDR TXREG_ADDR SFR 0x000 // TXREG -#pragma memmap RCREG_ADDR RCREG_ADDR SFR 0x000 // RCREG -#pragma memmap ADRESH_ADDR ADRESH_ADDR SFR 0x000 // ADRESH -#pragma memmap ADCON0_ADDR ADCON0_ADDR SFR 0x000 // ADCON0 -#pragma memmap OPTION_REG_ADDR OPTION_REG_ADDR SFR 0x000 // OPTION_REG -#pragma memmap TRISA_ADDR TRISA_ADDR SFR 0x000 // TRISA -#pragma memmap TRISB_ADDR TRISB_ADDR SFR 0x000 // TRISB -#pragma memmap TRISC_ADDR TRISC_ADDR SFR 0x000 // TRISC -#pragma memmap PIE1_ADDR PIE1_ADDR SFR 0x000 // PIE1 -#pragma memmap PIE2_ADDR PIE2_ADDR SFR 0x000 // PIE2 -#pragma memmap PCON_ADDR PCON_ADDR SFR 0x000 // PCON -#pragma memmap OSCCON_ADDR OSCCON_ADDR SFR 0x000 // OSCCON -#pragma memmap OSCTUNE_ADDR OSCTUNE_ADDR SFR 0x000 // OSCTUNE -#pragma memmap SSPADD_ADDR SSPADD_ADDR SFR 0x000 // SSPADD -#pragma memmap MSK_ADDR MSK_ADDR SFR 0x000 // MSK -#pragma memmap SSPMSK_ADDR SSPMSK_ADDR SFR 0x000 // SSPMSK -#pragma memmap SSPSTAT_ADDR SSPSTAT_ADDR SFR 0x000 // SSPSTAT -#pragma memmap WPU_ADDR WPU_ADDR SFR 0x000 // WPU -#pragma memmap WPUA_ADDR WPUA_ADDR SFR 0x000 // WPUA -#pragma memmap IOC_ADDR IOC_ADDR SFR 0x000 // IOC -#pragma memmap IOCA_ADDR IOCA_ADDR SFR 0x000 // IOCA -#pragma memmap WDTCON_ADDR WDTCON_ADDR SFR 0x000 // WDTCON -#pragma memmap TXSTA_ADDR TXSTA_ADDR SFR 0x000 // TXSTA -#pragma memmap SPBRG_ADDR SPBRG_ADDR SFR 0x000 // SPBRG -#pragma memmap SPBRGH_ADDR SPBRGH_ADDR SFR 0x000 // SPBRGH -#pragma memmap BAUDCTL_ADDR BAUDCTL_ADDR SFR 0x000 // BAUDCTL -#pragma memmap ADRESL_ADDR ADRESL_ADDR SFR 0x000 // ADRESL -#pragma memmap ADCON1_ADDR ADCON1_ADDR SFR 0x000 // ADCON1 -#pragma memmap EEDATA_ADDR EEDATA_ADDR SFR 0x000 // EEDATA -#pragma memmap EEADR_ADDR EEADR_ADDR SFR 0x000 // EEADR -#pragma memmap EEDATH_ADDR EEDATH_ADDR SFR 0x000 // EEDATH -#pragma memmap EEADRH_ADDR EEADRH_ADDR SFR 0x000 // EEADRH -#pragma memmap WPUB_ADDR WPUB_ADDR SFR 0x000 // WPUB -#pragma memmap IOCB_ADDR IOCB_ADDR SFR 0x000 // IOCB -#pragma memmap VRCON_ADDR VRCON_ADDR SFR 0x000 // VRCON -#pragma memmap CM1CON0_ADDR CM1CON0_ADDR SFR 0x000 // CM1CON0 -#pragma memmap CM2CON0_ADDR CM2CON0_ADDR SFR 0x000 // CM2CON0 -#pragma memmap CM2CON1_ADDR CM2CON1_ADDR SFR 0x000 // CM2CON1 -#pragma memmap ANSEL_ADDR ANSEL_ADDR SFR 0x000 // ANSEL -#pragma memmap ANSELH_ADDR ANSELH_ADDR SFR 0x000 // ANSELH -#pragma memmap EECON1_ADDR EECON1_ADDR SFR 0x000 // EECON1 -#pragma memmap EECON2_ADDR EECON2_ADDR SFR 0x000 // EECON2 -#pragma memmap SRCON_ADDR SRCON_ADDR SFR 0x000 // SRCON // LIST @@ -177,6 +117,7 @@ // //========================================================================== //1.00 10/12/04 Original +//2.00 04/21/05 Modified to match released datasheet //========================================================================== // // Verify Processor @@ -198,9 +139,9 @@ //----- Register Files------------------------------------------------------ -extern __data __at (INDF_ADDR) volatile char INDF; +extern __sfr __at (INDF_ADDR) INDF; extern __sfr __at (TMR0_ADDR) TMR0; -extern __data __at (PCL_ADDR) volatile char PCL; +extern __sfr __at (PCL_ADDR) PCL; extern __sfr __at (STATUS_ADDR) STATUS; extern __sfr __at (FSR_ADDR) FSR; extern __sfr __at (PORTA_ADDR) PORTA; @@ -259,7 +200,7 @@ extern __sfr __at (ADRESL_ADDR) ADRESL; extern __sfr __at (ADCON1_ADDR) ADCON1; - +extern __sfr __at (EEDAT_ADDR) EEDAT; extern __sfr __at (EEDATA_ADDR) EEDATA; extern __sfr __at (EEADR_ADDR) EEADR; extern __sfr __at (EEDATH_ADDR) EEDATH; @@ -304,7 +245,7 @@ extern __sfr __at (SRCON_ADDR) SRCON; -//----- SSPCON Bits ------------------------------------------------------- +//----- SSPCON Bits -------------------------------------------------------- @@ -399,6 +340,9 @@ extern __sfr __at (SRCON_ADDR) SRCON; //----- CM2CON1 Bits ------------------------------------------------------- +//----- ANSELH ------------------------------------------------------------- + + //----- ANSEL -------------------------------------------------------------- @@ -418,7 +362,7 @@ extern __sfr __at (SRCON_ADDR) SRCON; // __MAXRAM H'1FF' // __BADRAM H'08'-H'09', H'11'-H'12', H'15'-H'17', H'1B'- H'1D' // __BADRAM H'88'-H'89', H'91'-H'92', H'9C'-H'9D', H'C0'-H'EF' -// __BADRAM H'108'-H'109', H'10F'-H'114', H'117', H'11C'-H'11D', H'120'-H'16F' +// __BADRAM H'108'-H'109', H'10E'-H'114', H'117', H'11C'-H'11D', H'120'-H'16F' // __BADRAM H'188'-H'189', H'18E'-H'19D', H'19F'-H'1EF' //========================================================================== @@ -431,10 +375,10 @@ extern __sfr __at (SRCON_ADDR) SRCON; #define _FCMEN_OFF 0x37FF #define _IESO_ON 0x3FFF #define _IESO_OFF 0x3BFF -#define _BOD_ON 0x3FFF -#define _BOD_NSLEEP 0x3EFF -#define _BOD_SBODEN 0x3DFF -#define _BOD_OFF 0x3CFF +#define _BOR_ON 0x3FFF +#define _BOR_NSLEEP 0x3EFF +#define _BOR_SBODEN 0x3DFF +#define _BOR_OFF 0x3CFF #define _CPD_ON 0x3F7F #define _CPD_OFF 0x3FFF #define _CP_ON 0x3FBF @@ -495,6 +439,7 @@ typedef union { } __ADCON0_bits_t; extern volatile __ADCON0_bits_t __at(ADCON0_ADDR) ADCON0_bits; +#ifndef NO_BIT_DEFINES #define ADON ADCON0_bits.ADON #define GO ADCON0_bits.GO #define NOT_DONE ADCON0_bits.NOT_DONE @@ -505,41 +450,100 @@ extern volatile __ADCON0_bits_t __at(ADCON0_ADDR) ADCON0_bits; #define CHS3 ADCON0_bits.CHS3 #define VCFG ADCON0_bits.VCFG #define ADFM ADCON0_bits.ADFM +#endif /* NO_BIT_DEFINES */ -// ----- BAUDCTL bits -------------------- +// ----- ADCON1 bits -------------------- typedef union { struct { - unsigned char ABDEN:1; - unsigned char WUE:1; unsigned char :1; - unsigned char BRG16:1; - unsigned char CKTXP:1; + unsigned char :1; + unsigned char :1; + unsigned char :1; + unsigned char ADCS0:1; unsigned char ADCS1:1; - unsigned char RCIDL:1; - unsigned char ABDOVF:1; + unsigned char ADCS2:1; + unsigned char :1; + }; +} __ADCON1_bits_t; +extern volatile __ADCON1_bits_t __at(ADCON1_ADDR) ADCON1_bits; + +#ifndef NO_BIT_DEFINES +#define ADCS0 ADCON1_bits.ADCS0 +#define ADCS1 ADCON1_bits.ADCS1 +#define ADCS2 ADCON1_bits.ADCS2 +#endif /* NO_BIT_DEFINES */ + +// ----- ANSEL bits -------------------- +typedef union { + struct { + unsigned char ANS0:1; + unsigned char ANS1:1; + unsigned char ANS2:1; + unsigned char ANS3:1; + unsigned char ANS4:1; + unsigned char ANS5:1; + unsigned char ANS6:1; + unsigned char ANS7:1; }; +} __ANSEL_bits_t; +extern volatile __ANSEL_bits_t __at(ANSEL_ADDR) ANSEL_bits; + +#ifndef NO_BIT_DEFINES +#define ANS0 ANSEL_bits.ANS0 +#define ANS1 ANSEL_bits.ANS1 +#define ANS2 ANSEL_bits.ANS2 +#define ANS3 ANSEL_bits.ANS3 +#define ANS4 ANSEL_bits.ANS4 +#define ANS5 ANSEL_bits.ANS5 +#define ANS6 ANSEL_bits.ANS6 +#define ANS7 ANSEL_bits.ANS7 +#endif /* NO_BIT_DEFINES */ + +// ----- ANSELH bits -------------------- +typedef union { struct { + unsigned char ANS8:1; + unsigned char ANS9:1; + unsigned char ANS10:1; + unsigned char ANS11:1; unsigned char :1; unsigned char :1; unsigned char :1; unsigned char :1; - unsigned char ADCS0:1; + }; +} __ANSELH_bits_t; +extern volatile __ANSELH_bits_t __at(ANSELH_ADDR) ANSELH_bits; + +#ifndef NO_BIT_DEFINES +#define ANS8 ANSELH_bits.ANS8 +#define ANS9 ANSELH_bits.ANS9 +#define ANS10 ANSELH_bits.ANS10 +#define ANS11 ANSELH_bits.ANS11 +#endif /* NO_BIT_DEFINES */ + +// ----- BAUDCTL bits -------------------- +typedef union { + struct { + unsigned char ABDEN:1; + unsigned char WUE:1; unsigned char :1; - unsigned char ADCS2:1; + unsigned char BRG16:1; + unsigned char SCKP:1; unsigned char :1; + unsigned char RCIDL:1; + unsigned char ABDOVF:1; }; } __BAUDCTL_bits_t; extern volatile __BAUDCTL_bits_t __at(BAUDCTL_ADDR) BAUDCTL_bits; +#ifndef NO_BIT_DEFINES #define ABDEN BAUDCTL_bits.ABDEN #define WUE BAUDCTL_bits.WUE #define BRG16 BAUDCTL_bits.BRG16 -#define CKTXP BAUDCTL_bits.CKTXP -#define ADCS0 BAUDCTL_bits.ADCS0 -#define ADCS1 BAUDCTL_bits.ADCS1 +#define SCKP BAUDCTL_bits.SCKP #define RCIDL BAUDCTL_bits.RCIDL -#define ADCS2 BAUDCTL_bits.ADCS2 #define ABDOVF BAUDCTL_bits.ABDOVF +#endif /* NO_BIT_DEFINES */ // ----- CM1CON0 bits -------------------- typedef union { @@ -556,6 +560,7 @@ typedef union { } __CM1CON0_bits_t; extern volatile __CM1CON0_bits_t __at(CM1CON0_ADDR) CM1CON0_bits; +#ifndef NO_BIT_DEFINES #define C1CH0 CM1CON0_bits.C1CH0 #define C1CH1 CM1CON0_bits.C1CH1 #define C1R CM1CON0_bits.C1R @@ -563,6 +568,7 @@ extern volatile __CM1CON0_bits_t __at(CM1CON0_ADDR) CM1CON0_bits; #define C1OE CM1CON0_bits.C1OE #define C1OUT CM1CON0_bits.C1OUT #define C1ON CM1CON0_bits.C1ON +#endif /* NO_BIT_DEFINES */ // ----- CM2CON0 bits -------------------- typedef union { @@ -579,6 +585,7 @@ typedef union { } __CM2CON0_bits_t; extern volatile __CM2CON0_bits_t __at(CM2CON0_ADDR) CM2CON0_bits; +#ifndef NO_BIT_DEFINES #define C2CH0 CM2CON0_bits.C2CH0 #define C2CH1 CM2CON0_bits.C2CH1 #define C2R CM2CON0_bits.C2R @@ -586,75 +593,52 @@ extern volatile __CM2CON0_bits_t __at(CM2CON0_ADDR) CM2CON0_bits; #define C2OE CM2CON0_bits.C2OE #define C2OUT CM2CON0_bits.C2OUT #define C2ON CM2CON0_bits.C2ON +#endif /* NO_BIT_DEFINES */ // ----- CM2CON1 bits -------------------- typedef union { struct { unsigned char C2SYNC:1; unsigned char T1GSS:1; - unsigned char ANS2:1; - unsigned char ANS3:1; - unsigned char ANS4:1; - unsigned char ANS5:1; - unsigned char MC2OUT:1; - unsigned char MC1OUT:1; - }; - struct { - unsigned char ANS0:1; - unsigned char ANS1:1; - unsigned char WREN:1; - unsigned char WRERR:1; - unsigned char C2REN:1; - unsigned char C1SEN:1; - unsigned char ANS6:1; - unsigned char ANS7:1; - }; - struct { - unsigned char RD:1; - unsigned char WR:1; - unsigned char PULSR:1; - unsigned char PULSS:1; unsigned char :1; unsigned char :1; - unsigned char SR0:1; - unsigned char EEPGD:1; - }; - struct { unsigned char :1; unsigned char :1; - unsigned char :1; - unsigned char :1; - unsigned char :1; - unsigned char :1; - unsigned char :1; - unsigned char SR1:1; + unsigned char MC2OUT:1; + unsigned char MC1OUT:1; }; } __CM2CON1_bits_t; extern volatile __CM2CON1_bits_t __at(CM2CON1_ADDR) CM2CON1_bits; +#ifndef NO_BIT_DEFINES #define C2SYNC CM2CON1_bits.C2SYNC -#define ANS0 CM2CON1_bits.ANS0 -#define RD CM2CON1_bits.RD #define T1GSS CM2CON1_bits.T1GSS -#define ANS1 CM2CON1_bits.ANS1 -#define WR CM2CON1_bits.WR -#define ANS2 CM2CON1_bits.ANS2 -#define WREN CM2CON1_bits.WREN -#define PULSR CM2CON1_bits.PULSR -#define ANS3 CM2CON1_bits.ANS3 -#define WRERR CM2CON1_bits.WRERR -#define PULSS CM2CON1_bits.PULSS -#define ANS4 CM2CON1_bits.ANS4 -#define C2REN CM2CON1_bits.C2REN -#define ANS5 CM2CON1_bits.ANS5 -#define C1SEN CM2CON1_bits.C1SEN #define MC2OUT CM2CON1_bits.MC2OUT -#define ANS6 CM2CON1_bits.ANS6 -#define SR0 CM2CON1_bits.SR0 #define MC1OUT CM2CON1_bits.MC1OUT -#define ANS7 CM2CON1_bits.ANS7 -#define EEPGD CM2CON1_bits.EEPGD -#define SR1 CM2CON1_bits.SR1 +#endif /* NO_BIT_DEFINES */ + +// ----- EECON1 bits -------------------- +typedef union { + struct { + unsigned char RD:1; + unsigned char WR:1; + unsigned char WREN:1; + unsigned char WRERR:1; + unsigned char :1; + unsigned char :1; + unsigned char :1; + unsigned char EEPGD:1; + }; +} __EECON1_bits_t; +extern volatile __EECON1_bits_t __at(EECON1_ADDR) EECON1_bits; + +#ifndef NO_BIT_DEFINES +#define RD EECON1_bits.RD +#define WR EECON1_bits.WR +#define WREN EECON1_bits.WREN +#define WRERR EECON1_bits.WRERR +#define EEPGD EECON1_bits.EEPGD +#endif /* NO_BIT_DEFINES */ // ----- INTCON bits -------------------- typedef union { @@ -671,6 +655,7 @@ typedef union { } __INTCON_bits_t; extern volatile __INTCON_bits_t __at(INTCON_ADDR) INTCON_bits; +#ifndef NO_BIT_DEFINES #define RABIF INTCON_bits.RABIF #define INTF INTCON_bits.INTF #define T0IF INTCON_bits.T0IF @@ -679,6 +664,77 @@ extern volatile __INTCON_bits_t __at(INTCON_ADDR) INTCON_bits; #define T0IE INTCON_bits.T0IE #define PEIE INTCON_bits.PEIE #define GIE INTCON_bits.GIE +#endif /* NO_BIT_DEFINES */ + +// ----- IOC bits -------------------- +typedef union { + struct { + unsigned char IOC0:1; + unsigned char IOC1:1; + unsigned char IOC2:1; + unsigned char IOC3:1; + unsigned char IOC4:1; + unsigned char IOC5:1; + unsigned char :1; + unsigned char :1; + }; +} __IOC_bits_t; +extern volatile __IOC_bits_t __at(IOC_ADDR) IOC_bits; + +#ifndef NO_BIT_DEFINES +#define IOC0 IOC_bits.IOC0 +#define IOC1 IOC_bits.IOC1 +#define IOC2 IOC_bits.IOC2 +#define IOC3 IOC_bits.IOC3 +#define IOC4 IOC_bits.IOC4 +#define IOC5 IOC_bits.IOC5 +#endif /* NO_BIT_DEFINES */ + +// ----- IOCA bits -------------------- +typedef union { + struct { + unsigned char IOCA0:1; + unsigned char IOCA1:1; + unsigned char IOCA2:1; + unsigned char IOCA3:1; + unsigned char IOCA4:1; + unsigned char IOCA5:1; + unsigned char :1; + unsigned char :1; + }; +} __IOCA_bits_t; +extern volatile __IOCA_bits_t __at(IOCA_ADDR) IOCA_bits; + +#ifndef NO_BIT_DEFINES +#define IOCA0 IOCA_bits.IOCA0 +#define IOCA1 IOCA_bits.IOCA1 +#define IOCA2 IOCA_bits.IOCA2 +#define IOCA3 IOCA_bits.IOCA3 +#define IOCA4 IOCA_bits.IOCA4 +#define IOCA5 IOCA_bits.IOCA5 +#endif /* NO_BIT_DEFINES */ + +// ----- IOCB bits -------------------- +typedef union { + struct { + unsigned char :1; + unsigned char :1; + unsigned char :1; + unsigned char :1; + unsigned char IOCB4:1; + unsigned char IOCB5:1; + unsigned char IOCB6:1; + unsigned char IOCB7:1; + }; +} __IOCB_bits_t; +extern volatile __IOCB_bits_t __at(IOCB_ADDR) IOCB_bits; + +#ifndef NO_BIT_DEFINES +#define IOCB4 IOCB_bits.IOCB4 +#define IOCB5 IOCB_bits.IOCB5 +#define IOCB6 IOCB_bits.IOCB6 +#define IOCB7 IOCB_bits.IOCB7 +#endif /* NO_BIT_DEFINES */ // ----- OPTION_REG bits -------------------- typedef union { @@ -695,6 +751,7 @@ typedef union { } __OPTION_REG_bits_t; extern volatile __OPTION_REG_bits_t __at(OPTION_REG_ADDR) OPTION_REG_bits; +#ifndef NO_BIT_DEFINES #define PS0 OPTION_REG_bits.PS0 #define PS1 OPTION_REG_bits.PS1 #define PS2 OPTION_REG_bits.PS2 @@ -703,6 +760,7 @@ extern volatile __OPTION_REG_bits_t __at(OPTION_REG_ADDR) OPTION_REG_bits; #define T0CS OPTION_REG_bits.T0CS #define INTEDG OPTION_REG_bits.INTEDG #define NOT_RABPU OPTION_REG_bits.NOT_RABPU +#endif /* NO_BIT_DEFINES */ // ----- OSCCON bits -------------------- typedef union { @@ -719,6 +777,7 @@ typedef union { } __OSCCON_bits_t; extern volatile __OSCCON_bits_t __at(OSCCON_ADDR) OSCCON_bits; +#ifndef NO_BIT_DEFINES #define SCS OSCCON_bits.SCS #define LTS OSCCON_bits.LTS #define HTS OSCCON_bits.HTS @@ -726,6 +785,7 @@ extern volatile __OSCCON_bits_t __at(OSCCON_ADDR) OSCCON_bits; #define IRCF0 OSCCON_bits.IRCF0 #define IRCF1 OSCCON_bits.IRCF1 #define IRCF2 OSCCON_bits.IRCF2 +#endif /* NO_BIT_DEFINES */ // ----- OSCTUNE bits -------------------- typedef union { @@ -742,20 +802,22 @@ typedef union { } __OSCTUNE_bits_t; extern volatile __OSCTUNE_bits_t __at(OSCTUNE_ADDR) OSCTUNE_bits; +#ifndef NO_BIT_DEFINES #define TUN0 OSCTUNE_bits.TUN0 #define TUN1 OSCTUNE_bits.TUN1 #define TUN2 OSCTUNE_bits.TUN2 #define TUN3 OSCTUNE_bits.TUN3 #define TUN4 OSCTUNE_bits.TUN4 +#endif /* NO_BIT_DEFINES */ // ----- PCON bits -------------------- typedef union { struct { - unsigned char NOT_BOD:1; + unsigned char NOT_BOR:1; unsigned char NOT_POR:1; unsigned char :1; unsigned char :1; - unsigned char SBODEN:1; + unsigned char SBOREN:1; unsigned char ULPWUE:1; unsigned char :1; unsigned char :1; @@ -763,10 +825,12 @@ typedef union { } __PCON_bits_t; extern volatile __PCON_bits_t __at(PCON_ADDR) PCON_bits; -#define NOT_BOD PCON_bits.NOT_BOD +#ifndef NO_BIT_DEFINES +#define NOT_BOR PCON_bits.NOT_BOR #define NOT_POR PCON_bits.NOT_POR -#define SBODEN PCON_bits.SBODEN +#define SBOREN PCON_bits.SBOREN #define ULPWUE PCON_bits.ULPWUE +#endif /* NO_BIT_DEFINES */ // ----- PIE1 bits -------------------- typedef union { @@ -793,12 +857,14 @@ typedef union { } __PIE1_bits_t; extern volatile __PIE1_bits_t __at(PIE1_ADDR) PIE1_bits; +#ifndef NO_BIT_DEFINES #define T1IE PIE1_bits.T1IE #define TMR1IE PIE1_bits.TMR1IE #define SSPIE PIE1_bits.SSPIE #define TXIE PIE1_bits.TXIE #define RCIE PIE1_bits.RCIE #define ADIE PIE1_bits.ADIE +#endif /* NO_BIT_DEFINES */ // ----- PIE2 bits -------------------- typedef union { @@ -815,10 +881,12 @@ typedef union { } __PIE2_bits_t; extern volatile __PIE2_bits_t __at(PIE2_ADDR) PIE2_bits; +#ifndef NO_BIT_DEFINES #define EEIE PIE2_bits.EEIE #define C1IE PIE2_bits.C1IE #define C2IE PIE2_bits.C2IE #define OSFIE PIE2_bits.OSFIE +#endif /* NO_BIT_DEFINES */ // ----- PIR1 bits -------------------- typedef union { @@ -845,12 +913,14 @@ typedef union { } __PIR1_bits_t; extern volatile __PIR1_bits_t __at(PIR1_ADDR) PIR1_bits; +#ifndef NO_BIT_DEFINES #define T1IF PIR1_bits.T1IF #define TMR1IF PIR1_bits.TMR1IF #define SSPIF PIR1_bits.SSPIF #define TXIF PIR1_bits.TXIF #define RCIF PIR1_bits.RCIF #define ADIF PIR1_bits.ADIF +#endif /* NO_BIT_DEFINES */ // ----- PIR2 bits -------------------- typedef union { @@ -867,10 +937,88 @@ typedef union { } __PIR2_bits_t; extern volatile __PIR2_bits_t __at(PIR2_ADDR) PIR2_bits; +#ifndef NO_BIT_DEFINES #define EEIF PIR2_bits.EEIF #define C1IF PIR2_bits.C1IF #define C2IF PIR2_bits.C2IF #define OSFIF PIR2_bits.OSFIF +#endif /* NO_BIT_DEFINES */ + +// ----- PORTA bits -------------------- +typedef union { + struct { + unsigned char RA0:1; + unsigned char RA1:1; + unsigned char RA2:1; + unsigned char RA3:1; + unsigned char RA4:1; + unsigned char RA5:1; + unsigned char :1; + unsigned char :1; + }; +} __PORTA_bits_t; +extern volatile __PORTA_bits_t __at(PORTA_ADDR) PORTA_bits; + +#ifndef NO_BIT_DEFINES +#define RA0 PORTA_bits.RA0 +#define RA1 PORTA_bits.RA1 +#define RA2 PORTA_bits.RA2 +#define RA3 PORTA_bits.RA3 +#define RA4 PORTA_bits.RA4 +#define RA5 PORTA_bits.RA5 +#endif /* NO_BIT_DEFINES */ + +// ----- PORTB bits -------------------- +typedef union { + struct { + unsigned char RB0:1; + unsigned char RB1:1; + unsigned char RB2:1; + unsigned char RB3:1; + unsigned char RB4:1; + unsigned char RB5:1; + unsigned char RB6:1; + unsigned char RB7:1; + }; +} __PORTB_bits_t; +extern volatile __PORTB_bits_t __at(PORTB_ADDR) PORTB_bits; + +#ifndef NO_BIT_DEFINES +#define RB0 PORTB_bits.RB0 +#define RB1 PORTB_bits.RB1 +#define RB2 PORTB_bits.RB2 +#define RB3 PORTB_bits.RB3 +#define RB4 PORTB_bits.RB4 +#define RB5 PORTB_bits.RB5 +#define RB6 PORTB_bits.RB6 +#define RB7 PORTB_bits.RB7 +#endif /* NO_BIT_DEFINES */ + +// ----- PORTC bits -------------------- +typedef union { + struct { + unsigned char RC0:1; + unsigned char RC1:1; + unsigned char RC2:1; + unsigned char RC3:1; + unsigned char RC4:1; + unsigned char RC5:1; + unsigned char RC6:1; + unsigned char RC7:1; + }; +} __PORTC_bits_t; +extern volatile __PORTC_bits_t __at(PORTC_ADDR) PORTC_bits; + +#ifndef NO_BIT_DEFINES +#define RC0 PORTC_bits.RC0 +#define RC1 PORTC_bits.RC1 +#define RC2 PORTC_bits.RC2 +#define RC3 PORTC_bits.RC3 +#define RC4 PORTC_bits.RC4 +#define RC5 PORTC_bits.RC5 +#define RC6 PORTC_bits.RC6 +#define RC7 PORTC_bits.RC7 +#endif /* NO_BIT_DEFINES */ // ----- RCSTA bits -------------------- typedef union { @@ -887,6 +1035,7 @@ typedef union { } __RCSTA_bits_t; extern volatile __RCSTA_bits_t __at(RCSTA_ADDR) RCSTA_bits; +#ifndef NO_BIT_DEFINES #define RX9D RCSTA_bits.RX9D #define OERR RCSTA_bits.OERR #define FERR RCSTA_bits.FERR @@ -895,6 +1044,7 @@ extern volatile __RCSTA_bits_t __at(RCSTA_ADDR) RCSTA_bits; #define SREN RCSTA_bits.SREN #define RX9 RCSTA_bits.RX9 #define SPEN RCSTA_bits.SPEN +#endif /* NO_BIT_DEFINES */ // ----- SPBRG bits -------------------- typedef union { @@ -911,6 +1061,7 @@ typedef union { } __SPBRG_bits_t; extern volatile __SPBRG_bits_t __at(SPBRG_ADDR) SPBRG_bits; +#ifndef NO_BIT_DEFINES #define BRG0 SPBRG_bits.BRG0 #define BRG1 SPBRG_bits.BRG1 #define BRG2 SPBRG_bits.BRG2 @@ -919,6 +1070,7 @@ extern volatile __SPBRG_bits_t __at(SPBRG_ADDR) SPBRG_bits; #define BRG5 SPBRG_bits.BRG5 #define BRG6 SPBRG_bits.BRG6 #define BRG7 SPBRG_bits.BRG7 +#endif /* NO_BIT_DEFINES */ // ----- SPBRGH bits -------------------- typedef union { @@ -935,6 +1087,7 @@ typedef union { } __SPBRGH_bits_t; extern volatile __SPBRGH_bits_t __at(SPBRGH_ADDR) SPBRGH_bits; +#ifndef NO_BIT_DEFINES #define BRG8 SPBRGH_bits.BRG8 #define BRG9 SPBRGH_bits.BRG9 #define BRG10 SPBRGH_bits.BRG10 @@ -943,6 +1096,31 @@ extern volatile __SPBRGH_bits_t __at(SPBRGH_ADDR) SPBRGH_bits; #define BRG13 SPBRGH_bits.BRG13 #define BRG14 SPBRGH_bits.BRG14 #define BRG15 SPBRGH_bits.BRG15 +#endif /* NO_BIT_DEFINES */ + +// ----- SRCON bits -------------------- +typedef union { + struct { + unsigned char :1; + unsigned char :1; + unsigned char PULSR:1; + unsigned char PULSS:1; + unsigned char C2REN:1; + unsigned char C1SEN:1; + unsigned char SR0:1; + unsigned char SR1:1; + }; +} __SRCON_bits_t; +extern volatile __SRCON_bits_t __at(SRCON_ADDR) SRCON_bits; + +#ifndef NO_BIT_DEFINES +#define PULSR SRCON_bits.PULSR +#define PULSS SRCON_bits.PULSS +#define C2REN SRCON_bits.C2REN +#define C1SEN SRCON_bits.C1SEN +#define SR0 SRCON_bits.SR0 +#define SR1 SRCON_bits.SR1 +#endif /* NO_BIT_DEFINES */ // ----- SSPCON bits -------------------- typedef union { @@ -959,6 +1137,7 @@ typedef union { } __SSPCON_bits_t; extern volatile __SSPCON_bits_t __at(SSPCON_ADDR) SSPCON_bits; +#ifndef NO_BIT_DEFINES #define SSPM0 SSPCON_bits.SSPM0 #define SSPM1 SSPCON_bits.SSPM1 #define SSPM2 SSPCON_bits.SSPM2 @@ -967,77 +1146,95 @@ extern volatile __SSPCON_bits_t __at(SSPCON_ADDR) SSPCON_bits; #define SSPEN SSPCON_bits.SSPEN #define SSPOV SSPCON_bits.SSPOV #define WCOL SSPCON_bits.WCOL +#endif /* NO_BIT_DEFINES */ // ----- SSPSTAT bits -------------------- typedef union { struct { unsigned char BF:1; unsigned char UA:1; - unsigned char R_W_NOT:1; + unsigned char R:1; unsigned char S:1; unsigned char P:1; - unsigned char D_A_NOT:1; + unsigned char D:1; unsigned char CKE:1; unsigned char SMP:1; }; struct { - unsigned char WPUA0:1; - unsigned char WPUA1:1; - unsigned char WPUA2:1; - unsigned char IOC3:1; - unsigned char WPUA4:1; - unsigned char WPUA5:1; + unsigned char :1; + unsigned char :1; + unsigned char I2C_READ:1; + unsigned char I2C_START:1; + unsigned char I2C_STOP:1; + unsigned char I2C_DATA:1; unsigned char :1; unsigned char :1; }; struct { - unsigned char IOC0:1; - unsigned char IOC1:1; - unsigned char IOC2:1; - unsigned char IOCA3:1; - unsigned char IOC4:1; - unsigned char IOC5:1; + unsigned char :1; + unsigned char :1; + unsigned char NOT_W:1; + unsigned char :1; + unsigned char :1; + unsigned char NOT_A:1; unsigned char :1; unsigned char :1; }; struct { - unsigned char IOCA0:1; - unsigned char IOCA1:1; - unsigned char IOCA2:1; unsigned char :1; - unsigned char IOCA4:1; - unsigned char IOCA5:1; + unsigned char :1; + unsigned char NOT_WRITE:1; + unsigned char :1; + unsigned char :1; + unsigned char NOT_ADDRESS:1; + unsigned char :1; + unsigned char :1; + }; + struct { + unsigned char :1; + unsigned char :1; + unsigned char R_W:1; + unsigned char :1; + unsigned char :1; + unsigned char D_A:1; + unsigned char :1; + unsigned char :1; + }; + struct { + unsigned char :1; + unsigned char :1; + unsigned char READ_WRITE:1; + unsigned char :1; + unsigned char :1; + unsigned char DATA_ADDRESS:1; unsigned char :1; unsigned char :1; }; } __SSPSTAT_bits_t; extern volatile __SSPSTAT_bits_t __at(SSPSTAT_ADDR) SSPSTAT_bits; +#ifndef NO_BIT_DEFINES #define BF SSPSTAT_bits.BF -#define WPUA0 SSPSTAT_bits.WPUA0 -#define IOC0 SSPSTAT_bits.IOC0 -#define IOCA0 SSPSTAT_bits.IOCA0 #define UA SSPSTAT_bits.UA -#define WPUA1 SSPSTAT_bits.WPUA1 -#define IOC1 SSPSTAT_bits.IOC1 -#define IOCA1 SSPSTAT_bits.IOCA1 -#define R_W_NOT SSPSTAT_bits.R_W_NOT -#define WPUA2 SSPSTAT_bits.WPUA2 -#define IOC2 SSPSTAT_bits.IOC2 -#define IOCA2 SSPSTAT_bits.IOCA2 +#define R SSPSTAT_bits.R +#define I2C_READ SSPSTAT_bits.I2C_READ +#define NOT_W SSPSTAT_bits.NOT_W +#define NOT_WRITE SSPSTAT_bits.NOT_WRITE +#define R_W SSPSTAT_bits.R_W +#define READ_WRITE SSPSTAT_bits.READ_WRITE #define S SSPSTAT_bits.S -#define IOC3 SSPSTAT_bits.IOC3 -#define IOCA3 SSPSTAT_bits.IOCA3 +#define I2C_START SSPSTAT_bits.I2C_START #define P SSPSTAT_bits.P -#define WPUA4 SSPSTAT_bits.WPUA4 -#define IOC4 SSPSTAT_bits.IOC4 -#define IOCA4 SSPSTAT_bits.IOCA4 -#define D_A_NOT SSPSTAT_bits.D_A_NOT -#define WPUA5 SSPSTAT_bits.WPUA5 -#define IOC5 SSPSTAT_bits.IOC5 -#define IOCA5 SSPSTAT_bits.IOCA5 +#define I2C_STOP SSPSTAT_bits.I2C_STOP +#define D SSPSTAT_bits.D +#define I2C_DATA SSPSTAT_bits.I2C_DATA +#define NOT_A SSPSTAT_bits.NOT_A +#define NOT_ADDRESS SSPSTAT_bits.NOT_ADDRESS +#define D_A SSPSTAT_bits.D_A +#define DATA_ADDRESS SSPSTAT_bits.DATA_ADDRESS #define CKE SSPSTAT_bits.CKE #define SMP SSPSTAT_bits.SMP +#endif /* NO_BIT_DEFINES */ // ----- STATUS bits -------------------- typedef union { @@ -1054,6 +1251,7 @@ typedef union { } __STATUS_bits_t; extern volatile __STATUS_bits_t __at(STATUS_ADDR) STATUS_bits; +#ifndef NO_BIT_DEFINES #define C STATUS_bits.C #define DC STATUS_bits.DC #define Z STATUS_bits.Z @@ -1062,6 +1260,7 @@ extern volatile __STATUS_bits_t __at(STATUS_ADDR) STATUS_bits; #define RP0 STATUS_bits.RP0 #define RP1 STATUS_bits.RP1 #define IRP STATUS_bits.IRP +#endif /* NO_BIT_DEFINES */ // ----- T1CON bits -------------------- typedef union { @@ -1078,6 +1277,7 @@ typedef union { } __T1CON_bits_t; extern volatile __T1CON_bits_t __at(T1CON_ADDR) T1CON_bits; +#ifndef NO_BIT_DEFINES #define TMR1ON T1CON_bits.TMR1ON #define TMR1CS T1CON_bits.TMR1CS #define NOT_T1SYNC T1CON_bits.NOT_T1SYNC @@ -1086,6 +1286,7 @@ extern volatile __T1CON_bits_t __at(T1CON_ADDR) T1CON_bits; #define T1CKPS1 T1CON_bits.T1CKPS1 #define TMR1GE T1CON_bits.TMR1GE #define T1GINV T1CON_bits.T1GINV +#endif /* NO_BIT_DEFINES */ // ----- TRISA bits -------------------- typedef union { @@ -1102,12 +1303,14 @@ typedef union { } __TRISA_bits_t; extern volatile __TRISA_bits_t __at(TRISA_ADDR) TRISA_bits; +#ifndef NO_BIT_DEFINES #define TRISA0 TRISA_bits.TRISA0 #define TRISA1 TRISA_bits.TRISA1 #define TRISA2 TRISA_bits.TRISA2 #define TRISA3 TRISA_bits.TRISA3 #define TRISA4 TRISA_bits.TRISA4 #define TRISA5 TRISA_bits.TRISA5 +#endif /* NO_BIT_DEFINES */ // ----- TRISB bits -------------------- typedef union { @@ -1124,10 +1327,12 @@ typedef union { } __TRISB_bits_t; extern volatile __TRISB_bits_t __at(TRISB_ADDR) TRISB_bits; +#ifndef NO_BIT_DEFINES #define TRISB4 TRISB_bits.TRISB4 #define TRISB5 TRISB_bits.TRISB5 #define TRISB6 TRISB_bits.TRISB6 #define TRISB7 TRISB_bits.TRISB7 +#endif /* NO_BIT_DEFINES */ // ----- TRISC bits -------------------- typedef union { @@ -1144,6 +1349,7 @@ typedef union { } __TRISC_bits_t; extern volatile __TRISC_bits_t __at(TRISC_ADDR) TRISC_bits; +#ifndef NO_BIT_DEFINES #define TRISC0 TRISC_bits.TRISC0 #define TRISC1 TRISC_bits.TRISC1 #define TRISC2 TRISC_bits.TRISC2 @@ -1152,6 +1358,7 @@ extern volatile __TRISC_bits_t __at(TRISC_ADDR) TRISC_bits; #define TRISC5 TRISC_bits.TRISC5 #define TRISC6 TRISC_bits.TRISC6 #define TRISC7 TRISC_bits.TRISC7 +#endif /* NO_BIT_DEFINES */ // ----- TXSTA bits -------------------- typedef union { @@ -1168,6 +1375,7 @@ typedef union { } __TXSTA_bits_t; extern volatile __TXSTA_bits_t __at(TXSTA_ADDR) TXSTA_bits; +#ifndef NO_BIT_DEFINES #define TX9D TXSTA_bits.TX9D #define TRMT TXSTA_bits.TRMT #define BRGH TXSTA_bits.BRGH @@ -1176,6 +1384,7 @@ extern volatile __TXSTA_bits_t __at(TXSTA_ADDR) TXSTA_bits; #define TXEN TXSTA_bits.TXEN #define TX9 TXSTA_bits.TX9 #define CSRC TXSTA_bits.CSRC +#endif /* NO_BIT_DEFINES */ // ----- VRCON bits -------------------- typedef union { @@ -1192,6 +1401,7 @@ typedef union { } __VRCON_bits_t; extern volatile __VRCON_bits_t __at(VRCON_ADDR) VRCON_bits; +#ifndef NO_BIT_DEFINES #define VR0 VRCON_bits.VR0 #define VR1 VRCON_bits.VR1 #define VR2 VRCON_bits.VR2 @@ -1200,6 +1410,7 @@ extern volatile __VRCON_bits_t __at(VRCON_ADDR) VRCON_bits; #define VRR VRCON_bits.VRR #define C2VREN VRCON_bits.C2VREN #define C1VREN VRCON_bits.C1VREN +#endif /* NO_BIT_DEFINES */ // ----- WDTCON bits -------------------- typedef union { @@ -1216,44 +1427,57 @@ typedef union { } __WDTCON_bits_t; extern volatile __WDTCON_bits_t __at(WDTCON_ADDR) WDTCON_bits; +#ifndef NO_BIT_DEFINES #define SWDTEN WDTCON_bits.SWDTEN #define WDTPS0 WDTCON_bits.WDTPS0 #define WDTPS1 WDTCON_bits.WDTPS1 #define WDTPS2 WDTCON_bits.WDTPS2 #define WDTPS3 WDTCON_bits.WDTPS3 +#endif /* NO_BIT_DEFINES */ -// ----- WPUB bits -------------------- +// ----- WPUA bits -------------------- typedef union { struct { + unsigned char WPUA0:1; + unsigned char WPUA1:1; + unsigned char WPUA2:1; unsigned char :1; + unsigned char WPUA4:1; + unsigned char WPUA5:1; unsigned char :1; unsigned char :1; - unsigned char :1; - unsigned char WPUB4:1; - unsigned char WPUB5:1; - unsigned char WPUB6:1; - unsigned char WPUB7:1; }; +} __WPUA_bits_t; +extern volatile __WPUA_bits_t __at(WPUA_ADDR) WPUA_bits; + +#ifndef NO_BIT_DEFINES +#define WPUA0 WPUA_bits.WPUA0 +#define WPUA1 WPUA_bits.WPUA1 +#define WPUA2 WPUA_bits.WPUA2 +#define WPUA4 WPUA_bits.WPUA4 +#define WPUA5 WPUA_bits.WPUA5 +#endif /* NO_BIT_DEFINES */ + +// ----- WPUB bits -------------------- +typedef union { struct { unsigned char :1; unsigned char :1; unsigned char :1; unsigned char :1; - unsigned char IOCB4:1; - unsigned char IOCB5:1; - unsigned char IOCB6:1; - unsigned char IOCB7:1; + unsigned char WPUB4:1; + unsigned char WPUB5:1; + unsigned char WPUB6:1; + unsigned char WPUB7:1; }; } __WPUB_bits_t; extern volatile __WPUB_bits_t __at(WPUB_ADDR) WPUB_bits; +#ifndef NO_BIT_DEFINES #define WPUB4 WPUB_bits.WPUB4 -#define IOCB4 WPUB_bits.IOCB4 #define WPUB5 WPUB_bits.WPUB5 -#define IOCB5 WPUB_bits.IOCB5 #define WPUB6 WPUB_bits.WPUB6 -#define IOCB6 WPUB_bits.IOCB6 #define WPUB7 WPUB_bits.WPUB7 -#define IOCB7 WPUB_bits.IOCB7 +#endif /* NO_BIT_DEFINES */ #endif