From 0037e9a15527616ec2f342cf69e78a4c1f11b443 Mon Sep 17 00:00:00 2001 From: vrokas Date: Fri, 4 Jun 2004 23:30:16 +0000 Subject: [PATCH] * initial versions git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3342 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- device/include/pic16/float.h | 87 ++ device/include/pic16/limits.h | 51 + device/include/pic16/pic18f1220.h | 787 ++++++++++++ device/include/pic16/pic18f6520.h | 1383 ++++++++++++++++++++ device/include/pic16/pic18f6620.h | 1360 ++++++++++++++++++++ device/include/pic16/pic18f6680.h | 1870 +++++++++++++++++++++++++++ device/include/pic16/pic18f6720.h | 1408 ++++++++++++++++++++ device/include/pic16/pic18f8520.h | 1485 +++++++++++++++++++++ device/include/pic16/pic18f8620.h | 1483 +++++++++++++++++++++ device/include/pic16/pic18f8680.h | 1993 +++++++++++++++++++++++++++++ device/include/pic16/pic18f8720.h | 1531 ++++++++++++++++++++++ 11 files changed, 13438 insertions(+) create mode 100644 device/include/pic16/float.h create mode 100644 device/include/pic16/limits.h create mode 100644 device/include/pic16/pic18f1220.h create mode 100644 device/include/pic16/pic18f6520.h create mode 100644 device/include/pic16/pic18f6620.h create mode 100644 device/include/pic16/pic18f6680.h create mode 100644 device/include/pic16/pic18f6720.h create mode 100644 device/include/pic16/pic18f8520.h create mode 100644 device/include/pic16/pic18f8620.h create mode 100644 device/include/pic16/pic18f8680.h create mode 100644 device/include/pic16/pic18f8720.h diff --git a/device/include/pic16/float.h b/device/include/pic16/float.h new file mode 100644 index 00000000..641cb954 --- /dev/null +++ b/device/include/pic16/float.h @@ -0,0 +1,87 @@ +/*------------------------------------------------------------------------- + float.h - ANSI functions forward declarations + + Adopted for pic16 port library by Vangelis Rokas + [vrokas at otenet.gr] (2004) + + Written By - Sandeep Dutta . sandeep.dutta@usa.net (1998) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + In other words, you are welcome to use, share and improve this program. + You are forbidden to forbid anyone else to use, share and improve + what you give them. Help stamp out software-hoarding! +-------------------------------------------------------------------------*/ + +#ifndef __FLOAT_H +#define __FLOAT_H 1 + +#include + +#define FLT_RADIX 2 +#define FLT_MANT_DIG 24 +#define FLT_EPSILON 1.192092896E-07F +#define FLT_DIG 6 +#define FLT_MIN_EXP (-125) +#define FLT_MIN 1.175494351E-38F +#define FLT_MIN_10_EXP (-37) +#define FLT_MAX_EXP (+128) +#define FLT_MAX 3.402823466E+38F +#define FLT_MAX_10_EXP (+38) + +/* the following deal with IEEE single-precision numbers */ +#define EXCESS 126 +#define SIGNBIT ((unsigned long)0x80000000) +#define HIDDEN (unsigned long)(1ul << 23) +#define SIGN(fp) (((unsigned long)(fp) >> (8*sizeof(fp)-1)) & 1) +#define EXP(fp) (((unsigned long)(fp) >> 23) & (unsigned int) 0x00FF) +#define MANT(fp) (((fp) & (unsigned long)0x007FFFFF) | HIDDEN) +#define NORM 0xff000000 +#define PACK(s,e,m) ((s) | ((unsigned long)(e) << 23) | (m)) + + +#if 0 +#define reentrant + +float __uchar2fs (unsigned char) reentrant; +float __schar2fs (signed char) reentrant; +float __uint2fs (unsigned int) reentrant; +float __sint2fs (signed int) reentrant; +float __ulong2fs (unsigned long) reentrant; +float __slong2fs (signed long) reentrant; +unsigned char __fs2uchar (float) reentrant; +signed char __fs2schar (float) reentrant; +unsigned int __fs2uint (float) reentrant; +signed int __fs2sint (float) reentrant; +unsigned long __fs2ulong (float) reentrant; +signed long __fs2slong (float) reentrant; + +float __fsadd (float, float) reentrant; +float __fssub (float, float) reentrant; +float __fsmul (float, float) reentrant; +float __fsdiv (float, float) reentrant; + +char __fslt (float, float) reentrant; +char __fseq (float, float) reentrant; +char __fsgt (float, float) reentrant; + +#endif + +#endif + + + + + diff --git a/device/include/pic16/limits.h b/device/include/pic16/limits.h new file mode 100644 index 00000000..c928ff45 --- /dev/null +++ b/device/include/pic16/limits.h @@ -0,0 +1,51 @@ +/*------------------------------------------------------------------------- + limits.h - ANSI defines constants for sizes of integral types + + Adopted for the pic16 port by Vangelis Rokas + [ vrokas at otenet.gr ] 2004 + + Written By - Sandeep Dutta . sandeep.dutta@usa.net (1999) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + In other words, you are welcome to use, share and improve this program. + You are forbidden to forbid anyone else to use, share and improve + what you give them. Help stamp out software-hoarding! +-------------------------------------------------------------------------*/ + +#ifndef __LIMITS_H +#define __LIMITS_H 1 + +#define CHAR_BIT 8 /* bits in a char */ +#define CHAR_MAX 127 +#define CHAR_MIN -128 +#define SCHAR_MAX CHAR_MAX +#define SCHAR_MIN CHAR_MIN +#define UCHAR_MAX 0xff +#define UCHAR_MIN 0 +#define INT_MIN -32768 +#define INT_MAX 32767 +#define SHRT_MAX INT_MAX +#define SHRT_MIN INT_MIN +#define UINT_MAX 0xffff +#define UINT_MIN 0 +#define USHRT_MAX UINT_MAX +#define USHRT_MIN UINT_MIN +#define LONG_MIN -2147483648 +#define LONG_MAX 2147483647 +#define ULONG_MAX 0xffffffff +#define ULONG_MIN 0 + +#endif diff --git a/device/include/pic16/pic18f1220.h b/device/include/pic16/pic18f1220.h new file mode 100644 index 00000000..013a39b9 --- /dev/null +++ b/device/include/pic16/pic18f1220.h @@ -0,0 +1,787 @@ + +/* + * pic18f1220.h - PIC18F1220 Device Library Header + * + * This file is part of the GNU PIC Library. + * + * January, 2004 + * The GNU PIC Library is maintained by, + * Vangelis Rokas + * + * $Id$ + * + */ + +#ifndef __PIC18F1220_H__ +#define __PIC18F1220_H__ + +extern sfr at 0xf80 PORTA; +typedef union { + struct { + unsigned RA0:1; + unsigned RA1:1; + unsigned RA2:1; + unsigned RA3:1; + unsigned RA4:1; + unsigned RA5:1; + unsigned RA6:1; + unsigned :1; + }; + + struct { + unsigned AN0:1; + unsigned AN1:1; + unsigned AN2:1; + unsigned AN3:1; + unsigned :1; + unsigned AN4:1; + unsigned OSC2:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned VREFM:1; + unsigned VREFP:1; + unsigned T0CKI:1; + unsigned SS:1; + unsigned CLK0:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned LVDIN:1; + unsigned :1; + unsigned :1; + }; +} __PORTAbits_t; + +extern volatile __PORTAbits_t at 0xf80 PORTAbits; + +extern sfr at 0xf81 PORTB; +typedef union { + struct { + unsigned RB0:1; + unsigned RB1:1; + unsigned RB2:1; + unsigned RB3:1; + unsigned RB4:1; + unsigned RB5:1; + unsigned RB6:1; + unsigned RB7:1; + }; + + struct { + unsigned INT0:1; + unsigned INT1:1; + unsigned INT2:1; + unsigned INT3:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTBbits_t; + +extern volatile __PORTBbits_t at 0xf81 PORTBbits; + +extern sfr at 0xf89 LATA; +typedef union { + struct { + unsigned LATA0:1; + unsigned LATA1:1; + unsigned LATA2:1; + unsigned LATA3:1; + unsigned LATA4:1; + unsigned LATA5:1; + unsigned LATA6:1; + unsigned :1; + }; +} __LATAbits_t; + +extern volatile __LATAbits_t at 0xf89 LATAbits; + +extern sfr at 0xf8a LATB; +typedef union { + struct { + unsigned LATB0:1; + unsigned LATB1:1; + unsigned LATB2:1; + unsigned LATB3:1; + unsigned LATB4:1; + unsigned LATB5:1; + unsigned LATB6:1; + unsigned LATB7:1; + }; +} __LATBbits_t; + +extern volatile __LATBbits_t at 0xf8a LATBbits; + +extern sfr at 0xf92 TRISA; +typedef union { + struct { + unsigned TRISA0:1; + unsigned TRISA1:1; + unsigned TRISA2:1; + unsigned TRISA3:1; + unsigned TRISA4:1; + unsigned TRISA5:1; + unsigned TRISA6:1; + unsigned :1; + }; +} __TRISAbits_t; + +extern volatile __TRISAbits_t at 0xf92 TRISAbits; + +extern sfr at 0xf93 TRISB; +typedef union { + struct { + unsigned TRISB0:1; + unsigned TRISB1:1; + unsigned TRISB2:1; + unsigned TRISB3:1; + unsigned TRISB4:1; + unsigned TRISB5:1; + unsigned TRISB6:1; + unsigned TRISB7:1; + }; +} __TRISBbits_t; + +extern volatile __TRISBbits_t at 0xf93 TRISBbits; + +extern sfr at 0xf9d PIE1; +typedef union { + struct { + unsigned TMR1IE:1; + unsigned TMR2IE:1; + unsigned CCP1IE:1; + unsigned SSPIE:1; + unsigned TXIE:1; + unsigned RCIE:1; + unsigned ADIE:1; + unsigned PSPIE:1; + }; +} __PIE1bits_t; + +extern volatile __PIE1bits_t at 0xf9d PIE1bits; + +extern sfr at 0xf9e PIR1; +typedef union { + struct { + unsigned TMR1IF:1; + unsigned TMR2IF:1; + unsigned CCP1IF:1; + unsigned SSPIF:1; + unsigned TXIF:1; + unsigned RCIF:1; + unsigned ADIF:1; + unsigned PSPIF:1; + }; +} __PIR1bits_t; + +extern volatile __PIR1bits_t at 0xf9e PIR1bits; + +extern sfr at 0xf9f IPR1; +typedef union { + struct { + unsigned TMR1IP:1; + unsigned TMR2IP:1; + unsigned CCP1IP:1; + unsigned SSPIP:1; + unsigned TXIP:1; + unsigned RCIP:1; + unsigned ADIP:1; + unsigned PSPIP:1; + }; +} __IPR1bits_t; + +extern volatile __IPR1bits_t at 0xf9f IPR1bits; + +extern sfr at 0xfa0 PIE2; +typedef union { + struct { + unsigned :1; + unsigned TMR3IE:1; + unsigned LVDIE:1; + unsigned :1; + unsigned EEIE:1; + unsigned :1; + unsigned :1; + unsigned OSCFIE:1; + }; +} __PIE2bits_t; + +extern volatile __PIE2bits_t at 0xfa0 PIE2bits; + +extern sfr at 0xfa1 PIR2; +typedef union { + struct { + unsigned :1; + unsigned TMR3IF:1; + unsigned LVDIF:1; + unsigned :1; + unsigned EEIF:1; + unsigned :1; + unsigned :1; + unsigned OSCFIF:1; + }; +} __PIR2bits_t; + +extern volatile __PIR2bits_t at 0xfa1 PIR2bits; + +extern sfr at 0xfa2 IPR2; +typedef union { + struct { + unsigned :1; + unsigned TMR3IP:1; + unsigned LVDIP:1; + unsigned :1; + unsigned EEIP:1; + unsigned :1; + unsigned :1; + unsigned OSCFIP:1; + }; +} __IPR2bits_t; + +extern volatile __IPR2bits_t at 0xfa2 IPR2bits; + +extern sfr at 0xfa6 EECON1; +typedef union { + struct { + unsigned RD:1; + unsigned WR:1; + unsigned WREN:1; + unsigned WRERR:1; + unsigned FREE:1; + unsigned :1; + unsigned CFGS:1; + unsigned EEPGD:1; + }; +} __EECON1bits_t; + +extern volatile __EECON1bits_t at 0xfa6 EECON1bits; + +extern sfr at 0xfa7 EECON2; +extern sfr at 0xfa8 EEDATA; +extern sfr at 0xfa9 EEADR; +extern sfr at 0xfaa BAUDCTL; +extern sfr at 0xfab RCSTA; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTAbits_t; + +extern volatile __RCSTAbits_t at 0xfab RCSTAbits; + +extern sfr at 0xfac TXSTA; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTAbits_t; + +extern volatile __TXSTAbits_t at 0xfac TXSTAbits; + +extern sfr at 0xfad TXREG; +extern sfr at 0xfae RCREG; +extern sfr at 0xfaf SPBRG; +extern sfr at 0xfb0 SPBRGH; +extern sfr at 0xfb1 T3CON; +typedef union { + struct { + unsigned TMR3ON:1; + unsigned TMR3CS:1; + unsigned T3SYNC:1; + unsigned T3CCP1:1; + unsigned T3CKPS0:1; + unsigned T3CKPS1:1; + unsigned T3CCP2:1; + unsigned RD16:1; + }; +} __T3CONbits_t; + +extern volatile __T3CONbits_t at 0xfb1 T3CONbits; + +extern sfr at 0xfb2 TMR3L; +extern sfr at 0xfb3 TMR3H; +extern sfr at 0xfbd CCP1CON; +typedef union { + struct { + unsigned CCP1M0:1; + unsigned CCP1M1:1; + unsigned CCP1M2:1; + unsigned CCP1M3:1; + unsigned DCCP1Y:1; + unsigned DCCP1X:1; + unsigned :1; + unsigned :1; + }; +} __CCP1CONbits_t; + +extern volatile __CCP1CONbits_t at 0xfbd CCP1CONbits; + +extern sfr at 0xfbe CCPR1L; +extern sfr at 0xfbf CCPR1H; +extern sfr at 0xfc0 ADCON2; +typedef union { + struct { + unsigned ADCS0:1; + unsigned ADCS1:1; + unsigned ADCS2:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned ADFM:1; + }; +} __ADCON2bits_t; + +extern volatile __ADCON2bits_t at 0xfc0 ADCON2bits; + +extern sfr at 0xfc1 ADCON1; +typedef union { + struct { + unsigned PCFG0:1; + unsigned PCFG1:1; + unsigned PCFG2:1; + unsigned PCFG3:1; + unsigned VCFG0:1; + unsigned VCFG1:1; + unsigned :1; + unsigned :1; + }; +} __ADCON1bits_t; + +extern volatile __ADCON1bits_t at 0xfc1 ADCON1bits; + +extern sfr at 0xfc2 ADCON0; +typedef union { + struct { + unsigned ADON:1; + unsigned GO:1; + unsigned CHS0:1; + unsigned CHS1:1; + unsigned CHS2:1; + unsigned CHS3:1; + unsigned :1; + unsigned :1; + }; +} __ADCON0bits_t; + +extern volatile __ADCON0bits_t at 0xfc2 ADCON0bits; + +extern sfr at 0xfc3 ADRESL; +extern sfr at 0xfc4 ADRESH; +extern sfr at 0xfca T2CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T2CONbits_t; + +extern volatile __T2CONbits_t at 0xfca T2CONbits; + +extern sfr at 0xfcb PR2; +extern sfr at 0xfcc TMR2; +extern sfr at 0xfcd T1CON; +typedef union { + struct { + unsigned TMR1ON:1; + unsigned TMR1CS:1; + unsigned NOT_T1SYNC:1; + unsigned T1OSCEN:1; + unsigned T1CKPS0:1; + unsigned T1CKPS1:1; + unsigned :1; + unsigned RD16:1; + }; +} __T1CONbits_t; + +extern volatile __T1CONbits_t at 0xfcd T1CONbits; + +extern sfr at 0xfce TMR1L; +extern sfr at 0xfcf TMR1H; +extern sfr at 0xfd0 RCON; +typedef union { + struct { + unsigned BOR:1; + unsigned POR:1; + unsigned PD:1; + unsigned TO:1; + unsigned RI:1; + unsigned :1; + unsigned :1; + unsigned IPEN:1; + }; +} __RCONbits_t; + +extern volatile __RCONbits_t at 0xfd0 RCONbits; + +extern sfr at 0xfd1 WDTCON; +typedef union { + struct { + unsigned SWDTEN:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned SWDTE:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __WDTCONbits_t; + +extern volatile __WDTCONbits_t at 0xfd1 WDTCONbits; + +extern sfr at 0xfd2 LVDCON; +typedef union { + struct { + unsigned LVDL0:1; + unsigned LVDL1:1; + unsigned LVDL2:1; + unsigned LVDL3:1; + unsigned LVDEN:1; + unsigned VRST:1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned LVV0:1; + unsigned LVV1:1; + unsigned LVV2:1; + unsigned LVV3:1; + unsigned :1; + unsigned BGST:1; + unsigned :1; + unsigned :1; + }; +} __LVDCONbits_t; + +extern volatile __LVDCONbits_t at 0xfd2 LVDCONbits; + +extern sfr at 0xfd3 OSCCON; +typedef union { + struct { + unsigned SCS:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __OSCCONbits_t; + +extern volatile __OSCCONbits_t at 0xfd3 OSCCONbits; + +extern sfr at 0xfd5 T0CON; +extern sfr at 0xfd6 TMR0L; +extern sfr at 0xfd7 TMR0H; +extern sfr at 0xfd8 STATUS; +typedef union { + struct { + unsigned C:1; + unsigned DC:1; + unsigned Z:1; + unsigned OV:1; + unsigned N:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __STATUSbits_t; + +extern volatile __STATUSbits_t at 0xfd8 STATUSbits; + +extern sfr at 0xfd9 FSR2L; +extern sfr at 0xfda FSR2H; +extern sfr at 0xfdb PLUSW2; +extern sfr at 0xfdc PREINC2; +extern sfr at 0xfdd POSTDEC2; +extern sfr at 0xfde POSTINC2; +extern sfr at 0xfdf INDF2; +extern sfr at 0xfe0 BSR; +extern sfr at 0xfe1 FSR1L; +extern sfr at 0xfe2 FSR1H; +extern sfr at 0xfe3 PLUSW1; +extern sfr at 0xfe4 PREINC1; +extern sfr at 0xfe5 POSTDEC1; +extern sfr at 0xfe6 POSTINC1; +extern sfr at 0xfe7 INDF1; +extern sfr at 0xfe8 WREG; +extern sfr at 0xfe9 FSR0L; +extern sfr at 0xfea FSR0H; +extern sfr at 0xfeb PLUSW0; +extern sfr at 0xfec PREINC0; +extern sfr at 0xfed POSTDEC0; +extern sfr at 0xfee POSTINC0; +extern sfr at 0xfef INDF0; +extern sfr at 0xff0 INTCON3; +typedef union { + struct { + unsigned INT1F:1; + unsigned INT2F:1; + unsigned :1; + unsigned INT1E:1; + unsigned INT2E:1; + unsigned :1; + unsigned INT1P:1; + unsigned INT2P:1; + }; + + struct { + unsigned INT1IF:1; + unsigned INT2IF:1; + unsigned :1; + unsigned INT1IE:1; + unsigned INT2IE:1; + unsigned :1; + unsigned INT1IP:1; + unsigned INT2IP:1; + }; +} __INTCON3bits_t; + +extern volatile __INTCON3bits_t at 0xff0 INTCON3bits; + +extern sfr at 0xff1 INTCON2; +typedef union { + struct { + unsigned RBIP:1; + unsigned :1; + unsigned T0IP:1; + unsigned :1; + unsigned INTEDG2:1; + unsigned INTEDG1:1; + unsigned INTEDG0:1; + unsigned RBPU:1; + }; +} __INTCON2bits_t; + +extern volatile __INTCON2bits_t at 0xff1 INTCON2bits; + +extern sfr at 0xff2 INTCON; +typedef union { + struct { + unsigned RBIF:1; + unsigned INT0F:1; + unsigned T0IF:1; + unsigned RBIE:1; + unsigned INT0E:1; + unsigned T0IE:1; + unsigned PEIE:1; + unsigned GIE:1; + }; +} __INTCONbits_t; + +extern volatile __INTCONbits_t at 0xff2 INTCONbits; + +extern sfr at 0xff3 PRODL; +extern sfr at 0xff4 PRODH; +extern sfr at 0xff5 TABLAT; +extern sfr at 0xff6 TBLPTRL; +extern sfr at 0xff7 TBLPTRH; +extern sfr at 0xff8 TBLPTRU; +extern sfr at 0xff9 PCL; +extern sfr at 0xffa PCLATH; +extern sfr at 0xffb PCLATU; +extern sfr at 0xffc STKPTR; +typedef union { + struct { + unsigned STKPTR0:1; + unsigned STKPTR1:1; + unsigned STKPTR2:1; + unsigned STKPTR3:1; + unsigned STKPTR4:1; + unsigned :1; + unsigned STKUNF:1; + unsigned STKFUL:1; + }; +} __STKPTRbits_t; + +extern volatile __STKPTRbits_t at 0xffc STKPTRbits; + +extern sfr at 0xffd TOSL; +extern sfr at 0xffe TOSH; +extern sfr at 0xfff TOSU; + + +/* Configuration registers locations */ +#define __CONFIG0H 0x300001 +#define __CONFIG1L 0x300002 +#define __CONFIG1H 0x300003 +#define __CONFIG2H 0x300005 +#define __CONFIG3L 0x300006 +#define __CONFIG4L 0x300008 +#define __CONFIG4H 0x300009 +#define __CONFIG5L 0x30000A +#define __CONFIG5H 0x30000B +#define __CONFIG6L 0x30000C +#define __CONFIG6H 0x30000D + + + +/* Oscillator 0H options */ +#define _OSC_11XX_0H 0xFC /* 11XX EXT RC-CLKOUT on RA6 */ +#define _OSC_101X_0H 0xFA /* 101X EXT RC-CLKOUT on RA6 */ +#define _OSC_INT_CLKOUT_on_RA6_Port_on_RA7_0H 0xF9 /* INT RC-CLKOUT_on_RA6_Port_on_RA7 */ +#define _OSC_INT_Port_on_RA6_Port_on_RA7_0H 0xF8 /* INT RC-Port_on_RA6_Port_on_RA7 */ +#define _OSC_EXT_Port_on_RA6_0H 0xF7 /* EXT RC-Port_on_RA6 */ +#define _OSC_HS_PLL_0H 0xF6 /* HS-PLL enabled freq=4xFosc1 */ +#define _OSC_EC_PORT_0H 0xF5 /* EC-Port on RA6 */ +#define _OSC_EC_CLKOUT_0H 0xF4 /* EC-CLKOUT on RA6 */ +#define _OSC_EXT_CLKOUT_on_RA6_0H 0xF3 /* EXT RC-CLKOUT_on_RA6 */ +#define _OSC_HS_0H 0xF2 /* HS */ +#define _OSC_XT_0H 0xF1 /* XT */ +#define _OSC_LP_0H 0xF0 /* LP */ + +/* Fail Safe Clock Monitor Enable 0H options */ +#define _FCMEN_OFF_0H 0xBF /* Disabled */ +#define _FCMEN_ON_0H 0xFF /* Enabled */ + +/* Internal External Switch Over 0H options */ +#define _IESO_OFF_0H 0x7F /* Disabled */ +#define _IESO_ON_0H 0xFF /* Enabled */ + +/* Power Up Timer 1L options */ +#define _PUT_OFF_1L 0xFF /* Disabled */ +#define _PUT_ON_1L 0xFE /* Enabled */ + +/* Brown Out Detect 1L options */ +#define _BODEN_ON_1L 0xFF /* Enabled */ +#define _BODEN_OFF_1L 0xFD /* Disabled */ + +/* Brown Out Voltage 1L options */ +#define _BODENV_2_0V_1L 0xFF /* 2.0V */ +#define _BODENV_2_7V_1L 0xFB /* 2.7V */ +#define _BODENV_4_2V_1L 0xF7 /* 4.2V */ +#define _BODENV_4_5V_1L 0xF3 /* 4.5V */ + +/* Watchdog Timer 1H options */ +#define _WDT_ON_1H 0xFF /* Enabled */ +#define _WDT_DISABLED_CONTROLLED_1H 0xFE /* Disabled-Controlled by SWDTEN bit */ + +/* Watchdog Postscaler 1H options */ +#define _WDTPS_1_32768_1H 0xFF /* 1:32768 */ +#define _WDTPS_1_16384_1H 0xFD /* 1:16384 */ +#define _WDTPS_1_8192_1H 0xFB /* 1:8192 */ +#define _WDTPS_1_4096_1H 0xF9 /* 1:4096 */ +#define _WDTPS_1_2048_1H 0xF7 /* 1:2048 */ +#define _WDTPS_1_1024_1H 0xF5 /* 1:1024 */ +#define _WDTPS_1_512_1H 0xF3 /* 1:512 */ +#define _WDTPS_1_256_1H 0xF1 /* 1:256 */ +#define _WDTPS_1_128_1H 0xEF /* 1:128 */ +#define _WDTPS_1_64_1H 0xED /* 1:64 */ +#define _WDTPS_1_32_1H 0xEB /* 1:32 */ +#define _WDTPS_1_16_1H 0xE9 /* 1:16 */ +#define _WDTPS_1_8_1H 0xE7 /* 1:8 */ +#define _WDTPS_1_4_1H 0xE5 /* 1:4 */ +#define _WDTPS_1_2_1H 0xE3 /* 1:2 */ +#define _WDTPS_1_1_1H 0xE1 /* 1:1 */ + +/* MCLR enable 2H options */ +#define _MCLRE_MCLR_enabled_RA5_input_dis_2H 0xFF /* MCLR enabled__RA5_input_disabled */ +#define _MCLRE_MCLR_disabled_RA5_input_en_2H 0x7F /* MCLR disabled__RA5_input_enabled */ + +/* Stack Overflow Reset 3L options */ +#define _STVR_ON_3L 0xFF /* Enabled */ +#define _STVR_OFF_3L 0xFE /* Disabled */ + +/* Low Voltage Program 3L options */ +#define _LVP_ON_3L 0xFF /* Enabled */ +#define _LVP_OFF_3L 0xFB /* Disabled */ + +/* Background Debug 3L options */ +#define _BACKBUG_OFF_3L 0xFF /* Disabled */ +#define _BACKBUG_ON_3L 0x7F /* Enabled */ + +/* Code Protect 000200-0007FF 4L options */ +#define _CP_0_OFF_4L 0xFF /* Disabled */ +#define _CP_0_ON_4L 0xFE /* Enabled */ + +/* Code Protect 000800-000FFF 4L options */ +#define _CP_1_OFF_4L 0xFF /* Disabled */ +#define _CP_1_ON_4L 0xFD /* Enabled */ + +/* Data EE Read Protect 4H options */ +#define _CPD_OFF_4H 0xFF /* Disabled */ +#define _CPD_ON_4H 0x7F /* Enabled */ + +/* Code Protect Boot 4H options */ +#define _CPB_OFF_4H 0xFF /* Disabled */ +#define _CPB_ON_4H 0xBF /* Enabled */ + +/* Table Write Protect 00200-007FF 5L options */ +#define _WRT_0_OFF_5L 0xFF /* Disabled */ +#define _WRT_0_ON_5L 0xFE /* Enabled */ + +/* Table Write Protect 00800-00FFF 5L options */ +#define _WRT_1_OFF_5L 0xFF /* Disabled */ +#define _WRT_1_ON_5L 0xFD /* Enabled */ + +/* Data EE Write Protect 5H options */ +#define _WRTD_OFF_5H 0xFF /* Disabled */ +#define _WRTD_ON_5H 0x7F /* Enabled */ + +/* Table Write Protect Boot 5H options */ +#define _WRTB_OFF_5H 0xFF /* Disabled */ +#define _WRTB_ON_5H 0xBF /* Enabled */ + +/* Config. Write Protect 5H options */ +#define _WRTC_OFF_5H 0xFF /* Disabled */ +#define _WRTC_ON_5H 0xDF /* Enabled */ + +/* Table Read Protect 00200-007FF 6L options */ +#define _EBTR_0_OFF_6L 0xFF /* Disabled */ +#define _EBTR_0_ON_6L 0xFE /* Enabled */ + +/* Table Read Protect 000800-00FFF 6L options */ +#define _EBTR_1_OFF_6L 0xFF /* Disabled */ +#define _EBTR_1_ON_6L 0xFD /* Enabled */ + +/* Table Read Protect Boot 6H options */ +#define _EBTRB_OFF_6H 0xFF /* Disabled */ +#define _EBTRB_ON_6H 0xBF /* Enabled */ + + +#endif diff --git a/device/include/pic16/pic18f6520.h b/device/include/pic16/pic18f6520.h new file mode 100644 index 00000000..245506c2 --- /dev/null +++ b/device/include/pic16/pic18f6520.h @@ -0,0 +1,1383 @@ + +/* + * pic18f6520.h - PIC18F6520 Device Library Header + * + * This file is part of the GNU PIC Library. + * + * January, 2004 + * The GNU PIC Library is maintained by, + * Vangelis Rokas + * + * $Id$ + * + */ + +#ifndef __PIC18F6520_H__ +#define __PIC18F6520_H__ + +extern sfr at 0xf6b RCSTA2; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTA2bits_t; + +extern volatile __RCSTA2bits_t at 0xf6b RCSTA2bits; + +extern sfr at 0xf6c TXSTA2; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTA2bits_t; + +extern volatile __TXSTA2bits_t at 0xf6c TXSTA2bits; + +extern sfr at 0xf6d TXREG2; +extern sfr at 0xf6e RCREG2; +extern sfr at 0xf6f SPBRG2; +extern sfr at 0xf70 CCP5CON; +typedef union { + struct { + unsigned CCP5M0:1; + unsigned CCP5M1:1; + unsigned CCP5M2:1; + unsigned CCP5M3:1; + unsigned DCCP5Y:1; + unsigned DCCP5X:1; + unsigned :1; + unsigned :1; + }; +} __CCP5CONbits_t; + +extern volatile __CCP5CONbits_t at 0xf70 CCP5CONbits; + +extern sfr at 0xf71 CCPR5L; +extern sfr at 0xf72 CCPR5H; +extern sfr at 0xf73 CCP4CON; +typedef union { + struct { + unsigned CCP4M0:1; + unsigned CCP4M1:1; + unsigned CCP4M2:1; + unsigned CCP4M3:1; + unsigned DCCP4Y:1; + unsigned DCCP4X:1; + unsigned :1; + unsigned :1; + }; +} __CCP4CONbits_t; + +extern volatile __CCP4CONbits_t at 0xf73 CCP4CONbits; + +extern sfr at 0xf74 CCPR4L; +extern sfr at 0xf75 CCPR4H; +extern sfr at 0xf76 T4CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T4CONbits_t; + +extern volatile __T4CONbits_t at 0xf76 T4CONbits; + +extern sfr at 0xf77 PR4; +extern sfr at 0xf78 TMR4; +extern sfr at 0xf80 PORTA; +typedef union { + struct { + unsigned RA0:1; + unsigned RA1:1; + unsigned RA2:1; + unsigned RA3:1; + unsigned RA4:1; + unsigned RA5:1; + unsigned RA6:1; + unsigned :1; + }; + + struct { + unsigned AN0:1; + unsigned AN1:1; + unsigned AN2:1; + unsigned AN3:1; + unsigned :1; + unsigned AN4:1; + unsigned OSC2:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned VREFM:1; + unsigned VREFP:1; + unsigned T0CKI:1; + unsigned SS:1; + unsigned CLK0:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned LVDIN:1; + unsigned :1; + unsigned :1; + }; +} __PORTAbits_t; + +extern volatile __PORTAbits_t at 0xf80 PORTAbits; + +extern sfr at 0xf81 PORTB; +typedef union { + struct { + unsigned RB0:1; + unsigned RB1:1; + unsigned RB2:1; + unsigned RB3:1; + unsigned RB4:1; + unsigned RB5:1; + unsigned RB6:1; + unsigned RB7:1; + }; + + struct { + unsigned INT0:1; + unsigned INT1:1; + unsigned INT2:1; + unsigned INT3:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTBbits_t; + +extern volatile __PORTBbits_t at 0xf81 PORTBbits; + +extern sfr at 0xf82 PORTC; +typedef union { + struct { + unsigned RC0:1; + unsigned RC1:1; + unsigned RC2:1; + unsigned RC3:1; + unsigned RC4:1; + unsigned RC5:1; + unsigned RC6:1; + unsigned RC7:1; + }; + + struct { + unsigned T1OSO:1; + unsigned T1OSI:1; + unsigned :1; + unsigned SCK:1; + unsigned SDI:1; + unsigned SDO:1; + unsigned TX:1; + unsigned RX:1; + }; + + struct { + unsigned T1CKI:1; + unsigned CCP2:1; + unsigned CCP1:1; + unsigned SCL:1; + unsigned SDA:1; + unsigned :1; + unsigned CK:1; + unsigned DT:1; + }; +} __PORTCbits_t; + +extern volatile __PORTCbits_t at 0xf82 PORTCbits; + +extern sfr at 0xf83 PORTD; +typedef union { + struct { + unsigned RD0:1; + unsigned RD1:1; + unsigned RD2:1; + unsigned RD3:1; + unsigned RD4:1; + unsigned RD5:1; + unsigned RD6:1; + unsigned RD7:1; + }; + + struct { + unsigned AD0:1; + unsigned AD1:1; + unsigned AD2:1; + unsigned AD3:1; + unsigned AD4:1; + unsigned AD5:1; + unsigned AD6:1; + unsigned AD7:1; + }; +} __PORTDbits_t; + +extern volatile __PORTDbits_t at 0xf83 PORTDbits; + +extern sfr at 0xf84 PORTE; +typedef union { + struct { + unsigned RE0:1; + unsigned RE1:1; + unsigned RE2:1; + unsigned RE3:1; + unsigned RE4:1; + unsigned RE5:1; + unsigned RE6:1; + unsigned RE7:1; + }; + + struct { + unsigned ALE:1; + unsigned OE:1; + unsigned WRL:1; + unsigned WRH:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned CCP2:1; + }; + + struct { + unsigned AN5:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTEbits_t; + +extern volatile __PORTEbits_t at 0xf84 PORTEbits; + +extern sfr at 0xf85 PORTF; +typedef union { + struct { + unsigned RF0:1; + unsigned RF1:1; + unsigned RF2:1; + unsigned RF3:1; + unsigned RF4:1; + unsigned RF5:1; + unsigned RF6:1; + unsigned RF7:1; + }; +} __PORTFbits_t; + +extern volatile __PORTFbits_t at 0xf85 PORTFbits; + +extern sfr at 0xf86 PORTG; +typedef union { + struct { + unsigned RG0:1; + unsigned RG1:1; + unsigned RG2:1; + unsigned RG3:1; + unsigned RG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTGbits_t; + +extern volatile __PORTGbits_t at 0xf86 PORTGbits; + +extern sfr at 0xf89 LATA; +typedef union { + struct { + unsigned LATA0:1; + unsigned LATA1:1; + unsigned LATA2:1; + unsigned LATA3:1; + unsigned LATA4:1; + unsigned LATA5:1; + unsigned LATA6:1; + unsigned :1; + }; +} __LATAbits_t; + +extern volatile __LATAbits_t at 0xf89 LATAbits; + +extern sfr at 0xf8a LATB; +typedef union { + struct { + unsigned LATB0:1; + unsigned LATB1:1; + unsigned LATB2:1; + unsigned LATB3:1; + unsigned LATB4:1; + unsigned LATB5:1; + unsigned LATB6:1; + unsigned LATB7:1; + }; +} __LATBbits_t; + +extern volatile __LATBbits_t at 0xf8a LATBbits; + +extern sfr at 0xf8b LATC; +typedef union { + struct { + unsigned LATC0:1; + unsigned LATC1:1; + unsigned LATC2:1; + unsigned LATC3:1; + unsigned LATC4:1; + unsigned LATC5:1; + unsigned LATC6:1; + unsigned LATC7:1; + }; +} __LATCbits_t; + +extern volatile __LATCbits_t at 0xf8b LATCbits; + +extern sfr at 0xf8c LATD; +typedef union { + struct { + unsigned LATD0:1; + unsigned LATD1:1; + unsigned LATD2:1; + unsigned LATD3:1; + unsigned LATD4:1; + unsigned LATD5:1; + unsigned LATD6:1; + unsigned LATD7:1; + }; +} __LATDbits_t; + +extern volatile __LATDbits_t at 0xf8c LATDbits; + +extern sfr at 0xf8d LATE; +typedef union { + struct { + unsigned LATE0:1; + unsigned LATE1:1; + unsigned LATE2:1; + unsigned LATE3:1; + unsigned LATE4:1; + unsigned LATE5:1; + unsigned LATE6:1; + unsigned LATE7:1; + }; +} __LATEbits_t; + +extern volatile __LATEbits_t at 0xf8d LATEbits; + +extern sfr at 0xf8e LATF; +typedef union { + struct { + unsigned LATF0:1; + unsigned LATF1:1; + unsigned LATF2:1; + unsigned LATF3:1; + unsigned LATF4:1; + unsigned LATF5:1; + unsigned LATF6:1; + unsigned LATF7:1; + }; +} __LATFbits_t; + +extern volatile __LATFbits_t at 0xf8e LATFbits; + +extern sfr at 0xf8f LATG; +typedef union { + struct { + unsigned LATG0:1; + unsigned LATG1:1; + unsigned LATG2:1; + unsigned LATG3:1; + unsigned LATG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __LATGbits_t; + +extern volatile __LATGbits_t at 0xf8f LATGbits; + +extern sfr at 0xf92 TRISA; +typedef union { + struct { + unsigned TRISA0:1; + unsigned TRISA1:1; + unsigned TRISA2:1; + unsigned TRISA3:1; + unsigned TRISA4:1; + unsigned TRISA5:1; + unsigned TRISA6:1; + unsigned :1; + }; +} __TRISAbits_t; + +extern volatile __TRISAbits_t at 0xf92 TRISAbits; + +extern sfr at 0xf93 TRISB; +typedef union { + struct { + unsigned TRISB0:1; + unsigned TRISB1:1; + unsigned TRISB2:1; + unsigned TRISB3:1; + unsigned TRISB4:1; + unsigned TRISB5:1; + unsigned TRISB6:1; + unsigned TRISB7:1; + }; +} __TRISBbits_t; + +extern volatile __TRISBbits_t at 0xf93 TRISBbits; + +extern sfr at 0xf94 TRISC; +typedef union { + struct { + unsigned TRISC0:1; + unsigned TRISC1:1; + unsigned TRISC2:1; + unsigned TRISC3:1; + unsigned TRISC4:1; + unsigned TRISC5:1; + unsigned TRISC6:1; + unsigned TRISC7:1; + }; +} __TRISCbits_t; + +extern volatile __TRISCbits_t at 0xf94 TRISCbits; + +extern sfr at 0xf95 TRISD; +typedef union { + struct { + unsigned TRISD0:1; + unsigned TRISD1:1; + unsigned TRISD2:1; + unsigned TRISD3:1; + unsigned TRISD4:1; + unsigned TRISD5:1; + unsigned TRISD6:1; + unsigned TRISD7:1; + }; +} __TRISDbits_t; + +extern volatile __TRISDbits_t at 0xf95 TRISDbits; + +extern sfr at 0xf96 TRISE; +typedef union { + struct { + unsigned TRISE0:1; + unsigned TRISE1:1; + unsigned TRISE2:1; + unsigned TRISE3:1; + unsigned TRISE4:1; + unsigned TRISE5:1; + unsigned TRISE6:1; + unsigned TRISE7:1; + }; +} __TRISEbits_t; + +extern volatile __TRISEbits_t at 0xf96 TRISEbits; + +extern sfr at 0xf97 TRISF; +typedef union { + struct { + unsigned TRISF0:1; + unsigned TRISF1:1; + unsigned TRISF2:1; + unsigned TRISF3:1; + unsigned TRISF4:1; + unsigned TRISF5:1; + unsigned TRISF6:1; + unsigned TRISF7:1; + }; +} __TRISFbits_t; + +extern volatile __TRISFbits_t at 0xf97 TRISFbits; + +extern sfr at 0xf98 TRISG; +typedef union { + struct { + unsigned TRISG0:1; + unsigned TRISG1:1; + unsigned TRISG2:1; + unsigned TRISG3:1; + unsigned TRISG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __TRISGbits_t; + +extern volatile __TRISGbits_t at 0xf98 TRISGbits; + +extern sfr at 0xf9c MEMCON; +typedef union { + struct { + unsigned WM0:1; + unsigned WM1:1; + unsigned :1; + unsigned :1; + unsigned WAIT0:1; + unsigned WAIT1:1; + unsigned :1; + unsigned EBDIS:1; + }; +} __MEMCONbits_t; + +extern volatile __MEMCONbits_t at 0xf9c MEMCONbits; + +extern sfr at 0xf9d PIE1; +typedef union { + struct { + unsigned TMR1IE:1; + unsigned TMR2IE:1; + unsigned CCP1IE:1; + unsigned SSPIE:1; + unsigned TXIE:1; + unsigned RCIE:1; + unsigned ADIE:1; + unsigned PSPIE:1; + }; +} __PIE1bits_t; + +extern volatile __PIE1bits_t at 0xf9d PIE1bits; + +extern sfr at 0xf9e PIR1; +typedef union { + struct { + unsigned TMR1IF:1; + unsigned TMR2IF:1; + unsigned CCP1IF:1; + unsigned SSPIF:1; + unsigned TXIF:1; + unsigned RCIF:1; + unsigned ADIF:1; + unsigned PSPIF:1; + }; +} __PIR1bits_t; + +extern volatile __PIR1bits_t at 0xf9e PIR1bits; + +extern sfr at 0xf9f IPR1; +typedef union { + struct { + unsigned TMR1IP:1; + unsigned TMR2IP:1; + unsigned CCP1IP:1; + unsigned SSPIP:1; + unsigned TXIP:1; + unsigned RCIP:1; + unsigned ADIP:1; + unsigned PSPIP:1; + }; +} __IPR1bits_t; + +extern volatile __IPR1bits_t at 0xf9f IPR1bits; + +extern sfr at 0xfa0 PIE2; +typedef union { + struct { + unsigned CCP2IE:1; + unsigned TMR3IE:1; + unsigned LVDIE:1; + unsigned BCLIE:1; + unsigned EEIE:1; + unsigned :1; + unsigned CMIE:1; + unsigned :1; + }; +} __PIE2bits_t; + +extern volatile __PIE2bits_t at 0xfa0 PIE2bits; + +extern sfr at 0xfa1 PIR2; +typedef union { + struct { + unsigned CCP2IF:1; + unsigned TMR3IF:1; + unsigned LVDIF:1; + unsigned BCLIF:1; + unsigned EEIF:1; + unsigned :1; + unsigned CMIF:1; + unsigned :1; + }; +} __PIR2bits_t; + +extern volatile __PIR2bits_t at 0xfa1 PIR2bits; + +extern sfr at 0xfa2 IPR2; +typedef union { + struct { + unsigned CCP2IP:1; + unsigned TMR3IP:1; + unsigned LVDIP:1; + unsigned BCLIP:1; + unsigned EEIP:1; + unsigned :1; + unsigned CMIP:1; + unsigned :1; + }; +} __IPR2bits_t; + +extern volatile __IPR2bits_t at 0xfa2 IPR2bits; + +extern sfr at 0xfa3 PIE3; +typedef union { + struct { + unsigned CCP3IE:1; + unsigned CCP4IE:1; + unsigned CCP5IE:1; + unsigned TMR4IE:1; + unsigned TX2IE:1; + unsigned RC2IE:1; + unsigned :1; + unsigned :1; + }; +} __PIE3bits_t; + +extern volatile __PIE3bits_t at 0xfa3 PIE3bits; + +extern sfr at 0xfa4 PIR3; +typedef union { + struct { + unsigned CCP3IF:1; + unsigned CCP4IF:1; + unsigned CCP5IF:1; + unsigned TMR4IF:1; + unsigned TX2IF:1; + unsigned RC2IF:1; + unsigned :1; + unsigned :1; + }; +} __PIR3bits_t; + +extern volatile __PIR3bits_t at 0xfa4 PIR3bits; + +extern sfr at 0xfa5 IPR3; +typedef union { + struct { + unsigned CCP3IP:1; + unsigned CCP4IP:1; + unsigned CCP5IP:1; + unsigned TMR4IP:1; + unsigned TX2IP:1; + unsigned RC2IP:1; + unsigned :1; + unsigned :1; + }; +} __IPR3bits_t; + +extern volatile __IPR3bits_t at 0xfa5 IPR3bits; + +extern sfr at 0xfa6 EECON1; +typedef union { + struct { + unsigned RD:1; + unsigned WR:1; + unsigned WREN:1; + unsigned WRERR:1; + unsigned FREE:1; + unsigned :1; + unsigned CFGS:1; + unsigned EEPGD:1; + }; +} __EECON1bits_t; + +extern volatile __EECON1bits_t at 0xfa6 EECON1bits; + +extern sfr at 0xfa7 EECON2; +extern sfr at 0xfa8 EEDATA; +extern sfr at 0xfa9 EEADR; +extern sfr at 0xfaa EEADRH; +extern sfr at 0xfab RCSTA1; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTA1bits_t; + +extern volatile __RCSTA1bits_t at 0xfab RCSTA1bits; + +extern sfr at 0xfac TXSTA1; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTA1bits_t; + +extern volatile __TXSTA1bits_t at 0xfac TXSTA1bits; + +extern sfr at 0xfad TXREG1; +extern sfr at 0xfae RCREG1; +extern sfr at 0xfaf SPBRG1; +extern sfr at 0xfb0 PSPCON; +typedef union { + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned PSPMODE:1; + unsigned IBOV:1; + unsigned OBF:1; + unsigned IBF:1; + }; +} __PSPCONbits_t; + +extern volatile __PSPCONbits_t at 0xfb0 PSPCONbits; + +extern sfr at 0xfb1 T3CON; +typedef union { + struct { + unsigned TMR3ON:1; + unsigned TMR3CS:1; + unsigned T3SYNC:1; + unsigned T3CCP1:1; + unsigned T3CKPS0:1; + unsigned T3CKPS1:1; + unsigned T3CCP2:1; + unsigned RD16:1; + }; +} __T3CONbits_t; + +extern volatile __T3CONbits_t at 0xfb1 T3CONbits; + +extern sfr at 0xfb2 TMR3L; +extern sfr at 0xfb3 TMR3H; +extern sfr at 0xfb4 CMCON; +typedef union { + struct { + unsigned CM0:1; + unsigned CM1:1; + unsigned CM2:1; + unsigned CIS:1; + unsigned C1INV:1; + unsigned C2INV:1; + unsigned C1OUT:1; + unsigned C2OUT:1; + }; +} __CMCONbits_t; + +extern volatile __CMCONbits_t at 0xfb4 CMCONbits; + +extern sfr at 0xfb5 CVRCON; +typedef union { + struct { + unsigned CVR0:1; + unsigned CVR1:1; + unsigned CVR2:1; + unsigned CVR3:1; + unsigned CVREF:1; + unsigned CVRR:1; + unsigned CVROE:1; + unsigned CVREN:1; + }; +} __CVRCONbits_t; + +extern volatile __CVRCONbits_t at 0xfb5 CVRCONbits; + +extern sfr at 0xfb7 CCP3CON; +typedef union { + struct { + unsigned CCP3M0:1; + unsigned CCP3M1:1; + unsigned CCP3M2:1; + unsigned CCP3M3:1; + unsigned DCCP3Y:1; + unsigned DCCP3X:1; + unsigned :1; + unsigned :1; + }; +} __CCP3CONbits_t; + +extern volatile __CCP3CONbits_t at 0xfb7 CCP3CONbits; + +extern sfr at 0xfb8 CCPR3L; +extern sfr at 0xfb9 CCPR3H; +extern sfr at 0xfba CCP2CON; +typedef union { + struct { + unsigned CCP2M0:1; + unsigned CCP2M1:1; + unsigned CCP2M2:1; + unsigned CCP2M3:1; + unsigned DCCP2Y:1; + unsigned DCCP2X:1; + unsigned :1; + unsigned :1; + }; +} __CCP2CONbits_t; + +extern volatile __CCP2CONbits_t at 0xfba CCP2CONbits; + +extern sfr at 0xfbb CCPR2L; +extern sfr at 0xfbc CCPR2H; +extern sfr at 0xfbd CCP1CON; +typedef union { + struct { + unsigned CCP1M0:1; + unsigned CCP1M1:1; + unsigned CCP1M2:1; + unsigned CCP1M3:1; + unsigned DCCP1Y:1; + unsigned DCCP1X:1; + unsigned :1; + unsigned :1; + }; +} __CCP1CONbits_t; + +extern volatile __CCP1CONbits_t at 0xfbd CCP1CONbits; + +extern sfr at 0xfbe CCPR1L; +extern sfr at 0xfbf CCPR1H; +extern sfr at 0xfc0 ADCON2; +typedef union { + struct { + unsigned ADCS0:1; + unsigned ADCS1:1; + unsigned ADCS2:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned ADFM:1; + }; +} __ADCON2bits_t; + +extern volatile __ADCON2bits_t at 0xfc0 ADCON2bits; + +extern sfr at 0xfc1 ADCON1; +typedef union { + struct { + unsigned PCFG0:1; + unsigned PCFG1:1; + unsigned PCFG2:1; + unsigned PCFG3:1; + unsigned VCFG0:1; + unsigned VCFG1:1; + unsigned :1; + unsigned :1; + }; +} __ADCON1bits_t; + +extern volatile __ADCON1bits_t at 0xfc1 ADCON1bits; + +extern sfr at 0xfc2 ADCON0; +typedef union { + struct { + unsigned ADON:1; + unsigned GO:1; + unsigned CHS0:1; + unsigned CHS1:1; + unsigned CHS2:1; + unsigned CHS3:1; + unsigned :1; + unsigned :1; + }; +} __ADCON0bits_t; + +extern volatile __ADCON0bits_t at 0xfc2 ADCON0bits; + +extern sfr at 0xfc3 ADRESL; +extern sfr at 0xfc4 ADRESH; +extern sfr at 0xfc5 SSPCON2; +typedef union { + struct { + unsigned SEN:1; + unsigned RSEN:1; + unsigned PEN:1; + unsigned RCEN:1; + unsigned ACKEN:1; + unsigned ACKDT:1; + unsigned ACKSTAT:1; + unsigned GCEN:1; + }; +} __SSPCON2bits_t; + +extern volatile __SSPCON2bits_t at 0xfc5 SSPCON2bits; + +extern sfr at 0xfc6 SSPCON1; +typedef union { + struct { + unsigned SSPM0:1; + unsigned SSPM1:1; + unsigned SSPM2:1; + unsigned SSPM3:1; + unsigned CKP:1; + unsigned SSPEN:1; + unsigned SSPOV:1; + unsigned WCOL:1; + }; +} __SSPCON1bits_t; + +extern volatile __SSPCON1bits_t at 0xfc6 SSPCON1bits; + +extern sfr at 0xfc7 SSPSTAT; +typedef union { + struct { + unsigned BF:1; + unsigned UA:1; + unsigned R_W:1; + unsigned S:1; + unsigned P:1; + unsigned D_A:1; + unsigned CKE:1; + unsigned SMP:1; + }; +} __SSPSTATbits_t; + +extern volatile __SSPSTATbits_t at 0xfc7 SSPSTATbits; + +extern sfr at 0xfc8 SSPADD; +extern sfr at 0xfc9 SSPBUF; +extern sfr at 0xfca T2CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T2CONbits_t; + +extern volatile __T2CONbits_t at 0xfca T2CONbits; + +extern sfr at 0xfcb PR2; +extern sfr at 0xfcc TMR2; +extern sfr at 0xfcd T1CON; +typedef union { + struct { + unsigned TMR1ON:1; + unsigned TMR1CS:1; + unsigned NOT_T1SYNC:1; + unsigned T1OSCEN:1; + unsigned T1CKPS0:1; + unsigned T1CKPS1:1; + unsigned :1; + unsigned RD16:1; + }; +} __T1CONbits_t; + +extern volatile __T1CONbits_t at 0xfcd T1CONbits; + +extern sfr at 0xfce TMR1L; +extern sfr at 0xfcf TMR1H; +extern sfr at 0xfd0 RCON; +typedef union { + struct { + unsigned BOR:1; + unsigned POR:1; + unsigned PD:1; + unsigned TO:1; + unsigned RI:1; + unsigned :1; + unsigned :1; + unsigned IPEN:1; + }; +} __RCONbits_t; + +extern volatile __RCONbits_t at 0xfd0 RCONbits; + +extern sfr at 0xfd1 WDTCON; +typedef union { + struct { + unsigned SWDTEN:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned SWDTE:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __WDTCONbits_t; + +extern volatile __WDTCONbits_t at 0xfd1 WDTCONbits; + +extern sfr at 0xfd2 LVDCON; +typedef union { + struct { + unsigned LVDL0:1; + unsigned LVDL1:1; + unsigned LVDL2:1; + unsigned LVDL3:1; + unsigned LVDEN:1; + unsigned VRST:1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned LVV0:1; + unsigned LVV1:1; + unsigned LVV2:1; + unsigned LVV3:1; + unsigned :1; + unsigned BGST:1; + unsigned :1; + unsigned :1; + }; +} __LVDCONbits_t; + +extern volatile __LVDCONbits_t at 0xfd2 LVDCONbits; + +extern sfr at 0xfd3 OSCCON; +typedef union { + struct { + unsigned SCS:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __OSCCONbits_t; + +extern volatile __OSCCONbits_t at 0xfd3 OSCCONbits; + +extern sfr at 0xfd5 T0CON; +extern sfr at 0xfd6 TMR0L; +extern sfr at 0xfd7 TMR0H; +extern sfr at 0xfd8 STATUS; +typedef union { + struct { + unsigned C:1; + unsigned DC:1; + unsigned Z:1; + unsigned OV:1; + unsigned N:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __STATUSbits_t; + +extern volatile __STATUSbits_t at 0xfd8 STATUSbits; + +extern sfr at 0xfd9 FSR2L; +extern sfr at 0xfda FSR2H; +extern sfr at 0xfdb PLUSW2; +extern sfr at 0xfdc PREINC2; +extern sfr at 0xfdd POSTDEC2; +extern sfr at 0xfde POSTINC2; +extern sfr at 0xfdf INDF2; +extern sfr at 0xfe0 BSR; +extern sfr at 0xfe1 FSR1L; +extern sfr at 0xfe2 FSR1H; +extern sfr at 0xfe3 PLUSW1; +extern sfr at 0xfe4 PREINC1; +extern sfr at 0xfe5 POSTDEC1; +extern sfr at 0xfe6 POSTINC1; +extern sfr at 0xfe7 INDF1; +extern sfr at 0xfe8 WREG; +extern sfr at 0xfe9 FSR0L; +extern sfr at 0xfea FSR0H; +extern sfr at 0xfeb PLUSW0; +extern sfr at 0xfec PREINC0; +extern sfr at 0xfed POSTDEC0; +extern sfr at 0xfee POSTINC0; +extern sfr at 0xfef INDF0; +extern sfr at 0xff0 INTCON3; +typedef union { + struct { + unsigned INT1F:1; + unsigned INT2F:1; + unsigned INT3F:1; + unsigned INT1E:1; + unsigned INT2E:1; + unsigned INT3E:1; + unsigned INT1P:1; + unsigned INT2P:1; + }; + + struct { + unsigned INT1IF:1; + unsigned INT2IF:1; + unsigned INT3IF:1; + unsigned INT1IE:1; + unsigned INT2IE:1; + unsigned INT3IE:1; + unsigned INT1IP:1; + unsigned INT2IP:1; + }; +} __INTCON3bits_t; + +extern volatile __INTCON3bits_t at 0xff0 INTCON3bits; + +extern sfr at 0xff1 INTCON2; +typedef union { + struct { + unsigned RBIP:1; + unsigned INT3P:1; + unsigned T0IP:1; + unsigned INTEDG3:1; + unsigned INTEDG2:1; + unsigned INTEDG1:1; + unsigned INTEDG0:1; + unsigned RBPU:1; + }; +} __INTCON2bits_t; + +extern volatile __INTCON2bits_t at 0xff1 INTCON2bits; + +extern sfr at 0xff2 INTCON; +typedef union { + struct { + unsigned RBIF:1; + unsigned INT0F:1; + unsigned T0IF:1; + unsigned RBIE:1; + unsigned INT0E:1; + unsigned T0IE:1; + unsigned PEIE:1; + unsigned GIE:1; + }; +} __INTCONbits_t; + +extern volatile __INTCONbits_t at 0xff2 INTCONbits; + +extern sfr at 0xff3 PRODL; +extern sfr at 0xff4 PRODH; +extern sfr at 0xff5 TABLAT; +extern sfr at 0xff6 TBLPTRL; +extern sfr at 0xff7 TBLPTRH; +extern sfr at 0xff8 TBLPTRU; +extern sfr at 0xff9 PCL; +extern sfr at 0xffa PCLATH; +extern sfr at 0xffb PCLATU; +extern sfr at 0xffc STKPTR; +typedef union { + struct { + unsigned STKPTR0:1; + unsigned STKPTR1:1; + unsigned STKPTR2:1; + unsigned STKPTR3:1; + unsigned STKPTR4:1; + unsigned :1; + unsigned STKUNF:1; + unsigned STKFUL:1; + }; +} __STKPTRbits_t; + +extern volatile __STKPTRbits_t at 0xffc STKPTRbits; + +extern sfr at 0xffd TOSL; +extern sfr at 0xffe TOSH; +extern sfr at 0xfff TOSU; + + +/* Configuration registers locations */ +#define __CONFIG0H 0x300001 +#define __CONFIG1L 0x300002 +#define __CONFIG1H 0x300003 +#define __CONFIG2L 0x300004 +#define __CONFIG2H 0x300005 +#define __CONFIG4L 0x300008 +#define __CONFIG4H 0x300009 +#define __CONFIG5L 0x30000A +#define __CONFIG5H 0x30000B +#define __CONFIG6L 0x30000C +#define __CONFIG6H 0x30000D + + + +/* Oscillator 0H options */ +#define _OSC_RC_OSC2_0H 0xFF /* RC-OSC2 as RA6 */ +#define _OSC_HS_PLL_0H 0xFE /* HS-PLL Enabled */ +#define _OSC_EC_OSC2_RA6_0H 0xFD /* EC-OSC2 as RA6 */ +#define _OSC_EC_OSC2_Clock_Out_0H 0xFC /* EC-OSC2 as Clock_Out */ +#define _OSC_RC_0H 0xFB /* RC */ +#define _OSC_HS_0H 0xFA /* HS */ +#define _OSC_XT_0H 0xF9 /* XT */ +#define _OSC_LP_0H 0xF8 /* LP */ + +/* Osc. Switch Enable 0H options */ +#define _OSCS_OFF_0H 0xFF /* Disabled */ +#define _OSCS_ON_0H 0xDF /* Enabled */ + +/* Power Up Timer 1L options */ +#define _PUT_OFF_1L 0xFF /* Disabled */ +#define _PUT_ON_1L 0xFE /* Enabled */ + +/* Brown Out Detect 1L options */ +#define _BODEN_ON_1L 0xFF /* Enabled */ +#define _BODEN_OFF_1L 0xFD /* Disabled */ + +/* Brown Out Voltage 1L options */ +#define _BODENV_2_5V_1L 0xFF /* 2.5V */ +#define _BODENV_2_7V_1L 0xFB /* 2.7V */ +#define _BODENV_4_2V_1L 0xF7 /* 4.2V */ +#define _BODENV_4_5V_1L 0xF3 /* 4.5V */ + +/* Watchdog Timer 1H options */ +#define _WDT_ON_1H 0xFF /* Enabled */ +#define _WDT_OFF_1H 0xFE /* Disabled */ + +/* Watchdog Postscaler 1H options */ +#define _WDTPS_1_128_1H 0xFF /* 1:128 */ +#define _WDTPS_1_64_1H 0xFD /* 1:64 */ +#define _WDTPS_1_32_1H 0xFB /* 1:32 */ +#define _WDTPS_1_16_1H 0xF9 /* 1:16 */ +#define _WDTPS_1_8_1H 0xF7 /* 1:8 */ +#define _WDTPS_1_4_1H 0xF5 /* 1:4 */ +#define _WDTPS_1_2_1H 0xF3 /* 1:2 */ +#define _WDTPS_1_1_1H 0xF1 /* 1:1 */ + +/* External Bus Wait 2L options */ +#define _WAIT_OFF_2L 0xFF /* Disabled */ +#define _WAIT_ON_2L 0x7F /* Enabled */ + +/* CCP2 Mux 2H options */ +#define _CCP2MUX_RC1_2H 0xFF /* RC1 */ +#define _CCP2MUX_RE7_MICROCONTROLLER__RB3_2H 0xFE /* RE7(Microcontroller)/RB3 */ + +/* Timer1 OSC 2H options */ +#define _T1OSCMX_LOW_2H 0xFD /* Low Power */ + +/* Low Voltage Program 2H options */ +#define _LVP_ON_2H 0xFF /* Enabled */ +#define _LVP_OFF_2H 0xFB /* Disabled */ + +/* Background Debug 2H options */ +#define _BACKBUG_OFF_2H 0xFF /* Disabled */ +#define _BACKBUG_ON_2H 0x7F /* Enabled */ + +/* Stack Overflow Reset 2H options */ +#define _STVR_ON_2H 0xFF /* Enabled */ +#define _STVR_OFF_2H 0xFE /* Disabled */ + +/* Code Protect 00800-01FFF 4L options */ +#define _CP_0_OFF_4L 0xFF /* Disabled */ +#define _CP_0_ON_4L 0xFE /* Enabled */ + +/* Code Protect 02000-03FFF 4L options */ +#define _CP_1_OFF_4L 0xFF /* Disabled */ +#define _CP_1_ON_4L 0xFD /* Enabled */ + +/* Code Protect 04000-05FFF 4L options */ +#define _CP_2_OFF_4L 0xFF /* Disabled */ +#define _CP_2_ON_4L 0xFB /* Enabled */ + +/* Code Protect 06000-07FFF 4L options */ +#define _CP_3_OFF_4L 0xFF /* Disabled */ +#define _CP_3_ON_4L 0xF7 /* Enabled */ + +/* Data EE Read Protect 4H options */ +#define _CPD_OFF_4H 0xFF /* Disabled */ +#define _CPD_ON_4H 0x7F /* Enabled */ + +/* Code Protect Boot 4H options */ +#define _CPB_OFF_4H 0xFF /* Disabled */ +#define _CPB_ON_4H 0xBF /* Enabled */ + +/* Table Write Protect 00800-01FFF 5L options */ +#define _WRT_0_OFF_5L 0xFF /* Disabled */ +#define _WRT_0_ON_5L 0xFE /* Enabled */ + +/* Table Write Protect 02000-03FFF 5L options */ +#define _WRT_1_OFF_5L 0xFF /* Disabled */ +#define _WRT_1_ON_5L 0xFD /* Enabled */ + +/* Table Write Protect 04000-05FFF 5L options */ +#define _WRT_2_OFF_5L 0xFF /* Disabled */ +#define _WRT_2_ON_5L 0xFB /* Enabled */ + +/* Table Write Protect 06000-07FFF 5L options */ +#define _WRT_3_OFF_5L 0xFF /* Disabled */ +#define _WRT_3_ON_5L 0xF7 /* Enabled */ + +/* Data EE Write Protect 5H options */ +#define _WRTD_OFF_5H 0xFF /* Disabled */ +#define _WRTD_ON_5H 0x7F /* Enabled */ + +/* Table Write Protect Boot 5H options */ +#define _WRTB_OFF_5H 0xFF /* Disabled */ +#define _WRTB_ON_5H 0xBF /* Enabled */ + +/* Config. Write Protect 5H options */ +#define _WRTC_OFF_5H 0xFF /* Disabled */ +#define _WRTC_ON_5H 0xDF /* Enabled */ + +/* Table Read Protect 00800-01FFF 6L options */ +#define _EBTR_0_OFF_6L 0xFF /* Disabled */ +#define _EBTR_0_ON_6L 0xFE /* Enabled */ + +/* Table Read Protect 02000-03FFF 6L options */ +#define _EBTR_1_OFF_6L 0xFF /* Disabled */ +#define _EBTR_1_ON_6L 0xFD /* Enabled */ + +/* Table Read Protect 04000-05FFF 6L options */ +#define _EBTR_2_OFF_6L 0xFF /* Disabled */ +#define _EBTR_2_ON_6L 0xFB /* Enabled */ + +/* Table Read Protect 06000-07FFF 6L options */ +#define _EBTR_3_OFF_6L 0xFF /* Disabled */ +#define _EBTR_3_ON_6L 0xF7 /* Enabled */ + +/* Table Read Protect Boot 6H options */ +#define _EBTRB_OFF_6H 0xFF /* Disabled */ +#define _EBTRB_ON_6H 0xBF /* Enabled */ + + +#endif diff --git a/device/include/pic16/pic18f6620.h b/device/include/pic16/pic18f6620.h new file mode 100644 index 00000000..0f19ba58 --- /dev/null +++ b/device/include/pic16/pic18f6620.h @@ -0,0 +1,1360 @@ + +/* + * pic18f6620.h - PIC18F6620 Device Library Header + * + * This file is part of the GNU PIC Library. + * + * January, 2004 + * The GNU PIC Library is maintained by, + * Vangelis Rokas + * + * $Id$ + * + */ + +#ifndef __PIC18F6620_H__ +#define __PIC18F6620_H__ + +extern sfr at 0xf6b RCSTA2; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTA2bits_t; + +extern volatile __RCSTA2bits_t at 0xf6b RCSTA2bits; + +extern sfr at 0xf6c TXSTA2; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTA2bits_t; + +extern volatile __TXSTA2bits_t at 0xf6c TXSTA2bits; + +extern sfr at 0xf6d TXREG2; +extern sfr at 0xf6e RCREG2; +extern sfr at 0xf6f SPBRG2; +extern sfr at 0xf70 CCP5CON; +typedef union { + struct { + unsigned CCP5M0:1; + unsigned CCP5M1:1; + unsigned CCP5M2:1; + unsigned CCP5M3:1; + unsigned DCCP5Y:1; + unsigned DCCP5X:1; + unsigned :1; + unsigned :1; + }; +} __CCP5CONbits_t; + +extern volatile __CCP5CONbits_t at 0xf70 CCP5CONbits; + +extern sfr at 0xf71 CCPR5L; +extern sfr at 0xf72 CCPR5H; +extern sfr at 0xf73 CCP4CON; +typedef union { + struct { + unsigned CCP4M0:1; + unsigned CCP4M1:1; + unsigned CCP4M2:1; + unsigned CCP4M3:1; + unsigned DCCP4Y:1; + unsigned DCCP4X:1; + unsigned :1; + unsigned :1; + }; +} __CCP4CONbits_t; + +extern volatile __CCP4CONbits_t at 0xf73 CCP4CONbits; + +extern sfr at 0xf74 CCPR4L; +extern sfr at 0xf75 CCPR4H; +extern sfr at 0xf76 T4CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T4CONbits_t; + +extern volatile __T4CONbits_t at 0xf76 T4CONbits; + +extern sfr at 0xf77 PR4; +extern sfr at 0xf78 TMR4; +extern sfr at 0xf80 PORTA; +typedef union { + struct { + unsigned RA0:1; + unsigned RA1:1; + unsigned RA2:1; + unsigned RA3:1; + unsigned RA4:1; + unsigned RA5:1; + unsigned RA6:1; + unsigned :1; + }; + + struct { + unsigned AN0:1; + unsigned AN1:1; + unsigned AN2:1; + unsigned AN3:1; + unsigned :1; + unsigned AN4:1; + unsigned OSC2:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned VREFM:1; + unsigned VREFP:1; + unsigned T0CKI:1; + unsigned SS:1; + unsigned CLK0:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned LVDIN:1; + unsigned :1; + unsigned :1; + }; +} __PORTAbits_t; + +extern volatile __PORTAbits_t at 0xf80 PORTAbits; + +extern sfr at 0xf81 PORTB; +typedef union { + struct { + unsigned RB0:1; + unsigned RB1:1; + unsigned RB2:1; + unsigned RB3:1; + unsigned RB4:1; + unsigned RB5:1; + unsigned RB6:1; + unsigned RB7:1; + }; + + struct { + unsigned INT0:1; + unsigned INT1:1; + unsigned INT2:1; + unsigned INT3:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTBbits_t; + +extern volatile __PORTBbits_t at 0xf81 PORTBbits; + +extern sfr at 0xf82 PORTC; +typedef union { + struct { + unsigned RC0:1; + unsigned RC1:1; + unsigned RC2:1; + unsigned RC3:1; + unsigned RC4:1; + unsigned RC5:1; + unsigned RC6:1; + unsigned RC7:1; + }; + + struct { + unsigned T1OSO:1; + unsigned T1OSI:1; + unsigned :1; + unsigned SCK:1; + unsigned SDI:1; + unsigned SDO:1; + unsigned TX:1; + unsigned RX:1; + }; + + struct { + unsigned T1CKI:1; + unsigned CCP2:1; + unsigned CCP1:1; + unsigned SCL:1; + unsigned SDA:1; + unsigned :1; + unsigned CK:1; + unsigned DT:1; + }; +} __PORTCbits_t; + +extern volatile __PORTCbits_t at 0xf82 PORTCbits; + +extern sfr at 0xf83 PORTD; +typedef union { + struct { + unsigned RD0:1; + unsigned RD1:1; + unsigned RD2:1; + unsigned RD3:1; + unsigned RD4:1; + unsigned RD5:1; + unsigned RD6:1; + unsigned RD7:1; + }; + + struct { + unsigned AD0:1; + unsigned AD1:1; + unsigned AD2:1; + unsigned AD3:1; + unsigned AD4:1; + unsigned AD5:1; + unsigned AD6:1; + unsigned AD7:1; + }; +} __PORTDbits_t; + +extern volatile __PORTDbits_t at 0xf83 PORTDbits; + +extern sfr at 0xf84 PORTE; +typedef union { + struct { + unsigned RE0:1; + unsigned RE1:1; + unsigned RE2:1; + unsigned RE3:1; + unsigned RE4:1; + unsigned RE5:1; + unsigned RE6:1; + unsigned RE7:1; + }; + + struct { + unsigned ALE:1; + unsigned OE:1; + unsigned WRL:1; + unsigned WRH:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned CCP2:1; + }; + + struct { + unsigned AN5:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTEbits_t; + +extern volatile __PORTEbits_t at 0xf84 PORTEbits; + +extern sfr at 0xf85 PORTF; +typedef union { + struct { + unsigned RF0:1; + unsigned RF1:1; + unsigned RF2:1; + unsigned RF3:1; + unsigned RF4:1; + unsigned RF5:1; + unsigned RF6:1; + unsigned RF7:1; + }; +} __PORTFbits_t; + +extern volatile __PORTFbits_t at 0xf85 PORTFbits; + +extern sfr at 0xf86 PORTG; +typedef union { + struct { + unsigned RG0:1; + unsigned RG1:1; + unsigned RG2:1; + unsigned RG3:1; + unsigned RG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTGbits_t; + +extern volatile __PORTGbits_t at 0xf86 PORTGbits; + +extern sfr at 0xf89 LATA; +typedef union { + struct { + unsigned LATA0:1; + unsigned LATA1:1; + unsigned LATA2:1; + unsigned LATA3:1; + unsigned LATA4:1; + unsigned LATA5:1; + unsigned LATA6:1; + unsigned :1; + }; +} __LATAbits_t; + +extern volatile __LATAbits_t at 0xf89 LATAbits; + +extern sfr at 0xf8a LATB; +typedef union { + struct { + unsigned LATB0:1; + unsigned LATB1:1; + unsigned LATB2:1; + unsigned LATB3:1; + unsigned LATB4:1; + unsigned LATB5:1; + unsigned LATB6:1; + unsigned LATB7:1; + }; +} __LATBbits_t; + +extern volatile __LATBbits_t at 0xf8a LATBbits; + +extern sfr at 0xf8b LATC; +typedef union { + struct { + unsigned LATC0:1; + unsigned LATC1:1; + unsigned LATC2:1; + unsigned LATC3:1; + unsigned LATC4:1; + unsigned LATC5:1; + unsigned LATC6:1; + unsigned LATC7:1; + }; +} __LATCbits_t; + +extern volatile __LATCbits_t at 0xf8b LATCbits; + +extern sfr at 0xf8c LATD; +typedef union { + struct { + unsigned LATD0:1; + unsigned LATD1:1; + unsigned LATD2:1; + unsigned LATD3:1; + unsigned LATD4:1; + unsigned LATD5:1; + unsigned LATD6:1; + unsigned LATD7:1; + }; +} __LATDbits_t; + +extern volatile __LATDbits_t at 0xf8c LATDbits; + +extern sfr at 0xf8d LATE; +typedef union { + struct { + unsigned LATE0:1; + unsigned LATE1:1; + unsigned LATE2:1; + unsigned LATE3:1; + unsigned LATE4:1; + unsigned LATE5:1; + unsigned LATE6:1; + unsigned LATE7:1; + }; +} __LATEbits_t; + +extern volatile __LATEbits_t at 0xf8d LATEbits; + +extern sfr at 0xf8e LATF; +typedef union { + struct { + unsigned LATF0:1; + unsigned LATF1:1; + unsigned LATF2:1; + unsigned LATF3:1; + unsigned LATF4:1; + unsigned LATF5:1; + unsigned LATF6:1; + unsigned LATF7:1; + }; +} __LATFbits_t; + +extern volatile __LATFbits_t at 0xf8e LATFbits; + +extern sfr at 0xf8f LATG; +typedef union { + struct { + unsigned LATG0:1; + unsigned LATG1:1; + unsigned LATG2:1; + unsigned LATG3:1; + unsigned LATG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __LATGbits_t; + +extern volatile __LATGbits_t at 0xf8f LATGbits; + +extern sfr at 0xf92 TRISA; +typedef union { + struct { + unsigned TRISA0:1; + unsigned TRISA1:1; + unsigned TRISA2:1; + unsigned TRISA3:1; + unsigned TRISA4:1; + unsigned TRISA5:1; + unsigned TRISA6:1; + unsigned :1; + }; +} __TRISAbits_t; + +extern volatile __TRISAbits_t at 0xf92 TRISAbits; + +extern sfr at 0xf93 TRISB; +typedef union { + struct { + unsigned TRISB0:1; + unsigned TRISB1:1; + unsigned TRISB2:1; + unsigned TRISB3:1; + unsigned TRISB4:1; + unsigned TRISB5:1; + unsigned TRISB6:1; + unsigned TRISB7:1; + }; +} __TRISBbits_t; + +extern volatile __TRISBbits_t at 0xf93 TRISBbits; + +extern sfr at 0xf94 TRISC; +typedef union { + struct { + unsigned TRISC0:1; + unsigned TRISC1:1; + unsigned TRISC2:1; + unsigned TRISC3:1; + unsigned TRISC4:1; + unsigned TRISC5:1; + unsigned TRISC6:1; + unsigned TRISC7:1; + }; +} __TRISCbits_t; + +extern volatile __TRISCbits_t at 0xf94 TRISCbits; + +extern sfr at 0xf95 TRISD; +typedef union { + struct { + unsigned TRISD0:1; + unsigned TRISD1:1; + unsigned TRISD2:1; + unsigned TRISD3:1; + unsigned TRISD4:1; + unsigned TRISD5:1; + unsigned TRISD6:1; + unsigned TRISD7:1; + }; +} __TRISDbits_t; + +extern volatile __TRISDbits_t at 0xf95 TRISDbits; + +extern sfr at 0xf96 TRISE; +typedef union { + struct { + unsigned TRISE0:1; + unsigned TRISE1:1; + unsigned TRISE2:1; + unsigned TRISE3:1; + unsigned TRISE4:1; + unsigned TRISE5:1; + unsigned TRISE6:1; + unsigned TRISE7:1; + }; +} __TRISEbits_t; + +extern volatile __TRISEbits_t at 0xf96 TRISEbits; + +extern sfr at 0xf97 TRISF; +typedef union { + struct { + unsigned TRISF0:1; + unsigned TRISF1:1; + unsigned TRISF2:1; + unsigned TRISF3:1; + unsigned TRISF4:1; + unsigned TRISF5:1; + unsigned TRISF6:1; + unsigned TRISF7:1; + }; +} __TRISFbits_t; + +extern volatile __TRISFbits_t at 0xf97 TRISFbits; + +extern sfr at 0xf98 TRISG; +typedef union { + struct { + unsigned TRISG0:1; + unsigned TRISG1:1; + unsigned TRISG2:1; + unsigned TRISG3:1; + unsigned TRISG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __TRISGbits_t; + +extern volatile __TRISGbits_t at 0xf98 TRISGbits; + +extern sfr at 0xf9d PIE1; +typedef union { + struct { + unsigned TMR1IE:1; + unsigned TMR2IE:1; + unsigned CCP1IE:1; + unsigned SSPIE:1; + unsigned TXIE:1; + unsigned RCIE:1; + unsigned ADIE:1; + unsigned PSPIE:1; + }; +} __PIE1bits_t; + +extern volatile __PIE1bits_t at 0xf9d PIE1bits; + +extern sfr at 0xf9e PIR1; +typedef union { + struct { + unsigned TMR1IF:1; + unsigned TMR2IF:1; + unsigned CCP1IF:1; + unsigned SSPIF:1; + unsigned TXIF:1; + unsigned RCIF:1; + unsigned ADIF:1; + unsigned PSPIF:1; + }; +} __PIR1bits_t; + +extern volatile __PIR1bits_t at 0xf9e PIR1bits; + +extern sfr at 0xf9f IPR1; +typedef union { + struct { + unsigned TMR1IP:1; + unsigned TMR2IP:1; + unsigned CCP1IP:1; + unsigned SSPIP:1; + unsigned TXIP:1; + unsigned RCIP:1; + unsigned ADIP:1; + unsigned PSPIP:1; + }; +} __IPR1bits_t; + +extern volatile __IPR1bits_t at 0xf9f IPR1bits; + +extern sfr at 0xfa0 PIE2; +typedef union { + struct { + unsigned CCP2IE:1; + unsigned TMR3IE:1; + unsigned LVDIE:1; + unsigned BCLIE:1; + unsigned EEIE:1; + unsigned :1; + unsigned CMIE:1; + unsigned :1; + }; +} __PIE2bits_t; + +extern volatile __PIE2bits_t at 0xfa0 PIE2bits; + +extern sfr at 0xfa1 PIR2; +typedef union { + struct { + unsigned CCP2IF:1; + unsigned TMR3IF:1; + unsigned LVDIF:1; + unsigned BCLIF:1; + unsigned EEIF:1; + unsigned :1; + unsigned CMIF:1; + unsigned :1; + }; +} __PIR2bits_t; + +extern volatile __PIR2bits_t at 0xfa1 PIR2bits; + +extern sfr at 0xfa2 IPR2; +typedef union { + struct { + unsigned CCP2IP:1; + unsigned TMR3IP:1; + unsigned LVDIP:1; + unsigned BCLIP:1; + unsigned EEIP:1; + unsigned :1; + unsigned CMIP:1; + unsigned :1; + }; +} __IPR2bits_t; + +extern volatile __IPR2bits_t at 0xfa2 IPR2bits; + +extern sfr at 0xfa3 PIE3; +typedef union { + struct { + unsigned CCP3IE:1; + unsigned CCP4IE:1; + unsigned CCP5IE:1; + unsigned TMR4IE:1; + unsigned TX2IE:1; + unsigned RC2IE:1; + unsigned :1; + unsigned :1; + }; +} __PIE3bits_t; + +extern volatile __PIE3bits_t at 0xfa3 PIE3bits; + +extern sfr at 0xfa4 PIR3; +typedef union { + struct { + unsigned CCP3IF:1; + unsigned CCP4IF:1; + unsigned CCP5IF:1; + unsigned TMR4IF:1; + unsigned TX2IF:1; + unsigned RC2IF:1; + unsigned :1; + unsigned :1; + }; +} __PIR3bits_t; + +extern volatile __PIR3bits_t at 0xfa4 PIR3bits; + +extern sfr at 0xfa5 IPR3; +typedef union { + struct { + unsigned CCP3IP:1; + unsigned CCP4IP:1; + unsigned CCP5IP:1; + unsigned TMR4IP:1; + unsigned TX2IP:1; + unsigned RC2IP:1; + unsigned :1; + unsigned :1; + }; +} __IPR3bits_t; + +extern volatile __IPR3bits_t at 0xfa5 IPR3bits; + +extern sfr at 0xfa6 EECON1; +typedef union { + struct { + unsigned RD:1; + unsigned WR:1; + unsigned WREN:1; + unsigned WRERR:1; + unsigned FREE:1; + unsigned :1; + unsigned CFGS:1; + unsigned EEPGD:1; + }; +} __EECON1bits_t; + +extern volatile __EECON1bits_t at 0xfa6 EECON1bits; + +extern sfr at 0xfa7 EECON2; +extern sfr at 0xfa8 EEDATA; +extern sfr at 0xfa9 EEADR; +extern sfr at 0xfaa EEADRH; +extern sfr at 0xfab RCSTA1; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTA1bits_t; + +extern volatile __RCSTA1bits_t at 0xfab RCSTA1bits; + +extern sfr at 0xfac TXSTA1; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTA1bits_t; + +extern volatile __TXSTA1bits_t at 0xfac TXSTA1bits; + +extern sfr at 0xfad TXREG1; +extern sfr at 0xfae RCREG1; +extern sfr at 0xfaf SPBRG1; +extern sfr at 0xfb0 PSPCON; +typedef union { + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned PSPMODE:1; + unsigned IBOV:1; + unsigned OBF:1; + unsigned IBF:1; + }; +} __PSPCONbits_t; + +extern volatile __PSPCONbits_t at 0xfb0 PSPCONbits; + +extern sfr at 0xfb1 T3CON; +typedef union { + struct { + unsigned TMR3ON:1; + unsigned TMR3CS:1; + unsigned T3SYNC:1; + unsigned T3CCP1:1; + unsigned T3CKPS0:1; + unsigned T3CKPS1:1; + unsigned T3CCP2:1; + unsigned RD16:1; + }; +} __T3CONbits_t; + +extern volatile __T3CONbits_t at 0xfb1 T3CONbits; + +extern sfr at 0xfb2 TMR3L; +extern sfr at 0xfb3 TMR3H; +extern sfr at 0xfb4 CMCON; +typedef union { + struct { + unsigned CM0:1; + unsigned CM1:1; + unsigned CM2:1; + unsigned CIS:1; + unsigned C1INV:1; + unsigned C2INV:1; + unsigned C1OUT:1; + unsigned C2OUT:1; + }; +} __CMCONbits_t; + +extern volatile __CMCONbits_t at 0xfb4 CMCONbits; + +extern sfr at 0xfb5 CVRCON; +typedef union { + struct { + unsigned CVR0:1; + unsigned CVR1:1; + unsigned CVR2:1; + unsigned CVR3:1; + unsigned CVREF:1; + unsigned CVRR:1; + unsigned CVROE:1; + unsigned CVREN:1; + }; +} __CVRCONbits_t; + +extern volatile __CVRCONbits_t at 0xfb5 CVRCONbits; + +extern sfr at 0xfb7 CCP3CON; +typedef union { + struct { + unsigned CCP3M0:1; + unsigned CCP3M1:1; + unsigned CCP3M2:1; + unsigned CCP3M3:1; + unsigned DCCP3Y:1; + unsigned DCCP3X:1; + unsigned :1; + unsigned :1; + }; +} __CCP3CONbits_t; + +extern volatile __CCP3CONbits_t at 0xfb7 CCP3CONbits; + +extern sfr at 0xfb8 CCPR3L; +extern sfr at 0xfb9 CCPR3H; +extern sfr at 0xfba CCP2CON; +typedef union { + struct { + unsigned CCP2M0:1; + unsigned CCP2M1:1; + unsigned CCP2M2:1; + unsigned CCP2M3:1; + unsigned DCCP2Y:1; + unsigned DCCP2X:1; + unsigned :1; + unsigned :1; + }; +} __CCP2CONbits_t; + +extern volatile __CCP2CONbits_t at 0xfba CCP2CONbits; + +extern sfr at 0xfbb CCPR2L; +extern sfr at 0xfbc CCPR2H; +extern sfr at 0xfbd CCP1CON; +typedef union { + struct { + unsigned CCP1M0:1; + unsigned CCP1M1:1; + unsigned CCP1M2:1; + unsigned CCP1M3:1; + unsigned DCCP1Y:1; + unsigned DCCP1X:1; + unsigned :1; + unsigned :1; + }; +} __CCP1CONbits_t; + +extern volatile __CCP1CONbits_t at 0xfbd CCP1CONbits; + +extern sfr at 0xfbe CCPR1L; +extern sfr at 0xfbf CCPR1H; +extern sfr at 0xfc0 ADCON2; +typedef union { + struct { + unsigned ADCS0:1; + unsigned ADCS1:1; + unsigned ADCS2:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned ADFM:1; + }; +} __ADCON2bits_t; + +extern volatile __ADCON2bits_t at 0xfc0 ADCON2bits; + +extern sfr at 0xfc1 ADCON1; +typedef union { + struct { + unsigned PCFG0:1; + unsigned PCFG1:1; + unsigned PCFG2:1; + unsigned PCFG3:1; + unsigned VCFG0:1; + unsigned VCFG1:1; + unsigned :1; + unsigned :1; + }; +} __ADCON1bits_t; + +extern volatile __ADCON1bits_t at 0xfc1 ADCON1bits; + +extern sfr at 0xfc2 ADCON0; +typedef union { + struct { + unsigned ADON:1; + unsigned GO:1; + unsigned CHS0:1; + unsigned CHS1:1; + unsigned CHS2:1; + unsigned CHS3:1; + unsigned :1; + unsigned :1; + }; +} __ADCON0bits_t; + +extern volatile __ADCON0bits_t at 0xfc2 ADCON0bits; + +extern sfr at 0xfc3 ADRESL; +extern sfr at 0xfc4 ADRESH; +extern sfr at 0xfc5 SSPCON2; +typedef union { + struct { + unsigned SEN:1; + unsigned RSEN:1; + unsigned PEN:1; + unsigned RCEN:1; + unsigned ACKEN:1; + unsigned ACKDT:1; + unsigned ACKSTAT:1; + unsigned GCEN:1; + }; +} __SSPCON2bits_t; + +extern volatile __SSPCON2bits_t at 0xfc5 SSPCON2bits; + +extern sfr at 0xfc6 SSPCON1; +typedef union { + struct { + unsigned SSPM0:1; + unsigned SSPM1:1; + unsigned SSPM2:1; + unsigned SSPM3:1; + unsigned CKP:1; + unsigned SSPEN:1; + unsigned SSPOV:1; + unsigned WCOL:1; + }; +} __SSPCON1bits_t; + +extern volatile __SSPCON1bits_t at 0xfc6 SSPCON1bits; + +extern sfr at 0xfc7 SSPSTAT; +typedef union { + struct { + unsigned BF:1; + unsigned UA:1; + unsigned R_W:1; + unsigned S:1; + unsigned P:1; + unsigned D_A:1; + unsigned CKE:1; + unsigned SMP:1; + }; +} __SSPSTATbits_t; + +extern volatile __SSPSTATbits_t at 0xfc7 SSPSTATbits; + +extern sfr at 0xfc8 SSPADD; +extern sfr at 0xfc9 SSPBUF; +extern sfr at 0xfca T2CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T2CONbits_t; + +extern volatile __T2CONbits_t at 0xfca T2CONbits; + +extern sfr at 0xfcb PR2; +extern sfr at 0xfcc TMR2; +extern sfr at 0xfcd T1CON; +typedef union { + struct { + unsigned TMR1ON:1; + unsigned TMR1CS:1; + unsigned NOT_T1SYNC:1; + unsigned T1OSCEN:1; + unsigned T1CKPS0:1; + unsigned T1CKPS1:1; + unsigned :1; + unsigned RD16:1; + }; +} __T1CONbits_t; + +extern volatile __T1CONbits_t at 0xfcd T1CONbits; + +extern sfr at 0xfce TMR1L; +extern sfr at 0xfcf TMR1H; +extern sfr at 0xfd0 RCON; +typedef union { + struct { + unsigned BOR:1; + unsigned POR:1; + unsigned PD:1; + unsigned TO:1; + unsigned RI:1; + unsigned :1; + unsigned :1; + unsigned IPEN:1; + }; +} __RCONbits_t; + +extern volatile __RCONbits_t at 0xfd0 RCONbits; + +extern sfr at 0xfd1 WDTCON; +typedef union { + struct { + unsigned SWDTEN:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned SWDTE:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __WDTCONbits_t; + +extern volatile __WDTCONbits_t at 0xfd1 WDTCONbits; + +extern sfr at 0xfd2 LVDCON; +typedef union { + struct { + unsigned LVDL0:1; + unsigned LVDL1:1; + unsigned LVDL2:1; + unsigned LVDL3:1; + unsigned LVDEN:1; + unsigned VRST:1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned LVV0:1; + unsigned LVV1:1; + unsigned LVV2:1; + unsigned LVV3:1; + unsigned :1; + unsigned BGST:1; + unsigned :1; + unsigned :1; + }; +} __LVDCONbits_t; + +extern volatile __LVDCONbits_t at 0xfd2 LVDCONbits; + +extern sfr at 0xfd3 OSCCON; +typedef union { + struct { + unsigned SCS:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __OSCCONbits_t; + +extern volatile __OSCCONbits_t at 0xfd3 OSCCONbits; + +extern sfr at 0xfd5 T0CON; +extern sfr at 0xfd6 TMR0L; +extern sfr at 0xfd7 TMR0H; +extern sfr at 0xfd8 STATUS; +typedef union { + struct { + unsigned C:1; + unsigned DC:1; + unsigned Z:1; + unsigned OV:1; + unsigned N:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __STATUSbits_t; + +extern volatile __STATUSbits_t at 0xfd8 STATUSbits; + +extern sfr at 0xfd9 FSR2L; +extern sfr at 0xfda FSR2H; +extern sfr at 0xfdb PLUSW2; +extern sfr at 0xfdc PREINC2; +extern sfr at 0xfdd POSTDEC2; +extern sfr at 0xfde POSTINC2; +extern sfr at 0xfdf INDF2; +extern sfr at 0xfe0 BSR; +extern sfr at 0xfe1 FSR1L; +extern sfr at 0xfe2 FSR1H; +extern sfr at 0xfe3 PLUSW1; +extern sfr at 0xfe4 PREINC1; +extern sfr at 0xfe5 POSTDEC1; +extern sfr at 0xfe6 POSTINC1; +extern sfr at 0xfe7 INDF1; +extern sfr at 0xfe8 WREG; +extern sfr at 0xfe9 FSR0L; +extern sfr at 0xfea FSR0H; +extern sfr at 0xfeb PLUSW0; +extern sfr at 0xfec PREINC0; +extern sfr at 0xfed POSTDEC0; +extern sfr at 0xfee POSTINC0; +extern sfr at 0xfef INDF0; +extern sfr at 0xff0 INTCON3; +typedef union { + struct { + unsigned INT1F:1; + unsigned INT2F:1; + unsigned INT3F:1; + unsigned INT1E:1; + unsigned INT2E:1; + unsigned INT3E:1; + unsigned INT1P:1; + unsigned INT2P:1; + }; + + struct { + unsigned INT1IF:1; + unsigned INT2IF:1; + unsigned INT3IF:1; + unsigned INT1IE:1; + unsigned INT2IE:1; + unsigned INT3IE:1; + unsigned INT1IP:1; + unsigned INT2IP:1; + }; +} __INTCON3bits_t; + +extern volatile __INTCON3bits_t at 0xff0 INTCON3bits; + +extern sfr at 0xff1 INTCON2; +typedef union { + struct { + unsigned RBIP:1; + unsigned INT3P:1; + unsigned T0IP:1; + unsigned INTEDG3:1; + unsigned INTEDG2:1; + unsigned INTEDG1:1; + unsigned INTEDG0:1; + unsigned RBPU:1; + }; +} __INTCON2bits_t; + +extern volatile __INTCON2bits_t at 0xff1 INTCON2bits; + +extern sfr at 0xff2 INTCON; +typedef union { + struct { + unsigned RBIF:1; + unsigned INT0F:1; + unsigned T0IF:1; + unsigned RBIE:1; + unsigned INT0E:1; + unsigned T0IE:1; + unsigned PEIE:1; + unsigned GIE:1; + }; +} __INTCONbits_t; + +extern volatile __INTCONbits_t at 0xff2 INTCONbits; + +extern sfr at 0xff3 PRODL; +extern sfr at 0xff4 PRODH; +extern sfr at 0xff5 TABLAT; +extern sfr at 0xff6 TBLPTRL; +extern sfr at 0xff7 TBLPTRH; +extern sfr at 0xff8 TBLPTRU; +extern sfr at 0xff9 PCL; +extern sfr at 0xffa PCLATH; +extern sfr at 0xffb PCLATU; +extern sfr at 0xffc STKPTR; +typedef union { + struct { + unsigned STKPTR0:1; + unsigned STKPTR1:1; + unsigned STKPTR2:1; + unsigned STKPTR3:1; + unsigned STKPTR4:1; + unsigned :1; + unsigned STKUNF:1; + unsigned STKFUL:1; + }; +} __STKPTRbits_t; + +extern volatile __STKPTRbits_t at 0xffc STKPTRbits; + +extern sfr at 0xffd TOSL; +extern sfr at 0xffe TOSH; +extern sfr at 0xfff TOSU; + + +/* Configuration registers locations */ +#define __CONFIG0H 0x300001 +#define __CONFIG1L 0x300002 +#define __CONFIG1H 0x300003 +#define __CONFIG2H 0x300005 +#define __CONFIG3L 0x300006 +#define __CONFIG4L 0x300008 +#define __CONFIG4H 0x300009 +#define __CONFIG5L 0x30000A +#define __CONFIG5H 0x30000B +#define __CONFIG6L 0x30000C +#define __CONFIG6H 0x30000D + + + +/* Oscillator 0H options */ +#define _OSC_RC_OSC2_0H 0xFF /* RC-OSC2 as RA6 */ +#define _OSC_HS_PLL_0H 0xFE /* HS-PLL Enabled */ +#define _OSC_EC_OSC2_RA6_0H 0xFD /* EC-OSC2 as RA6 */ +#define _OSC_EC_OSC2_Clock_Out_0H 0xFC /* EC-OSC2 as Clock_Out */ +#define _OSC_RC_0H 0xFB /* RC */ +#define _OSC_HS_0H 0xFA /* HS */ +#define _OSC_XT_0H 0xF9 /* XT */ +#define _OSC_LP_0H 0xF8 /* LP */ + +/* Osc. Switch Enable 0H options */ +#define _OSCS_OFF_0H 0xFF /* Disabled */ +#define _OSCS_ON_0H 0xDF /* Enabled */ + +/* Power Up Timer 1L options */ +#define _PUT_OFF_1L 0xFF /* Disabled */ +#define _PUT_ON_1L 0xFE /* Enabled */ + +/* Brown Out Detect 1L options */ +#define _BODEN_ON_1L 0xFF /* Enabled */ +#define _BODEN_OFF_1L 0xFD /* Disabled */ + +/* Brown Out Voltage 1L options */ +#define _BODENV_2_5V_1L 0xFF /* 2.5V */ +#define _BODENV_2_7V_1L 0xFB /* 2.7V */ +#define _BODENV_4_2V_1L 0xF7 /* 4.2V */ +#define _BODENV_4_5V_1L 0xF3 /* 4.5V */ + +/* Watchdog Timer 1H options */ +#define _WDT_ON_1H 0xFF /* Enabled */ +#define _WDT_OFF_1H 0xFE /* Disabled */ + +/* Watchdog Postscaler 1H options */ +#define _WDTPS_1_128_1H 0xFF /* 1:128 */ +#define _WDTPS_1_64_1H 0xFD /* 1:64 */ +#define _WDTPS_1_32_1H 0xFB /* 1:32 */ +#define _WDTPS_1_16_1H 0xF9 /* 1:16 */ +#define _WDTPS_1_8_1H 0xF7 /* 1:8 */ +#define _WDTPS_1_4_1H 0xF5 /* 1:4 */ +#define _WDTPS_1_2_1H 0xF3 /* 1:2 */ +#define _WDTPS_1_1_1H 0xF1 /* 1:1 */ + +/* CCP2 Mux 2H options */ +#define _CCP2MUX_RC1_2H 0xFF /* RC1 */ +#define _CCP2MUX_RE7_2H 0xFE /* RE7 */ + +/* Low Voltage Program 3L options */ +#define _LVP_ON_3L 0xFF /* Enabled */ +#define _LVP_OFF_3L 0xFB /* Disabled */ + +/* Background Debug 3L options */ +#define _BACKBUG_OFF_3L 0xFF /* Disabled */ +#define _BACKBUG_ON_3L 0x7F /* Enabled */ + +/* Stack Overflow Reset 3L options */ +#define _STVR_ON_3L 0xFF /* Enabled */ +#define _STVR_OFF_3L 0xFE /* Disabled */ + +/* Code Protect 00200-03FFF 4L options */ +#define _CP_0_OFF_4L 0xFF /* Disabled */ +#define _CP_0_ON_4L 0xFE /* Enabled */ + +/* Code Protect 04000-07FFF 4L options */ +#define _CP_1_OFF_4L 0xFF /* Disabled */ +#define _CP_1_ON_4L 0xFD /* Enabled */ + +/* Code Protect 08000-0BFFF 4L options */ +#define _CP_2_OFF_4L 0xFF /* Disabled */ +#define _CP_2_ON_4L 0xFB /* Enabled */ + +/* Code Protect 0C000-0FFFF 4L options */ +#define _CP_3_OFF_4L 0xFF /* Disabled */ +#define _CP_3_ON_4L 0xF7 /* Enabled */ + +/* Data EE Read Protect 4H options */ +#define _CPD_OFF_4H 0xFF /* Disabled */ +#define _CPD_ON_4H 0x7F /* Enabled */ + +/* Code Protect Boot 4H options */ +#define _CPB_OFF_4H 0xFF /* Disabled */ +#define _CPB_ON_4H 0xBF /* Enabled */ + +/* Table Write Protect 00200-03FFF 5L options */ +#define _WRT_0_OFF_5L 0xFF /* Disabled */ +#define _WRT_0_ON_5L 0xFE /* Enabled */ + +/* Table Write Protect 04000-07FFF 5L options */ +#define _WRT_1_OFF_5L 0xFF /* Disabled */ +#define _WRT_1_ON_5L 0xFD /* Enabled */ + +/* Table Write Protect 08000-0BFFF 5L options */ +#define _WRT_2_OFF_5L 0xFF /* Disabled */ +#define _WRT_2_ON_5L 0xFB /* Enabled */ + +/* Table Write Protect 0C000-0FFFF 5L options */ +#define _WRT_3_OFF_5L 0xFF /* Disabled */ +#define _WRT_3_ON_5L 0xF7 /* Enabled */ + +/* Data EE Write Protect 5H options */ +#define _WRTD_OFF_5H 0xFF /* Disabled */ +#define _WRTD_ON_5H 0x7F /* Enabled */ + +/* Table Write Protect Boot 5H options */ +#define _WRTB_OFF_5H 0xFF /* Disabled */ +#define _WRTB_ON_5H 0xBF /* Enabled */ + +/* Config. Write Protect 5H options */ +#define _WRTC_OFF_5H 0xFF /* Disabled */ +#define _WRTC_ON_5H 0xDF /* Enabled */ + +/* Table Read Protect 00200-03FFF 6L options */ +#define _EBTR_0_OFF_6L 0xFF /* Disabled */ +#define _EBTR_0_ON_6L 0xFE /* Enabled */ + +/* Table Read Protect 04000-07FFF 6L options */ +#define _EBTR_1_OFF_6L 0xFF /* Disabled */ +#define _EBTR_1_ON_6L 0xFD /* Enabled */ + +/* Table Read Protect 08000-0BFFF 6L options */ +#define _EBTR_2_OFF_6L 0xFF /* Disabled */ +#define _EBTR_2_ON_6L 0xFB /* Enabled */ + +/* Table Read Protect 0C000-0FFFF 6L options */ +#define _EBTR_3_OFF_6L 0xFF /* Disabled */ +#define _EBTR_3_ON_6L 0xF7 /* Enabled */ + +/* Table Read Protect Boot 6H options */ +#define _EBTRB_OFF_6H 0xFF /* Disabled */ +#define _EBTRB_ON_6H 0xBF /* Enabled */ + + +#endif diff --git a/device/include/pic16/pic18f6680.h b/device/include/pic16/pic18f6680.h new file mode 100644 index 00000000..6ab0524f --- /dev/null +++ b/device/include/pic16/pic18f6680.h @@ -0,0 +1,1870 @@ + +/* + * pic18f6680.h - PIC18F6680 Device Library Header + * + * This file is part of the GNU PIC Library. + * + * January, 2004 + * The GNU PIC Library is maintained by, + * Vangelis Rokas + * + * $Id$ + * + */ + +#ifndef __PIC18F6680_H__ +#define __PIC18F6680_H__ + +extern sfr at 0xf00 RXF0SIDH; +extern sfr at 0xf01 RXF0SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXIDE:1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXF0SIDLbits_t; + +extern volatile __RXF0SIDLbits_t at 0xf01 RXF0SIDLbits; + +extern sfr at 0xf02 RXF0EIDH; +extern sfr at 0xf03 RXF0EIDL; +extern sfr at 0xf04 RXF1SIDH; +extern sfr at 0xf05 RXF1SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXIDE:1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXF1SIDLbits_t; + +extern volatile __RXF1SIDLbits_t at 0xf05 RXF1SIDLbits; + +extern sfr at 0xf06 RXF1EIDH; +extern sfr at 0xf07 RXF1EIDL; +extern sfr at 0xf08 RXF2SIDH; +extern sfr at 0xf09 RXF2SIDL; +extern sfr at 0xf0a RXF2EIDH; +extern sfr at 0xf0b RXF2EIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXIDE:1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXF2EIDLbits_t; + +extern volatile __RXF2EIDLbits_t at 0xf0b RXF2EIDLbits; + +extern sfr at 0xf0c RXF3SIDH; +extern sfr at 0xf0d RXF3SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXIDE:1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXF3SIDLbits_t; + +extern volatile __RXF3SIDLbits_t at 0xf0d RXF3SIDLbits; + +extern sfr at 0xf0e RXF3EIDH; +extern sfr at 0xf0f RXF3EIDL; +extern sfr at 0xf10 RXF4SIDH; +extern sfr at 0xf11 RXF4SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXIDE:1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXF4SIDLbits_t; + +extern volatile __RXF4SIDLbits_t at 0xf11 RXF4SIDLbits; + +extern sfr at 0xf12 RXF4EIDH; +extern sfr at 0xf13 RXF4EIDL; +extern sfr at 0xf14 RXF5SIDH; +extern sfr at 0xf15 RXF5SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXIDE:1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXF5SIDLbits_t; + +extern volatile __RXF5SIDLbits_t at 0xf15 RXF5SIDLbits; + +extern sfr at 0xf16 RXF5EIDH; +extern sfr at 0xf17 RXF5EIDL; +extern sfr at 0xf18 RXM0SIDH; +extern sfr at 0xf19 RXM0SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXM0SIDLbits_t; + +extern volatile __RXM0SIDLbits_t at 0xf19 RXM0SIDLbits; + +extern sfr at 0xf1a RXM0EIDH; +extern sfr at 0xf1b RXM0EIDL; +extern sfr at 0xf1c RXM1SIDH; +extern sfr at 0xf1d RXM1SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXM1SIDLbits_t; + +extern volatile __RXM1SIDLbits_t at 0xf1d RXM1SIDLbits; + +extern sfr at 0xf1e RXM1EIDH; +extern sfr at 0xf1f RXM1EIDL; +extern sfr at 0xf20 TXB2CON; +typedef union { + struct { + unsigned TXPRI0:1; + unsigned TXPRI1:1; + unsigned :1; + unsigned TXREQ:1; + unsigned TXERR:1; + unsigned TXLARB:1; + unsigned TXABT:1; + unsigned :1; + }; +} __TXB2CONbits_t; + +extern volatile __TXB2CONbits_t at 0xf20 TXB2CONbits; + +extern sfr at 0xf21 TXB2SIDH; +extern sfr at 0xf22 TXB2SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXID:1; + unsigned SRR:1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __TXB2SIDLbits_t; + +extern volatile __TXB2SIDLbits_t at 0xf22 TXB2SIDLbits; + +extern sfr at 0xf23 TXB2EIDH; +extern sfr at 0xf24 TXB2EIDL; +extern sfr at 0xf25 TXB2DLC; +typedef union { + struct { + unsigned DLC0:1; + unsigned DLC1:1; + unsigned DLC2:1; + unsigned DLC3:1; + unsigned :1; + unsigned :1; + unsigned RTR:1; + unsigned :1; + }; +} __TXB2DLCbits_t; + +extern volatile __TXB2DLCbits_t at 0xf25 TXB2DLCbits; + +extern sfr at 0xf26 TXB2D0; +extern sfr at 0xf27 TXB2D1; +extern sfr at 0xf28 TXB2D2; +extern sfr at 0xf29 TXB2D3; +extern sfr at 0xf2a TXB2D4; +extern sfr at 0xf2b TXB2D5; +extern sfr at 0xf2c TXB2D6; +extern sfr at 0xf2d TXB2D7; +extern sfr at 0xf2e CANSTATRO3; +extern sfr at 0xf30 TXB1CON; +typedef union { + struct { + unsigned TXPRI0:1; + unsigned TXPRI1:1; + unsigned :1; + unsigned TXREQ:1; + unsigned TXERR:1; + unsigned TXLARB:1; + unsigned TXABT:1; + unsigned :1; + }; +} __TXB1CONbits_t; + +extern volatile __TXB1CONbits_t at 0xf30 TXB1CONbits; + +extern sfr at 0xf31 TXB1SIDH; +extern sfr at 0xf32 TXB1SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXID:1; + unsigned SRR:1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __TXB1SIDLbits_t; + +extern volatile __TXB1SIDLbits_t at 0xf32 TXB1SIDLbits; + +extern sfr at 0xf33 TXB1EIDH; +extern sfr at 0xf34 TXB1EIDL; +extern sfr at 0xf35 TXB1DLC; +typedef union { + struct { + unsigned DLC0:1; + unsigned DLC1:1; + unsigned DLC2:1; + unsigned DLC3:1; + unsigned :1; + unsigned :1; + unsigned RTR:1; + unsigned :1; + }; +} __TXB1DLCbits_t; + +extern volatile __TXB1DLCbits_t at 0xf35 TXB1DLCbits; + +extern sfr at 0xf36 TXB1D0; +extern sfr at 0xf37 TXB1D1; +extern sfr at 0xf38 TXB1D2; +extern sfr at 0xf39 TXB1D3; +extern sfr at 0xf3a TXB1D4; +extern sfr at 0xf3b TXB1D5; +extern sfr at 0xf3c TXB1D6; +extern sfr at 0xf3d TXB1D7; +extern sfr at 0xf3e CANSTATRO2; +extern sfr at 0xf40 TXB0CON; +typedef union { + struct { + unsigned TXPRI0:1; + unsigned TXPRI1:1; + unsigned :1; + unsigned TXREQ:1; + unsigned TXERR:1; + unsigned TXLARB:1; + unsigned TXABT:1; + unsigned :1; + }; +} __TXB0CONbits_t; + +extern volatile __TXB0CONbits_t at 0xf40 TXB0CONbits; + +extern sfr at 0xf41 TXB0SIDH; +extern sfr at 0xf42 TXB0SIDL; +extern sfr at 0xf43 TXB0EIDH; +extern sfr at 0xf44 TXB0EIDL; +extern sfr at 0xf45 TXB0DLC; +typedef union { + struct { + unsigned DLC0:1; + unsigned DLC1:1; + unsigned DLC2:1; + unsigned DLC3:1; + unsigned :1; + unsigned :1; + unsigned RTR:1; + unsigned :1; + }; +} __TXB0DLCbits_t; + +extern volatile __TXB0DLCbits_t at 0xf45 TXB0DLCbits; + +extern sfr at 0xf46 TXB0D0; +extern sfr at 0xf47 TXB0D1; +extern sfr at 0xf48 TXB0D2; +extern sfr at 0xf49 TXB0D3; +extern sfr at 0xf4a TXB0D4; +extern sfr at 0xf4b TXB0D5; +extern sfr at 0xf4c TXB0D6; +extern sfr at 0xf4d TXB0D7; +extern sfr at 0xf4e CANSTATRO1; +extern sfr at 0xf50 RXB1CON; +typedef union { + struct { + unsigned :1; + unsigned FILHIT1:1; + unsigned FILHIT2:1; + unsigned RXRTRRO:1; + unsigned :1; + unsigned RXM0:1; + unsigned RXM1:1; + unsigned RXFUL:1; + }; +} __RXB1CONbits_t; + +extern volatile __RXB1CONbits_t at 0xf50 RXB1CONbits; + +extern sfr at 0xf51 RXB1SIDH; +extern sfr at 0xf52 RXB1SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXID:1; + unsigned SRR:1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXB1SIDLbits_t; + +extern volatile __RXB1SIDLbits_t at 0xf52 RXB1SIDLbits; + +extern sfr at 0xf53 RXB1EIDH; +extern sfr at 0xf54 RXB1EIDL; +extern sfr at 0xf55 RXB1DLC; +typedef union { + struct { + unsigned DLC0:1; + unsigned DLC1:1; + unsigned DLC2:1; + unsigned DLC3:1; + unsigned RESB0:1; + unsigned RESB1:1; + unsigned RTR:1; + unsigned :1; + }; +} __RXB1DLCbits_t; + +extern volatile __RXB1DLCbits_t at 0xf55 RXB1DLCbits; + +extern sfr at 0xf56 RXB1D0; +extern sfr at 0xf57 RXB1D1; +extern sfr at 0xf58 RXB1D2; +extern sfr at 0xf59 RXB1D3; +extern sfr at 0xf5a RXB1D4; +extern sfr at 0xf5b RXB1D5; +extern sfr at 0xf5c RXB1D6; +extern sfr at 0xf5d RXB1D7; +extern sfr at 0xf5e CANSTATRO0; +extern sfr at 0xf60 RXB0CON; +typedef union { + struct { + unsigned FILHIT0:1; + unsigned JTOFF:1; + unsigned RX0DBEN:1; + unsigned RXRTRRO:1; + unsigned :1; + unsigned RXM0:1; + unsigned RXM1:1; + unsigned RXFUL:1; + }; +} __RXB0CONbits_t; + +extern volatile __RXB0CONbits_t at 0xf60 RXB0CONbits; + +extern sfr at 0xf61 RXB0SIDH; +extern sfr at 0xf62 RXB0SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXID:1; + unsigned SRR:1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXB0SIDLbits_t; + +extern volatile __RXB0SIDLbits_t at 0xf62 RXB0SIDLbits; + +extern sfr at 0xf63 RXB0EIDH; +extern sfr at 0xf64 RXB0EIDL; +extern sfr at 0xf65 RXB0DLC; +extern sfr at 0xf66 RXB0D0; +extern sfr at 0xf67 RXB0D1; +extern sfr at 0xf68 RXB0D2; +extern sfr at 0xf69 RXB0D3; +extern sfr at 0xf6a RXB0D4; +extern sfr at 0xf6b RXB0D5; +extern sfr at 0xf6c RXB0D6; +extern sfr at 0xf6d RXB0D7; +extern sfr at 0xf6e CANSTAT; +typedef union { + struct { + unsigned :1; + unsigned ICODE0:1; + unsigned ICODE1:1; + unsigned ICODE2:1; + unsigned :1; + unsigned OPMODE0:1; + unsigned OPMODE1:1; + unsigned OPMODE2:1; + }; +} __CANSTATbits_t; + +extern volatile __CANSTATbits_t at 0xf6e CANSTATbits; + +extern sfr at 0xf6f CANCON; +typedef union { + struct { + unsigned :1; + unsigned WIN0:1; + unsigned WIN1:1; + unsigned WIN2:1; + unsigned ABAT:1; + unsigned REQOP0:1; + unsigned REQOP1:1; + unsigned REQOP2:1; + }; +} __CANCONbits_t; + +extern volatile __CANCONbits_t at 0xf6f CANCONbits; + +extern sfr at 0xf70 BRGCON1; +typedef union { + struct { + unsigned BRP0:1; + unsigned BRP1:1; + unsigned BRP2:1; + unsigned BRP3:1; + unsigned BRP4:1; + unsigned BRP5:1; + unsigned SJW0:1; + unsigned SJW1:1; + }; +} __BRGCON1bits_t; + +extern volatile __BRGCON1bits_t at 0xf70 BRGCON1bits; + +extern sfr at 0xf71 BRGCON2; +typedef union { + struct { + unsigned PRSEG0:1; + unsigned PRSEG1:1; + unsigned PRSEG2:1; + unsigned SEG1PH0:1; + unsigned SEG1PH1:1; + unsigned SEG1PH2:1; + unsigned SAM:1; + unsigned SEG2PHTS:1; + }; +} __BRGCON2bits_t; + +extern volatile __BRGCON2bits_t at 0xf71 BRGCON2bits; + +extern sfr at 0xf72 BRGCON3; +typedef union { + struct { + unsigned SEG2PH0:1; + unsigned SEG2PH1:1; + unsigned SEG2PH2:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned WAKFIL:1; + unsigned :1; + }; +} __BRGCON3bits_t; + +extern volatile __BRGCON3bits_t at 0xf72 BRGCON3bits; + +extern sfr at 0xf73 CIOCON; +typedef union { + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned CANCAP:1; + unsigned ENDRHI:1; + unsigned TX1EN:1; + unsigned TX1SRC:1; + }; +} __CIOCONbits_t; + +extern volatile __CIOCONbits_t at 0xf73 CIOCONbits; + +extern sfr at 0xf74 COMSTAT; +typedef union { + struct { + unsigned EWARN:1; + unsigned RXWARN:1; + unsigned TXWARN:1; + unsigned RXBP:1; + unsigned TXBP:1; + unsigned TXBO:1; + unsigned RX1OVFL:1; + unsigned RX0OVFL:1; + }; +} __COMSTATbits_t; + +extern volatile __COMSTATbits_t at 0xf74 COMSTATbits; + +extern sfr at 0xf75 RXERRCNT; +typedef union { + struct { + unsigned REC0:1; + unsigned REC1:1; + unsigned REC2:1; + unsigned REC3:1; + unsigned REC4:1; + unsigned REC5:1; + unsigned REC6:1; + unsigned REC7:1; + }; +} __RXERRCNTbits_t; + +extern volatile __RXERRCNTbits_t at 0xf75 RXERRCNTbits; + +extern sfr at 0xf76 TXERRCNT; +typedef union { + struct { + unsigned TEC0:1; + unsigned TEC1:1; + unsigned TEC2:1; + unsigned TEC3:1; + unsigned TEC4:1; + unsigned TEC5:1; + unsigned TEC6:1; + unsigned TEC7:1; + }; +} __TXERRCNTbits_t; + +extern volatile __TXERRCNTbits_t at 0xf76 TXERRCNTbits; + +extern sfr at 0xf80 PORTA; +typedef union { + struct { + unsigned RA0:1; + unsigned RA1:1; + unsigned RA2:1; + unsigned RA3:1; + unsigned RA4:1; + unsigned RA5:1; + unsigned RA6:1; + unsigned :1; + }; + + struct { + unsigned AN0:1; + unsigned AN1:1; + unsigned AN2:1; + unsigned AN3:1; + unsigned :1; + unsigned AN4:1; + unsigned OSC2:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned VREFM:1; + unsigned VREFP:1; + unsigned T0CKI:1; + unsigned SS:1; + unsigned CLK0:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned LVDIN:1; + unsigned :1; + unsigned :1; + }; +} __PORTAbits_t; + +extern volatile __PORTAbits_t at 0xf80 PORTAbits; + +extern sfr at 0xf81 PORTB; +typedef union { + struct { + unsigned RB0:1; + unsigned RB1:1; + unsigned RB2:1; + unsigned RB3:1; + unsigned RB4:1; + unsigned RB5:1; + unsigned RB6:1; + unsigned RB7:1; + }; + + struct { + unsigned INT0:1; + unsigned INT1:1; + unsigned INT2:1; + unsigned INT3:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTBbits_t; + +extern volatile __PORTBbits_t at 0xf81 PORTBbits; + +extern sfr at 0xf82 PORTC; +typedef union { + struct { + unsigned RC0:1; + unsigned RC1:1; + unsigned RC2:1; + unsigned RC3:1; + unsigned RC4:1; + unsigned RC5:1; + unsigned RC6:1; + unsigned RC7:1; + }; + + struct { + unsigned T1OSO:1; + unsigned T1OSI:1; + unsigned :1; + unsigned SCK:1; + unsigned SDI:1; + unsigned SDO:1; + unsigned TX:1; + unsigned RX:1; + }; + + struct { + unsigned T1CKI:1; + unsigned CCP2:1; + unsigned CCP1:1; + unsigned SCL:1; + unsigned SDA:1; + unsigned :1; + unsigned CK:1; + unsigned DT:1; + }; +} __PORTCbits_t; + +extern volatile __PORTCbits_t at 0xf82 PORTCbits; + +extern sfr at 0xf83 PORTD; +typedef union { + struct { + unsigned RD0:1; + unsigned RD1:1; + unsigned RD2:1; + unsigned RD3:1; + unsigned RD4:1; + unsigned RD5:1; + unsigned RD6:1; + unsigned RD7:1; + }; + + struct { + unsigned AD0:1; + unsigned AD1:1; + unsigned AD2:1; + unsigned AD3:1; + unsigned AD4:1; + unsigned AD5:1; + unsigned AD6:1; + unsigned AD7:1; + }; +} __PORTDbits_t; + +extern volatile __PORTDbits_t at 0xf83 PORTDbits; + +extern sfr at 0xf84 PORTE; +typedef union { + struct { + unsigned RE0:1; + unsigned RE1:1; + unsigned RE2:1; + unsigned RE3:1; + unsigned RE4:1; + unsigned RE5:1; + unsigned RE6:1; + unsigned RE7:1; + }; + + struct { + unsigned ALE:1; + unsigned OE:1; + unsigned WRL:1; + unsigned WRH:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned CCP2:1; + }; + + struct { + unsigned AN5:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTEbits_t; + +extern volatile __PORTEbits_t at 0xf84 PORTEbits; + +extern sfr at 0xf85 PORTF; +typedef union { + struct { + unsigned RF0:1; + unsigned RF1:1; + unsigned RF2:1; + unsigned RF3:1; + unsigned RF4:1; + unsigned RF5:1; + unsigned RF6:1; + unsigned RF7:1; + }; +} __PORTFbits_t; + +extern volatile __PORTFbits_t at 0xf85 PORTFbits; + +extern sfr at 0xf86 PORTG; +typedef union { + struct { + unsigned RG0:1; + unsigned RG1:1; + unsigned RG2:1; + unsigned RG3:1; + unsigned RG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTGbits_t; + +extern volatile __PORTGbits_t at 0xf86 PORTGbits; + +extern sfr at 0xf89 LATA; +typedef union { + struct { + unsigned LATA0:1; + unsigned LATA1:1; + unsigned LATA2:1; + unsigned LATA3:1; + unsigned LATA4:1; + unsigned LATA5:1; + unsigned LATA6:1; + unsigned :1; + }; +} __LATAbits_t; + +extern volatile __LATAbits_t at 0xf89 LATAbits; + +extern sfr at 0xf8a LATB; +typedef union { + struct { + unsigned LATB0:1; + unsigned LATB1:1; + unsigned LATB2:1; + unsigned LATB3:1; + unsigned LATB4:1; + unsigned LATB5:1; + unsigned LATB6:1; + unsigned LATB7:1; + }; +} __LATBbits_t; + +extern volatile __LATBbits_t at 0xf8a LATBbits; + +extern sfr at 0xf8b LATC; +typedef union { + struct { + unsigned LATC0:1; + unsigned LATC1:1; + unsigned LATC2:1; + unsigned LATC3:1; + unsigned LATC4:1; + unsigned LATC5:1; + unsigned LATC6:1; + unsigned LATC7:1; + }; +} __LATCbits_t; + +extern volatile __LATCbits_t at 0xf8b LATCbits; + +extern sfr at 0xf8c LATD; +typedef union { + struct { + unsigned LATD0:1; + unsigned LATD1:1; + unsigned LATD2:1; + unsigned LATD3:1; + unsigned LATD4:1; + unsigned LATD5:1; + unsigned LATD6:1; + unsigned LATD7:1; + }; +} __LATDbits_t; + +extern volatile __LATDbits_t at 0xf8c LATDbits; + +extern sfr at 0xf8d LATE; +typedef union { + struct { + unsigned LATE0:1; + unsigned LATE1:1; + unsigned LATE2:1; + unsigned LATE3:1; + unsigned LATE4:1; + unsigned LATE5:1; + unsigned LATE6:1; + unsigned LATE7:1; + }; +} __LATEbits_t; + +extern volatile __LATEbits_t at 0xf8d LATEbits; + +extern sfr at 0xf8e LATF; +typedef union { + struct { + unsigned LATF0:1; + unsigned LATF1:1; + unsigned LATF2:1; + unsigned LATF3:1; + unsigned LATF4:1; + unsigned LATF5:1; + unsigned LATF6:1; + unsigned LATF7:1; + }; +} __LATFbits_t; + +extern volatile __LATFbits_t at 0xf8e LATFbits; + +extern sfr at 0xf8f LATG; +typedef union { + struct { + unsigned LATG0:1; + unsigned LATG1:1; + unsigned LATG2:1; + unsigned LATG3:1; + unsigned LATG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __LATGbits_t; + +extern volatile __LATGbits_t at 0xf8f LATGbits; + +extern sfr at 0xf92 TRISA; +typedef union { + struct { + unsigned TRISA0:1; + unsigned TRISA1:1; + unsigned TRISA2:1; + unsigned TRISA3:1; + unsigned TRISA4:1; + unsigned TRISA5:1; + unsigned TRISA6:1; + unsigned :1; + }; +} __TRISAbits_t; + +extern volatile __TRISAbits_t at 0xf92 TRISAbits; + +extern sfr at 0xf93 TRISB; +typedef union { + struct { + unsigned TRISB0:1; + unsigned TRISB1:1; + unsigned TRISB2:1; + unsigned TRISB3:1; + unsigned TRISB4:1; + unsigned TRISB5:1; + unsigned TRISB6:1; + unsigned TRISB7:1; + }; +} __TRISBbits_t; + +extern volatile __TRISBbits_t at 0xf93 TRISBbits; + +extern sfr at 0xf94 TRISC; +typedef union { + struct { + unsigned TRISC0:1; + unsigned TRISC1:1; + unsigned TRISC2:1; + unsigned TRISC3:1; + unsigned TRISC4:1; + unsigned TRISC5:1; + unsigned TRISC6:1; + unsigned TRISC7:1; + }; +} __TRISCbits_t; + +extern volatile __TRISCbits_t at 0xf94 TRISCbits; + +extern sfr at 0xf95 TRISD; +typedef union { + struct { + unsigned TRISD0:1; + unsigned TRISD1:1; + unsigned TRISD2:1; + unsigned TRISD3:1; + unsigned TRISD4:1; + unsigned TRISD5:1; + unsigned TRISD6:1; + unsigned TRISD7:1; + }; +} __TRISDbits_t; + +extern volatile __TRISDbits_t at 0xf95 TRISDbits; + +extern sfr at 0xf96 TRISE; +typedef union { + struct { + unsigned TRISE0:1; + unsigned TRISE1:1; + unsigned TRISE2:1; + unsigned TRISE3:1; + unsigned TRISE4:1; + unsigned TRISE5:1; + unsigned TRISE6:1; + unsigned TRISE7:1; + }; +} __TRISEbits_t; + +extern volatile __TRISEbits_t at 0xf96 TRISEbits; + +extern sfr at 0xf97 TRISF; +typedef union { + struct { + unsigned TRISF0:1; + unsigned TRISF1:1; + unsigned TRISF2:1; + unsigned TRISF3:1; + unsigned TRISF4:1; + unsigned TRISF5:1; + unsigned TRISF6:1; + unsigned TRISF7:1; + }; +} __TRISFbits_t; + +extern volatile __TRISFbits_t at 0xf97 TRISFbits; + +extern sfr at 0xf98 TRISG; +typedef union { + struct { + unsigned TRISG0:1; + unsigned TRISG1:1; + unsigned TRISG2:1; + unsigned TRISG3:1; + unsigned TRISG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __TRISGbits_t; + +extern volatile __TRISGbits_t at 0xf98 TRISGbits; + +extern sfr at 0xf9d PIE1; +typedef union { + struct { + unsigned TMR1IE:1; + unsigned TMR2IE:1; + unsigned CCP1IE:1; + unsigned SSPIE:1; + unsigned TXIE:1; + unsigned RCIE:1; + unsigned ADIE:1; + unsigned PSPIE:1; + }; +} __PIE1bits_t; + +extern volatile __PIE1bits_t at 0xf9d PIE1bits; + +extern sfr at 0xf9e PIR1; +typedef union { + struct { + unsigned TMR1IF:1; + unsigned TMR2IF:1; + unsigned CCP1IF:1; + unsigned SSPIF:1; + unsigned TXIF:1; + unsigned RCIF:1; + unsigned ADIF:1; + unsigned PSPIF:1; + }; +} __PIR1bits_t; + +extern volatile __PIR1bits_t at 0xf9e PIR1bits; + +extern sfr at 0xf9f IPR1; +typedef union { + struct { + unsigned TMR1IP:1; + unsigned TMR2IP:1; + unsigned CCP1IP:1; + unsigned SSPIP:1; + unsigned TXIP:1; + unsigned RCIP:1; + unsigned ADIP:1; + unsigned PSPIP:1; + }; +} __IPR1bits_t; + +extern volatile __IPR1bits_t at 0xf9f IPR1bits; + +extern sfr at 0xfa0 PIE2; +typedef union { + struct { + unsigned CCP2IE:1; + unsigned TMR3IE:1; + unsigned LVDIE:1; + unsigned BCLIE:1; + unsigned EEIE:1; + unsigned :1; + unsigned CMIE:1; + unsigned :1; + }; +} __PIE2bits_t; + +extern volatile __PIE2bits_t at 0xfa0 PIE2bits; + +extern sfr at 0xfa1 PIR2; +typedef union { + struct { + unsigned CCP2IF:1; + unsigned TMR3IF:1; + unsigned LVDIF:1; + unsigned BCLIF:1; + unsigned EEIF:1; + unsigned :1; + unsigned CMIF:1; + unsigned :1; + }; +} __PIR2bits_t; + +extern volatile __PIR2bits_t at 0xfa1 PIR2bits; + +extern sfr at 0xfa2 IPR2; +typedef union { + struct { + unsigned CCP2IP:1; + unsigned TMR3IP:1; + unsigned LVDIP:1; + unsigned BCLIP:1; + unsigned EEIP:1; + unsigned :1; + unsigned CMIP:1; + unsigned :1; + }; +} __IPR2bits_t; + +extern volatile __IPR2bits_t at 0xfa2 IPR2bits; + +extern sfr at 0xfa3 PIE3; +typedef union { + struct { + unsigned RX0IE:1; + unsigned RX1IE:1; + unsigned TX0IE:1; + unsigned TX1IE:1; + unsigned TX2IE:1; + unsigned ERRIE:1; + unsigned WAKIE:1; + unsigned IVRE:1; + }; +} __PIE3bits_t; + +extern volatile __PIE3bits_t at 0xfa3 PIE3bits; + +extern sfr at 0xfa4 PIR3; +typedef union { + struct { + unsigned RX0IF:1; + unsigned RX1IF:1; + unsigned TX0IF:1; + unsigned TX1IF:1; + unsigned TX2IF:1; + unsigned ERRIF:1; + unsigned WAKIF:1; + unsigned IVRF:1; + }; +} __PIR3bits_t; + +extern volatile __PIR3bits_t at 0xfa4 PIR3bits; + +extern sfr at 0xfa5 IPR3; +typedef union { + struct { + unsigned RX0IP:1; + unsigned RX1IP:1; + unsigned TX0IP:1; + unsigned TX1IP:1; + unsigned TX2IP:1; + unsigned ERRIP:1; + unsigned WAKIP:1; + unsigned IVRP:1; + }; +} __IPR3bits_t; + +extern volatile __IPR3bits_t at 0xfa5 IPR3bits; + +extern sfr at 0xfa6 EECON1; +typedef union { + struct { + unsigned RD:1; + unsigned WR:1; + unsigned WREN:1; + unsigned WRERR:1; + unsigned FREE:1; + unsigned :1; + unsigned CFGS:1; + unsigned EEPGD:1; + }; +} __EECON1bits_t; + +extern volatile __EECON1bits_t at 0xfa6 EECON1bits; + +extern sfr at 0xfa7 EECON2; +extern sfr at 0xfa8 EEDATA; +extern sfr at 0xfa9 EEADR; +extern sfr at 0xfaa EEADRH; +extern sfr at 0xfab RCSTA; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTAbits_t; + +extern volatile __RCSTAbits_t at 0xfab RCSTAbits; + +extern sfr at 0xfac TXSTA; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTAbits_t; + +extern volatile __TXSTAbits_t at 0xfac TXSTAbits; + +extern sfr at 0xfad TXREG; +extern sfr at 0xfae RCREG; +extern sfr at 0xfaf SPBRG; +extern sfr at 0xfb0 PSPCON; +typedef union { + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned PSPMODE:1; + unsigned IBOV:1; + unsigned OBF:1; + unsigned IBF:1; + }; +} __PSPCONbits_t; + +extern volatile __PSPCONbits_t at 0xfb0 PSPCONbits; + +extern sfr at 0xfb1 T3CON; +typedef union { + struct { + unsigned TMR3ON:1; + unsigned TMR3CS:1; + unsigned T3SYNC:1; + unsigned T3CCP1:1; + unsigned T3CKPS0:1; + unsigned T3CKPS1:1; + unsigned T3CCP2:1; + unsigned RD16:1; + }; +} __T3CONbits_t; + +extern volatile __T3CONbits_t at 0xfb1 T3CONbits; + +extern sfr at 0xfb2 TMR3L; +extern sfr at 0xfb3 TMR3H; +extern sfr at 0xfb4 CMCON; +typedef union { + struct { + unsigned CM0:1; + unsigned CM1:1; + unsigned CM2:1; + unsigned CIS:1; + unsigned C1INV:1; + unsigned C2INV:1; + unsigned C1OUT:1; + unsigned C2OUT:1; + }; +} __CMCONbits_t; + +extern volatile __CMCONbits_t at 0xfb4 CMCONbits; + +extern sfr at 0xfb5 CVRCON; +typedef union { + struct { + unsigned CVR0:1; + unsigned CVR1:1; + unsigned CVR2:1; + unsigned CVR3:1; + unsigned CVREF:1; + unsigned CVRR:1; + unsigned CVROE:1; + unsigned CVREN:1; + }; +} __CVRCONbits_t; + +extern volatile __CVRCONbits_t at 0xfb5 CVRCONbits; + +extern sfr at 0xfb6 ECCPAS; +typedef union { + struct { + unsigned PSSBD0:1; + unsigned PSSBD1:1; + unsigned PSSAC0:1; + unsigned PSSAC1:1; + unsigned ECCPAS0:1; + unsigned ECCPAS1:1; + unsigned ECCPAS2:1; + unsigned ECCPASE:1; + }; +} __ECCPASbits_t; + +extern volatile __ECCPASbits_t at 0xfb6 ECCPASbits; + +extern sfr at 0xfb7 ECCP1DEL; +typedef union { + struct { + unsigned EPDC0:1; + unsigned EPDC1:1; + unsigned EPDC2:1; + unsigned EPDC3:1; + unsigned EPDC4:1; + unsigned EPDC5:1; + unsigned EPDC6:1; + unsigned EPDC7:1; + }; +} __ECCP1DELbits_t; + +extern volatile __ECCP1DELbits_t at 0xfb7 ECCP1DELbits; + +extern sfr at 0xfba ECCP1CON; +typedef union { + struct { + unsigned ECCP1M0:1; + unsigned ECCP1M1:1; + unsigned ECCP1M2:1; + unsigned ECCP1M3:1; + unsigned EDC1B0:1; + unsigned EDC1B1:1; + unsigned EPWM1M0:1; + unsigned EPWM1M1:1; + }; +} __ECCP1CONbits_t; + +extern volatile __ECCP1CONbits_t at 0xfba ECCP1CONbits; + +extern sfr at 0xfba CCP2CON; +typedef union { + struct { + unsigned CCP2M0:1; + unsigned CCP2M1:1; + unsigned CCP2M2:1; + unsigned CCP2M3:1; + unsigned DCCP2Y:1; + unsigned DCCP2X:1; + unsigned :1; + unsigned :1; + }; +} __CCP2CONbits_t; + +extern volatile __CCP2CONbits_t at 0xfba CCP2CONbits; + +extern sfr at 0xfbb ECCPR1L; +extern sfr at 0xfbb CCPR2L; +extern sfr at 0xfbc ECCPR1H; +extern sfr at 0xfbc CCPR2H; +extern sfr at 0xfc0 ADCON2; +typedef union { + struct { + unsigned ADCS0:1; + unsigned ADCS1:1; + unsigned ADCS2:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned ADFM:1; + }; +} __ADCON2bits_t; + +extern volatile __ADCON2bits_t at 0xfc0 ADCON2bits; + +extern sfr at 0xfc1 ADCON1; +typedef union { + struct { + unsigned PCFG0:1; + unsigned PCFG1:1; + unsigned PCFG2:1; + unsigned PCFG3:1; + unsigned VCFG0:1; + unsigned VCFG1:1; + unsigned :1; + unsigned :1; + }; +} __ADCON1bits_t; + +extern volatile __ADCON1bits_t at 0xfc1 ADCON1bits; + +extern sfr at 0xfc2 ADCON0; +typedef union { + struct { + unsigned ADON:1; + unsigned GO:1; + unsigned CHS0:1; + unsigned CHS1:1; + unsigned CHS2:1; + unsigned CHS3:1; + unsigned :1; + unsigned :1; + }; +} __ADCON0bits_t; + +extern volatile __ADCON0bits_t at 0xfc2 ADCON0bits; + +extern sfr at 0xfc3 ADRESL; +extern sfr at 0xfc4 ADRESH; +extern sfr at 0xfc5 SSPCON2; +typedef union { + struct { + unsigned SEN:1; + unsigned RSEN:1; + unsigned PEN:1; + unsigned RCEN:1; + unsigned ACKEN:1; + unsigned ACKDT:1; + unsigned ACKSTAT:1; + unsigned GCEN:1; + }; +} __SSPCON2bits_t; + +extern volatile __SSPCON2bits_t at 0xfc5 SSPCON2bits; + +extern sfr at 0xfc6 SSPCON1; +typedef union { + struct { + unsigned SSPM0:1; + unsigned SSPM1:1; + unsigned SSPM2:1; + unsigned SSPM3:1; + unsigned CKP:1; + unsigned SSPEN:1; + unsigned SSPOV:1; + unsigned WCOL:1; + }; +} __SSPCON1bits_t; + +extern volatile __SSPCON1bits_t at 0xfc6 SSPCON1bits; + +extern sfr at 0xfc7 SSPSTAT; +typedef union { + struct { + unsigned BF:1; + unsigned UA:1; + unsigned R_W:1; + unsigned S:1; + unsigned P:1; + unsigned D_A:1; + unsigned CKE:1; + unsigned SMP:1; + }; +} __SSPSTATbits_t; + +extern volatile __SSPSTATbits_t at 0xfc7 SSPSTATbits; + +extern sfr at 0xfc8 SSPADD; +extern sfr at 0xfc9 SSPBUF; +extern sfr at 0xfca T2CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T2CONbits_t; + +extern volatile __T2CONbits_t at 0xfca T2CONbits; + +extern sfr at 0xfcb PR2; +extern sfr at 0xfcc TMR2; +extern sfr at 0xfcd T1CON; +typedef union { + struct { + unsigned TMR1ON:1; + unsigned TMR1CS:1; + unsigned NOT_T1SYNC:1; + unsigned T1OSCEN:1; + unsigned T1CKPS0:1; + unsigned T1CKPS1:1; + unsigned :1; + unsigned RD16:1; + }; +} __T1CONbits_t; + +extern volatile __T1CONbits_t at 0xfcd T1CONbits; + +extern sfr at 0xfce TMR1L; +extern sfr at 0xfcf TMR1H; +extern sfr at 0xfd0 RCON; +typedef union { + struct { + unsigned BOR:1; + unsigned POR:1; + unsigned PD:1; + unsigned TO:1; + unsigned RI:1; + unsigned :1; + unsigned :1; + unsigned IPEN:1; + }; +} __RCONbits_t; + +extern volatile __RCONbits_t at 0xfd0 RCONbits; + +extern sfr at 0xfd1 WDTCON; +typedef union { + struct { + unsigned SWDTEN:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned SWDTE:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __WDTCONbits_t; + +extern volatile __WDTCONbits_t at 0xfd1 WDTCONbits; + +extern sfr at 0xfd2 LVDCON; +typedef union { + struct { + unsigned LVDL0:1; + unsigned LVDL1:1; + unsigned LVDL2:1; + unsigned LVDL3:1; + unsigned LVDEN:1; + unsigned VRST:1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned LVV0:1; + unsigned LVV1:1; + unsigned LVV2:1; + unsigned LVV3:1; + unsigned :1; + unsigned BGST:1; + unsigned :1; + unsigned :1; + }; +} __LVDCONbits_t; + +extern volatile __LVDCONbits_t at 0xfd2 LVDCONbits; + +extern sfr at 0xfd3 OSCCON; +typedef union { + struct { + unsigned SCS:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __OSCCONbits_t; + +extern volatile __OSCCONbits_t at 0xfd3 OSCCONbits; + +extern sfr at 0xfd5 T0CON; +extern sfr at 0xfd6 TMR0L; +extern sfr at 0xfd7 TMR0H; +extern sfr at 0xfd8 STATUS; +typedef union { + struct { + unsigned C:1; + unsigned DC:1; + unsigned Z:1; + unsigned OV:1; + unsigned N:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __STATUSbits_t; + +extern volatile __STATUSbits_t at 0xfd8 STATUSbits; + +extern sfr at 0xfd9 FSR2L; +extern sfr at 0xfda FSR2H; +extern sfr at 0xfdb PLUSW2; +extern sfr at 0xfdc PREINC2; +extern sfr at 0xfdd POSTDEC2; +extern sfr at 0xfde POSTINC2; +extern sfr at 0xfdf INDF2; +extern sfr at 0xfe0 BSR; +extern sfr at 0xfe1 FSR1L; +extern sfr at 0xfe2 FSR1H; +extern sfr at 0xfe3 PLUSW1; +extern sfr at 0xfe4 PREINC1; +extern sfr at 0xfe5 POSTDEC1; +extern sfr at 0xfe6 POSTINC1; +extern sfr at 0xfe7 INDF1; +extern sfr at 0xfe8 WREG; +extern sfr at 0xfe9 FSR0L; +extern sfr at 0xfea FSR0H; +extern sfr at 0xfeb PLUSW0; +extern sfr at 0xfec PREINC0; +extern sfr at 0xfed POSTDEC0; +extern sfr at 0xfee POSTINC0; +extern sfr at 0xfef INDF0; +extern sfr at 0xff0 INTCON3; +typedef union { + struct { + unsigned INT1F:1; + unsigned INT2F:1; + unsigned INT3F:1; + unsigned INT1E:1; + unsigned INT2E:1; + unsigned INT3E:1; + unsigned INT1P:1; + unsigned INT2P:1; + }; + + struct { + unsigned INT1IF:1; + unsigned INT2IF:1; + unsigned INT3IF:1; + unsigned INT1IE:1; + unsigned INT2IE:1; + unsigned INT3IE:1; + unsigned INT1IP:1; + unsigned INT2IP:1; + }; +} __INTCON3bits_t; + +extern volatile __INTCON3bits_t at 0xff0 INTCON3bits; + +extern sfr at 0xff1 INTCON2; +typedef union { + struct { + unsigned RBIP:1; + unsigned INT3P:1; + unsigned T0IP:1; + unsigned INTEDG3:1; + unsigned INTEDG2:1; + unsigned INTEDG1:1; + unsigned INTEDG0:1; + unsigned RBPU:1; + }; +} __INTCON2bits_t; + +extern volatile __INTCON2bits_t at 0xff1 INTCON2bits; + +extern sfr at 0xff2 INTCON; +typedef union { + struct { + unsigned RBIF:1; + unsigned INT0F:1; + unsigned T0IF:1; + unsigned RBIE:1; + unsigned INT0E:1; + unsigned T0IE:1; + unsigned PEIE:1; + unsigned GIE:1; + }; +} __INTCONbits_t; + +extern volatile __INTCONbits_t at 0xff2 INTCONbits; + +extern sfr at 0xff3 PRODL; +extern sfr at 0xff4 PRODH; +extern sfr at 0xff5 TABLAT; +extern sfr at 0xff6 TBLPTRL; +extern sfr at 0xff7 TBLPTRH; +extern sfr at 0xff8 TBLPTRU; +extern sfr at 0xff9 PCL; +extern sfr at 0xffa PCLATH; +extern sfr at 0xffb PCLATU; +extern sfr at 0xffc STKPTR; +typedef union { + struct { + unsigned STKPTR0:1; + unsigned STKPTR1:1; + unsigned STKPTR2:1; + unsigned STKPTR3:1; + unsigned STKPTR4:1; + unsigned :1; + unsigned STKUNF:1; + unsigned STKFUL:1; + }; +} __STKPTRbits_t; + +extern volatile __STKPTRbits_t at 0xffc STKPTRbits; + +extern sfr at 0xffd TOSL; +extern sfr at 0xffe TOSH; +extern sfr at 0xfff TOSU; + + +/* Configuration registers locations */ +#define __CONFIG0H 0x300001 +#define __CONFIG1L 0x300002 +#define __CONFIG1H 0x300003 +#define __CONFIG2H 0x300005 +#define __CONFIG3L 0x300006 +#define __CONFIG4L 0x300008 +#define __CONFIG4H 0x300009 +#define __CONFIG5L 0x30000A +#define __CONFIG5H 0x30000B +#define __CONFIG6L 0x30000C +#define __CONFIG6H 0x30000D + + + +/* Oscillator 0H options */ +#define _OSC_RC_CLKOUT_0H 0xFF /* RC-CLKOUT on RA6 */ +#define _OSC_HS_SOFTWARE_0H 0xFE /* HS-Software enabled PLL */ +#define _OSC_EC_CLKOUT_Software_nabld_PLL_0H 0xFD /* EC-CLKOUT on RA6,Software_enabled_PLL */ +#define _OSC_EC_CLKOUT_PLL_enabld_frq_4xFosc1_0H 0xFC /* EC-CLKOUT on RA6,PLL_enabled_freq_4xFosc1 */ +#define _OSC_EXT_Port_on_RA6_0H 0xF7 /* EXT RC-Port_on_RA6 */ +#define _OSC_HS_PLL_0H 0xF6 /* HS-PLL enabled freq=4xFosc1 */ +#define _OSC_EC_PORT_0H 0xF5 /* EC-Port on RA6 */ +#define _OSC_EC_CLKOUT__0H 0xF4 /* EC-CLKOUT on RA6 */ +#define _OSC_EXT_CLKOUT_on_RA6_0H 0xF3 /* EXT RC-CLKOUT_on_RA6 */ +#define _OSC_HS_0H 0xF2 /* HS */ +#define _OSC_XT_0H 0xF1 /* XT */ +#define _OSC_LP_0H 0xF0 /* LP */ + +/* Low Power System Clock Timer1 Enable 0H options */ +#define _OSCSEN_ON_0H 0xDF /* Enabled */ +#define _OSCSEN_OFF_0H 0xFF /* Disabled */ + +/* Power Up Timer 1L options */ +#define _PUT_OFF_1L 0xFF /* Disabled */ +#define _PUT_ON_1L 0xFE /* Enabled */ + +/* Brown Out Detect 1L options */ +#define _BODEN_ON_1L 0xFF /* Enabled */ +#define _BODEN_OFF_1L 0xFD /* Disabled */ + +/* Brown Out Voltage 1L options */ +#define _BODENV_2_0V_1L 0xFF /* 2.0V */ +#define _BODENV_2_7V_1L 0xFB /* 2.7V */ +#define _BODENV_4_2V_1L 0xF7 /* 4.2V */ +#define _BODENV_4_5V_1L 0xF3 /* 4.5V */ + +/* Watchdog Timer 1H options */ +#define _WDT_ON_1H 0xFF /* Enabled */ +#define _WDT_DISABLED_CONTROLLED_1H 0xFE /* Disabled-Controlled by SWDTEN bit */ + +/* Watchdog Postscaler 1H options */ +#define _WDTPS_1_32768_1H 0xFF /* 1:32768 */ +#define _WDTPS_1_16384_1H 0xFD /* 1:16384 */ +#define _WDTPS_1_8192_1H 0xFB /* 1:8192 */ +#define _WDTPS_1_4096_1H 0xF9 /* 1:4096 */ +#define _WDTPS_1_2048_1H 0xF7 /* 1:2048 */ +#define _WDTPS_1_1024_1H 0xF5 /* 1:1024 */ +#define _WDTPS_1_512_1H 0xF3 /* 1:512 */ +#define _WDTPS_1_256_1H 0xF1 /* 1:256 */ +#define _WDTPS_1_128_1H 0xEF /* 1:128 */ +#define _WDTPS_1_64_1H 0xED /* 1:64 */ +#define _WDTPS_1_32_1H 0xEB /* 1:32 */ +#define _WDTPS_1_16_1H 0xE9 /* 1:16 */ +#define _WDTPS_1_8_1H 0xE7 /* 1:8 */ +#define _WDTPS_1_4_1H 0xE5 /* 1:4 */ +#define _WDTPS_1_2_1H 0xE3 /* 1:2 */ +#define _WDTPS_1_1_1H 0xE1 /* 1:1 */ + +/* CCP2 Mux 2H options */ +#define _CCP2MUX_RC1_2H 0xFF /* RC1 */ +#define _CCP2MUX_RB3_2H 0xFE /* RB3 */ + +/* ECCP Mux 2H options */ +#define _ECCPMX_ECCP1_E6E3_2H 0xFF /* ECCP1 and ECCP6 are muxed onto RE6 through RE3 */ +#define _ECCPMX_ECCP1_H7H4_2H 0xFD /* ECCP1 and ECCP6 are muxed onto RH7 through RH4 */ + +/* MCLR enable 2H options */ +#define _MCLRE_MCLR_Enabled_RE3_Disabled_2H 0xFF /* MCLR Enabled_RE3_Disabled */ +#define _MCLRE_MCLR_Disabled_RE3_Enabled_2H 0x7F /* MCLR Disabled__RE3_Enabled */ + +/* Stack Overflow Reset 3L options */ +#define _STVR_ON_3L 0xFF /* Enabled */ +#define _STVR_OFF_3L 0xFE /* Disabled */ + +/* Low Voltage Program 3L options */ +#define _LVP_ON_3L 0xFF /* Enabled */ +#define _LVP_OFF_3L 0xFB /* Disabled */ + +/* Background Debug 3L options */ +#define _BACKBUG_OFF_3L 0xFF /* Disabled */ +#define _BACKBUG_ON_3L 0x7F /* Enabled */ + +/* Code Protect 000800-0003FFF 4L options */ +#define _CP_0_OFF_4L 0xFF /* Disabled */ +#define _CP_0_ON_4L 0xFE /* Enabled */ + +/* Code Protect 0004000-007FFF 4L options */ +#define _CP_1_OFF_4L 0xFF /* Disabled */ +#define _CP_1_ON_4L 0xFD /* Enabled */ + +/* Code Protect 008000-00BFFF 4L options */ +#define _CP_2_OFF_4L 0xFF /* Disabled */ +#define _CP_2_ON_4L 0xFB /* Enabled */ + +/* Code Protect 00C000F-00FFFF 4L options */ +#define _CP_3_OFF_4L 0xFF /* Disabled */ +#define _CP_3_ON_4L 0xF7 /* Enabled */ + +/* Data EE Read Protect 4H options */ +#define _CPD_OFF_4H 0xFF /* Disabled */ +#define _CPD_ON_4H 0x7F /* Enabled */ + +/* Code Protect Boot 4H options */ +#define _CPB_OFF_4H 0xFF /* Disabled */ +#define _CPB_ON_4H 0xBF /* Enabled */ + +/* Table Write Protect 00800-003FFF 5L options */ +#define _WRT_0_OFF_5L 0xFF /* Disabled */ +#define _WRT_0_ON_5L 0xFE /* Enabled */ + +/* Table Write Protect 004000-007FFF 5L options */ +#define _WRT_1_OFF_5L 0xFF /* Disabled */ +#define _WRT_1_ON_5L 0xFD /* Enabled */ + +/* Table Write Protect 08000-0BFFF 5L options */ +#define _WRT_2_OFF_5L 0xFF /* Disabled */ +#define _WRT_2_ON_5L 0xFB /* Enabled */ + +/* Table Write Protect 0C000-0FFFF 5L options */ +#define _WRT_3_OFF_5L 0xFF /* Disabled */ +#define _WRT_3_ON_5L 0xF7 /* Enabled */ + +/* Data EE Write Protect 5H options */ +#define _WRTD_OFF_5H 0xFF /* Disabled */ +#define _WRTD_ON_5H 0x7F /* Enabled */ + +/* Table Write Protect Boot 5H options */ +#define _WRTB_OFF_5H 0xFF /* Disabled */ +#define _WRTB_ON_5H 0xBF /* Enabled */ + +/* Config. Write Protect 5H options */ +#define _WRTC_OFF_5H 0xFF /* Disabled */ +#define _WRTC_ON_5H 0xDF /* Enabled */ + +/* Table Read Protect 00800-003FFF 6L options */ +#define _EBTR_0_OFF_6L 0xFF /* Disabled */ +#define _EBTR_0_ON_6L 0xFE /* Enabled */ + +/* Table Read Protect 004000-07FFF 6L options */ +#define _EBTR_1_OFF_6L 0xFF /* Disabled */ +#define _EBTR_1_ON_6L 0xFD /* Enabled */ + +/* Table Read Protect 08000-0BFFF 6L options */ +#define _EBTR_2_OFF_6L 0xFF /* Disabled */ +#define _EBTR_2_ON_6L 0xFB /* Enabled */ + +/* Table Read Protect 0C000-0FFFF 6L options */ +#define _EBTR_3_OFF_6L 0xFF /* Disabled */ +#define _EBTR_3_ON_6L 0xF7 /* Enabled */ + +/* Table Read Protect Boot 6H options */ +#define _EBTRB_OFF_6H 0xFF /* Disabled */ +#define _EBTRB_ON_6H 0xBF /* Enabled */ + + +#endif diff --git a/device/include/pic16/pic18f6720.h b/device/include/pic16/pic18f6720.h new file mode 100644 index 00000000..7005aa57 --- /dev/null +++ b/device/include/pic16/pic18f6720.h @@ -0,0 +1,1408 @@ + +/* + * pic18f6720.h - PIC18F6720 Device Library Header + * + * This file is part of the GNU PIC Library. + * + * January, 2004 + * The GNU PIC Library is maintained by, + * Vangelis Rokas + * + * $Id$ + * + */ + +#ifndef __PIC18F6720_H__ +#define __PIC18F6720_H__ + +extern sfr at 0xf6b RCSTA2; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTA2bits_t; + +extern volatile __RCSTA2bits_t at 0xf6b RCSTA2bits; + +extern sfr at 0xf6c TXSTA2; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTA2bits_t; + +extern volatile __TXSTA2bits_t at 0xf6c TXSTA2bits; + +extern sfr at 0xf6d TXREG2; +extern sfr at 0xf6e RCREG2; +extern sfr at 0xf6f SPBRG2; +extern sfr at 0xf70 CCP5CON; +typedef union { + struct { + unsigned CCP5M0:1; + unsigned CCP5M1:1; + unsigned CCP5M2:1; + unsigned CCP5M3:1; + unsigned DCCP5Y:1; + unsigned DCCP5X:1; + unsigned :1; + unsigned :1; + }; +} __CCP5CONbits_t; + +extern volatile __CCP5CONbits_t at 0xf70 CCP5CONbits; + +extern sfr at 0xf71 CCPR5L; +extern sfr at 0xf72 CCPR5H; +extern sfr at 0xf73 CCP4CON; +typedef union { + struct { + unsigned CCP4M0:1; + unsigned CCP4M1:1; + unsigned CCP4M2:1; + unsigned CCP4M3:1; + unsigned DCCP4Y:1; + unsigned DCCP4X:1; + unsigned :1; + unsigned :1; + }; +} __CCP4CONbits_t; + +extern volatile __CCP4CONbits_t at 0xf73 CCP4CONbits; + +extern sfr at 0xf74 CCPR4L; +extern sfr at 0xf75 CCPR4H; +extern sfr at 0xf76 T4CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T4CONbits_t; + +extern volatile __T4CONbits_t at 0xf76 T4CONbits; + +extern sfr at 0xf77 PR4; +extern sfr at 0xf78 TMR4; +extern sfr at 0xf80 PORTA; +typedef union { + struct { + unsigned RA0:1; + unsigned RA1:1; + unsigned RA2:1; + unsigned RA3:1; + unsigned RA4:1; + unsigned RA5:1; + unsigned RA6:1; + unsigned :1; + }; + + struct { + unsigned AN0:1; + unsigned AN1:1; + unsigned AN2:1; + unsigned AN3:1; + unsigned :1; + unsigned AN4:1; + unsigned OSC2:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned VREFM:1; + unsigned VREFP:1; + unsigned T0CKI:1; + unsigned SS:1; + unsigned CLK0:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned LVDIN:1; + unsigned :1; + unsigned :1; + }; +} __PORTAbits_t; + +extern volatile __PORTAbits_t at 0xf80 PORTAbits; + +extern sfr at 0xf81 PORTB; +typedef union { + struct { + unsigned RB0:1; + unsigned RB1:1; + unsigned RB2:1; + unsigned RB3:1; + unsigned RB4:1; + unsigned RB5:1; + unsigned RB6:1; + unsigned RB7:1; + }; + + struct { + unsigned INT0:1; + unsigned INT1:1; + unsigned INT2:1; + unsigned INT3:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTBbits_t; + +extern volatile __PORTBbits_t at 0xf81 PORTBbits; + +extern sfr at 0xf82 PORTC; +typedef union { + struct { + unsigned RC0:1; + unsigned RC1:1; + unsigned RC2:1; + unsigned RC3:1; + unsigned RC4:1; + unsigned RC5:1; + unsigned RC6:1; + unsigned RC7:1; + }; + + struct { + unsigned T1OSO:1; + unsigned T1OSI:1; + unsigned :1; + unsigned SCK:1; + unsigned SDI:1; + unsigned SDO:1; + unsigned TX:1; + unsigned RX:1; + }; + + struct { + unsigned T1CKI:1; + unsigned CCP2:1; + unsigned CCP1:1; + unsigned SCL:1; + unsigned SDA:1; + unsigned :1; + unsigned CK:1; + unsigned DT:1; + }; +} __PORTCbits_t; + +extern volatile __PORTCbits_t at 0xf82 PORTCbits; + +extern sfr at 0xf83 PORTD; +typedef union { + struct { + unsigned RD0:1; + unsigned RD1:1; + unsigned RD2:1; + unsigned RD3:1; + unsigned RD4:1; + unsigned RD5:1; + unsigned RD6:1; + unsigned RD7:1; + }; + + struct { + unsigned AD0:1; + unsigned AD1:1; + unsigned AD2:1; + unsigned AD3:1; + unsigned AD4:1; + unsigned AD5:1; + unsigned AD6:1; + unsigned AD7:1; + }; +} __PORTDbits_t; + +extern volatile __PORTDbits_t at 0xf83 PORTDbits; + +extern sfr at 0xf84 PORTE; +typedef union { + struct { + unsigned RE0:1; + unsigned RE1:1; + unsigned RE2:1; + unsigned RE3:1; + unsigned RE4:1; + unsigned RE5:1; + unsigned RE6:1; + unsigned RE7:1; + }; + + struct { + unsigned ALE:1; + unsigned OE:1; + unsigned WRL:1; + unsigned WRH:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned CCP2:1; + }; + + struct { + unsigned AN5:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTEbits_t; + +extern volatile __PORTEbits_t at 0xf84 PORTEbits; + +extern sfr at 0xf85 PORTF; +typedef union { + struct { + unsigned RF0:1; + unsigned RF1:1; + unsigned RF2:1; + unsigned RF3:1; + unsigned RF4:1; + unsigned RF5:1; + unsigned RF6:1; + unsigned RF7:1; + }; +} __PORTFbits_t; + +extern volatile __PORTFbits_t at 0xf85 PORTFbits; + +extern sfr at 0xf86 PORTG; +typedef union { + struct { + unsigned RG0:1; + unsigned RG1:1; + unsigned RG2:1; + unsigned RG3:1; + unsigned RG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTGbits_t; + +extern volatile __PORTGbits_t at 0xf86 PORTGbits; + +extern sfr at 0xf89 LATA; +typedef union { + struct { + unsigned LATA0:1; + unsigned LATA1:1; + unsigned LATA2:1; + unsigned LATA3:1; + unsigned LATA4:1; + unsigned LATA5:1; + unsigned LATA6:1; + unsigned :1; + }; +} __LATAbits_t; + +extern volatile __LATAbits_t at 0xf89 LATAbits; + +extern sfr at 0xf8a LATB; +typedef union { + struct { + unsigned LATB0:1; + unsigned LATB1:1; + unsigned LATB2:1; + unsigned LATB3:1; + unsigned LATB4:1; + unsigned LATB5:1; + unsigned LATB6:1; + unsigned LATB7:1; + }; +} __LATBbits_t; + +extern volatile __LATBbits_t at 0xf8a LATBbits; + +extern sfr at 0xf8b LATC; +typedef union { + struct { + unsigned LATC0:1; + unsigned LATC1:1; + unsigned LATC2:1; + unsigned LATC3:1; + unsigned LATC4:1; + unsigned LATC5:1; + unsigned LATC6:1; + unsigned LATC7:1; + }; +} __LATCbits_t; + +extern volatile __LATCbits_t at 0xf8b LATCbits; + +extern sfr at 0xf8c LATD; +typedef union { + struct { + unsigned LATD0:1; + unsigned LATD1:1; + unsigned LATD2:1; + unsigned LATD3:1; + unsigned LATD4:1; + unsigned LATD5:1; + unsigned LATD6:1; + unsigned LATD7:1; + }; +} __LATDbits_t; + +extern volatile __LATDbits_t at 0xf8c LATDbits; + +extern sfr at 0xf8d LATE; +typedef union { + struct { + unsigned LATE0:1; + unsigned LATE1:1; + unsigned LATE2:1; + unsigned LATE3:1; + unsigned LATE4:1; + unsigned LATE5:1; + unsigned LATE6:1; + unsigned LATE7:1; + }; +} __LATEbits_t; + +extern volatile __LATEbits_t at 0xf8d LATEbits; + +extern sfr at 0xf8e LATF; +typedef union { + struct { + unsigned LATF0:1; + unsigned LATF1:1; + unsigned LATF2:1; + unsigned LATF3:1; + unsigned LATF4:1; + unsigned LATF5:1; + unsigned LATF6:1; + unsigned LATF7:1; + }; +} __LATFbits_t; + +extern volatile __LATFbits_t at 0xf8e LATFbits; + +extern sfr at 0xf8f LATG; +typedef union { + struct { + unsigned LATG0:1; + unsigned LATG1:1; + unsigned LATG2:1; + unsigned LATG3:1; + unsigned LATG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __LATGbits_t; + +extern volatile __LATGbits_t at 0xf8f LATGbits; + +extern sfr at 0xf92 TRISA; +typedef union { + struct { + unsigned TRISA0:1; + unsigned TRISA1:1; + unsigned TRISA2:1; + unsigned TRISA3:1; + unsigned TRISA4:1; + unsigned TRISA5:1; + unsigned TRISA6:1; + unsigned :1; + }; +} __TRISAbits_t; + +extern volatile __TRISAbits_t at 0xf92 TRISAbits; + +extern sfr at 0xf93 TRISB; +typedef union { + struct { + unsigned TRISB0:1; + unsigned TRISB1:1; + unsigned TRISB2:1; + unsigned TRISB3:1; + unsigned TRISB4:1; + unsigned TRISB5:1; + unsigned TRISB6:1; + unsigned TRISB7:1; + }; +} __TRISBbits_t; + +extern volatile __TRISBbits_t at 0xf93 TRISBbits; + +extern sfr at 0xf94 TRISC; +typedef union { + struct { + unsigned TRISC0:1; + unsigned TRISC1:1; + unsigned TRISC2:1; + unsigned TRISC3:1; + unsigned TRISC4:1; + unsigned TRISC5:1; + unsigned TRISC6:1; + unsigned TRISC7:1; + }; +} __TRISCbits_t; + +extern volatile __TRISCbits_t at 0xf94 TRISCbits; + +extern sfr at 0xf95 TRISD; +typedef union { + struct { + unsigned TRISD0:1; + unsigned TRISD1:1; + unsigned TRISD2:1; + unsigned TRISD3:1; + unsigned TRISD4:1; + unsigned TRISD5:1; + unsigned TRISD6:1; + unsigned TRISD7:1; + }; +} __TRISDbits_t; + +extern volatile __TRISDbits_t at 0xf95 TRISDbits; + +extern sfr at 0xf96 TRISE; +typedef union { + struct { + unsigned TRISE0:1; + unsigned TRISE1:1; + unsigned TRISE2:1; + unsigned TRISE3:1; + unsigned TRISE4:1; + unsigned TRISE5:1; + unsigned TRISE6:1; + unsigned TRISE7:1; + }; +} __TRISEbits_t; + +extern volatile __TRISEbits_t at 0xf96 TRISEbits; + +extern sfr at 0xf97 TRISF; +typedef union { + struct { + unsigned TRISF0:1; + unsigned TRISF1:1; + unsigned TRISF2:1; + unsigned TRISF3:1; + unsigned TRISF4:1; + unsigned TRISF5:1; + unsigned TRISF6:1; + unsigned TRISF7:1; + }; +} __TRISFbits_t; + +extern volatile __TRISFbits_t at 0xf97 TRISFbits; + +extern sfr at 0xf98 TRISG; +typedef union { + struct { + unsigned TRISG0:1; + unsigned TRISG1:1; + unsigned TRISG2:1; + unsigned TRISG3:1; + unsigned TRISG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __TRISGbits_t; + +extern volatile __TRISGbits_t at 0xf98 TRISGbits; + +extern sfr at 0xf9d PIE1; +typedef union { + struct { + unsigned TMR1IE:1; + unsigned TMR2IE:1; + unsigned CCP1IE:1; + unsigned SSPIE:1; + unsigned TXIE:1; + unsigned RCIE:1; + unsigned ADIE:1; + unsigned PSPIE:1; + }; +} __PIE1bits_t; + +extern volatile __PIE1bits_t at 0xf9d PIE1bits; + +extern sfr at 0xf9e PIR1; +typedef union { + struct { + unsigned TMR1IF:1; + unsigned TMR2IF:1; + unsigned CCP1IF:1; + unsigned SSPIF:1; + unsigned TXIF:1; + unsigned RCIF:1; + unsigned ADIF:1; + unsigned PSPIF:1; + }; +} __PIR1bits_t; + +extern volatile __PIR1bits_t at 0xf9e PIR1bits; + +extern sfr at 0xf9f IPR1; +typedef union { + struct { + unsigned TMR1IP:1; + unsigned TMR2IP:1; + unsigned CCP1IP:1; + unsigned SSPIP:1; + unsigned TXIP:1; + unsigned RCIP:1; + unsigned ADIP:1; + unsigned PSPIP:1; + }; +} __IPR1bits_t; + +extern volatile __IPR1bits_t at 0xf9f IPR1bits; + +extern sfr at 0xfa0 PIE2; +typedef union { + struct { + unsigned CCP2IE:1; + unsigned TMR3IE:1; + unsigned LVDIE:1; + unsigned BCLIE:1; + unsigned EEIE:1; + unsigned :1; + unsigned CMIE:1; + unsigned :1; + }; +} __PIE2bits_t; + +extern volatile __PIE2bits_t at 0xfa0 PIE2bits; + +extern sfr at 0xfa1 PIR2; +typedef union { + struct { + unsigned CCP2IF:1; + unsigned TMR3IF:1; + unsigned LVDIF:1; + unsigned BCLIF:1; + unsigned EEIF:1; + unsigned :1; + unsigned CMIF:1; + unsigned :1; + }; +} __PIR2bits_t; + +extern volatile __PIR2bits_t at 0xfa1 PIR2bits; + +extern sfr at 0xfa2 IPR2; +typedef union { + struct { + unsigned CCP2IP:1; + unsigned TMR3IP:1; + unsigned LVDIP:1; + unsigned BCLIP:1; + unsigned EEIP:1; + unsigned :1; + unsigned CMIP:1; + unsigned :1; + }; +} __IPR2bits_t; + +extern volatile __IPR2bits_t at 0xfa2 IPR2bits; + +extern sfr at 0xfa3 PIE3; +typedef union { + struct { + unsigned CCP3IE:1; + unsigned CCP4IE:1; + unsigned CCP5IE:1; + unsigned TMR4IE:1; + unsigned TX2IE:1; + unsigned RC2IE:1; + unsigned :1; + unsigned :1; + }; +} __PIE3bits_t; + +extern volatile __PIE3bits_t at 0xfa3 PIE3bits; + +extern sfr at 0xfa4 PIR3; +typedef union { + struct { + unsigned CCP3IF:1; + unsigned CCP4IF:1; + unsigned CCP5IF:1; + unsigned TMR4IF:1; + unsigned TX2IF:1; + unsigned RC2IF:1; + unsigned :1; + unsigned :1; + }; +} __PIR3bits_t; + +extern volatile __PIR3bits_t at 0xfa4 PIR3bits; + +extern sfr at 0xfa5 IPR3; +typedef union { + struct { + unsigned CCP3IP:1; + unsigned CCP4IP:1; + unsigned CCP5IP:1; + unsigned TMR4IP:1; + unsigned TX2IP:1; + unsigned RC2IP:1; + unsigned :1; + unsigned :1; + }; +} __IPR3bits_t; + +extern volatile __IPR3bits_t at 0xfa5 IPR3bits; + +extern sfr at 0xfa6 EECON1; +typedef union { + struct { + unsigned RD:1; + unsigned WR:1; + unsigned WREN:1; + unsigned WRERR:1; + unsigned FREE:1; + unsigned :1; + unsigned CFGS:1; + unsigned EEPGD:1; + }; +} __EECON1bits_t; + +extern volatile __EECON1bits_t at 0xfa6 EECON1bits; + +extern sfr at 0xfa7 EECON2; +extern sfr at 0xfa8 EEDATA; +extern sfr at 0xfa9 EEADR; +extern sfr at 0xfaa EEADRH; +extern sfr at 0xfab RCSTA1; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTA1bits_t; + +extern volatile __RCSTA1bits_t at 0xfab RCSTA1bits; + +extern sfr at 0xfac TXSTA1; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTA1bits_t; + +extern volatile __TXSTA1bits_t at 0xfac TXSTA1bits; + +extern sfr at 0xfad TXREG1; +extern sfr at 0xfae RCREG1; +extern sfr at 0xfaf SPBRG1; +extern sfr at 0xfb0 PSPCON; +typedef union { + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned PSPMODE:1; + unsigned IBOV:1; + unsigned OBF:1; + unsigned IBF:1; + }; +} __PSPCONbits_t; + +extern volatile __PSPCONbits_t at 0xfb0 PSPCONbits; + +extern sfr at 0xfb1 T3CON; +typedef union { + struct { + unsigned TMR3ON:1; + unsigned TMR3CS:1; + unsigned T3SYNC:1; + unsigned T3CCP1:1; + unsigned T3CKPS0:1; + unsigned T3CKPS1:1; + unsigned T3CCP2:1; + unsigned RD16:1; + }; +} __T3CONbits_t; + +extern volatile __T3CONbits_t at 0xfb1 T3CONbits; + +extern sfr at 0xfb2 TMR3L; +extern sfr at 0xfb3 TMR3H; +extern sfr at 0xfb4 CMCON; +typedef union { + struct { + unsigned CM0:1; + unsigned CM1:1; + unsigned CM2:1; + unsigned CIS:1; + unsigned C1INV:1; + unsigned C2INV:1; + unsigned C1OUT:1; + unsigned C2OUT:1; + }; +} __CMCONbits_t; + +extern volatile __CMCONbits_t at 0xfb4 CMCONbits; + +extern sfr at 0xfb5 CVRCON; +typedef union { + struct { + unsigned CVR0:1; + unsigned CVR1:1; + unsigned CVR2:1; + unsigned CVR3:1; + unsigned CVREF:1; + unsigned CVRR:1; + unsigned CVROE:1; + unsigned CVREN:1; + }; +} __CVRCONbits_t; + +extern volatile __CVRCONbits_t at 0xfb5 CVRCONbits; + +extern sfr at 0xfb7 CCP3CON; +typedef union { + struct { + unsigned CCP3M0:1; + unsigned CCP3M1:1; + unsigned CCP3M2:1; + unsigned CCP3M3:1; + unsigned DCCP3Y:1; + unsigned DCCP3X:1; + unsigned :1; + unsigned :1; + }; +} __CCP3CONbits_t; + +extern volatile __CCP3CONbits_t at 0xfb7 CCP3CONbits; + +extern sfr at 0xfb8 CCPR3L; +extern sfr at 0xfb9 CCPR3H; +extern sfr at 0xfba CCP2CON; +typedef union { + struct { + unsigned CCP2M0:1; + unsigned CCP2M1:1; + unsigned CCP2M2:1; + unsigned CCP2M3:1; + unsigned DCCP2Y:1; + unsigned DCCP2X:1; + unsigned :1; + unsigned :1; + }; +} __CCP2CONbits_t; + +extern volatile __CCP2CONbits_t at 0xfba CCP2CONbits; + +extern sfr at 0xfbb CCPR2L; +extern sfr at 0xfbc CCPR2H; +extern sfr at 0xfbd CCP1CON; +typedef union { + struct { + unsigned CCP1M0:1; + unsigned CCP1M1:1; + unsigned CCP1M2:1; + unsigned CCP1M3:1; + unsigned DCCP1Y:1; + unsigned DCCP1X:1; + unsigned :1; + unsigned :1; + }; +} __CCP1CONbits_t; + +extern volatile __CCP1CONbits_t at 0xfbd CCP1CONbits; + +extern sfr at 0xfbe CCPR1L; +extern sfr at 0xfbf CCPR1H; +extern sfr at 0xfc0 ADCON2; +typedef union { + struct { + unsigned ADCS0:1; + unsigned ADCS1:1; + unsigned ADCS2:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned ADFM:1; + }; +} __ADCON2bits_t; + +extern volatile __ADCON2bits_t at 0xfc0 ADCON2bits; + +extern sfr at 0xfc1 ADCON1; +typedef union { + struct { + unsigned PCFG0:1; + unsigned PCFG1:1; + unsigned PCFG2:1; + unsigned PCFG3:1; + unsigned VCFG0:1; + unsigned VCFG1:1; + unsigned :1; + unsigned :1; + }; +} __ADCON1bits_t; + +extern volatile __ADCON1bits_t at 0xfc1 ADCON1bits; + +extern sfr at 0xfc2 ADCON0; +typedef union { + struct { + unsigned ADON:1; + unsigned GO:1; + unsigned CHS0:1; + unsigned CHS1:1; + unsigned CHS2:1; + unsigned CHS3:1; + unsigned :1; + unsigned :1; + }; +} __ADCON0bits_t; + +extern volatile __ADCON0bits_t at 0xfc2 ADCON0bits; + +extern sfr at 0xfc3 ADRESL; +extern sfr at 0xfc4 ADRESH; +extern sfr at 0xfc5 SSPCON2; +typedef union { + struct { + unsigned SEN:1; + unsigned RSEN:1; + unsigned PEN:1; + unsigned RCEN:1; + unsigned ACKEN:1; + unsigned ACKDT:1; + unsigned ACKSTAT:1; + unsigned GCEN:1; + }; +} __SSPCON2bits_t; + +extern volatile __SSPCON2bits_t at 0xfc5 SSPCON2bits; + +extern sfr at 0xfc6 SSPCON1; +typedef union { + struct { + unsigned SSPM0:1; + unsigned SSPM1:1; + unsigned SSPM2:1; + unsigned SSPM3:1; + unsigned CKP:1; + unsigned SSPEN:1; + unsigned SSPOV:1; + unsigned WCOL:1; + }; +} __SSPCON1bits_t; + +extern volatile __SSPCON1bits_t at 0xfc6 SSPCON1bits; + +extern sfr at 0xfc7 SSPSTAT; +typedef union { + struct { + unsigned BF:1; + unsigned UA:1; + unsigned R_W:1; + unsigned S:1; + unsigned P:1; + unsigned D_A:1; + unsigned CKE:1; + unsigned SMP:1; + }; +} __SSPSTATbits_t; + +extern volatile __SSPSTATbits_t at 0xfc7 SSPSTATbits; + +extern sfr at 0xfc8 SSPADD; +extern sfr at 0xfc9 SSPBUF; +extern sfr at 0xfca T2CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T2CONbits_t; + +extern volatile __T2CONbits_t at 0xfca T2CONbits; + +extern sfr at 0xfcb PR2; +extern sfr at 0xfcc TMR2; +extern sfr at 0xfcd T1CON; +typedef union { + struct { + unsigned TMR1ON:1; + unsigned TMR1CS:1; + unsigned NOT_T1SYNC:1; + unsigned T1OSCEN:1; + unsigned T1CKPS0:1; + unsigned T1CKPS1:1; + unsigned :1; + unsigned RD16:1; + }; +} __T1CONbits_t; + +extern volatile __T1CONbits_t at 0xfcd T1CONbits; + +extern sfr at 0xfce TMR1L; +extern sfr at 0xfcf TMR1H; +extern sfr at 0xfd0 RCON; +typedef union { + struct { + unsigned BOR:1; + unsigned POR:1; + unsigned PD:1; + unsigned TO:1; + unsigned RI:1; + unsigned :1; + unsigned :1; + unsigned IPEN:1; + }; +} __RCONbits_t; + +extern volatile __RCONbits_t at 0xfd0 RCONbits; + +extern sfr at 0xfd1 WDTCON; +typedef union { + struct { + unsigned SWDTEN:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned SWDTE:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __WDTCONbits_t; + +extern volatile __WDTCONbits_t at 0xfd1 WDTCONbits; + +extern sfr at 0xfd2 LVDCON; +typedef union { + struct { + unsigned LVDL0:1; + unsigned LVDL1:1; + unsigned LVDL2:1; + unsigned LVDL3:1; + unsigned LVDEN:1; + unsigned VRST:1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned LVV0:1; + unsigned LVV1:1; + unsigned LVV2:1; + unsigned LVV3:1; + unsigned :1; + unsigned BGST:1; + unsigned :1; + unsigned :1; + }; +} __LVDCONbits_t; + +extern volatile __LVDCONbits_t at 0xfd2 LVDCONbits; + +extern sfr at 0xfd3 OSCCON; +typedef union { + struct { + unsigned SCS:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __OSCCONbits_t; + +extern volatile __OSCCONbits_t at 0xfd3 OSCCONbits; + +extern sfr at 0xfd5 T0CON; +extern sfr at 0xfd6 TMR0L; +extern sfr at 0xfd7 TMR0H; +extern sfr at 0xfd8 STATUS; +typedef union { + struct { + unsigned C:1; + unsigned DC:1; + unsigned Z:1; + unsigned OV:1; + unsigned N:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __STATUSbits_t; + +extern volatile __STATUSbits_t at 0xfd8 STATUSbits; + +extern sfr at 0xfd9 FSR2L; +extern sfr at 0xfda FSR2H; +extern sfr at 0xfdb PLUSW2; +extern sfr at 0xfdc PREINC2; +extern sfr at 0xfdd POSTDEC2; +extern sfr at 0xfde POSTINC2; +extern sfr at 0xfdf INDF2; +extern sfr at 0xfe0 BSR; +extern sfr at 0xfe1 FSR1L; +extern sfr at 0xfe2 FSR1H; +extern sfr at 0xfe3 PLUSW1; +extern sfr at 0xfe4 PREINC1; +extern sfr at 0xfe5 POSTDEC1; +extern sfr at 0xfe6 POSTINC1; +extern sfr at 0xfe7 INDF1; +extern sfr at 0xfe8 WREG; +extern sfr at 0xfe9 FSR0L; +extern sfr at 0xfea FSR0H; +extern sfr at 0xfeb PLUSW0; +extern sfr at 0xfec PREINC0; +extern sfr at 0xfed POSTDEC0; +extern sfr at 0xfee POSTINC0; +extern sfr at 0xfef INDF0; +extern sfr at 0xff0 INTCON3; +typedef union { + struct { + unsigned INT1F:1; + unsigned INT2F:1; + unsigned INT3F:1; + unsigned INT1E:1; + unsigned INT2E:1; + unsigned INT3E:1; + unsigned INT1P:1; + unsigned INT2P:1; + }; + + struct { + unsigned INT1IF:1; + unsigned INT2IF:1; + unsigned INT3IF:1; + unsigned INT1IE:1; + unsigned INT2IE:1; + unsigned INT3IE:1; + unsigned INT1IP:1; + unsigned INT2IP:1; + }; +} __INTCON3bits_t; + +extern volatile __INTCON3bits_t at 0xff0 INTCON3bits; + +extern sfr at 0xff1 INTCON2; +typedef union { + struct { + unsigned RBIP:1; + unsigned INT3P:1; + unsigned T0IP:1; + unsigned INTEDG3:1; + unsigned INTEDG2:1; + unsigned INTEDG1:1; + unsigned INTEDG0:1; + unsigned RBPU:1; + }; +} __INTCON2bits_t; + +extern volatile __INTCON2bits_t at 0xff1 INTCON2bits; + +extern sfr at 0xff2 INTCON; +typedef union { + struct { + unsigned RBIF:1; + unsigned INT0F:1; + unsigned T0IF:1; + unsigned RBIE:1; + unsigned INT0E:1; + unsigned T0IE:1; + unsigned PEIE:1; + unsigned GIE:1; + }; +} __INTCONbits_t; + +extern volatile __INTCONbits_t at 0xff2 INTCONbits; + +extern sfr at 0xff3 PRODL; +extern sfr at 0xff4 PRODH; +extern sfr at 0xff5 TABLAT; +extern sfr at 0xff6 TBLPTRL; +extern sfr at 0xff7 TBLPTRH; +extern sfr at 0xff8 TBLPTRU; +extern sfr at 0xff9 PCL; +extern sfr at 0xffa PCLATH; +extern sfr at 0xffb PCLATU; +extern sfr at 0xffc STKPTR; +typedef union { + struct { + unsigned STKPTR0:1; + unsigned STKPTR1:1; + unsigned STKPTR2:1; + unsigned STKPTR3:1; + unsigned STKPTR4:1; + unsigned :1; + unsigned STKUNF:1; + unsigned STKFUL:1; + }; +} __STKPTRbits_t; + +extern volatile __STKPTRbits_t at 0xffc STKPTRbits; + +extern sfr at 0xffd TOSL; +extern sfr at 0xffe TOSH; +extern sfr at 0xfff TOSU; + + +/* Configuration registers locations */ +#define __CONFIG0H 0x300001 +#define __CONFIG1L 0x300002 +#define __CONFIG1H 0x300003 +#define __CONFIG2H 0x300005 +#define __CONFIG3L 0x300006 +#define __CONFIG4L 0x300008 +#define __CONFIG4H 0x300009 +#define __CONFIG5L 0x30000A +#define __CONFIG5H 0x30000B +#define __CONFIG6L 0x30000C +#define __CONFIG6H 0x30000D + + + +/* Oscillator 0H options */ +#define _OSC_RC_OSC2_0H 0xFF /* RC-OSC2 as RA6 */ +#define _OSC_HS_PLL_0H 0xFE /* HS-PLL Enabled */ +#define _OSC_EC_OSC2_RA6_0H 0xFD /* EC-OSC2 as RA6 */ +#define _OSC_EC_OSC2_Clock_Out_0H 0xFC /* EC-OSC2 as Clock_Out */ +#define _OSC_RC_0H 0xFB /* RC */ +#define _OSC_HS_0H 0xFA /* HS */ +#define _OSC_XT_0H 0xF9 /* XT */ +#define _OSC_LP_0H 0xF8 /* LP */ + +/* Osc. Switch Enable 0H options */ +#define _OSCS_OFF_0H 0xFF /* Disabled */ +#define _OSCS_ON_0H 0xDF /* Enabled */ + +/* Power Up Timer 1L options */ +#define _PUT_OFF_1L 0xFF /* Disabled */ +#define _PUT_ON_1L 0xFE /* Enabled */ + +/* Brown Out Detect 1L options */ +#define _BODEN_ON_1L 0xFF /* Enabled */ +#define _BODEN_OFF_1L 0xFD /* Disabled */ + +/* Brown Out Voltage 1L options */ +#define _BODENV_2_5V_1L 0xFF /* 2.5V */ +#define _BODENV_2_7V_1L 0xFB /* 2.7V */ +#define _BODENV_4_2V_1L 0xF7 /* 4.2V */ +#define _BODENV_4_5V_1L 0xF3 /* 4.5V */ + +/* Watchdog Timer 1H options */ +#define _WDT_ON_1H 0xFF /* Enabled */ +#define _WDT_OFF_1H 0xFE /* Disabled */ + +/* Watchdog Postscaler 1H options */ +#define _WDTPS_1_128_1H 0xFF /* 1:128 */ +#define _WDTPS_1_64_1H 0xFD /* 1:64 */ +#define _WDTPS_1_32_1H 0xFB /* 1:32 */ +#define _WDTPS_1_16_1H 0xF9 /* 1:16 */ +#define _WDTPS_1_8_1H 0xF7 /* 1:8 */ +#define _WDTPS_1_4_1H 0xF5 /* 1:4 */ +#define _WDTPS_1_2_1H 0xF3 /* 1:2 */ +#define _WDTPS_1_1_1H 0xF1 /* 1:1 */ + +/* CCP2 Mux 2H options */ +#define _CCP2MUX_RC1_2H 0xFF /* RC1 */ +#define _CCP2MUX_RE7_2H 0xFE /* RE7 */ + +/* Low Voltage Program 3L options */ +#define _LVP_ON_3L 0xFF /* Enabled */ +#define _LVP_OFF_3L 0xFB /* Disabled */ + +/* Background Debug 3L options */ +#define _BACKBUG_OFF_3L 0xFF /* Disabled */ +#define _BACKBUG_ON_3L 0x7F /* Enabled */ + +/* Stack Overflow Reset 3L options */ +#define _STVR_ON_3L 0xFF /* Enabled */ +#define _STVR_OFF_3L 0xFE /* Disabled */ + +/* Code Protect 00200-03FFF 4L options */ +#define _CP_0_OFF_4L 0xFF /* Disabled */ +#define _CP_0_ON_4L 0xFE /* Enabled */ + +/* Code Protect 04000-07FFF 4L options */ +#define _CP_1_OFF_4L 0xFF /* Disabled */ +#define _CP_1_ON_4L 0xFD /* Enabled */ + +/* Code Protect 08000-0BFFF 4L options */ +#define _CP_2_OFF_4L 0xFF /* Disabled */ +#define _CP_2_ON_4L 0xFB /* Enabled */ + +/* Code Protect 0C000-0FFFF 4L options */ +#define _CP_3_OFF_4L 0xFF /* Disabled */ +#define _CP_3_ON_4L 0xF7 /* Enabled */ + +/* Code Protect 10000-13FFF 4L options */ +#define _CP_4_OFF_4L 0xFF /* Disabled */ +#define _CP_4_ON_4L 0xEF /* Enabled */ + +/* Code Protect 14000-17FFF 4L options */ +#define _CP_5_OFF_4L 0xFF /* Disabled */ +#define _CP_5_ON_4L 0xDF /* Enabled */ + +/* Code Protect 18000-1BFFF 4L options */ +#define _CP_6_OFF_4L 0xFF /* Disabled */ +#define _CP_6_ON_4L 0xBF /* Enabled */ + +/* Code Protect 1C000-1FFFF 4L options */ +#define _CP_7_OFF_4L 0xFF /* Disabled */ +#define _CP_7_ON_4L 0x7F /* Enabled */ + +/* Data EE Read Protect 4H options */ +#define _CPD_OFF_4H 0xFF /* Disabled */ +#define _CPD_ON_4H 0x7F /* Enabled */ + +/* Code Protect Boot 4H options */ +#define _CPB_OFF_4H 0xFF /* Disabled */ +#define _CPB_ON_4H 0xBF /* Enabled */ + +/* Table Write Protect 00200-03FFF 5L options */ +#define _WRT_0_OFF_5L 0xFF /* Disabled */ +#define _WRT_0_ON_5L 0xFE /* Enabled */ + +/* Table Write Protect 04000-07FFF 5L options */ +#define _WRT_1_OFF_5L 0xFF /* Disabled */ +#define _WRT_1_ON_5L 0xFD /* Enabled */ + +/* Table Write Protect 08000-0BFFF 5L options */ +#define _WRT_2_OFF_5L 0xFF /* Disabled */ +#define _WRT_2_ON_5L 0xFB /* Enabled */ + +/* Table Write Protect 0C000-0FFFF 5L options */ +#define _WRT_3_OFF_5L 0xFF /* Disabled */ +#define _WRT_3_ON_5L 0xF7 /* Enabled */ + +/* Table Write Protect 10000-13FFF 5L options */ +#define _WRT_4_OFF_5L 0xFF /* Disabled */ +#define _WRT_4_ON_5L 0xEF /* Enabled */ + +/* Table Write Protect 14000-17FFF 5L options */ +#define _WRT_5_OFF_5L 0xFF /* Disabled */ +#define _WRT_5_ON_5L 0xDF /* Enabled */ + +/* Table Write Protect 18000-1BFFF 5L options */ +#define _WRT_6_OFF_5L 0xFF /* Disabled */ +#define _WRT_6_ON_5L 0xBF /* Enabled */ + +/* Table Write Protect 1C000-1FFFF 5L options */ +#define _WRT_7_OFF_5L 0xFF /* Disabled */ +#define _WRT_7_ON_5L 0x7F /* Enabled */ + +/* Data EE Write Protect 5H options */ +#define _WRTD_OFF_5H 0xFF /* Disabled */ +#define _WRTD_ON_5H 0x7F /* Enabled */ + +/* Table Write Protect Boot 5H options */ +#define _WRTB_OFF_5H 0xFF /* Disabled */ +#define _WRTB_ON_5H 0xBF /* Enabled */ + +/* Config. Write Protect 5H options */ +#define _WRTC_OFF_5H 0xFF /* Disabled */ +#define _WRTC_ON_5H 0xDF /* Enabled */ + +/* Table Read Protect 00200-03FFF 6L options */ +#define _EBTR_0_OFF_6L 0xFF /* Disabled */ +#define _EBTR_0_ON_6L 0xFE /* Enabled */ + +/* Table Read Protect 04000-07FFF 6L options */ +#define _EBTR_1_OFF_6L 0xFF /* Disabled */ +#define _EBTR_1_ON_6L 0xFD /* Enabled */ + +/* Table Read Protect 08000-0BFFF 6L options */ +#define _EBTR_2_OFF_6L 0xFF /* Disabled */ +#define _EBTR_2_ON_6L 0xFB /* Enabled */ + +/* Table Read Protect 0C000-0FFFF 6L options */ +#define _EBTR_3_OFF_6L 0xFF /* Disabled */ +#define _EBTR_3_ON_6L 0xF7 /* Enabled */ + +/* Table Read Protect 10000-13FFF 6L options */ +#define _EBTR_4_OFF_6L 0xFF /* Disabled */ +#define _EBTR_4_ON_6L 0xEF /* Enabled */ + +/* Table Read Protect 14000-17FFF 6L options */ +#define _EBTR_5_OFF_6L 0xFF /* Disabled */ +#define _EBTR_5_ON_6L 0xDF /* Enabled */ + +/* Table Read Protect 18000-1BFFF 6L options */ +#define _EBTR_6_OFF_6L 0xFF /* Disabled */ +#define _EBTR_6_ON_6L 0xBF /* Enabled */ + +/* Table Read Protect 1C000-1FFFF 6L options */ +#define _EBTR_7_OFF_6L 0xFF /* Disabled */ +#define _EBTR_7_ON_6L 0x7F /* Enabled */ + +/* Table Read Protect Boot 6H options */ +#define _EBTRB_OFF_6H 0xFF /* Disabled */ +#define _EBTRB_ON_6H 0xBF /* Enabled */ + + +#endif diff --git a/device/include/pic16/pic18f8520.h b/device/include/pic16/pic18f8520.h new file mode 100644 index 00000000..6e60b4c1 --- /dev/null +++ b/device/include/pic16/pic18f8520.h @@ -0,0 +1,1485 @@ + +/* + * pic18f8520.h - PIC18F8520 Device Library Header + * + * This file is part of the GNU PIC Library. + * + * January, 2004 + * The GNU PIC Library is maintained by, + * Vangelis Rokas + * + * $Id$ + * + */ + +#ifndef __PIC18F8520_H__ +#define __PIC18F8520_H__ + +extern sfr at 0xf6b RCSTA2; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTA2bits_t; + +extern volatile __RCSTA2bits_t at 0xf6b RCSTA2bits; + +extern sfr at 0xf6c TXSTA2; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTA2bits_t; + +extern volatile __TXSTA2bits_t at 0xf6c TXSTA2bits; + +extern sfr at 0xf6d TXREG2; +extern sfr at 0xf6e RCREG2; +extern sfr at 0xf6f SPBRG2; +extern sfr at 0xf70 CCP5CON; +typedef union { + struct { + unsigned CCP5M0:1; + unsigned CCP5M1:1; + unsigned CCP5M2:1; + unsigned CCP5M3:1; + unsigned DCCP5Y:1; + unsigned DCCP5X:1; + unsigned :1; + unsigned :1; + }; +} __CCP5CONbits_t; + +extern volatile __CCP5CONbits_t at 0xf70 CCP5CONbits; + +extern sfr at 0xf71 CCPR5L; +extern sfr at 0xf72 CCPR5H; +extern sfr at 0xf73 CCP4CON; +typedef union { + struct { + unsigned CCP4M0:1; + unsigned CCP4M1:1; + unsigned CCP4M2:1; + unsigned CCP4M3:1; + unsigned DCCP4Y:1; + unsigned DCCP4X:1; + unsigned :1; + unsigned :1; + }; +} __CCP4CONbits_t; + +extern volatile __CCP4CONbits_t at 0xf73 CCP4CONbits; + +extern sfr at 0xf74 CCPR4L; +extern sfr at 0xf75 CCPR4H; +extern sfr at 0xf76 T4CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T4CONbits_t; + +extern volatile __T4CONbits_t at 0xf76 T4CONbits; + +extern sfr at 0xf77 PR4; +extern sfr at 0xf78 TMR4; +extern sfr at 0xf80 PORTA; +typedef union { + struct { + unsigned RA0:1; + unsigned RA1:1; + unsigned RA2:1; + unsigned RA3:1; + unsigned RA4:1; + unsigned RA5:1; + unsigned RA6:1; + unsigned :1; + }; + + struct { + unsigned AN0:1; + unsigned AN1:1; + unsigned AN2:1; + unsigned AN3:1; + unsigned :1; + unsigned AN4:1; + unsigned OSC2:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned VREFM:1; + unsigned VREFP:1; + unsigned T0CKI:1; + unsigned SS:1; + unsigned CLK0:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned LVDIN:1; + unsigned :1; + unsigned :1; + }; +} __PORTAbits_t; + +extern volatile __PORTAbits_t at 0xf80 PORTAbits; + +extern sfr at 0xf81 PORTB; +typedef union { + struct { + unsigned RB0:1; + unsigned RB1:1; + unsigned RB2:1; + unsigned RB3:1; + unsigned RB4:1; + unsigned RB5:1; + unsigned RB6:1; + unsigned RB7:1; + }; + + struct { + unsigned INT0:1; + unsigned INT1:1; + unsigned INT2:1; + unsigned INT3:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTBbits_t; + +extern volatile __PORTBbits_t at 0xf81 PORTBbits; + +extern sfr at 0xf82 PORTC; +typedef union { + struct { + unsigned RC0:1; + unsigned RC1:1; + unsigned RC2:1; + unsigned RC3:1; + unsigned RC4:1; + unsigned RC5:1; + unsigned RC6:1; + unsigned RC7:1; + }; + + struct { + unsigned T1OSO:1; + unsigned T1OSI:1; + unsigned :1; + unsigned SCK:1; + unsigned SDI:1; + unsigned SDO:1; + unsigned TX:1; + unsigned RX:1; + }; + + struct { + unsigned T1CKI:1; + unsigned CCP2:1; + unsigned CCP1:1; + unsigned SCL:1; + unsigned SDA:1; + unsigned :1; + unsigned CK:1; + unsigned DT:1; + }; +} __PORTCbits_t; + +extern volatile __PORTCbits_t at 0xf82 PORTCbits; + +extern sfr at 0xf83 PORTD; +typedef union { + struct { + unsigned RD0:1; + unsigned RD1:1; + unsigned RD2:1; + unsigned RD3:1; + unsigned RD4:1; + unsigned RD5:1; + unsigned RD6:1; + unsigned RD7:1; + }; + + struct { + unsigned AD0:1; + unsigned AD1:1; + unsigned AD2:1; + unsigned AD3:1; + unsigned AD4:1; + unsigned AD5:1; + unsigned AD6:1; + unsigned AD7:1; + }; +} __PORTDbits_t; + +extern volatile __PORTDbits_t at 0xf83 PORTDbits; + +extern sfr at 0xf84 PORTE; +typedef union { + struct { + unsigned RE0:1; + unsigned RE1:1; + unsigned RE2:1; + unsigned RE3:1; + unsigned RE4:1; + unsigned RE5:1; + unsigned RE6:1; + unsigned RE7:1; + }; + + struct { + unsigned ALE:1; + unsigned OE:1; + unsigned WRL:1; + unsigned WRH:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned CCP2:1; + }; + + struct { + unsigned AN5:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTEbits_t; + +extern volatile __PORTEbits_t at 0xf84 PORTEbits; + +extern sfr at 0xf85 PORTF; +typedef union { + struct { + unsigned RF0:1; + unsigned RF1:1; + unsigned RF2:1; + unsigned RF3:1; + unsigned RF4:1; + unsigned RF5:1; + unsigned RF6:1; + unsigned RF7:1; + }; +} __PORTFbits_t; + +extern volatile __PORTFbits_t at 0xf85 PORTFbits; + +extern sfr at 0xf86 PORTG; +typedef union { + struct { + unsigned RG0:1; + unsigned RG1:1; + unsigned RG2:1; + unsigned RG3:1; + unsigned RG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTGbits_t; + +extern volatile __PORTGbits_t at 0xf86 PORTGbits; + +extern sfr at 0xf87 PORTH; +typedef union { + struct { + unsigned RH0:1; + unsigned RH1:1; + unsigned RH2:1; + unsigned RH3:1; + unsigned RH4:1; + unsigned RH5:1; + unsigned RH6:1; + unsigned RH7:1; + }; +} __PORTHbits_t; + +extern volatile __PORTHbits_t at 0xf87 PORTHbits; + +extern sfr at 0xf88 PORTJ; +typedef union { + struct { + unsigned RJ0:1; + unsigned RJ1:1; + unsigned RJ2:1; + unsigned RJ3:1; + unsigned RJ4:1; + unsigned RJ5:1; + unsigned RJ6:1; + unsigned RJ7:1; + }; +} __PORTJbits_t; + +extern volatile __PORTJbits_t at 0xf88 PORTJbits; + +extern sfr at 0xf89 LATA; +typedef union { + struct { + unsigned LATA0:1; + unsigned LATA1:1; + unsigned LATA2:1; + unsigned LATA3:1; + unsigned LATA4:1; + unsigned LATA5:1; + unsigned LATA6:1; + unsigned :1; + }; +} __LATAbits_t; + +extern volatile __LATAbits_t at 0xf89 LATAbits; + +extern sfr at 0xf8a LATB; +typedef union { + struct { + unsigned LATB0:1; + unsigned LATB1:1; + unsigned LATB2:1; + unsigned LATB3:1; + unsigned LATB4:1; + unsigned LATB5:1; + unsigned LATB6:1; + unsigned LATB7:1; + }; +} __LATBbits_t; + +extern volatile __LATBbits_t at 0xf8a LATBbits; + +extern sfr at 0xf8b LATC; +typedef union { + struct { + unsigned LATC0:1; + unsigned LATC1:1; + unsigned LATC2:1; + unsigned LATC3:1; + unsigned LATC4:1; + unsigned LATC5:1; + unsigned LATC6:1; + unsigned LATC7:1; + }; +} __LATCbits_t; + +extern volatile __LATCbits_t at 0xf8b LATCbits; + +extern sfr at 0xf8c LATD; +typedef union { + struct { + unsigned LATD0:1; + unsigned LATD1:1; + unsigned LATD2:1; + unsigned LATD3:1; + unsigned LATD4:1; + unsigned LATD5:1; + unsigned LATD6:1; + unsigned LATD7:1; + }; +} __LATDbits_t; + +extern volatile __LATDbits_t at 0xf8c LATDbits; + +extern sfr at 0xf8d LATE; +typedef union { + struct { + unsigned LATE0:1; + unsigned LATE1:1; + unsigned LATE2:1; + unsigned LATE3:1; + unsigned LATE4:1; + unsigned LATE5:1; + unsigned LATE6:1; + unsigned LATE7:1; + }; +} __LATEbits_t; + +extern volatile __LATEbits_t at 0xf8d LATEbits; + +extern sfr at 0xf8e LATF; +typedef union { + struct { + unsigned LATF0:1; + unsigned LATF1:1; + unsigned LATF2:1; + unsigned LATF3:1; + unsigned LATF4:1; + unsigned LATF5:1; + unsigned LATF6:1; + unsigned LATF7:1; + }; +} __LATFbits_t; + +extern volatile __LATFbits_t at 0xf8e LATFbits; + +extern sfr at 0xf8f LATG; +typedef union { + struct { + unsigned LATG0:1; + unsigned LATG1:1; + unsigned LATG2:1; + unsigned LATG3:1; + unsigned LATG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __LATGbits_t; + +extern volatile __LATGbits_t at 0xf8f LATGbits; + +extern sfr at 0xf90 LATH; +typedef union { + struct { + unsigned LATH0:1; + unsigned LATH1:1; + unsigned LATH2:1; + unsigned LATH3:1; + unsigned LATH4:1; + unsigned LATH5:1; + unsigned LATH6:1; + unsigned LATH7:1; + }; +} __LATHbits_t; + +extern volatile __LATHbits_t at 0xf90 LATHbits; + +extern sfr at 0xf91 LATJ; +typedef union { + struct { + unsigned LATJ0:1; + unsigned LATJ1:1; + unsigned LATJ2:1; + unsigned LATJ3:1; + unsigned LATJ4:1; + unsigned LATJ5:1; + unsigned LATJ6:1; + unsigned LATJ7:1; + }; +} __LATJbits_t; + +extern volatile __LATJbits_t at 0xf91 LATJbits; + +extern sfr at 0xf92 TRISA; +typedef union { + struct { + unsigned TRISA0:1; + unsigned TRISA1:1; + unsigned TRISA2:1; + unsigned TRISA3:1; + unsigned TRISA4:1; + unsigned TRISA5:1; + unsigned TRISA6:1; + unsigned :1; + }; +} __TRISAbits_t; + +extern volatile __TRISAbits_t at 0xf92 TRISAbits; + +extern sfr at 0xf93 TRISB; +typedef union { + struct { + unsigned TRISB0:1; + unsigned TRISB1:1; + unsigned TRISB2:1; + unsigned TRISB3:1; + unsigned TRISB4:1; + unsigned TRISB5:1; + unsigned TRISB6:1; + unsigned TRISB7:1; + }; +} __TRISBbits_t; + +extern volatile __TRISBbits_t at 0xf93 TRISBbits; + +extern sfr at 0xf94 TRISC; +typedef union { + struct { + unsigned TRISC0:1; + unsigned TRISC1:1; + unsigned TRISC2:1; + unsigned TRISC3:1; + unsigned TRISC4:1; + unsigned TRISC5:1; + unsigned TRISC6:1; + unsigned TRISC7:1; + }; +} __TRISCbits_t; + +extern volatile __TRISCbits_t at 0xf94 TRISCbits; + +extern sfr at 0xf95 TRISD; +typedef union { + struct { + unsigned TRISD0:1; + unsigned TRISD1:1; + unsigned TRISD2:1; + unsigned TRISD3:1; + unsigned TRISD4:1; + unsigned TRISD5:1; + unsigned TRISD6:1; + unsigned TRISD7:1; + }; +} __TRISDbits_t; + +extern volatile __TRISDbits_t at 0xf95 TRISDbits; + +extern sfr at 0xf96 TRISE; +typedef union { + struct { + unsigned TRISE0:1; + unsigned TRISE1:1; + unsigned TRISE2:1; + unsigned TRISE3:1; + unsigned TRISE4:1; + unsigned TRISE5:1; + unsigned TRISE6:1; + unsigned TRISE7:1; + }; +} __TRISEbits_t; + +extern volatile __TRISEbits_t at 0xf96 TRISEbits; + +extern sfr at 0xf97 TRISF; +typedef union { + struct { + unsigned TRISF0:1; + unsigned TRISF1:1; + unsigned TRISF2:1; + unsigned TRISF3:1; + unsigned TRISF4:1; + unsigned TRISF5:1; + unsigned TRISF6:1; + unsigned TRISF7:1; + }; +} __TRISFbits_t; + +extern volatile __TRISFbits_t at 0xf97 TRISFbits; + +extern sfr at 0xf98 TRISG; +typedef union { + struct { + unsigned TRISG0:1; + unsigned TRISG1:1; + unsigned TRISG2:1; + unsigned TRISG3:1; + unsigned TRISG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __TRISGbits_t; + +extern volatile __TRISGbits_t at 0xf98 TRISGbits; + +extern sfr at 0xf99 TRISH; +typedef union { + struct { + unsigned TRISH0:1; + unsigned TRISH1:1; + unsigned TRISH2:1; + unsigned TRISH3:1; + unsigned TRISH4:1; + unsigned TRISH5:1; + unsigned TRISH6:1; + unsigned TRISH7:1; + }; +} __TRISHbits_t; + +extern volatile __TRISHbits_t at 0xf99 TRISHbits; + +extern sfr at 0xf9a TRISJ; +typedef union { + struct { + unsigned TRISJ0:1; + unsigned TRISJ1:1; + unsigned TRISJ2:1; + unsigned TRISJ3:1; + unsigned TRISJ4:1; + unsigned TRISJ5:1; + unsigned TRISJ6:1; + unsigned TRISJ7:1; + }; +} __TRISJbits_t; + +extern volatile __TRISJbits_t at 0xf9a TRISJbits; + +extern sfr at 0xf9c MEMCON; +typedef union { + struct { + unsigned WM0:1; + unsigned WM1:1; + unsigned :1; + unsigned :1; + unsigned WAIT0:1; + unsigned WAIT1:1; + unsigned :1; + unsigned EBDIS:1; + }; +} __MEMCONbits_t; + +extern volatile __MEMCONbits_t at 0xf9c MEMCONbits; + +extern sfr at 0xf9d PIE1; +typedef union { + struct { + unsigned TMR1IE:1; + unsigned TMR2IE:1; + unsigned CCP1IE:1; + unsigned SSPIE:1; + unsigned TXIE:1; + unsigned RCIE:1; + unsigned ADIE:1; + unsigned PSPIE:1; + }; +} __PIE1bits_t; + +extern volatile __PIE1bits_t at 0xf9d PIE1bits; + +extern sfr at 0xf9e PIR1; +typedef union { + struct { + unsigned TMR1IF:1; + unsigned TMR2IF:1; + unsigned CCP1IF:1; + unsigned SSPIF:1; + unsigned TXIF:1; + unsigned RCIF:1; + unsigned ADIF:1; + unsigned PSPIF:1; + }; +} __PIR1bits_t; + +extern volatile __PIR1bits_t at 0xf9e PIR1bits; + +extern sfr at 0xf9f IPR1; +typedef union { + struct { + unsigned TMR1IP:1; + unsigned TMR2IP:1; + unsigned CCP1IP:1; + unsigned SSPIP:1; + unsigned TXIP:1; + unsigned RCIP:1; + unsigned ADIP:1; + unsigned PSPIP:1; + }; +} __IPR1bits_t; + +extern volatile __IPR1bits_t at 0xf9f IPR1bits; + +extern sfr at 0xfa0 PIE2; +typedef union { + struct { + unsigned CCP2IE:1; + unsigned TMR3IE:1; + unsigned LVDIE:1; + unsigned BCLIE:1; + unsigned EEIE:1; + unsigned :1; + unsigned CMIE:1; + unsigned :1; + }; +} __PIE2bits_t; + +extern volatile __PIE2bits_t at 0xfa0 PIE2bits; + +extern sfr at 0xfa1 PIR2; +typedef union { + struct { + unsigned CCP2IF:1; + unsigned TMR3IF:1; + unsigned LVDIF:1; + unsigned BCLIF:1; + unsigned EEIF:1; + unsigned :1; + unsigned CMIF:1; + unsigned :1; + }; +} __PIR2bits_t; + +extern volatile __PIR2bits_t at 0xfa1 PIR2bits; + +extern sfr at 0xfa2 IPR2; +typedef union { + struct { + unsigned CCP2IP:1; + unsigned TMR3IP:1; + unsigned LVDIP:1; + unsigned BCLIP:1; + unsigned EEIP:1; + unsigned :1; + unsigned CMIP:1; + unsigned :1; + }; +} __IPR2bits_t; + +extern volatile __IPR2bits_t at 0xfa2 IPR2bits; + +extern sfr at 0xfa3 PIE3; +typedef union { + struct { + unsigned CCP3IE:1; + unsigned CCP4IE:1; + unsigned CCP5IE:1; + unsigned TMR4IE:1; + unsigned TX2IE:1; + unsigned RC2IE:1; + unsigned :1; + unsigned :1; + }; +} __PIE3bits_t; + +extern volatile __PIE3bits_t at 0xfa3 PIE3bits; + +extern sfr at 0xfa4 PIR3; +typedef union { + struct { + unsigned CCP3IF:1; + unsigned CCP4IF:1; + unsigned CCP5IF:1; + unsigned TMR4IF:1; + unsigned TX2IF:1; + unsigned RC2IF:1; + unsigned :1; + unsigned :1; + }; +} __PIR3bits_t; + +extern volatile __PIR3bits_t at 0xfa4 PIR3bits; + +extern sfr at 0xfa5 IPR3; +typedef union { + struct { + unsigned CCP3IP:1; + unsigned CCP4IP:1; + unsigned CCP5IP:1; + unsigned TMR4IP:1; + unsigned TX2IP:1; + unsigned RC2IP:1; + unsigned :1; + unsigned :1; + }; +} __IPR3bits_t; + +extern volatile __IPR3bits_t at 0xfa5 IPR3bits; + +extern sfr at 0xfa6 EECON1; +typedef union { + struct { + unsigned RD:1; + unsigned WR:1; + unsigned WREN:1; + unsigned WRERR:1; + unsigned FREE:1; + unsigned :1; + unsigned CFGS:1; + unsigned EEPGD:1; + }; +} __EECON1bits_t; + +extern volatile __EECON1bits_t at 0xfa6 EECON1bits; + +extern sfr at 0xfa7 EECON2; +extern sfr at 0xfa8 EEDATA; +extern sfr at 0xfa9 EEADR; +extern sfr at 0xfaa EEADRH; +extern sfr at 0xfab RCSTA1; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTA1bits_t; + +extern volatile __RCSTA1bits_t at 0xfab RCSTA1bits; + +extern sfr at 0xfac TXSTA1; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTA1bits_t; + +extern volatile __TXSTA1bits_t at 0xfac TXSTA1bits; + +extern sfr at 0xfad TXREG1; +extern sfr at 0xfae RCREG1; +extern sfr at 0xfaf SPBRG1; +extern sfr at 0xfb0 PSPCON; +typedef union { + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned PSPMODE:1; + unsigned IBOV:1; + unsigned OBF:1; + unsigned IBF:1; + }; +} __PSPCONbits_t; + +extern volatile __PSPCONbits_t at 0xfb0 PSPCONbits; + +extern sfr at 0xfb1 T3CON; +typedef union { + struct { + unsigned TMR3ON:1; + unsigned TMR3CS:1; + unsigned T3SYNC:1; + unsigned T3CCP1:1; + unsigned T3CKPS0:1; + unsigned T3CKPS1:1; + unsigned T3CCP2:1; + unsigned RD16:1; + }; +} __T3CONbits_t; + +extern volatile __T3CONbits_t at 0xfb1 T3CONbits; + +extern sfr at 0xfb2 TMR3L; +extern sfr at 0xfb3 TMR3H; +extern sfr at 0xfb4 CMCON; +typedef union { + struct { + unsigned CM0:1; + unsigned CM1:1; + unsigned CM2:1; + unsigned CIS:1; + unsigned C1INV:1; + unsigned C2INV:1; + unsigned C1OUT:1; + unsigned C2OUT:1; + }; +} __CMCONbits_t; + +extern volatile __CMCONbits_t at 0xfb4 CMCONbits; + +extern sfr at 0xfb5 CVRCON; +typedef union { + struct { + unsigned CVR0:1; + unsigned CVR1:1; + unsigned CVR2:1; + unsigned CVR3:1; + unsigned CVREF:1; + unsigned CVRR:1; + unsigned CVROE:1; + unsigned CVREN:1; + }; +} __CVRCONbits_t; + +extern volatile __CVRCONbits_t at 0xfb5 CVRCONbits; + +extern sfr at 0xfb7 CCP3CON; +typedef union { + struct { + unsigned CCP3M0:1; + unsigned CCP3M1:1; + unsigned CCP3M2:1; + unsigned CCP3M3:1; + unsigned DCCP3Y:1; + unsigned DCCP3X:1; + unsigned :1; + unsigned :1; + }; +} __CCP3CONbits_t; + +extern volatile __CCP3CONbits_t at 0xfb7 CCP3CONbits; + +extern sfr at 0xfb8 CCPR3L; +extern sfr at 0xfb9 CCPR3H; +extern sfr at 0xfba CCP2CON; +typedef union { + struct { + unsigned CCP2M0:1; + unsigned CCP2M1:1; + unsigned CCP2M2:1; + unsigned CCP2M3:1; + unsigned DCCP2Y:1; + unsigned DCCP2X:1; + unsigned :1; + unsigned :1; + }; +} __CCP2CONbits_t; + +extern volatile __CCP2CONbits_t at 0xfba CCP2CONbits; + +extern sfr at 0xfbb CCPR2L; +extern sfr at 0xfbc CCPR2H; +extern sfr at 0xfbd CCP1CON; +typedef union { + struct { + unsigned CCP1M0:1; + unsigned CCP1M1:1; + unsigned CCP1M2:1; + unsigned CCP1M3:1; + unsigned DCCP1Y:1; + unsigned DCCP1X:1; + unsigned :1; + unsigned :1; + }; +} __CCP1CONbits_t; + +extern volatile __CCP1CONbits_t at 0xfbd CCP1CONbits; + +extern sfr at 0xfbe CCPR1L; +extern sfr at 0xfbf CCPR1H; +extern sfr at 0xfc0 ADCON2; +typedef union { + struct { + unsigned ADCS0:1; + unsigned ADCS1:1; + unsigned ADCS2:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned ADFM:1; + }; +} __ADCON2bits_t; + +extern volatile __ADCON2bits_t at 0xfc0 ADCON2bits; + +extern sfr at 0xfc1 ADCON1; +typedef union { + struct { + unsigned PCFG0:1; + unsigned PCFG1:1; + unsigned PCFG2:1; + unsigned PCFG3:1; + unsigned VCFG0:1; + unsigned VCFG1:1; + unsigned :1; + unsigned :1; + }; +} __ADCON1bits_t; + +extern volatile __ADCON1bits_t at 0xfc1 ADCON1bits; + +extern sfr at 0xfc2 ADCON0; +typedef union { + struct { + unsigned ADON:1; + unsigned GO:1; + unsigned CHS0:1; + unsigned CHS1:1; + unsigned CHS2:1; + unsigned CHS3:1; + unsigned :1; + unsigned :1; + }; +} __ADCON0bits_t; + +extern volatile __ADCON0bits_t at 0xfc2 ADCON0bits; + +extern sfr at 0xfc3 ADRESL; +extern sfr at 0xfc4 ADRESH; +extern sfr at 0xfc5 SSPCON2; +typedef union { + struct { + unsigned SEN:1; + unsigned RSEN:1; + unsigned PEN:1; + unsigned RCEN:1; + unsigned ACKEN:1; + unsigned ACKDT:1; + unsigned ACKSTAT:1; + unsigned GCEN:1; + }; +} __SSPCON2bits_t; + +extern volatile __SSPCON2bits_t at 0xfc5 SSPCON2bits; + +extern sfr at 0xfc6 SSPCON1; +typedef union { + struct { + unsigned SSPM0:1; + unsigned SSPM1:1; + unsigned SSPM2:1; + unsigned SSPM3:1; + unsigned CKP:1; + unsigned SSPEN:1; + unsigned SSPOV:1; + unsigned WCOL:1; + }; +} __SSPCON1bits_t; + +extern volatile __SSPCON1bits_t at 0xfc6 SSPCON1bits; + +extern sfr at 0xfc7 SSPSTAT; +typedef union { + struct { + unsigned BF:1; + unsigned UA:1; + unsigned R_W:1; + unsigned S:1; + unsigned P:1; + unsigned D_A:1; + unsigned CKE:1; + unsigned SMP:1; + }; +} __SSPSTATbits_t; + +extern volatile __SSPSTATbits_t at 0xfc7 SSPSTATbits; + +extern sfr at 0xfc8 SSPADD; +extern sfr at 0xfc9 SSPBUF; +extern sfr at 0xfca T2CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T2CONbits_t; + +extern volatile __T2CONbits_t at 0xfca T2CONbits; + +extern sfr at 0xfcb PR2; +extern sfr at 0xfcc TMR2; +extern sfr at 0xfcd T1CON; +typedef union { + struct { + unsigned TMR1ON:1; + unsigned TMR1CS:1; + unsigned NOT_T1SYNC:1; + unsigned T1OSCEN:1; + unsigned T1CKPS0:1; + unsigned T1CKPS1:1; + unsigned :1; + unsigned RD16:1; + }; +} __T1CONbits_t; + +extern volatile __T1CONbits_t at 0xfcd T1CONbits; + +extern sfr at 0xfce TMR1L; +extern sfr at 0xfcf TMR1H; +extern sfr at 0xfd0 RCON; +typedef union { + struct { + unsigned BOR:1; + unsigned POR:1; + unsigned PD:1; + unsigned TO:1; + unsigned RI:1; + unsigned :1; + unsigned :1; + unsigned IPEN:1; + }; +} __RCONbits_t; + +extern volatile __RCONbits_t at 0xfd0 RCONbits; + +extern sfr at 0xfd1 WDTCON; +typedef union { + struct { + unsigned SWDTEN:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned SWDTE:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __WDTCONbits_t; + +extern volatile __WDTCONbits_t at 0xfd1 WDTCONbits; + +extern sfr at 0xfd2 LVDCON; +typedef union { + struct { + unsigned LVDL0:1; + unsigned LVDL1:1; + unsigned LVDL2:1; + unsigned LVDL3:1; + unsigned LVDEN:1; + unsigned VRST:1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned LVV0:1; + unsigned LVV1:1; + unsigned LVV2:1; + unsigned LVV3:1; + unsigned :1; + unsigned BGST:1; + unsigned :1; + unsigned :1; + }; +} __LVDCONbits_t; + +extern volatile __LVDCONbits_t at 0xfd2 LVDCONbits; + +extern sfr at 0xfd3 OSCCON; +typedef union { + struct { + unsigned SCS:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __OSCCONbits_t; + +extern volatile __OSCCONbits_t at 0xfd3 OSCCONbits; + +extern sfr at 0xfd5 T0CON; +extern sfr at 0xfd6 TMR0L; +extern sfr at 0xfd7 TMR0H; +extern sfr at 0xfd8 STATUS; +typedef union { + struct { + unsigned C:1; + unsigned DC:1; + unsigned Z:1; + unsigned OV:1; + unsigned N:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __STATUSbits_t; + +extern volatile __STATUSbits_t at 0xfd8 STATUSbits; + +extern sfr at 0xfd9 FSR2L; +extern sfr at 0xfda FSR2H; +extern sfr at 0xfdb PLUSW2; +extern sfr at 0xfdc PREINC2; +extern sfr at 0xfdd POSTDEC2; +extern sfr at 0xfde POSTINC2; +extern sfr at 0xfdf INDF2; +extern sfr at 0xfe0 BSR; +extern sfr at 0xfe1 FSR1L; +extern sfr at 0xfe2 FSR1H; +extern sfr at 0xfe3 PLUSW1; +extern sfr at 0xfe4 PREINC1; +extern sfr at 0xfe5 POSTDEC1; +extern sfr at 0xfe6 POSTINC1; +extern sfr at 0xfe7 INDF1; +extern sfr at 0xfe8 WREG; +extern sfr at 0xfe9 FSR0L; +extern sfr at 0xfea FSR0H; +extern sfr at 0xfeb PLUSW0; +extern sfr at 0xfec PREINC0; +extern sfr at 0xfed POSTDEC0; +extern sfr at 0xfee POSTINC0; +extern sfr at 0xfef INDF0; +extern sfr at 0xff0 INTCON3; +typedef union { + struct { + unsigned INT1F:1; + unsigned INT2F:1; + unsigned INT3F:1; + unsigned INT1E:1; + unsigned INT2E:1; + unsigned INT3E:1; + unsigned INT1P:1; + unsigned INT2P:1; + }; + + struct { + unsigned INT1IF:1; + unsigned INT2IF:1; + unsigned INT3IF:1; + unsigned INT1IE:1; + unsigned INT2IE:1; + unsigned INT3IE:1; + unsigned INT1IP:1; + unsigned INT2IP:1; + }; +} __INTCON3bits_t; + +extern volatile __INTCON3bits_t at 0xff0 INTCON3bits; + +extern sfr at 0xff1 INTCON2; +typedef union { + struct { + unsigned RBIP:1; + unsigned INT3P:1; + unsigned T0IP:1; + unsigned INTEDG3:1; + unsigned INTEDG2:1; + unsigned INTEDG1:1; + unsigned INTEDG0:1; + unsigned RBPU:1; + }; +} __INTCON2bits_t; + +extern volatile __INTCON2bits_t at 0xff1 INTCON2bits; + +extern sfr at 0xff2 INTCON; +typedef union { + struct { + unsigned RBIF:1; + unsigned INT0F:1; + unsigned T0IF:1; + unsigned RBIE:1; + unsigned INT0E:1; + unsigned T0IE:1; + unsigned PEIE:1; + unsigned GIE:1; + }; +} __INTCONbits_t; + +extern volatile __INTCONbits_t at 0xff2 INTCONbits; + +extern sfr at 0xff3 PRODL; +extern sfr at 0xff4 PRODH; +extern sfr at 0xff5 TABLAT; +extern sfr at 0xff6 TBLPTRL; +extern sfr at 0xff7 TBLPTRH; +extern sfr at 0xff8 TBLPTRU; +extern sfr at 0xff9 PCL; +extern sfr at 0xffa PCLATH; +extern sfr at 0xffb PCLATU; +extern sfr at 0xffc STKPTR; +typedef union { + struct { + unsigned STKPTR0:1; + unsigned STKPTR1:1; + unsigned STKPTR2:1; + unsigned STKPTR3:1; + unsigned STKPTR4:1; + unsigned :1; + unsigned STKUNF:1; + unsigned STKFUL:1; + }; +} __STKPTRbits_t; + +extern volatile __STKPTRbits_t at 0xffc STKPTRbits; + +extern sfr at 0xffd TOSL; +extern sfr at 0xffe TOSH; +extern sfr at 0xfff TOSU; + + +/* Configuration registers locations */ +#define __CONFIG0H 0x300001 +#define __CONFIG1L 0x300002 +#define __CONFIG1H 0x300003 +#define __CONFIG2L 0x300004 +#define __CONFIG2H 0x300005 +#define __CONFIG4L 0x300008 +#define __CONFIG4H 0x300009 +#define __CONFIG5L 0x30000A +#define __CONFIG5H 0x30000B +#define __CONFIG6L 0x30000C +#define __CONFIG6H 0x30000D + + + +/* Oscillator 0H options */ +#define _OSC_RC_OSC2_0H 0xFF /* RC-OSC2 as RA6 */ +#define _OSC_HS_PLL_0H 0xFE /* HS-PLL Enabled */ +#define _OSC_EC_OSC2_RA6_0H 0xFD /* EC-OSC2 as RA6 */ +#define _OSC_EC_OSC2_Clock_Out_0H 0xFC /* EC-OSC2 as Clock_Out */ +#define _OSC_RC_0H 0xFB /* RC */ +#define _OSC_HS_0H 0xFA /* HS */ +#define _OSC_XT_0H 0xF9 /* XT */ +#define _OSC_LP_0H 0xF8 /* LP */ + +/* Osc. Switch Enable 0H options */ +#define _OSCS_OFF_0H 0xFF /* Disabled */ +#define _OSCS_ON_0H 0xDF /* Enabled */ + +/* Power Up Timer 1L options */ +#define _PUT_OFF_1L 0xFF /* Disabled */ +#define _PUT_ON_1L 0xFE /* Enabled */ + +/* Brown Out Detect 1L options */ +#define _BODEN_ON_1L 0xFF /* Enabled */ +#define _BODEN_OFF_1L 0xFD /* Disabled */ + +/* Brown Out Voltage 1L options */ +#define _BODENV_2_5V_1L 0xFF /* 2.5V */ +#define _BODENV_2_7V_1L 0xFB /* 2.7V */ +#define _BODENV_4_2V_1L 0xF7 /* 4.2V */ +#define _BODENV_4_5V_1L 0xF3 /* 4.5V */ + +/* Watchdog Timer 1H options */ +#define _WDT_ON_1H 0xFF /* Enabled */ +#define _WDT_OFF_1H 0xFE /* Disabled */ + +/* Watchdog Postscaler 1H options */ +#define _WDTPS_1_128_1H 0xFF /* 1:128 */ +#define _WDTPS_1_64_1H 0xFD /* 1:64 */ +#define _WDTPS_1_32_1H 0xFB /* 1:32 */ +#define _WDTPS_1_16_1H 0xF9 /* 1:16 */ +#define _WDTPS_1_8_1H 0xF7 /* 1:8 */ +#define _WDTPS_1_4_1H 0xF5 /* 1:4 */ +#define _WDTPS_1_2_1H 0xF3 /* 1:2 */ +#define _WDTPS_1_1_1H 0xF1 /* 1:1 */ + +/* Processor Mode 2L options */ +#define _PMODE_MICROCONTROLLER_2L 0xFF /* Microcontroller */ +#define _PMODE_MICROPROCESSOR__2L 0xFE /* Microprocessor */ +#define _PMODE_MICROPROCESSOR_w_Boot_2L 0xFD /* Microprocessor w_Boot */ +#define _PMODE_EXT_2L 0xFC /* Ext Microcontroller */ + +/* External Bus Wait 2L options */ +#define _WAIT_OFF_2L 0xFF /* Disabled */ +#define _WAIT_ON_2L 0x7F /* Enabled */ + +/* CCP2 Mux 2H options */ +#define _CCP2MUX_RC1_2H 0xFF /* RC1 */ +#define _CCP2MUX_RE7_MICROCONTROLLER__RB3_2H 0xFE /* RE7(Microcontroller)/RB3 */ + +/* Timer1 OSC 2H options */ +#define _T1OSCMX_LOW_2H 0xFD /* Low Power */ + +/* Low Voltage Program 2H options */ +#define _LVP_ON_2H 0xFF /* Enabled */ +#define _LVP_OFF_2H 0xFB /* Disabled */ + +/* Background Debug 2H options */ +#define _BACKBUG_OFF_2H 0xFF /* Disabled */ +#define _BACKBUG_ON_2H 0x7F /* Enabled */ + +/* Stack Overflow Reset 2H options */ +#define _STVR_ON_2H 0xFF /* Enabled */ +#define _STVR_OFF_2H 0xFE /* Disabled */ + +/* Code Protect 00800-01FFF 4L options */ +#define _CP_0_OFF_4L 0xFF /* Disabled */ +#define _CP_0_ON_4L 0xFE /* Enabled */ + +/* Code Protect 02000-03FFF 4L options */ +#define _CP_1_OFF_4L 0xFF /* Disabled */ +#define _CP_1_ON_4L 0xFD /* Enabled */ + +/* Code Protect 04000-05FFF 4L options */ +#define _CP_2_OFF_4L 0xFF /* Disabled */ +#define _CP_2_ON_4L 0xFB /* Enabled */ + +/* Code Protect 06000-07FFF 4L options */ +#define _CP_3_OFF_4L 0xFF /* Disabled */ +#define _CP_3_ON_4L 0xF7 /* Enabled */ + +/* Data EE Read Protect 4H options */ +#define _CPD_OFF_4H 0xFF /* Disabled */ +#define _CPD_ON_4H 0x7F /* Enabled */ + +/* Code Protect Boot 4H options */ +#define _CPB_OFF_4H 0xFF /* Disabled */ +#define _CPB_ON_4H 0xBF /* Enabled */ + +/* Table Write Protect 00800-01FFF 5L options */ +#define _WRT_0_OFF_5L 0xFF /* Disabled */ +#define _WRT_0_ON_5L 0xFE /* Enabled */ + +/* Table Write Protect 02000-03FFF 5L options */ +#define _WRT_1_OFF_5L 0xFF /* Disabled */ +#define _WRT_1_ON_5L 0xFD /* Enabled */ + +/* Table Write Protect 04000-05FFF 5L options */ +#define _WRT_2_OFF_5L 0xFF /* Disabled */ +#define _WRT_2_ON_5L 0xFB /* Enabled */ + +/* Table Write Protect 06000-07FFF 5L options */ +#define _WRT_3_OFF_5L 0xFF /* Disabled */ +#define _WRT_3_ON_5L 0xF7 /* Enabled */ + +/* Data EE Write Protect 5H options */ +#define _WRTD_OFF_5H 0xFF /* Disabled */ +#define _WRTD_ON_5H 0x7F /* Enabled */ + +/* Table Write Protect Boot 5H options */ +#define _WRTB_OFF_5H 0xFF /* Disabled */ +#define _WRTB_ON_5H 0xBF /* Enabled */ + +/* Config. Write Protect 5H options */ +#define _WRTC_OFF_5H 0xFF /* Disabled */ +#define _WRTC_ON_5H 0xDF /* Enabled */ + +/* Table Read Protect 00800-01FFF 6L options */ +#define _EBTR_0_OFF_6L 0xFF /* Disabled */ +#define _EBTR_0_ON_6L 0xFE /* Enabled */ + +/* Table Read Protect 02000-03FFF 6L options */ +#define _EBTR_1_OFF_6L 0xFF /* Disabled */ +#define _EBTR_1_ON_6L 0xFD /* Enabled */ + +/* Table Read Protect 04000-05FFF 6L options */ +#define _EBTR_2_OFF_6L 0xFF /* Disabled */ +#define _EBTR_2_ON_6L 0xFB /* Enabled */ + +/* Table Read Protect 06000-07FFF 6L options */ +#define _EBTR_3_OFF_6L 0xFF /* Disabled */ +#define _EBTR_3_ON_6L 0xF7 /* Enabled */ + +/* Table Read Protect Boot 6H options */ +#define _EBTRB_OFF_6H 0xFF /* Disabled */ +#define _EBTRB_ON_6H 0xBF /* Enabled */ + + +#endif diff --git a/device/include/pic16/pic18f8620.h b/device/include/pic16/pic18f8620.h new file mode 100644 index 00000000..6892b636 --- /dev/null +++ b/device/include/pic16/pic18f8620.h @@ -0,0 +1,1483 @@ + +/* + * pic18f8620.h - PIC18F8620 Device Library Header + * + * This file is part of the GNU PIC Library. + * + * January, 2004 + * The GNU PIC Library is maintained by, + * Vangelis Rokas + * + * $Id$ + * + */ + +#ifndef __PIC18F8620_H__ +#define __PIC18F8620_H__ + +extern sfr at 0xf6b RCSTA2; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTA2bits_t; + +extern volatile __RCSTA2bits_t at 0xf6b RCSTA2bits; + +extern sfr at 0xf6c TXSTA2; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTA2bits_t; + +extern volatile __TXSTA2bits_t at 0xf6c TXSTA2bits; + +extern sfr at 0xf6d TXREG2; +extern sfr at 0xf6e RCREG2; +extern sfr at 0xf6f SPBRG2; +extern sfr at 0xf70 CCP5CON; +typedef union { + struct { + unsigned CCP5M0:1; + unsigned CCP5M1:1; + unsigned CCP5M2:1; + unsigned CCP5M3:1; + unsigned DCCP5Y:1; + unsigned DCCP5X:1; + unsigned :1; + unsigned :1; + }; +} __CCP5CONbits_t; + +extern volatile __CCP5CONbits_t at 0xf70 CCP5CONbits; + +extern sfr at 0xf71 CCPR5L; +extern sfr at 0xf72 CCPR5H; +extern sfr at 0xf73 CCP4CON; +typedef union { + struct { + unsigned CCP4M0:1; + unsigned CCP4M1:1; + unsigned CCP4M2:1; + unsigned CCP4M3:1; + unsigned DCCP4Y:1; + unsigned DCCP4X:1; + unsigned :1; + unsigned :1; + }; +} __CCP4CONbits_t; + +extern volatile __CCP4CONbits_t at 0xf73 CCP4CONbits; + +extern sfr at 0xf74 CCPR4L; +extern sfr at 0xf75 CCPR4H; +extern sfr at 0xf76 T4CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T4CONbits_t; + +extern volatile __T4CONbits_t at 0xf76 T4CONbits; + +extern sfr at 0xf77 PR4; +extern sfr at 0xf78 TMR4; +extern sfr at 0xf80 PORTA; +typedef union { + struct { + unsigned RA0:1; + unsigned RA1:1; + unsigned RA2:1; + unsigned RA3:1; + unsigned RA4:1; + unsigned RA5:1; + unsigned RA6:1; + unsigned :1; + }; + + struct { + unsigned AN0:1; + unsigned AN1:1; + unsigned AN2:1; + unsigned AN3:1; + unsigned :1; + unsigned AN4:1; + unsigned OSC2:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned VREFM:1; + unsigned VREFP:1; + unsigned T0CKI:1; + unsigned SS:1; + unsigned CLK0:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned LVDIN:1; + unsigned :1; + unsigned :1; + }; +} __PORTAbits_t; + +extern volatile __PORTAbits_t at 0xf80 PORTAbits; + +extern sfr at 0xf81 PORTB; +typedef union { + struct { + unsigned RB0:1; + unsigned RB1:1; + unsigned RB2:1; + unsigned RB3:1; + unsigned RB4:1; + unsigned RB5:1; + unsigned RB6:1; + unsigned RB7:1; + }; + + struct { + unsigned INT0:1; + unsigned INT1:1; + unsigned INT2:1; + unsigned INT3:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTBbits_t; + +extern volatile __PORTBbits_t at 0xf81 PORTBbits; + +extern sfr at 0xf82 PORTC; +typedef union { + struct { + unsigned RC0:1; + unsigned RC1:1; + unsigned RC2:1; + unsigned RC3:1; + unsigned RC4:1; + unsigned RC5:1; + unsigned RC6:1; + unsigned RC7:1; + }; + + struct { + unsigned T1OSO:1; + unsigned T1OSI:1; + unsigned :1; + unsigned SCK:1; + unsigned SDI:1; + unsigned SDO:1; + unsigned TX:1; + unsigned RX:1; + }; + + struct { + unsigned T1CKI:1; + unsigned CCP2:1; + unsigned CCP1:1; + unsigned SCL:1; + unsigned SDA:1; + unsigned :1; + unsigned CK:1; + unsigned DT:1; + }; +} __PORTCbits_t; + +extern volatile __PORTCbits_t at 0xf82 PORTCbits; + +extern sfr at 0xf83 PORTD; +typedef union { + struct { + unsigned RD0:1; + unsigned RD1:1; + unsigned RD2:1; + unsigned RD3:1; + unsigned RD4:1; + unsigned RD5:1; + unsigned RD6:1; + unsigned RD7:1; + }; + + struct { + unsigned AD0:1; + unsigned AD1:1; + unsigned AD2:1; + unsigned AD3:1; + unsigned AD4:1; + unsigned AD5:1; + unsigned AD6:1; + unsigned AD7:1; + }; +} __PORTDbits_t; + +extern volatile __PORTDbits_t at 0xf83 PORTDbits; + +extern sfr at 0xf84 PORTE; +typedef union { + struct { + unsigned RE0:1; + unsigned RE1:1; + unsigned RE2:1; + unsigned RE3:1; + unsigned RE4:1; + unsigned RE5:1; + unsigned RE6:1; + unsigned RE7:1; + }; + + struct { + unsigned ALE:1; + unsigned OE:1; + unsigned WRL:1; + unsigned WRH:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned CCP2:1; + }; + + struct { + unsigned AN5:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTEbits_t; + +extern volatile __PORTEbits_t at 0xf84 PORTEbits; + +extern sfr at 0xf85 PORTF; +typedef union { + struct { + unsigned RF0:1; + unsigned RF1:1; + unsigned RF2:1; + unsigned RF3:1; + unsigned RF4:1; + unsigned RF5:1; + unsigned RF6:1; + unsigned RF7:1; + }; +} __PORTFbits_t; + +extern volatile __PORTFbits_t at 0xf85 PORTFbits; + +extern sfr at 0xf86 PORTG; +typedef union { + struct { + unsigned RG0:1; + unsigned RG1:1; + unsigned RG2:1; + unsigned RG3:1; + unsigned RG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTGbits_t; + +extern volatile __PORTGbits_t at 0xf86 PORTGbits; + +extern sfr at 0xf87 PORTH; +typedef union { + struct { + unsigned RH0:1; + unsigned RH1:1; + unsigned RH2:1; + unsigned RH3:1; + unsigned RH4:1; + unsigned RH5:1; + unsigned RH6:1; + unsigned RH7:1; + }; +} __PORTHbits_t; + +extern volatile __PORTHbits_t at 0xf87 PORTHbits; + +extern sfr at 0xf88 PORTJ; +typedef union { + struct { + unsigned RJ0:1; + unsigned RJ1:1; + unsigned RJ2:1; + unsigned RJ3:1; + unsigned RJ4:1; + unsigned RJ5:1; + unsigned RJ6:1; + unsigned RJ7:1; + }; +} __PORTJbits_t; + +extern volatile __PORTJbits_t at 0xf88 PORTJbits; + +extern sfr at 0xf89 LATA; +typedef union { + struct { + unsigned LATA0:1; + unsigned LATA1:1; + unsigned LATA2:1; + unsigned LATA3:1; + unsigned LATA4:1; + unsigned LATA5:1; + unsigned LATA6:1; + unsigned :1; + }; +} __LATAbits_t; + +extern volatile __LATAbits_t at 0xf89 LATAbits; + +extern sfr at 0xf8a LATB; +typedef union { + struct { + unsigned LATB0:1; + unsigned LATB1:1; + unsigned LATB2:1; + unsigned LATB3:1; + unsigned LATB4:1; + unsigned LATB5:1; + unsigned LATB6:1; + unsigned LATB7:1; + }; +} __LATBbits_t; + +extern volatile __LATBbits_t at 0xf8a LATBbits; + +extern sfr at 0xf8b LATC; +typedef union { + struct { + unsigned LATC0:1; + unsigned LATC1:1; + unsigned LATC2:1; + unsigned LATC3:1; + unsigned LATC4:1; + unsigned LATC5:1; + unsigned LATC6:1; + unsigned LATC7:1; + }; +} __LATCbits_t; + +extern volatile __LATCbits_t at 0xf8b LATCbits; + +extern sfr at 0xf8c LATD; +typedef union { + struct { + unsigned LATD0:1; + unsigned LATD1:1; + unsigned LATD2:1; + unsigned LATD3:1; + unsigned LATD4:1; + unsigned LATD5:1; + unsigned LATD6:1; + unsigned LATD7:1; + }; +} __LATDbits_t; + +extern volatile __LATDbits_t at 0xf8c LATDbits; + +extern sfr at 0xf8d LATE; +typedef union { + struct { + unsigned LATE0:1; + unsigned LATE1:1; + unsigned LATE2:1; + unsigned LATE3:1; + unsigned LATE4:1; + unsigned LATE5:1; + unsigned LATE6:1; + unsigned LATE7:1; + }; +} __LATEbits_t; + +extern volatile __LATEbits_t at 0xf8d LATEbits; + +extern sfr at 0xf8e LATF; +typedef union { + struct { + unsigned LATF0:1; + unsigned LATF1:1; + unsigned LATF2:1; + unsigned LATF3:1; + unsigned LATF4:1; + unsigned LATF5:1; + unsigned LATF6:1; + unsigned LATF7:1; + }; +} __LATFbits_t; + +extern volatile __LATFbits_t at 0xf8e LATFbits; + +extern sfr at 0xf8f LATG; +typedef union { + struct { + unsigned LATG0:1; + unsigned LATG1:1; + unsigned LATG2:1; + unsigned LATG3:1; + unsigned LATG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __LATGbits_t; + +extern volatile __LATGbits_t at 0xf8f LATGbits; + +extern sfr at 0xf90 LATH; +typedef union { + struct { + unsigned LATH0:1; + unsigned LATH1:1; + unsigned LATH2:1; + unsigned LATH3:1; + unsigned LATH4:1; + unsigned LATH5:1; + unsigned LATH6:1; + unsigned LATH7:1; + }; +} __LATHbits_t; + +extern volatile __LATHbits_t at 0xf90 LATHbits; + +extern sfr at 0xf91 LATJ; +typedef union { + struct { + unsigned LATJ0:1; + unsigned LATJ1:1; + unsigned LATJ2:1; + unsigned LATJ3:1; + unsigned LATJ4:1; + unsigned LATJ5:1; + unsigned LATJ6:1; + unsigned LATJ7:1; + }; +} __LATJbits_t; + +extern volatile __LATJbits_t at 0xf91 LATJbits; + +extern sfr at 0xf92 TRISA; +typedef union { + struct { + unsigned TRISA0:1; + unsigned TRISA1:1; + unsigned TRISA2:1; + unsigned TRISA3:1; + unsigned TRISA4:1; + unsigned TRISA5:1; + unsigned TRISA6:1; + unsigned :1; + }; +} __TRISAbits_t; + +extern volatile __TRISAbits_t at 0xf92 TRISAbits; + +extern sfr at 0xf93 TRISB; +typedef union { + struct { + unsigned TRISB0:1; + unsigned TRISB1:1; + unsigned TRISB2:1; + unsigned TRISB3:1; + unsigned TRISB4:1; + unsigned TRISB5:1; + unsigned TRISB6:1; + unsigned TRISB7:1; + }; +} __TRISBbits_t; + +extern volatile __TRISBbits_t at 0xf93 TRISBbits; + +extern sfr at 0xf94 TRISC; +typedef union { + struct { + unsigned TRISC0:1; + unsigned TRISC1:1; + unsigned TRISC2:1; + unsigned TRISC3:1; + unsigned TRISC4:1; + unsigned TRISC5:1; + unsigned TRISC6:1; + unsigned TRISC7:1; + }; +} __TRISCbits_t; + +extern volatile __TRISCbits_t at 0xf94 TRISCbits; + +extern sfr at 0xf95 TRISD; +typedef union { + struct { + unsigned TRISD0:1; + unsigned TRISD1:1; + unsigned TRISD2:1; + unsigned TRISD3:1; + unsigned TRISD4:1; + unsigned TRISD5:1; + unsigned TRISD6:1; + unsigned TRISD7:1; + }; +} __TRISDbits_t; + +extern volatile __TRISDbits_t at 0xf95 TRISDbits; + +extern sfr at 0xf96 TRISE; +typedef union { + struct { + unsigned TRISE0:1; + unsigned TRISE1:1; + unsigned TRISE2:1; + unsigned TRISE3:1; + unsigned TRISE4:1; + unsigned TRISE5:1; + unsigned TRISE6:1; + unsigned TRISE7:1; + }; +} __TRISEbits_t; + +extern volatile __TRISEbits_t at 0xf96 TRISEbits; + +extern sfr at 0xf97 TRISF; +typedef union { + struct { + unsigned TRISF0:1; + unsigned TRISF1:1; + unsigned TRISF2:1; + unsigned TRISF3:1; + unsigned TRISF4:1; + unsigned TRISF5:1; + unsigned TRISF6:1; + unsigned TRISF7:1; + }; +} __TRISFbits_t; + +extern volatile __TRISFbits_t at 0xf97 TRISFbits; + +extern sfr at 0xf98 TRISG; +typedef union { + struct { + unsigned TRISG0:1; + unsigned TRISG1:1; + unsigned TRISG2:1; + unsigned TRISG3:1; + unsigned TRISG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __TRISGbits_t; + +extern volatile __TRISGbits_t at 0xf98 TRISGbits; + +extern sfr at 0xf99 TRISH; +typedef union { + struct { + unsigned TRISH0:1; + unsigned TRISH1:1; + unsigned TRISH2:1; + unsigned TRISH3:1; + unsigned TRISH4:1; + unsigned TRISH5:1; + unsigned TRISH6:1; + unsigned TRISH7:1; + }; +} __TRISHbits_t; + +extern volatile __TRISHbits_t at 0xf99 TRISHbits; + +extern sfr at 0xf9a TRISJ; +typedef union { + struct { + unsigned TRISJ0:1; + unsigned TRISJ1:1; + unsigned TRISJ2:1; + unsigned TRISJ3:1; + unsigned TRISJ4:1; + unsigned TRISJ5:1; + unsigned TRISJ6:1; + unsigned TRISJ7:1; + }; +} __TRISJbits_t; + +extern volatile __TRISJbits_t at 0xf9a TRISJbits; + +extern sfr at 0xf9c MEMCON; +typedef union { + struct { + unsigned WM0:1; + unsigned WM1:1; + unsigned :1; + unsigned :1; + unsigned WAIT0:1; + unsigned WAIT1:1; + unsigned :1; + unsigned EBDIS:1; + }; +} __MEMCONbits_t; + +extern volatile __MEMCONbits_t at 0xf9c MEMCONbits; + +extern sfr at 0xf9d PIE1; +typedef union { + struct { + unsigned TMR1IE:1; + unsigned TMR2IE:1; + unsigned CCP1IE:1; + unsigned SSPIE:1; + unsigned TXIE:1; + unsigned RCIE:1; + unsigned ADIE:1; + unsigned PSPIE:1; + }; +} __PIE1bits_t; + +extern volatile __PIE1bits_t at 0xf9d PIE1bits; + +extern sfr at 0xf9e PIR1; +typedef union { + struct { + unsigned TMR1IF:1; + unsigned TMR2IF:1; + unsigned CCP1IF:1; + unsigned SSPIF:1; + unsigned TXIF:1; + unsigned RCIF:1; + unsigned ADIF:1; + unsigned PSPIF:1; + }; +} __PIR1bits_t; + +extern volatile __PIR1bits_t at 0xf9e PIR1bits; + +extern sfr at 0xf9f IPR1; +typedef union { + struct { + unsigned TMR1IP:1; + unsigned TMR2IP:1; + unsigned CCP1IP:1; + unsigned SSPIP:1; + unsigned TXIP:1; + unsigned RCIP:1; + unsigned ADIP:1; + unsigned PSPIP:1; + }; +} __IPR1bits_t; + +extern volatile __IPR1bits_t at 0xf9f IPR1bits; + +extern sfr at 0xfa0 PIE2; +typedef union { + struct { + unsigned CCP2IE:1; + unsigned TMR3IE:1; + unsigned LVDIE:1; + unsigned BCLIE:1; + unsigned EEIE:1; + unsigned :1; + unsigned CMIE:1; + unsigned :1; + }; +} __PIE2bits_t; + +extern volatile __PIE2bits_t at 0xfa0 PIE2bits; + +extern sfr at 0xfa1 PIR2; +typedef union { + struct { + unsigned CCP2IF:1; + unsigned TMR3IF:1; + unsigned LVDIF:1; + unsigned BCLIF:1; + unsigned EEIF:1; + unsigned :1; + unsigned CMIF:1; + unsigned :1; + }; +} __PIR2bits_t; + +extern volatile __PIR2bits_t at 0xfa1 PIR2bits; + +extern sfr at 0xfa2 IPR2; +typedef union { + struct { + unsigned CCP2IP:1; + unsigned TMR3IP:1; + unsigned LVDIP:1; + unsigned BCLIP:1; + unsigned EEIP:1; + unsigned :1; + unsigned CMIP:1; + unsigned :1; + }; +} __IPR2bits_t; + +extern volatile __IPR2bits_t at 0xfa2 IPR2bits; + +extern sfr at 0xfa3 PIE3; +typedef union { + struct { + unsigned CCP3IE:1; + unsigned CCP4IE:1; + unsigned CCP5IE:1; + unsigned TMR4IE:1; + unsigned TX2IE:1; + unsigned RC2IE:1; + unsigned :1; + unsigned :1; + }; +} __PIE3bits_t; + +extern volatile __PIE3bits_t at 0xfa3 PIE3bits; + +extern sfr at 0xfa4 PIR3; +typedef union { + struct { + unsigned CCP3IF:1; + unsigned CCP4IF:1; + unsigned CCP5IF:1; + unsigned TMR4IF:1; + unsigned TX2IF:1; + unsigned RC2IF:1; + unsigned :1; + unsigned :1; + }; +} __PIR3bits_t; + +extern volatile __PIR3bits_t at 0xfa4 PIR3bits; + +extern sfr at 0xfa5 IPR3; +typedef union { + struct { + unsigned CCP3IP:1; + unsigned CCP4IP:1; + unsigned CCP5IP:1; + unsigned TMR4IP:1; + unsigned TX2IP:1; + unsigned RC2IP:1; + unsigned :1; + unsigned :1; + }; +} __IPR3bits_t; + +extern volatile __IPR3bits_t at 0xfa5 IPR3bits; + +extern sfr at 0xfa6 EECON1; +typedef union { + struct { + unsigned RD:1; + unsigned WR:1; + unsigned WREN:1; + unsigned WRERR:1; + unsigned FREE:1; + unsigned :1; + unsigned CFGS:1; + unsigned EEPGD:1; + }; +} __EECON1bits_t; + +extern volatile __EECON1bits_t at 0xfa6 EECON1bits; + +extern sfr at 0xfa7 EECON2; +extern sfr at 0xfa8 EEDATA; +extern sfr at 0xfa9 EEADR; +extern sfr at 0xfaa EEADRH; +extern sfr at 0xfab RCSTA1; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTA1bits_t; + +extern volatile __RCSTA1bits_t at 0xfab RCSTA1bits; + +extern sfr at 0xfac TXSTA1; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTA1bits_t; + +extern volatile __TXSTA1bits_t at 0xfac TXSTA1bits; + +extern sfr at 0xfad TXREG1; +extern sfr at 0xfae RCREG1; +extern sfr at 0xfaf SPBRG1; +extern sfr at 0xfb0 PSPCON; +typedef union { + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned PSPMODE:1; + unsigned IBOV:1; + unsigned OBF:1; + unsigned IBF:1; + }; +} __PSPCONbits_t; + +extern volatile __PSPCONbits_t at 0xfb0 PSPCONbits; + +extern sfr at 0xfb1 T3CON; +typedef union { + struct { + unsigned TMR3ON:1; + unsigned TMR3CS:1; + unsigned T3SYNC:1; + unsigned T3CCP1:1; + unsigned T3CKPS0:1; + unsigned T3CKPS1:1; + unsigned T3CCP2:1; + unsigned RD16:1; + }; +} __T3CONbits_t; + +extern volatile __T3CONbits_t at 0xfb1 T3CONbits; + +extern sfr at 0xfb2 TMR3L; +extern sfr at 0xfb3 TMR3H; +extern sfr at 0xfb4 CMCON; +typedef union { + struct { + unsigned CM0:1; + unsigned CM1:1; + unsigned CM2:1; + unsigned CIS:1; + unsigned C1INV:1; + unsigned C2INV:1; + unsigned C1OUT:1; + unsigned C2OUT:1; + }; +} __CMCONbits_t; + +extern volatile __CMCONbits_t at 0xfb4 CMCONbits; + +extern sfr at 0xfb5 CVRCON; +typedef union { + struct { + unsigned CVR0:1; + unsigned CVR1:1; + unsigned CVR2:1; + unsigned CVR3:1; + unsigned CVREF:1; + unsigned CVRR:1; + unsigned CVROE:1; + unsigned CVREN:1; + }; +} __CVRCONbits_t; + +extern volatile __CVRCONbits_t at 0xfb5 CVRCONbits; + +extern sfr at 0xfb7 CCP3CON; +typedef union { + struct { + unsigned CCP3M0:1; + unsigned CCP3M1:1; + unsigned CCP3M2:1; + unsigned CCP3M3:1; + unsigned DCCP3Y:1; + unsigned DCCP3X:1; + unsigned :1; + unsigned :1; + }; +} __CCP3CONbits_t; + +extern volatile __CCP3CONbits_t at 0xfb7 CCP3CONbits; + +extern sfr at 0xfb8 CCPR3L; +extern sfr at 0xfb9 CCPR3H; +extern sfr at 0xfba CCP2CON; +typedef union { + struct { + unsigned CCP2M0:1; + unsigned CCP2M1:1; + unsigned CCP2M2:1; + unsigned CCP2M3:1; + unsigned DCCP2Y:1; + unsigned DCCP2X:1; + unsigned :1; + unsigned :1; + }; +} __CCP2CONbits_t; + +extern volatile __CCP2CONbits_t at 0xfba CCP2CONbits; + +extern sfr at 0xfbb CCPR2L; +extern sfr at 0xfbc CCPR2H; +extern sfr at 0xfbd CCP1CON; +typedef union { + struct { + unsigned CCP1M0:1; + unsigned CCP1M1:1; + unsigned CCP1M2:1; + unsigned CCP1M3:1; + unsigned DCCP1Y:1; + unsigned DCCP1X:1; + unsigned :1; + unsigned :1; + }; +} __CCP1CONbits_t; + +extern volatile __CCP1CONbits_t at 0xfbd CCP1CONbits; + +extern sfr at 0xfbe CCPR1L; +extern sfr at 0xfbf CCPR1H; +extern sfr at 0xfc0 ADCON2; +typedef union { + struct { + unsigned ADCS0:1; + unsigned ADCS1:1; + unsigned ADCS2:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned ADFM:1; + }; +} __ADCON2bits_t; + +extern volatile __ADCON2bits_t at 0xfc0 ADCON2bits; + +extern sfr at 0xfc1 ADCON1; +typedef union { + struct { + unsigned PCFG0:1; + unsigned PCFG1:1; + unsigned PCFG2:1; + unsigned PCFG3:1; + unsigned VCFG0:1; + unsigned VCFG1:1; + unsigned :1; + unsigned :1; + }; +} __ADCON1bits_t; + +extern volatile __ADCON1bits_t at 0xfc1 ADCON1bits; + +extern sfr at 0xfc2 ADCON0; +typedef union { + struct { + unsigned ADON:1; + unsigned GO:1; + unsigned CHS0:1; + unsigned CHS1:1; + unsigned CHS2:1; + unsigned CHS3:1; + unsigned :1; + unsigned :1; + }; +} __ADCON0bits_t; + +extern volatile __ADCON0bits_t at 0xfc2 ADCON0bits; + +extern sfr at 0xfc3 ADRESL; +extern sfr at 0xfc4 ADRESH; +extern sfr at 0xfc5 SSPCON2; +typedef union { + struct { + unsigned SEN:1; + unsigned RSEN:1; + unsigned PEN:1; + unsigned RCEN:1; + unsigned ACKEN:1; + unsigned ACKDT:1; + unsigned ACKSTAT:1; + unsigned GCEN:1; + }; +} __SSPCON2bits_t; + +extern volatile __SSPCON2bits_t at 0xfc5 SSPCON2bits; + +extern sfr at 0xfc6 SSPCON1; +typedef union { + struct { + unsigned SSPM0:1; + unsigned SSPM1:1; + unsigned SSPM2:1; + unsigned SSPM3:1; + unsigned CKP:1; + unsigned SSPEN:1; + unsigned SSPOV:1; + unsigned WCOL:1; + }; +} __SSPCON1bits_t; + +extern volatile __SSPCON1bits_t at 0xfc6 SSPCON1bits; + +extern sfr at 0xfc7 SSPSTAT; +typedef union { + struct { + unsigned BF:1; + unsigned UA:1; + unsigned R_W:1; + unsigned S:1; + unsigned P:1; + unsigned D_A:1; + unsigned CKE:1; + unsigned SMP:1; + }; +} __SSPSTATbits_t; + +extern volatile __SSPSTATbits_t at 0xfc7 SSPSTATbits; + +extern sfr at 0xfc8 SSPADD; +extern sfr at 0xfc9 SSPBUF; +extern sfr at 0xfca T2CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T2CONbits_t; + +extern volatile __T2CONbits_t at 0xfca T2CONbits; + +extern sfr at 0xfcb PR2; +extern sfr at 0xfcc TMR2; +extern sfr at 0xfcd T1CON; +typedef union { + struct { + unsigned TMR1ON:1; + unsigned TMR1CS:1; + unsigned NOT_T1SYNC:1; + unsigned T1OSCEN:1; + unsigned T1CKPS0:1; + unsigned T1CKPS1:1; + unsigned :1; + unsigned RD16:1; + }; +} __T1CONbits_t; + +extern volatile __T1CONbits_t at 0xfcd T1CONbits; + +extern sfr at 0xfce TMR1L; +extern sfr at 0xfcf TMR1H; +extern sfr at 0xfd0 RCON; +typedef union { + struct { + unsigned BOR:1; + unsigned POR:1; + unsigned PD:1; + unsigned TO:1; + unsigned RI:1; + unsigned :1; + unsigned :1; + unsigned IPEN:1; + }; +} __RCONbits_t; + +extern volatile __RCONbits_t at 0xfd0 RCONbits; + +extern sfr at 0xfd1 WDTCON; +typedef union { + struct { + unsigned SWDTEN:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned SWDTE:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __WDTCONbits_t; + +extern volatile __WDTCONbits_t at 0xfd1 WDTCONbits; + +extern sfr at 0xfd2 LVDCON; +typedef union { + struct { + unsigned LVDL0:1; + unsigned LVDL1:1; + unsigned LVDL2:1; + unsigned LVDL3:1; + unsigned LVDEN:1; + unsigned VRST:1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned LVV0:1; + unsigned LVV1:1; + unsigned LVV2:1; + unsigned LVV3:1; + unsigned :1; + unsigned BGST:1; + unsigned :1; + unsigned :1; + }; +} __LVDCONbits_t; + +extern volatile __LVDCONbits_t at 0xfd2 LVDCONbits; + +extern sfr at 0xfd3 OSCCON; +typedef union { + struct { + unsigned SCS:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __OSCCONbits_t; + +extern volatile __OSCCONbits_t at 0xfd3 OSCCONbits; + +extern sfr at 0xfd5 T0CON; +extern sfr at 0xfd6 TMR0L; +extern sfr at 0xfd7 TMR0H; +extern sfr at 0xfd8 STATUS; +typedef union { + struct { + unsigned C:1; + unsigned DC:1; + unsigned Z:1; + unsigned OV:1; + unsigned N:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __STATUSbits_t; + +extern volatile __STATUSbits_t at 0xfd8 STATUSbits; + +extern sfr at 0xfd9 FSR2L; +extern sfr at 0xfda FSR2H; +extern sfr at 0xfdb PLUSW2; +extern sfr at 0xfdc PREINC2; +extern sfr at 0xfdd POSTDEC2; +extern sfr at 0xfde POSTINC2; +extern sfr at 0xfdf INDF2; +extern sfr at 0xfe0 BSR; +extern sfr at 0xfe1 FSR1L; +extern sfr at 0xfe2 FSR1H; +extern sfr at 0xfe3 PLUSW1; +extern sfr at 0xfe4 PREINC1; +extern sfr at 0xfe5 POSTDEC1; +extern sfr at 0xfe6 POSTINC1; +extern sfr at 0xfe7 INDF1; +extern sfr at 0xfe8 WREG; +extern sfr at 0xfe9 FSR0L; +extern sfr at 0xfea FSR0H; +extern sfr at 0xfeb PLUSW0; +extern sfr at 0xfec PREINC0; +extern sfr at 0xfed POSTDEC0; +extern sfr at 0xfee POSTINC0; +extern sfr at 0xfef INDF0; +extern sfr at 0xff0 INTCON3; +typedef union { + struct { + unsigned INT1F:1; + unsigned INT2F:1; + unsigned INT3F:1; + unsigned INT1E:1; + unsigned INT2E:1; + unsigned INT3E:1; + unsigned INT1P:1; + unsigned INT2P:1; + }; + + struct { + unsigned INT1IF:1; + unsigned INT2IF:1; + unsigned INT3IF:1; + unsigned INT1IE:1; + unsigned INT2IE:1; + unsigned INT3IE:1; + unsigned INT1IP:1; + unsigned INT2IP:1; + }; +} __INTCON3bits_t; + +extern volatile __INTCON3bits_t at 0xff0 INTCON3bits; + +extern sfr at 0xff1 INTCON2; +typedef union { + struct { + unsigned RBIP:1; + unsigned INT3P:1; + unsigned T0IP:1; + unsigned INTEDG3:1; + unsigned INTEDG2:1; + unsigned INTEDG1:1; + unsigned INTEDG0:1; + unsigned RBPU:1; + }; +} __INTCON2bits_t; + +extern volatile __INTCON2bits_t at 0xff1 INTCON2bits; + +extern sfr at 0xff2 INTCON; +typedef union { + struct { + unsigned RBIF:1; + unsigned INT0F:1; + unsigned T0IF:1; + unsigned RBIE:1; + unsigned INT0E:1; + unsigned T0IE:1; + unsigned PEIE:1; + unsigned GIE:1; + }; +} __INTCONbits_t; + +extern volatile __INTCONbits_t at 0xff2 INTCONbits; + +extern sfr at 0xff3 PRODL; +extern sfr at 0xff4 PRODH; +extern sfr at 0xff5 TABLAT; +extern sfr at 0xff6 TBLPTRL; +extern sfr at 0xff7 TBLPTRH; +extern sfr at 0xff8 TBLPTRU; +extern sfr at 0xff9 PCL; +extern sfr at 0xffa PCLATH; +extern sfr at 0xffb PCLATU; +extern sfr at 0xffc STKPTR; +typedef union { + struct { + unsigned STKPTR0:1; + unsigned STKPTR1:1; + unsigned STKPTR2:1; + unsigned STKPTR3:1; + unsigned STKPTR4:1; + unsigned :1; + unsigned STKUNF:1; + unsigned STKFUL:1; + }; +} __STKPTRbits_t; + +extern volatile __STKPTRbits_t at 0xffc STKPTRbits; + +extern sfr at 0xffd TOSL; +extern sfr at 0xffe TOSH; +extern sfr at 0xfff TOSU; + + +/* Configuration registers locations */ +#define __CONFIG0H 0x300001 +#define __CONFIG1L 0x300002 +#define __CONFIG1H 0x300003 +#define __CONFIG2L 0x300004 +#define __CONFIG2H 0x300005 +#define __CONFIG3L 0x300006 +#define __CONFIG4L 0x300008 +#define __CONFIG4H 0x300009 +#define __CONFIG5L 0x30000A +#define __CONFIG5H 0x30000B +#define __CONFIG6L 0x30000C +#define __CONFIG6H 0x30000D + + + +/* Oscillator 0H options */ +#define _OSC_RC_OSC2_0H 0xFF /* RC-OSC2 as RA6 */ +#define _OSC_HS_PLL_0H 0xFE /* HS-PLL Enabled */ +#define _OSC_EC_OSC2_RA6_0H 0xFD /* EC-OSC2 as RA6 */ +#define _OSC_EC_OSC2_Clock_Out_0H 0xFC /* EC-OSC2 as Clock_Out */ +#define _OSC_RC_0H 0xFB /* RC */ +#define _OSC_HS_0H 0xFA /* HS */ +#define _OSC_XT_0H 0xF9 /* XT */ +#define _OSC_LP_0H 0xF8 /* LP */ + +/* Osc. Switch Enable 0H options */ +#define _OSCS_OFF_0H 0xFF /* Disabled */ +#define _OSCS_ON_0H 0xDF /* Enabled */ + +/* Power Up Timer 1L options */ +#define _PUT_OFF_1L 0xFF /* Disabled */ +#define _PUT_ON_1L 0xFE /* Enabled */ + +/* Brown Out Detect 1L options */ +#define _BODEN_ON_1L 0xFF /* Enabled */ +#define _BODEN_OFF_1L 0xFD /* Disabled */ + +/* Brown Out Voltage 1L options */ +#define _BODENV_2_5V_1L 0xFF /* 2.5V */ +#define _BODENV_2_7V_1L 0xFB /* 2.7V */ +#define _BODENV_4_2V_1L 0xF7 /* 4.2V */ +#define _BODENV_4_5V_1L 0xF3 /* 4.5V */ + +/* Watchdog Timer 1H options */ +#define _WDT_ON_1H 0xFF /* Enabled */ +#define _WDT_OFF_1H 0xFE /* Disabled */ + +/* Watchdog Postscaler 1H options */ +#define _WDTPS_1_128_1H 0xFF /* 1:128 */ +#define _WDTPS_1_64_1H 0xFD /* 1:64 */ +#define _WDTPS_1_32_1H 0xFB /* 1:32 */ +#define _WDTPS_1_16_1H 0xF9 /* 1:16 */ +#define _WDTPS_1_8_1H 0xF7 /* 1:8 */ +#define _WDTPS_1_4_1H 0xF5 /* 1:4 */ +#define _WDTPS_1_2_1H 0xF3 /* 1:2 */ +#define _WDTPS_1_1_1H 0xF1 /* 1:1 */ + +/* Processor Mode 2L options */ +#define _PMODE_MICROCONTROLLER_2L 0xFF /* Microcontroller */ +#define _PMODE_MICROPROCESSOR__2L 0xFE /* Microprocessor */ +#define _PMODE_MICROPROCESSOR_w_Boot_2L 0xFD /* Microprocessor w_Boot */ +#define _PMODE_EXT_2L 0xFC /* Ext Microcontroller */ + +/* External Bus Wait 2L options */ +#define _WAIT_OFF_2L 0xFF /* Disabled */ +#define _WAIT_ON_2L 0x7F /* Enabled */ + +/* CCP2 Mux 2H options */ +#define _CCP2MUX_RC1_2H 0xFF /* RC1 */ +#define _CCP2MUX_RE7_MICROCONTROLLER__RB3_2H 0xFE /* RE7(Microcontroller)/RB3 */ + +/* Low Voltage Program 3L options */ +#define _LVP_ON_3L 0xFF /* Enabled */ +#define _LVP_OFF_3L 0xFB /* Disabled */ + +/* Background Debug 3L options */ +#define _BACKBUG_OFF_3L 0xFF /* Disabled */ +#define _BACKBUG_ON_3L 0x7F /* Enabled */ + +/* Stack Overflow Reset 3L options */ +#define _STVR_ON_3L 0xFF /* Enabled */ +#define _STVR_OFF_3L 0xFE /* Disabled */ + +/* Code Protect 00200-03FFF 4L options */ +#define _CP_0_OFF_4L 0xFF /* Disabled */ +#define _CP_0_ON_4L 0xFE /* Enabled */ + +/* Code Protect 04000-07FFF 4L options */ +#define _CP_1_OFF_4L 0xFF /* Disabled */ +#define _CP_1_ON_4L 0xFD /* Enabled */ + +/* Code Protect 08000-0BFFF 4L options */ +#define _CP_2_OFF_4L 0xFF /* Disabled */ +#define _CP_2_ON_4L 0xFB /* Enabled */ + +/* Code Protect 0C000-0FFFF 4L options */ +#define _CP_3_OFF_4L 0xFF /* Disabled */ +#define _CP_3_ON_4L 0xF7 /* Enabled */ + +/* Data EE Read Protect 4H options */ +#define _CPD_OFF_4H 0xFF /* Disabled */ +#define _CPD_ON_4H 0x7F /* Enabled */ + +/* Code Protect Boot 4H options */ +#define _CPB_OFF_4H 0xFF /* Disabled */ +#define _CPB_ON_4H 0xBF /* Enabled */ + +/* Table Write Protect 00200-03FFF 5L options */ +#define _WRT_0_OFF_5L 0xFF /* Disabled */ +#define _WRT_0_ON_5L 0xFE /* Enabled */ + +/* Table Write Protect 04000-07FFF 5L options */ +#define _WRT_1_OFF_5L 0xFF /* Disabled */ +#define _WRT_1_ON_5L 0xFD /* Enabled */ + +/* Table Write Protect 08000-0BFFF 5L options */ +#define _WRT_2_OFF_5L 0xFF /* Disabled */ +#define _WRT_2_ON_5L 0xFB /* Enabled */ + +/* Table Write Protect 0C000-0FFFF 5L options */ +#define _WRT_3_OFF_5L 0xFF /* Disabled */ +#define _WRT_3_ON_5L 0xF7 /* Enabled */ + +/* Data EE Write Protect 5H options */ +#define _WRTD_OFF_5H 0xFF /* Disabled */ +#define _WRTD_ON_5H 0x7F /* Enabled */ + +/* Table Write Protect Boot 5H options */ +#define _WRTB_OFF_5H 0xFF /* Disabled */ +#define _WRTB_ON_5H 0xBF /* Enabled */ + +/* Config. Write Protect 5H options */ +#define _WRTC_OFF_5H 0xFF /* Disabled */ +#define _WRTC_ON_5H 0xDF /* Enabled */ + +/* Table Read Protect 00200-03FFF 6L options */ +#define _EBTR_0_OFF_6L 0xFF /* Disabled */ +#define _EBTR_0_ON_6L 0xFE /* Enabled */ + +/* Table Read Protect 04000-07FFF 6L options */ +#define _EBTR_1_OFF_6L 0xFF /* Disabled */ +#define _EBTR_1_ON_6L 0xFD /* Enabled */ + +/* Table Read Protect 08000-0BFFF 6L options */ +#define _EBTR_2_OFF_6L 0xFF /* Disabled */ +#define _EBTR_2_ON_6L 0xFB /* Enabled */ + +/* Table Read Protect 0C000-0FFFF 6L options */ +#define _EBTR_3_OFF_6L 0xFF /* Disabled */ +#define _EBTR_3_ON_6L 0xF7 /* Enabled */ + +/* Table Read Protect Boot 6H options */ +#define _EBTRB_OFF_6H 0xFF /* Disabled */ +#define _EBTRB_ON_6H 0xBF /* Enabled */ + + +#endif diff --git a/device/include/pic16/pic18f8680.h b/device/include/pic16/pic18f8680.h new file mode 100644 index 00000000..1c616a10 --- /dev/null +++ b/device/include/pic16/pic18f8680.h @@ -0,0 +1,1993 @@ + +/* + * pic18f8680.h - PIC18F8680 Device Library Header + * + * This file is part of the GNU PIC Library. + * + * January, 2004 + * The GNU PIC Library is maintained by, + * Vangelis Rokas + * + * $Id$ + * + */ + +#ifndef __PIC18F8680_H__ +#define __PIC18F8680_H__ + +extern sfr at 0xf00 RXF0SIDH; +extern sfr at 0xf01 RXF0SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXIDE:1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXF0SIDLbits_t; + +extern volatile __RXF0SIDLbits_t at 0xf01 RXF0SIDLbits; + +extern sfr at 0xf02 RXF0EIDH; +extern sfr at 0xf03 RXF0EIDL; +extern sfr at 0xf04 RXF1SIDH; +extern sfr at 0xf05 RXF1SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXIDE:1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXF1SIDLbits_t; + +extern volatile __RXF1SIDLbits_t at 0xf05 RXF1SIDLbits; + +extern sfr at 0xf06 RXF1EIDH; +extern sfr at 0xf07 RXF1EIDL; +extern sfr at 0xf08 RXF2SIDH; +extern sfr at 0xf09 RXF2SIDL; +extern sfr at 0xf0a RXF2EIDH; +extern sfr at 0xf0b RXF2EIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXIDE:1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXF2EIDLbits_t; + +extern volatile __RXF2EIDLbits_t at 0xf0b RXF2EIDLbits; + +extern sfr at 0xf0c RXF3SIDH; +extern sfr at 0xf0d RXF3SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXIDE:1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXF3SIDLbits_t; + +extern volatile __RXF3SIDLbits_t at 0xf0d RXF3SIDLbits; + +extern sfr at 0xf0e RXF3EIDH; +extern sfr at 0xf0f RXF3EIDL; +extern sfr at 0xf10 RXF4SIDH; +extern sfr at 0xf11 RXF4SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXIDE:1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXF4SIDLbits_t; + +extern volatile __RXF4SIDLbits_t at 0xf11 RXF4SIDLbits; + +extern sfr at 0xf12 RXF4EIDH; +extern sfr at 0xf13 RXF4EIDL; +extern sfr at 0xf14 RXF5SIDH; +extern sfr at 0xf15 RXF5SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXIDE:1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXF5SIDLbits_t; + +extern volatile __RXF5SIDLbits_t at 0xf15 RXF5SIDLbits; + +extern sfr at 0xf16 RXF5EIDH; +extern sfr at 0xf17 RXF5EIDL; +extern sfr at 0xf18 RXM0SIDH; +extern sfr at 0xf19 RXM0SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXM0SIDLbits_t; + +extern volatile __RXM0SIDLbits_t at 0xf19 RXM0SIDLbits; + +extern sfr at 0xf1a RXM0EIDH; +extern sfr at 0xf1b RXM0EIDL; +extern sfr at 0xf1c RXM1SIDH; +extern sfr at 0xf1d RXM1SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXM1SIDLbits_t; + +extern volatile __RXM1SIDLbits_t at 0xf1d RXM1SIDLbits; + +extern sfr at 0xf1e RXM1EIDH; +extern sfr at 0xf1f RXM1EIDL; +extern sfr at 0xf20 TXB2CON; +typedef union { + struct { + unsigned TXPRI0:1; + unsigned TXPRI1:1; + unsigned :1; + unsigned TXREQ:1; + unsigned TXERR:1; + unsigned TXLARB:1; + unsigned TXABT:1; + unsigned :1; + }; +} __TXB2CONbits_t; + +extern volatile __TXB2CONbits_t at 0xf20 TXB2CONbits; + +extern sfr at 0xf21 TXB2SIDH; +extern sfr at 0xf22 TXB2SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXID:1; + unsigned SRR:1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __TXB2SIDLbits_t; + +extern volatile __TXB2SIDLbits_t at 0xf22 TXB2SIDLbits; + +extern sfr at 0xf23 TXB2EIDH; +extern sfr at 0xf24 TXB2EIDL; +extern sfr at 0xf25 TXB2DLC; +typedef union { + struct { + unsigned DLC0:1; + unsigned DLC1:1; + unsigned DLC2:1; + unsigned DLC3:1; + unsigned :1; + unsigned :1; + unsigned RTR:1; + unsigned :1; + }; +} __TXB2DLCbits_t; + +extern volatile __TXB2DLCbits_t at 0xf25 TXB2DLCbits; + +extern sfr at 0xf26 TXB2D0; +extern sfr at 0xf27 TXB2D1; +extern sfr at 0xf28 TXB2D2; +extern sfr at 0xf29 TXB2D3; +extern sfr at 0xf2a TXB2D4; +extern sfr at 0xf2b TXB2D5; +extern sfr at 0xf2c TXB2D6; +extern sfr at 0xf2d TXB2D7; +extern sfr at 0xf2e CANSTATRO3; +extern sfr at 0xf30 TXB1CON; +typedef union { + struct { + unsigned TXPRI0:1; + unsigned TXPRI1:1; + unsigned :1; + unsigned TXREQ:1; + unsigned TXERR:1; + unsigned TXLARB:1; + unsigned TXABT:1; + unsigned :1; + }; +} __TXB1CONbits_t; + +extern volatile __TXB1CONbits_t at 0xf30 TXB1CONbits; + +extern sfr at 0xf31 TXB1SIDH; +extern sfr at 0xf32 TXB1SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXID:1; + unsigned SRR:1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __TXB1SIDLbits_t; + +extern volatile __TXB1SIDLbits_t at 0xf32 TXB1SIDLbits; + +extern sfr at 0xf33 TXB1EIDH; +extern sfr at 0xf34 TXB1EIDL; +extern sfr at 0xf35 TXB1DLC; +typedef union { + struct { + unsigned DLC0:1; + unsigned DLC1:1; + unsigned DLC2:1; + unsigned DLC3:1; + unsigned :1; + unsigned :1; + unsigned RTR:1; + unsigned :1; + }; +} __TXB1DLCbits_t; + +extern volatile __TXB1DLCbits_t at 0xf35 TXB1DLCbits; + +extern sfr at 0xf36 TXB1D0; +extern sfr at 0xf37 TXB1D1; +extern sfr at 0xf38 TXB1D2; +extern sfr at 0xf39 TXB1D3; +extern sfr at 0xf3a TXB1D4; +extern sfr at 0xf3b TXB1D5; +extern sfr at 0xf3c TXB1D6; +extern sfr at 0xf3d TXB1D7; +extern sfr at 0xf3e CANSTATRO2; +extern sfr at 0xf40 TXB0CON; +typedef union { + struct { + unsigned TXPRI0:1; + unsigned TXPRI1:1; + unsigned :1; + unsigned TXREQ:1; + unsigned TXERR:1; + unsigned TXLARB:1; + unsigned TXABT:1; + unsigned :1; + }; +} __TXB0CONbits_t; + +extern volatile __TXB0CONbits_t at 0xf40 TXB0CONbits; + +extern sfr at 0xf41 TXB0SIDH; +extern sfr at 0xf42 TXB0SIDL; +extern sfr at 0xf43 TXB0EIDH; +extern sfr at 0xf44 TXB0EIDL; +extern sfr at 0xf45 TXB0DLC; +typedef union { + struct { + unsigned DLC0:1; + unsigned DLC1:1; + unsigned DLC2:1; + unsigned DLC3:1; + unsigned :1; + unsigned :1; + unsigned RTR:1; + unsigned :1; + }; +} __TXB0DLCbits_t; + +extern volatile __TXB0DLCbits_t at 0xf45 TXB0DLCbits; + +extern sfr at 0xf46 TXB0D0; +extern sfr at 0xf47 TXB0D1; +extern sfr at 0xf48 TXB0D2; +extern sfr at 0xf49 TXB0D3; +extern sfr at 0xf4a TXB0D4; +extern sfr at 0xf4b TXB0D5; +extern sfr at 0xf4c TXB0D6; +extern sfr at 0xf4d TXB0D7; +extern sfr at 0xf4e CANSTATRO1; +extern sfr at 0xf50 RXB1CON; +typedef union { + struct { + unsigned :1; + unsigned FILHIT1:1; + unsigned FILHIT2:1; + unsigned RXRTRRO:1; + unsigned :1; + unsigned RXM0:1; + unsigned RXM1:1; + unsigned RXFUL:1; + }; +} __RXB1CONbits_t; + +extern volatile __RXB1CONbits_t at 0xf50 RXB1CONbits; + +extern sfr at 0xf51 RXB1SIDH; +extern sfr at 0xf52 RXB1SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXID:1; + unsigned SRR:1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXB1SIDLbits_t; + +extern volatile __RXB1SIDLbits_t at 0xf52 RXB1SIDLbits; + +extern sfr at 0xf53 RXB1EIDH; +extern sfr at 0xf54 RXB1EIDL; +extern sfr at 0xf55 RXB1DLC; +typedef union { + struct { + unsigned DLC0:1; + unsigned DLC1:1; + unsigned DLC2:1; + unsigned DLC3:1; + unsigned RESB0:1; + unsigned RESB1:1; + unsigned RTR:1; + unsigned :1; + }; +} __RXB1DLCbits_t; + +extern volatile __RXB1DLCbits_t at 0xf55 RXB1DLCbits; + +extern sfr at 0xf56 RXB1D0; +extern sfr at 0xf57 RXB1D1; +extern sfr at 0xf58 RXB1D2; +extern sfr at 0xf59 RXB1D3; +extern sfr at 0xf5a RXB1D4; +extern sfr at 0xf5b RXB1D5; +extern sfr at 0xf5c RXB1D6; +extern sfr at 0xf5d RXB1D7; +extern sfr at 0xf5e CANSTATRO0; +extern sfr at 0xf60 RXB0CON; +typedef union { + struct { + unsigned FILHIT0:1; + unsigned JTOFF:1; + unsigned RX0DBEN:1; + unsigned RXRTRRO:1; + unsigned :1; + unsigned RXM0:1; + unsigned RXM1:1; + unsigned RXFUL:1; + }; +} __RXB0CONbits_t; + +extern volatile __RXB0CONbits_t at 0xf60 RXB0CONbits; + +extern sfr at 0xf61 RXB0SIDH; +extern sfr at 0xf62 RXB0SIDL; +typedef union { + struct { + unsigned EID16:1; + unsigned EID17:1; + unsigned :1; + unsigned EXID:1; + unsigned SRR:1; + unsigned SID0:1; + unsigned SID1:1; + unsigned SID2:1; + }; +} __RXB0SIDLbits_t; + +extern volatile __RXB0SIDLbits_t at 0xf62 RXB0SIDLbits; + +extern sfr at 0xf63 RXB0EIDH; +extern sfr at 0xf64 RXB0EIDL; +extern sfr at 0xf65 RXB0DLC; +extern sfr at 0xf66 RXB0D0; +extern sfr at 0xf67 RXB0D1; +extern sfr at 0xf68 RXB0D2; +extern sfr at 0xf69 RXB0D3; +extern sfr at 0xf6a RXB0D4; +extern sfr at 0xf6b RXB0D5; +extern sfr at 0xf6c RXB0D6; +extern sfr at 0xf6d RXB0D7; +extern sfr at 0xf6e CANSTAT; +typedef union { + struct { + unsigned :1; + unsigned ICODE0:1; + unsigned ICODE1:1; + unsigned ICODE2:1; + unsigned :1; + unsigned OPMODE0:1; + unsigned OPMODE1:1; + unsigned OPMODE2:1; + }; +} __CANSTATbits_t; + +extern volatile __CANSTATbits_t at 0xf6e CANSTATbits; + +extern sfr at 0xf6f CANCON; +typedef union { + struct { + unsigned :1; + unsigned WIN0:1; + unsigned WIN1:1; + unsigned WIN2:1; + unsigned ABAT:1; + unsigned REQOP0:1; + unsigned REQOP1:1; + unsigned REQOP2:1; + }; +} __CANCONbits_t; + +extern volatile __CANCONbits_t at 0xf6f CANCONbits; + +extern sfr at 0xf70 BRGCON1; +typedef union { + struct { + unsigned BRP0:1; + unsigned BRP1:1; + unsigned BRP2:1; + unsigned BRP3:1; + unsigned BRP4:1; + unsigned BRP5:1; + unsigned SJW0:1; + unsigned SJW1:1; + }; +} __BRGCON1bits_t; + +extern volatile __BRGCON1bits_t at 0xf70 BRGCON1bits; + +extern sfr at 0xf71 BRGCON2; +typedef union { + struct { + unsigned PRSEG0:1; + unsigned PRSEG1:1; + unsigned PRSEG2:1; + unsigned SEG1PH0:1; + unsigned SEG1PH1:1; + unsigned SEG1PH2:1; + unsigned SAM:1; + unsigned SEG2PHTS:1; + }; +} __BRGCON2bits_t; + +extern volatile __BRGCON2bits_t at 0xf71 BRGCON2bits; + +extern sfr at 0xf72 BRGCON3; +typedef union { + struct { + unsigned SEG2PH0:1; + unsigned SEG2PH1:1; + unsigned SEG2PH2:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned WAKFIL:1; + unsigned :1; + }; +} __BRGCON3bits_t; + +extern volatile __BRGCON3bits_t at 0xf72 BRGCON3bits; + +extern sfr at 0xf73 CIOCON; +typedef union { + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned CANCAP:1; + unsigned ENDRHI:1; + unsigned TX1EN:1; + unsigned TX1SRC:1; + }; +} __CIOCONbits_t; + +extern volatile __CIOCONbits_t at 0xf73 CIOCONbits; + +extern sfr at 0xf74 COMSTAT; +typedef union { + struct { + unsigned EWARN:1; + unsigned RXWARN:1; + unsigned TXWARN:1; + unsigned RXBP:1; + unsigned TXBP:1; + unsigned TXBO:1; + unsigned RX1OVFL:1; + unsigned RX0OVFL:1; + }; +} __COMSTATbits_t; + +extern volatile __COMSTATbits_t at 0xf74 COMSTATbits; + +extern sfr at 0xf75 RXERRCNT; +typedef union { + struct { + unsigned REC0:1; + unsigned REC1:1; + unsigned REC2:1; + unsigned REC3:1; + unsigned REC4:1; + unsigned REC5:1; + unsigned REC6:1; + unsigned REC7:1; + }; +} __RXERRCNTbits_t; + +extern volatile __RXERRCNTbits_t at 0xf75 RXERRCNTbits; + +extern sfr at 0xf76 TXERRCNT; +typedef union { + struct { + unsigned TEC0:1; + unsigned TEC1:1; + unsigned TEC2:1; + unsigned TEC3:1; + unsigned TEC4:1; + unsigned TEC5:1; + unsigned TEC6:1; + unsigned TEC7:1; + }; +} __TXERRCNTbits_t; + +extern volatile __TXERRCNTbits_t at 0xf76 TXERRCNTbits; + +extern sfr at 0xf80 PORTA; +typedef union { + struct { + unsigned RA0:1; + unsigned RA1:1; + unsigned RA2:1; + unsigned RA3:1; + unsigned RA4:1; + unsigned RA5:1; + unsigned RA6:1; + unsigned :1; + }; + + struct { + unsigned AN0:1; + unsigned AN1:1; + unsigned AN2:1; + unsigned AN3:1; + unsigned :1; + unsigned AN4:1; + unsigned OSC2:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned VREFM:1; + unsigned VREFP:1; + unsigned T0CKI:1; + unsigned SS:1; + unsigned CLK0:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned LVDIN:1; + unsigned :1; + unsigned :1; + }; +} __PORTAbits_t; + +extern volatile __PORTAbits_t at 0xf80 PORTAbits; + +extern sfr at 0xf81 PORTB; +typedef union { + struct { + unsigned RB0:1; + unsigned RB1:1; + unsigned RB2:1; + unsigned RB3:1; + unsigned RB4:1; + unsigned RB5:1; + unsigned RB6:1; + unsigned RB7:1; + }; + + struct { + unsigned INT0:1; + unsigned INT1:1; + unsigned INT2:1; + unsigned INT3:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTBbits_t; + +extern volatile __PORTBbits_t at 0xf81 PORTBbits; + +extern sfr at 0xf82 PORTC; +typedef union { + struct { + unsigned RC0:1; + unsigned RC1:1; + unsigned RC2:1; + unsigned RC3:1; + unsigned RC4:1; + unsigned RC5:1; + unsigned RC6:1; + unsigned RC7:1; + }; + + struct { + unsigned T1OSO:1; + unsigned T1OSI:1; + unsigned :1; + unsigned SCK:1; + unsigned SDI:1; + unsigned SDO:1; + unsigned TX:1; + unsigned RX:1; + }; + + struct { + unsigned T1CKI:1; + unsigned CCP2:1; + unsigned CCP1:1; + unsigned SCL:1; + unsigned SDA:1; + unsigned :1; + unsigned CK:1; + unsigned DT:1; + }; +} __PORTCbits_t; + +extern volatile __PORTCbits_t at 0xf82 PORTCbits; + +extern sfr at 0xf83 PORTD; +typedef union { + struct { + unsigned RD0:1; + unsigned RD1:1; + unsigned RD2:1; + unsigned RD3:1; + unsigned RD4:1; + unsigned RD5:1; + unsigned RD6:1; + unsigned RD7:1; + }; + + struct { + unsigned AD0:1; + unsigned AD1:1; + unsigned AD2:1; + unsigned AD3:1; + unsigned AD4:1; + unsigned AD5:1; + unsigned AD6:1; + unsigned AD7:1; + }; +} __PORTDbits_t; + +extern volatile __PORTDbits_t at 0xf83 PORTDbits; + +extern sfr at 0xf84 PORTE; +typedef union { + struct { + unsigned RE0:1; + unsigned RE1:1; + unsigned RE2:1; + unsigned RE3:1; + unsigned RE4:1; + unsigned RE5:1; + unsigned RE6:1; + unsigned RE7:1; + }; + + struct { + unsigned ALE:1; + unsigned OE:1; + unsigned WRL:1; + unsigned WRH:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned CCP2:1; + }; + + struct { + unsigned AN5:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTEbits_t; + +extern volatile __PORTEbits_t at 0xf84 PORTEbits; + +extern sfr at 0xf85 PORTF; +typedef union { + struct { + unsigned RF0:1; + unsigned RF1:1; + unsigned RF2:1; + unsigned RF3:1; + unsigned RF4:1; + unsigned RF5:1; + unsigned RF6:1; + unsigned RF7:1; + }; +} __PORTFbits_t; + +extern volatile __PORTFbits_t at 0xf85 PORTFbits; + +extern sfr at 0xf86 PORTG; +typedef union { + struct { + unsigned RG0:1; + unsigned RG1:1; + unsigned RG2:1; + unsigned RG3:1; + unsigned RG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTGbits_t; + +extern volatile __PORTGbits_t at 0xf86 PORTGbits; + +extern sfr at 0xf87 PORTH; +typedef union { + struct { + unsigned RH0:1; + unsigned RH1:1; + unsigned RH2:1; + unsigned RH3:1; + unsigned RH4:1; + unsigned RH5:1; + unsigned RH6:1; + unsigned RH7:1; + }; +} __PORTHbits_t; + +extern volatile __PORTHbits_t at 0xf87 PORTHbits; + +extern sfr at 0xf88 PORTJ; +typedef union { + struct { + unsigned RJ0:1; + unsigned RJ1:1; + unsigned RJ2:1; + unsigned RJ3:1; + unsigned RJ4:1; + unsigned RJ5:1; + unsigned RJ6:1; + unsigned RJ7:1; + }; +} __PORTJbits_t; + +extern volatile __PORTJbits_t at 0xf88 PORTJbits; + +extern sfr at 0xf89 LATA; +typedef union { + struct { + unsigned LATA0:1; + unsigned LATA1:1; + unsigned LATA2:1; + unsigned LATA3:1; + unsigned LATA4:1; + unsigned LATA5:1; + unsigned LATA6:1; + unsigned :1; + }; +} __LATAbits_t; + +extern volatile __LATAbits_t at 0xf89 LATAbits; + +extern sfr at 0xf8a LATB; +typedef union { + struct { + unsigned LATB0:1; + unsigned LATB1:1; + unsigned LATB2:1; + unsigned LATB3:1; + unsigned LATB4:1; + unsigned LATB5:1; + unsigned LATB6:1; + unsigned LATB7:1; + }; +} __LATBbits_t; + +extern volatile __LATBbits_t at 0xf8a LATBbits; + +extern sfr at 0xf8b LATC; +typedef union { + struct { + unsigned LATC0:1; + unsigned LATC1:1; + unsigned LATC2:1; + unsigned LATC3:1; + unsigned LATC4:1; + unsigned LATC5:1; + unsigned LATC6:1; + unsigned LATC7:1; + }; +} __LATCbits_t; + +extern volatile __LATCbits_t at 0xf8b LATCbits; + +extern sfr at 0xf8c LATD; +typedef union { + struct { + unsigned LATD0:1; + unsigned LATD1:1; + unsigned LATD2:1; + unsigned LATD3:1; + unsigned LATD4:1; + unsigned LATD5:1; + unsigned LATD6:1; + unsigned LATD7:1; + }; +} __LATDbits_t; + +extern volatile __LATDbits_t at 0xf8c LATDbits; + +extern sfr at 0xf8d LATE; +typedef union { + struct { + unsigned LATE0:1; + unsigned LATE1:1; + unsigned LATE2:1; + unsigned LATE3:1; + unsigned LATE4:1; + unsigned LATE5:1; + unsigned LATE6:1; + unsigned LATE7:1; + }; +} __LATEbits_t; + +extern volatile __LATEbits_t at 0xf8d LATEbits; + +extern sfr at 0xf8e LATF; +typedef union { + struct { + unsigned LATF0:1; + unsigned LATF1:1; + unsigned LATF2:1; + unsigned LATF3:1; + unsigned LATF4:1; + unsigned LATF5:1; + unsigned LATF6:1; + unsigned LATF7:1; + }; +} __LATFbits_t; + +extern volatile __LATFbits_t at 0xf8e LATFbits; + +extern sfr at 0xf8f LATG; +typedef union { + struct { + unsigned LATG0:1; + unsigned LATG1:1; + unsigned LATG2:1; + unsigned LATG3:1; + unsigned LATG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __LATGbits_t; + +extern volatile __LATGbits_t at 0xf8f LATGbits; + +extern sfr at 0xf90 LATH; +typedef union { + struct { + unsigned LATH0:1; + unsigned LATH1:1; + unsigned LATH2:1; + unsigned LATH3:1; + unsigned LATH4:1; + unsigned LATH5:1; + unsigned LATH6:1; + unsigned LATH7:1; + }; +} __LATHbits_t; + +extern volatile __LATHbits_t at 0xf90 LATHbits; + +extern sfr at 0xf91 LATJ; +typedef union { + struct { + unsigned LATJ0:1; + unsigned LATJ1:1; + unsigned LATJ2:1; + unsigned LATJ3:1; + unsigned LATJ4:1; + unsigned LATJ5:1; + unsigned LATJ6:1; + unsigned LATJ7:1; + }; +} __LATJbits_t; + +extern volatile __LATJbits_t at 0xf91 LATJbits; + +extern sfr at 0xf92 TRISA; +typedef union { + struct { + unsigned TRISA0:1; + unsigned TRISA1:1; + unsigned TRISA2:1; + unsigned TRISA3:1; + unsigned TRISA4:1; + unsigned TRISA5:1; + unsigned TRISA6:1; + unsigned :1; + }; +} __TRISAbits_t; + +extern volatile __TRISAbits_t at 0xf92 TRISAbits; + +extern sfr at 0xf93 TRISB; +typedef union { + struct { + unsigned TRISB0:1; + unsigned TRISB1:1; + unsigned TRISB2:1; + unsigned TRISB3:1; + unsigned TRISB4:1; + unsigned TRISB5:1; + unsigned TRISB6:1; + unsigned TRISB7:1; + }; +} __TRISBbits_t; + +extern volatile __TRISBbits_t at 0xf93 TRISBbits; + +extern sfr at 0xf94 TRISC; +typedef union { + struct { + unsigned TRISC0:1; + unsigned TRISC1:1; + unsigned TRISC2:1; + unsigned TRISC3:1; + unsigned TRISC4:1; + unsigned TRISC5:1; + unsigned TRISC6:1; + unsigned TRISC7:1; + }; +} __TRISCbits_t; + +extern volatile __TRISCbits_t at 0xf94 TRISCbits; + +extern sfr at 0xf95 TRISD; +typedef union { + struct { + unsigned TRISD0:1; + unsigned TRISD1:1; + unsigned TRISD2:1; + unsigned TRISD3:1; + unsigned TRISD4:1; + unsigned TRISD5:1; + unsigned TRISD6:1; + unsigned TRISD7:1; + }; +} __TRISDbits_t; + +extern volatile __TRISDbits_t at 0xf95 TRISDbits; + +extern sfr at 0xf96 TRISE; +typedef union { + struct { + unsigned TRISE0:1; + unsigned TRISE1:1; + unsigned TRISE2:1; + unsigned TRISE3:1; + unsigned TRISE4:1; + unsigned TRISE5:1; + unsigned TRISE6:1; + unsigned TRISE7:1; + }; +} __TRISEbits_t; + +extern volatile __TRISEbits_t at 0xf96 TRISEbits; + +extern sfr at 0xf97 TRISF; +typedef union { + struct { + unsigned TRISF0:1; + unsigned TRISF1:1; + unsigned TRISF2:1; + unsigned TRISF3:1; + unsigned TRISF4:1; + unsigned TRISF5:1; + unsigned TRISF6:1; + unsigned TRISF7:1; + }; +} __TRISFbits_t; + +extern volatile __TRISFbits_t at 0xf97 TRISFbits; + +extern sfr at 0xf98 TRISG; +typedef union { + struct { + unsigned TRISG0:1; + unsigned TRISG1:1; + unsigned TRISG2:1; + unsigned TRISG3:1; + unsigned TRISG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __TRISGbits_t; + +extern volatile __TRISGbits_t at 0xf98 TRISGbits; + +extern sfr at 0xf99 TRISH; +typedef union { + struct { + unsigned TRISH0:1; + unsigned TRISH1:1; + unsigned TRISH2:1; + unsigned TRISH3:1; + unsigned TRISH4:1; + unsigned TRISH5:1; + unsigned TRISH6:1; + unsigned TRISH7:1; + }; +} __TRISHbits_t; + +extern volatile __TRISHbits_t at 0xf99 TRISHbits; + +extern sfr at 0xf9a TRISJ; +typedef union { + struct { + unsigned TRISJ0:1; + unsigned TRISJ1:1; + unsigned TRISJ2:1; + unsigned TRISJ3:1; + unsigned TRISJ4:1; + unsigned TRISJ5:1; + unsigned TRISJ6:1; + unsigned TRISJ7:1; + }; +} __TRISJbits_t; + +extern volatile __TRISJbits_t at 0xf9a TRISJbits; + +extern sfr at 0xf9c MEMCON; +typedef union { + struct { + unsigned WM0:1; + unsigned WM1:1; + unsigned :1; + unsigned :1; + unsigned WAIT0:1; + unsigned WAIT1:1; + unsigned :1; + unsigned EBDIS:1; + }; +} __MEMCONbits_t; + +extern volatile __MEMCONbits_t at 0xf9c MEMCONbits; + +extern sfr at 0xf9d PIE1; +typedef union { + struct { + unsigned TMR1IE:1; + unsigned TMR2IE:1; + unsigned CCP1IE:1; + unsigned SSPIE:1; + unsigned TXIE:1; + unsigned RCIE:1; + unsigned ADIE:1; + unsigned PSPIE:1; + }; +} __PIE1bits_t; + +extern volatile __PIE1bits_t at 0xf9d PIE1bits; + +extern sfr at 0xf9e PIR1; +typedef union { + struct { + unsigned TMR1IF:1; + unsigned TMR2IF:1; + unsigned CCP1IF:1; + unsigned SSPIF:1; + unsigned TXIF:1; + unsigned RCIF:1; + unsigned ADIF:1; + unsigned PSPIF:1; + }; +} __PIR1bits_t; + +extern volatile __PIR1bits_t at 0xf9e PIR1bits; + +extern sfr at 0xf9f IPR1; +typedef union { + struct { + unsigned TMR1IP:1; + unsigned TMR2IP:1; + unsigned CCP1IP:1; + unsigned SSPIP:1; + unsigned TXIP:1; + unsigned RCIP:1; + unsigned ADIP:1; + unsigned PSPIP:1; + }; +} __IPR1bits_t; + +extern volatile __IPR1bits_t at 0xf9f IPR1bits; + +extern sfr at 0xfa0 PIE2; +typedef union { + struct { + unsigned CCP2IE:1; + unsigned TMR3IE:1; + unsigned LVDIE:1; + unsigned BCLIE:1; + unsigned EEIE:1; + unsigned :1; + unsigned CMIE:1; + unsigned :1; + }; +} __PIE2bits_t; + +extern volatile __PIE2bits_t at 0xfa0 PIE2bits; + +extern sfr at 0xfa1 PIR2; +typedef union { + struct { + unsigned CCP2IF:1; + unsigned TMR3IF:1; + unsigned LVDIF:1; + unsigned BCLIF:1; + unsigned EEIF:1; + unsigned :1; + unsigned CMIF:1; + unsigned :1; + }; +} __PIR2bits_t; + +extern volatile __PIR2bits_t at 0xfa1 PIR2bits; + +extern sfr at 0xfa2 IPR2; +typedef union { + struct { + unsigned CCP2IP:1; + unsigned TMR3IP:1; + unsigned LVDIP:1; + unsigned BCLIP:1; + unsigned EEIP:1; + unsigned :1; + unsigned CMIP:1; + unsigned :1; + }; +} __IPR2bits_t; + +extern volatile __IPR2bits_t at 0xfa2 IPR2bits; + +extern sfr at 0xfa3 PIE3; +typedef union { + struct { + unsigned RX0IE:1; + unsigned RX1IE:1; + unsigned TX0IE:1; + unsigned TX1IE:1; + unsigned TX2IE:1; + unsigned ERRIE:1; + unsigned WAKIE:1; + unsigned IVRE:1; + }; +} __PIE3bits_t; + +extern volatile __PIE3bits_t at 0xfa3 PIE3bits; + +extern sfr at 0xfa4 PIR3; +typedef union { + struct { + unsigned RX0IF:1; + unsigned RX1IF:1; + unsigned TX0IF:1; + unsigned TX1IF:1; + unsigned TX2IF:1; + unsigned ERRIF:1; + unsigned WAKIF:1; + unsigned IVRF:1; + }; +} __PIR3bits_t; + +extern volatile __PIR3bits_t at 0xfa4 PIR3bits; + +extern sfr at 0xfa5 IPR3; +typedef union { + struct { + unsigned RX0IP:1; + unsigned RX1IP:1; + unsigned TX0IP:1; + unsigned TX1IP:1; + unsigned TX2IP:1; + unsigned ERRIP:1; + unsigned WAKIP:1; + unsigned IVRP:1; + }; +} __IPR3bits_t; + +extern volatile __IPR3bits_t at 0xfa5 IPR3bits; + +extern sfr at 0xfa6 EECON1; +typedef union { + struct { + unsigned RD:1; + unsigned WR:1; + unsigned WREN:1; + unsigned WRERR:1; + unsigned FREE:1; + unsigned :1; + unsigned CFGS:1; + unsigned EEPGD:1; + }; +} __EECON1bits_t; + +extern volatile __EECON1bits_t at 0xfa6 EECON1bits; + +extern sfr at 0xfa7 EECON2; +extern sfr at 0xfa8 EEDATA; +extern sfr at 0xfa9 EEADR; +extern sfr at 0xfaa EEADRH; +extern sfr at 0xfab RCSTA; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTAbits_t; + +extern volatile __RCSTAbits_t at 0xfab RCSTAbits; + +extern sfr at 0xfac TXSTA; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTAbits_t; + +extern volatile __TXSTAbits_t at 0xfac TXSTAbits; + +extern sfr at 0xfad TXREG; +extern sfr at 0xfae RCREG; +extern sfr at 0xfaf SPBRG; +extern sfr at 0xfb0 PSPCON; +typedef union { + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned PSPMODE:1; + unsigned IBOV:1; + unsigned OBF:1; + unsigned IBF:1; + }; +} __PSPCONbits_t; + +extern volatile __PSPCONbits_t at 0xfb0 PSPCONbits; + +extern sfr at 0xfb1 T3CON; +typedef union { + struct { + unsigned TMR3ON:1; + unsigned TMR3CS:1; + unsigned T3SYNC:1; + unsigned T3CCP1:1; + unsigned T3CKPS0:1; + unsigned T3CKPS1:1; + unsigned T3CCP2:1; + unsigned RD16:1; + }; +} __T3CONbits_t; + +extern volatile __T3CONbits_t at 0xfb1 T3CONbits; + +extern sfr at 0xfb2 TMR3L; +extern sfr at 0xfb3 TMR3H; +extern sfr at 0xfb4 CMCON; +typedef union { + struct { + unsigned CM0:1; + unsigned CM1:1; + unsigned CM2:1; + unsigned CIS:1; + unsigned C1INV:1; + unsigned C2INV:1; + unsigned C1OUT:1; + unsigned C2OUT:1; + }; +} __CMCONbits_t; + +extern volatile __CMCONbits_t at 0xfb4 CMCONbits; + +extern sfr at 0xfb5 CVRCON; +typedef union { + struct { + unsigned CVR0:1; + unsigned CVR1:1; + unsigned CVR2:1; + unsigned CVR3:1; + unsigned CVREF:1; + unsigned CVRR:1; + unsigned CVROE:1; + unsigned CVREN:1; + }; +} __CVRCONbits_t; + +extern volatile __CVRCONbits_t at 0xfb5 CVRCONbits; + +extern sfr at 0xfb6 ECCPAS; +typedef union { + struct { + unsigned PSSBD0:1; + unsigned PSSBD1:1; + unsigned PSSAC0:1; + unsigned PSSAC1:1; + unsigned ECCPAS0:1; + unsigned ECCPAS1:1; + unsigned ECCPAS2:1; + unsigned ECCPASE:1; + }; +} __ECCPASbits_t; + +extern volatile __ECCPASbits_t at 0xfb6 ECCPASbits; + +extern sfr at 0xfb7 ECCP1DEL; +typedef union { + struct { + unsigned EPDC0:1; + unsigned EPDC1:1; + unsigned EPDC2:1; + unsigned EPDC3:1; + unsigned EPDC4:1; + unsigned EPDC5:1; + unsigned EPDC6:1; + unsigned EPDC7:1; + }; +} __ECCP1DELbits_t; + +extern volatile __ECCP1DELbits_t at 0xfb7 ECCP1DELbits; + +extern sfr at 0xfba ECCP1CON; +typedef union { + struct { + unsigned ECCP1M0:1; + unsigned ECCP1M1:1; + unsigned ECCP1M2:1; + unsigned ECCP1M3:1; + unsigned EDC1B0:1; + unsigned EDC1B1:1; + unsigned EPWM1M0:1; + unsigned EPWM1M1:1; + }; +} __ECCP1CONbits_t; + +extern volatile __ECCP1CONbits_t at 0xfba ECCP1CONbits; + +extern sfr at 0xfba CCP2CON; +typedef union { + struct { + unsigned CCP2M0:1; + unsigned CCP2M1:1; + unsigned CCP2M2:1; + unsigned CCP2M3:1; + unsigned DCCP2Y:1; + unsigned DCCP2X:1; + unsigned :1; + unsigned :1; + }; +} __CCP2CONbits_t; + +extern volatile __CCP2CONbits_t at 0xfba CCP2CONbits; + +extern sfr at 0xfbb ECCPR1L; +extern sfr at 0xfbb CCPR2L; +extern sfr at 0xfbc ECCPR1H; +extern sfr at 0xfbc CCPR2H; +extern sfr at 0xfc0 ADCON2; +typedef union { + struct { + unsigned ADCS0:1; + unsigned ADCS1:1; + unsigned ADCS2:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned ADFM:1; + }; +} __ADCON2bits_t; + +extern volatile __ADCON2bits_t at 0xfc0 ADCON2bits; + +extern sfr at 0xfc1 ADCON1; +typedef union { + struct { + unsigned PCFG0:1; + unsigned PCFG1:1; + unsigned PCFG2:1; + unsigned PCFG3:1; + unsigned VCFG0:1; + unsigned VCFG1:1; + unsigned :1; + unsigned :1; + }; +} __ADCON1bits_t; + +extern volatile __ADCON1bits_t at 0xfc1 ADCON1bits; + +extern sfr at 0xfc2 ADCON0; +typedef union { + struct { + unsigned ADON:1; + unsigned GO:1; + unsigned CHS0:1; + unsigned CHS1:1; + unsigned CHS2:1; + unsigned CHS3:1; + unsigned :1; + unsigned :1; + }; +} __ADCON0bits_t; + +extern volatile __ADCON0bits_t at 0xfc2 ADCON0bits; + +extern sfr at 0xfc3 ADRESL; +extern sfr at 0xfc4 ADRESH; +extern sfr at 0xfc5 SSPCON2; +typedef union { + struct { + unsigned SEN:1; + unsigned RSEN:1; + unsigned PEN:1; + unsigned RCEN:1; + unsigned ACKEN:1; + unsigned ACKDT:1; + unsigned ACKSTAT:1; + unsigned GCEN:1; + }; +} __SSPCON2bits_t; + +extern volatile __SSPCON2bits_t at 0xfc5 SSPCON2bits; + +extern sfr at 0xfc6 SSPCON1; +typedef union { + struct { + unsigned SSPM0:1; + unsigned SSPM1:1; + unsigned SSPM2:1; + unsigned SSPM3:1; + unsigned CKP:1; + unsigned SSPEN:1; + unsigned SSPOV:1; + unsigned WCOL:1; + }; +} __SSPCON1bits_t; + +extern volatile __SSPCON1bits_t at 0xfc6 SSPCON1bits; + +extern sfr at 0xfc7 SSPSTAT; +typedef union { + struct { + unsigned BF:1; + unsigned UA:1; + unsigned R_W:1; + unsigned S:1; + unsigned P:1; + unsigned D_A:1; + unsigned CKE:1; + unsigned SMP:1; + }; +} __SSPSTATbits_t; + +extern volatile __SSPSTATbits_t at 0xfc7 SSPSTATbits; + +extern sfr at 0xfc8 SSPADD; +extern sfr at 0xfc9 SSPBUF; +extern sfr at 0xfca T2CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T2CONbits_t; + +extern volatile __T2CONbits_t at 0xfca T2CONbits; + +extern sfr at 0xfcb PR2; +extern sfr at 0xfcc TMR2; +extern sfr at 0xfcd T1CON; +typedef union { + struct { + unsigned TMR1ON:1; + unsigned TMR1CS:1; + unsigned NOT_T1SYNC:1; + unsigned T1OSCEN:1; + unsigned T1CKPS0:1; + unsigned T1CKPS1:1; + unsigned :1; + unsigned RD16:1; + }; +} __T1CONbits_t; + +extern volatile __T1CONbits_t at 0xfcd T1CONbits; + +extern sfr at 0xfce TMR1L; +extern sfr at 0xfcf TMR1H; +extern sfr at 0xfd0 RCON; +typedef union { + struct { + unsigned BOR:1; + unsigned POR:1; + unsigned PD:1; + unsigned TO:1; + unsigned RI:1; + unsigned :1; + unsigned :1; + unsigned IPEN:1; + }; +} __RCONbits_t; + +extern volatile __RCONbits_t at 0xfd0 RCONbits; + +extern sfr at 0xfd1 WDTCON; +typedef union { + struct { + unsigned SWDTEN:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned SWDTE:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __WDTCONbits_t; + +extern volatile __WDTCONbits_t at 0xfd1 WDTCONbits; + +extern sfr at 0xfd2 LVDCON; +typedef union { + struct { + unsigned LVDL0:1; + unsigned LVDL1:1; + unsigned LVDL2:1; + unsigned LVDL3:1; + unsigned LVDEN:1; + unsigned VRST:1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned LVV0:1; + unsigned LVV1:1; + unsigned LVV2:1; + unsigned LVV3:1; + unsigned :1; + unsigned BGST:1; + unsigned :1; + unsigned :1; + }; +} __LVDCONbits_t; + +extern volatile __LVDCONbits_t at 0xfd2 LVDCONbits; + +extern sfr at 0xfd3 OSCCON; +typedef union { + struct { + unsigned SCS:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __OSCCONbits_t; + +extern volatile __OSCCONbits_t at 0xfd3 OSCCONbits; + +extern sfr at 0xfd5 T0CON; +extern sfr at 0xfd6 TMR0L; +extern sfr at 0xfd7 TMR0H; +extern sfr at 0xfd8 STATUS; +typedef union { + struct { + unsigned C:1; + unsigned DC:1; + unsigned Z:1; + unsigned OV:1; + unsigned N:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __STATUSbits_t; + +extern volatile __STATUSbits_t at 0xfd8 STATUSbits; + +extern sfr at 0xfd9 FSR2L; +extern sfr at 0xfda FSR2H; +extern sfr at 0xfdb PLUSW2; +extern sfr at 0xfdc PREINC2; +extern sfr at 0xfdd POSTDEC2; +extern sfr at 0xfde POSTINC2; +extern sfr at 0xfdf INDF2; +extern sfr at 0xfe0 BSR; +extern sfr at 0xfe1 FSR1L; +extern sfr at 0xfe2 FSR1H; +extern sfr at 0xfe3 PLUSW1; +extern sfr at 0xfe4 PREINC1; +extern sfr at 0xfe5 POSTDEC1; +extern sfr at 0xfe6 POSTINC1; +extern sfr at 0xfe7 INDF1; +extern sfr at 0xfe8 WREG; +extern sfr at 0xfe9 FSR0L; +extern sfr at 0xfea FSR0H; +extern sfr at 0xfeb PLUSW0; +extern sfr at 0xfec PREINC0; +extern sfr at 0xfed POSTDEC0; +extern sfr at 0xfee POSTINC0; +extern sfr at 0xfef INDF0; +extern sfr at 0xff0 INTCON3; +typedef union { + struct { + unsigned INT1F:1; + unsigned INT2F:1; + unsigned INT3F:1; + unsigned INT1E:1; + unsigned INT2E:1; + unsigned INT3E:1; + unsigned INT1P:1; + unsigned INT2P:1; + }; + + struct { + unsigned INT1IF:1; + unsigned INT2IF:1; + unsigned INT3IF:1; + unsigned INT1IE:1; + unsigned INT2IE:1; + unsigned INT3IE:1; + unsigned INT1IP:1; + unsigned INT2IP:1; + }; +} __INTCON3bits_t; + +extern volatile __INTCON3bits_t at 0xff0 INTCON3bits; + +extern sfr at 0xff1 INTCON2; +typedef union { + struct { + unsigned RBIP:1; + unsigned INT3P:1; + unsigned T0IP:1; + unsigned INTEDG3:1; + unsigned INTEDG2:1; + unsigned INTEDG1:1; + unsigned INTEDG0:1; + unsigned RBPU:1; + }; +} __INTCON2bits_t; + +extern volatile __INTCON2bits_t at 0xff1 INTCON2bits; + +extern sfr at 0xff2 INTCON; +typedef union { + struct { + unsigned RBIF:1; + unsigned INT0F:1; + unsigned T0IF:1; + unsigned RBIE:1; + unsigned INT0E:1; + unsigned T0IE:1; + unsigned PEIE:1; + unsigned GIE:1; + }; +} __INTCONbits_t; + +extern volatile __INTCONbits_t at 0xff2 INTCONbits; + +extern sfr at 0xff3 PRODL; +extern sfr at 0xff4 PRODH; +extern sfr at 0xff5 TABLAT; +extern sfr at 0xff6 TBLPTRL; +extern sfr at 0xff7 TBLPTRH; +extern sfr at 0xff8 TBLPTRU; +extern sfr at 0xff9 PCL; +extern sfr at 0xffa PCLATH; +extern sfr at 0xffb PCLATU; +extern sfr at 0xffc STKPTR; +typedef union { + struct { + unsigned STKPTR0:1; + unsigned STKPTR1:1; + unsigned STKPTR2:1; + unsigned STKPTR3:1; + unsigned STKPTR4:1; + unsigned :1; + unsigned STKUNF:1; + unsigned STKFUL:1; + }; +} __STKPTRbits_t; + +extern volatile __STKPTRbits_t at 0xffc STKPTRbits; + +extern sfr at 0xffd TOSL; +extern sfr at 0xffe TOSH; +extern sfr at 0xfff TOSU; + + +/* Configuration registers locations */ +#define __CONFIG0H 0x300001 +#define __CONFIG1L 0x300002 +#define __CONFIG1H 0x300003 +#define __CONFIG2L 0x300004 +#define __CONFIG2H 0x300005 +#define __CONFIG3L 0x300006 +#define __CONFIG4L 0x300008 +#define __CONFIG4H 0x300009 +#define __CONFIG5L 0x30000A +#define __CONFIG5H 0x30000B +#define __CONFIG6L 0x30000C +#define __CONFIG6H 0x30000D + + + +/* Oscillator 0H options */ +#define _OSC_RC_CLKOUT_0H 0xFF /* RC-CLKOUT on RA6 */ +#define _OSC_HS_SOFTWARE_0H 0xFE /* HS-Software enabled PLL */ +#define _OSC_EC_CLKOUT_Software_nabld_PLL_0H 0xFD /* EC-CLKOUT on RA6,Software_enabled_PLL */ +#define _OSC_EC_CLKOUT_PLL_enabld_frq_4xFosc1_0H 0xFC /* EC-CLKOUT on RA6,PLL_enabled_freq_4xFosc1 */ +#define _OSC_EXT_Port_on_RA6_0H 0xF7 /* EXT RC-Port_on_RA6 */ +#define _OSC_HS_PLL_0H 0xF6 /* HS-PLL enabled freq=4xFosc1 */ +#define _OSC_EC_PORT_0H 0xF5 /* EC-Port on RA6 */ +#define _OSC_EC_CLKOUT__0H 0xF4 /* EC-CLKOUT on RA6 */ +#define _OSC_EXT_CLKOUT_on_RA6_0H 0xF3 /* EXT RC-CLKOUT_on_RA6 */ +#define _OSC_HS_0H 0xF2 /* HS */ +#define _OSC_XT_0H 0xF1 /* XT */ +#define _OSC_LP_0H 0xF0 /* LP */ + +/* Low Power System Clock Timer1 Enable 0H options */ +#define _OSCSEN_ON_0H 0xDF /* Enabled */ +#define _OSCSEN_OFF_0H 0xFF /* Disabled */ + +/* Power Up Timer 1L options */ +#define _PUT_OFF_1L 0xFF /* Disabled */ +#define _PUT_ON_1L 0xFE /* Enabled */ + +/* Brown Out Detect 1L options */ +#define _BODEN_ON_1L 0xFF /* Enabled */ +#define _BODEN_OFF_1L 0xFD /* Disabled */ + +/* Brown Out Voltage 1L options */ +#define _BODENV_2_0V_1L 0xFF /* 2.0V */ +#define _BODENV_2_7V_1L 0xFB /* 2.7V */ +#define _BODENV_4_2V_1L 0xF7 /* 4.2V */ +#define _BODENV_4_5V_1L 0xF3 /* 4.5V */ + +/* Watchdog Timer 1H options */ +#define _WDT_ON_1H 0xFF /* Enabled */ +#define _WDT_DISABLED_CONTROLLED_1H 0xFE /* Disabled-Controlled by SWDTEN bit */ + +/* Watchdog Postscaler 1H options */ +#define _WDTPS_1_32768_1H 0xFF /* 1:32768 */ +#define _WDTPS_1_16384_1H 0xFD /* 1:16384 */ +#define _WDTPS_1_8192_1H 0xFB /* 1:8192 */ +#define _WDTPS_1_4096_1H 0xF9 /* 1:4096 */ +#define _WDTPS_1_2048_1H 0xF7 /* 1:2048 */ +#define _WDTPS_1_1024_1H 0xF5 /* 1:1024 */ +#define _WDTPS_1_512_1H 0xF3 /* 1:512 */ +#define _WDTPS_1_256_1H 0xF1 /* 1:256 */ +#define _WDTPS_1_128_1H 0xEF /* 1:128 */ +#define _WDTPS_1_64_1H 0xED /* 1:64 */ +#define _WDTPS_1_32_1H 0xEB /* 1:32 */ +#define _WDTPS_1_16_1H 0xE9 /* 1:16 */ +#define _WDTPS_1_8_1H 0xE7 /* 1:8 */ +#define _WDTPS_1_4_1H 0xE5 /* 1:4 */ +#define _WDTPS_1_2_1H 0xE3 /* 1:2 */ +#define _WDTPS_1_1_1H 0xE1 /* 1:1 */ + +/* Processor Mode 2L options */ +#define _PMODE_MICROCONTROLLER_2L 0xFF /* Microcontroller */ +#define _PMODE_MICROPROCESSOR__2L 0xFE /* Microprocessor */ +#define _PMODE_MICROPROCESSOR_w_Boot_2L 0xFD /* Microprocessor w_Boot */ +#define _PMODE_EXT_2L 0xFC /* Ext Microcontroller */ + +/* External Bus Wait 2L options */ +#define _WAIT_OFF_2L 0xFF /* Disabled */ +#define _WAIT_ON_2L 0x7F /* Enabled */ + +/* CCP2 Mux 2H options */ +#define _CCP2MUX_RC1_2H 0xFF /* RC1 */ +#define _CCP2MUX_RB3_2H 0xFE /* RB3 */ + +/* ECCP Mux 2H options */ +#define _ECCPMX_ECCP1_E6E3_2H 0xFF /* ECCP1 and ECCP6 are muxed onto RE6 through RE3 */ +#define _ECCPMX_ECCP1_H7H4_2H 0xFD /* ECCP1 and ECCP6 are muxed onto RH7 through RH4 */ + +/* MCLR enable 2H options */ +#define _MCLRE_MCLR_Enabled_RE3_Disabled_2H 0xFF /* MCLR Enabled_RE3_Disabled */ +#define _MCLRE_MCLR_Disabled_RE3_Enabled_2H 0x7F /* MCLR Disabled__RE3_Enabled */ + +/* Stack Overflow Reset 3L options */ +#define _STVR_ON_3L 0xFF /* Enabled */ +#define _STVR_OFF_3L 0xFE /* Disabled */ + +/* Low Voltage Program 3L options */ +#define _LVP_ON_3L 0xFF /* Enabled */ +#define _LVP_OFF_3L 0xFB /* Disabled */ + +/* Background Debug 3L options */ +#define _BACKBUG_OFF_3L 0xFF /* Disabled */ +#define _BACKBUG_ON_3L 0x7F /* Enabled */ + +/* Code Protect 000800-0003FFF 4L options */ +#define _CP_0_OFF_4L 0xFF /* Disabled */ +#define _CP_0_ON_4L 0xFE /* Enabled */ + +/* Code Protect 0004000-007FFF 4L options */ +#define _CP_1_OFF_4L 0xFF /* Disabled */ +#define _CP_1_ON_4L 0xFD /* Enabled */ + +/* Code Protect 008000-00BFFF 4L options */ +#define _CP_2_OFF_4L 0xFF /* Disabled */ +#define _CP_2_ON_4L 0xFB /* Enabled */ + +/* Code Protect 00C000F-00FFFF 4L options */ +#define _CP_3_OFF_4L 0xFF /* Disabled */ +#define _CP_3_ON_4L 0xF7 /* Enabled */ + +/* Data EE Read Protect 4H options */ +#define _CPD_OFF_4H 0xFF /* Disabled */ +#define _CPD_ON_4H 0x7F /* Enabled */ + +/* Code Protect Boot 4H options */ +#define _CPB_OFF_4H 0xFF /* Disabled */ +#define _CPB_ON_4H 0xBF /* Enabled */ + +/* Table Write Protect 00800-003FFF 5L options */ +#define _WRT_0_OFF_5L 0xFF /* Disabled */ +#define _WRT_0_ON_5L 0xFE /* Enabled */ + +/* Table Write Protect 004000-007FFF 5L options */ +#define _WRT_1_OFF_5L 0xFF /* Disabled */ +#define _WRT_1_ON_5L 0xFD /* Enabled */ + +/* Table Write Protect 08000-0BFFF 5L options */ +#define _WRT_2_OFF_5L 0xFF /* Disabled */ +#define _WRT_2_ON_5L 0xFB /* Enabled */ + +/* Table Write Protect 0C000-0FFFF 5L options */ +#define _WRT_3_OFF_5L 0xFF /* Disabled */ +#define _WRT_3_ON_5L 0xF7 /* Enabled */ + +/* Data EE Write Protect 5H options */ +#define _WRTD_OFF_5H 0xFF /* Disabled */ +#define _WRTD_ON_5H 0x7F /* Enabled */ + +/* Table Write Protect Boot 5H options */ +#define _WRTB_OFF_5H 0xFF /* Disabled */ +#define _WRTB_ON_5H 0xBF /* Enabled */ + +/* Config. Write Protect 5H options */ +#define _WRTC_OFF_5H 0xFF /* Disabled */ +#define _WRTC_ON_5H 0xDF /* Enabled */ + +/* Table Read Protect 00800-003FFF 6L options */ +#define _EBTR_0_OFF_6L 0xFF /* Disabled */ +#define _EBTR_0_ON_6L 0xFE /* Enabled */ + +/* Table Read Protect 004000-07FFF 6L options */ +#define _EBTR_1_OFF_6L 0xFF /* Disabled */ +#define _EBTR_1_ON_6L 0xFD /* Enabled */ + +/* Table Read Protect 08000-0BFFF 6L options */ +#define _EBTR_2_OFF_6L 0xFF /* Disabled */ +#define _EBTR_2_ON_6L 0xFB /* Enabled */ + +/* Table Read Protect 0C000-0FFFF 6L options */ +#define _EBTR_3_OFF_6L 0xFF /* Disabled */ +#define _EBTR_3_ON_6L 0xF7 /* Enabled */ + +/* Table Read Protect Boot 6H options */ +#define _EBTRB_OFF_6H 0xFF /* Disabled */ +#define _EBTRB_ON_6H 0xBF /* Enabled */ + + +#endif diff --git a/device/include/pic16/pic18f8720.h b/device/include/pic16/pic18f8720.h new file mode 100644 index 00000000..66d7e243 --- /dev/null +++ b/device/include/pic16/pic18f8720.h @@ -0,0 +1,1531 @@ + +/* + * pic18f8720.h - PIC18F8720 Device Library Header + * + * This file is part of the GNU PIC Library. + * + * January, 2004 + * The GNU PIC Library is maintained by, + * Vangelis Rokas + * + * $Id$ + * + */ + +#ifndef __PIC18F8720_H__ +#define __PIC18F8720_H__ + +extern sfr at 0xf6b RCSTA2; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTA2bits_t; + +extern volatile __RCSTA2bits_t at 0xf6b RCSTA2bits; + +extern sfr at 0xf6c TXSTA2; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTA2bits_t; + +extern volatile __TXSTA2bits_t at 0xf6c TXSTA2bits; + +extern sfr at 0xf6d TXREG2; +extern sfr at 0xf6e RCREG2; +extern sfr at 0xf6f SPBRG2; +extern sfr at 0xf70 CCP5CON; +typedef union { + struct { + unsigned CCP5M0:1; + unsigned CCP5M1:1; + unsigned CCP5M2:1; + unsigned CCP5M3:1; + unsigned DCCP5Y:1; + unsigned DCCP5X:1; + unsigned :1; + unsigned :1; + }; +} __CCP5CONbits_t; + +extern volatile __CCP5CONbits_t at 0xf70 CCP5CONbits; + +extern sfr at 0xf71 CCPR5L; +extern sfr at 0xf72 CCPR5H; +extern sfr at 0xf73 CCP4CON; +typedef union { + struct { + unsigned CCP4M0:1; + unsigned CCP4M1:1; + unsigned CCP4M2:1; + unsigned CCP4M3:1; + unsigned DCCP4Y:1; + unsigned DCCP4X:1; + unsigned :1; + unsigned :1; + }; +} __CCP4CONbits_t; + +extern volatile __CCP4CONbits_t at 0xf73 CCP4CONbits; + +extern sfr at 0xf74 CCPR4L; +extern sfr at 0xf75 CCPR4H; +extern sfr at 0xf76 T4CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T4CONbits_t; + +extern volatile __T4CONbits_t at 0xf76 T4CONbits; + +extern sfr at 0xf77 PR4; +extern sfr at 0xf78 TMR4; +extern sfr at 0xf80 PORTA; +typedef union { + struct { + unsigned RA0:1; + unsigned RA1:1; + unsigned RA2:1; + unsigned RA3:1; + unsigned RA4:1; + unsigned RA5:1; + unsigned RA6:1; + unsigned :1; + }; + + struct { + unsigned AN0:1; + unsigned AN1:1; + unsigned AN2:1; + unsigned AN3:1; + unsigned :1; + unsigned AN4:1; + unsigned OSC2:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned VREFM:1; + unsigned VREFP:1; + unsigned T0CKI:1; + unsigned SS:1; + unsigned CLK0:1; + unsigned :1; + }; + + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned LVDIN:1; + unsigned :1; + unsigned :1; + }; +} __PORTAbits_t; + +extern volatile __PORTAbits_t at 0xf80 PORTAbits; + +extern sfr at 0xf81 PORTB; +typedef union { + struct { + unsigned RB0:1; + unsigned RB1:1; + unsigned RB2:1; + unsigned RB3:1; + unsigned RB4:1; + unsigned RB5:1; + unsigned RB6:1; + unsigned RB7:1; + }; + + struct { + unsigned INT0:1; + unsigned INT1:1; + unsigned INT2:1; + unsigned INT3:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTBbits_t; + +extern volatile __PORTBbits_t at 0xf81 PORTBbits; + +extern sfr at 0xf82 PORTC; +typedef union { + struct { + unsigned RC0:1; + unsigned RC1:1; + unsigned RC2:1; + unsigned RC3:1; + unsigned RC4:1; + unsigned RC5:1; + unsigned RC6:1; + unsigned RC7:1; + }; + + struct { + unsigned T1OSO:1; + unsigned T1OSI:1; + unsigned :1; + unsigned SCK:1; + unsigned SDI:1; + unsigned SDO:1; + unsigned TX:1; + unsigned RX:1; + }; + + struct { + unsigned T1CKI:1; + unsigned CCP2:1; + unsigned CCP1:1; + unsigned SCL:1; + unsigned SDA:1; + unsigned :1; + unsigned CK:1; + unsigned DT:1; + }; +} __PORTCbits_t; + +extern volatile __PORTCbits_t at 0xf82 PORTCbits; + +extern sfr at 0xf83 PORTD; +typedef union { + struct { + unsigned RD0:1; + unsigned RD1:1; + unsigned RD2:1; + unsigned RD3:1; + unsigned RD4:1; + unsigned RD5:1; + unsigned RD6:1; + unsigned RD7:1; + }; + + struct { + unsigned AD0:1; + unsigned AD1:1; + unsigned AD2:1; + unsigned AD3:1; + unsigned AD4:1; + unsigned AD5:1; + unsigned AD6:1; + unsigned AD7:1; + }; +} __PORTDbits_t; + +extern volatile __PORTDbits_t at 0xf83 PORTDbits; + +extern sfr at 0xf84 PORTE; +typedef union { + struct { + unsigned RE0:1; + unsigned RE1:1; + unsigned RE2:1; + unsigned RE3:1; + unsigned RE4:1; + unsigned RE5:1; + unsigned RE6:1; + unsigned RE7:1; + }; + + struct { + unsigned ALE:1; + unsigned OE:1; + unsigned WRL:1; + unsigned WRH:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned CCP2:1; + }; + + struct { + unsigned AN5:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTEbits_t; + +extern volatile __PORTEbits_t at 0xf84 PORTEbits; + +extern sfr at 0xf85 PORTF; +typedef union { + struct { + unsigned RF0:1; + unsigned RF1:1; + unsigned RF2:1; + unsigned RF3:1; + unsigned RF4:1; + unsigned RF5:1; + unsigned RF6:1; + unsigned RF7:1; + }; +} __PORTFbits_t; + +extern volatile __PORTFbits_t at 0xf85 PORTFbits; + +extern sfr at 0xf86 PORTG; +typedef union { + struct { + unsigned RG0:1; + unsigned RG1:1; + unsigned RG2:1; + unsigned RG3:1; + unsigned RG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __PORTGbits_t; + +extern volatile __PORTGbits_t at 0xf86 PORTGbits; + +extern sfr at 0xf87 PORTH; +typedef union { + struct { + unsigned RH0:1; + unsigned RH1:1; + unsigned RH2:1; + unsigned RH3:1; + unsigned RH4:1; + unsigned RH5:1; + unsigned RH6:1; + unsigned RH7:1; + }; +} __PORTHbits_t; + +extern volatile __PORTHbits_t at 0xf87 PORTHbits; + +extern sfr at 0xf88 PORTJ; +typedef union { + struct { + unsigned RJ0:1; + unsigned RJ1:1; + unsigned RJ2:1; + unsigned RJ3:1; + unsigned RJ4:1; + unsigned RJ5:1; + unsigned RJ6:1; + unsigned RJ7:1; + }; +} __PORTJbits_t; + +extern volatile __PORTJbits_t at 0xf88 PORTJbits; + +extern sfr at 0xf89 LATA; +typedef union { + struct { + unsigned LATA0:1; + unsigned LATA1:1; + unsigned LATA2:1; + unsigned LATA3:1; + unsigned LATA4:1; + unsigned LATA5:1; + unsigned LATA6:1; + unsigned :1; + }; +} __LATAbits_t; + +extern volatile __LATAbits_t at 0xf89 LATAbits; + +extern sfr at 0xf8a LATB; +typedef union { + struct { + unsigned LATB0:1; + unsigned LATB1:1; + unsigned LATB2:1; + unsigned LATB3:1; + unsigned LATB4:1; + unsigned LATB5:1; + unsigned LATB6:1; + unsigned LATB7:1; + }; +} __LATBbits_t; + +extern volatile __LATBbits_t at 0xf8a LATBbits; + +extern sfr at 0xf8b LATC; +typedef union { + struct { + unsigned LATC0:1; + unsigned LATC1:1; + unsigned LATC2:1; + unsigned LATC3:1; + unsigned LATC4:1; + unsigned LATC5:1; + unsigned LATC6:1; + unsigned LATC7:1; + }; +} __LATCbits_t; + +extern volatile __LATCbits_t at 0xf8b LATCbits; + +extern sfr at 0xf8c LATD; +typedef union { + struct { + unsigned LATD0:1; + unsigned LATD1:1; + unsigned LATD2:1; + unsigned LATD3:1; + unsigned LATD4:1; + unsigned LATD5:1; + unsigned LATD6:1; + unsigned LATD7:1; + }; +} __LATDbits_t; + +extern volatile __LATDbits_t at 0xf8c LATDbits; + +extern sfr at 0xf8d LATE; +typedef union { + struct { + unsigned LATE0:1; + unsigned LATE1:1; + unsigned LATE2:1; + unsigned LATE3:1; + unsigned LATE4:1; + unsigned LATE5:1; + unsigned LATE6:1; + unsigned LATE7:1; + }; +} __LATEbits_t; + +extern volatile __LATEbits_t at 0xf8d LATEbits; + +extern sfr at 0xf8e LATF; +typedef union { + struct { + unsigned LATF0:1; + unsigned LATF1:1; + unsigned LATF2:1; + unsigned LATF3:1; + unsigned LATF4:1; + unsigned LATF5:1; + unsigned LATF6:1; + unsigned LATF7:1; + }; +} __LATFbits_t; + +extern volatile __LATFbits_t at 0xf8e LATFbits; + +extern sfr at 0xf8f LATG; +typedef union { + struct { + unsigned LATG0:1; + unsigned LATG1:1; + unsigned LATG2:1; + unsigned LATG3:1; + unsigned LATG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __LATGbits_t; + +extern volatile __LATGbits_t at 0xf8f LATGbits; + +extern sfr at 0xf90 LATH; +typedef union { + struct { + unsigned LATH0:1; + unsigned LATH1:1; + unsigned LATH2:1; + unsigned LATH3:1; + unsigned LATH4:1; + unsigned LATH5:1; + unsigned LATH6:1; + unsigned LATH7:1; + }; +} __LATHbits_t; + +extern volatile __LATHbits_t at 0xf90 LATHbits; + +extern sfr at 0xf91 LATJ; +typedef union { + struct { + unsigned LATJ0:1; + unsigned LATJ1:1; + unsigned LATJ2:1; + unsigned LATJ3:1; + unsigned LATJ4:1; + unsigned LATJ5:1; + unsigned LATJ6:1; + unsigned LATJ7:1; + }; +} __LATJbits_t; + +extern volatile __LATJbits_t at 0xf91 LATJbits; + +extern sfr at 0xf92 TRISA; +typedef union { + struct { + unsigned TRISA0:1; + unsigned TRISA1:1; + unsigned TRISA2:1; + unsigned TRISA3:1; + unsigned TRISA4:1; + unsigned TRISA5:1; + unsigned TRISA6:1; + unsigned :1; + }; +} __TRISAbits_t; + +extern volatile __TRISAbits_t at 0xf92 TRISAbits; + +extern sfr at 0xf93 TRISB; +typedef union { + struct { + unsigned TRISB0:1; + unsigned TRISB1:1; + unsigned TRISB2:1; + unsigned TRISB3:1; + unsigned TRISB4:1; + unsigned TRISB5:1; + unsigned TRISB6:1; + unsigned TRISB7:1; + }; +} __TRISBbits_t; + +extern volatile __TRISBbits_t at 0xf93 TRISBbits; + +extern sfr at 0xf94 TRISC; +typedef union { + struct { + unsigned TRISC0:1; + unsigned TRISC1:1; + unsigned TRISC2:1; + unsigned TRISC3:1; + unsigned TRISC4:1; + unsigned TRISC5:1; + unsigned TRISC6:1; + unsigned TRISC7:1; + }; +} __TRISCbits_t; + +extern volatile __TRISCbits_t at 0xf94 TRISCbits; + +extern sfr at 0xf95 TRISD; +typedef union { + struct { + unsigned TRISD0:1; + unsigned TRISD1:1; + unsigned TRISD2:1; + unsigned TRISD3:1; + unsigned TRISD4:1; + unsigned TRISD5:1; + unsigned TRISD6:1; + unsigned TRISD7:1; + }; +} __TRISDbits_t; + +extern volatile __TRISDbits_t at 0xf95 TRISDbits; + +extern sfr at 0xf96 TRISE; +typedef union { + struct { + unsigned TRISE0:1; + unsigned TRISE1:1; + unsigned TRISE2:1; + unsigned TRISE3:1; + unsigned TRISE4:1; + unsigned TRISE5:1; + unsigned TRISE6:1; + unsigned TRISE7:1; + }; +} __TRISEbits_t; + +extern volatile __TRISEbits_t at 0xf96 TRISEbits; + +extern sfr at 0xf97 TRISF; +typedef union { + struct { + unsigned TRISF0:1; + unsigned TRISF1:1; + unsigned TRISF2:1; + unsigned TRISF3:1; + unsigned TRISF4:1; + unsigned TRISF5:1; + unsigned TRISF6:1; + unsigned TRISF7:1; + }; +} __TRISFbits_t; + +extern volatile __TRISFbits_t at 0xf97 TRISFbits; + +extern sfr at 0xf98 TRISG; +typedef union { + struct { + unsigned TRISG0:1; + unsigned TRISG1:1; + unsigned TRISG2:1; + unsigned TRISG3:1; + unsigned TRISG4:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __TRISGbits_t; + +extern volatile __TRISGbits_t at 0xf98 TRISGbits; + +extern sfr at 0xf99 TRISH; +typedef union { + struct { + unsigned TRISH0:1; + unsigned TRISH1:1; + unsigned TRISH2:1; + unsigned TRISH3:1; + unsigned TRISH4:1; + unsigned TRISH5:1; + unsigned TRISH6:1; + unsigned TRISH7:1; + }; +} __TRISHbits_t; + +extern volatile __TRISHbits_t at 0xf99 TRISHbits; + +extern sfr at 0xf9a TRISJ; +typedef union { + struct { + unsigned TRISJ0:1; + unsigned TRISJ1:1; + unsigned TRISJ2:1; + unsigned TRISJ3:1; + unsigned TRISJ4:1; + unsigned TRISJ5:1; + unsigned TRISJ6:1; + unsigned TRISJ7:1; + }; +} __TRISJbits_t; + +extern volatile __TRISJbits_t at 0xf9a TRISJbits; + +extern sfr at 0xf9c MEMCON; +typedef union { + struct { + unsigned WM0:1; + unsigned WM1:1; + unsigned :1; + unsigned :1; + unsigned WAIT0:1; + unsigned WAIT1:1; + unsigned :1; + unsigned EBDIS:1; + }; +} __MEMCONbits_t; + +extern volatile __MEMCONbits_t at 0xf9c MEMCONbits; + +extern sfr at 0xf9d PIE1; +typedef union { + struct { + unsigned TMR1IE:1; + unsigned TMR2IE:1; + unsigned CCP1IE:1; + unsigned SSPIE:1; + unsigned TXIE:1; + unsigned RCIE:1; + unsigned ADIE:1; + unsigned PSPIE:1; + }; +} __PIE1bits_t; + +extern volatile __PIE1bits_t at 0xf9d PIE1bits; + +extern sfr at 0xf9e PIR1; +typedef union { + struct { + unsigned TMR1IF:1; + unsigned TMR2IF:1; + unsigned CCP1IF:1; + unsigned SSPIF:1; + unsigned TXIF:1; + unsigned RCIF:1; + unsigned ADIF:1; + unsigned PSPIF:1; + }; +} __PIR1bits_t; + +extern volatile __PIR1bits_t at 0xf9e PIR1bits; + +extern sfr at 0xf9f IPR1; +typedef union { + struct { + unsigned TMR1IP:1; + unsigned TMR2IP:1; + unsigned CCP1IP:1; + unsigned SSPIP:1; + unsigned TXIP:1; + unsigned RCIP:1; + unsigned ADIP:1; + unsigned PSPIP:1; + }; +} __IPR1bits_t; + +extern volatile __IPR1bits_t at 0xf9f IPR1bits; + +extern sfr at 0xfa0 PIE2; +typedef union { + struct { + unsigned CCP2IE:1; + unsigned TMR3IE:1; + unsigned LVDIE:1; + unsigned BCLIE:1; + unsigned EEIE:1; + unsigned :1; + unsigned CMIE:1; + unsigned :1; + }; +} __PIE2bits_t; + +extern volatile __PIE2bits_t at 0xfa0 PIE2bits; + +extern sfr at 0xfa1 PIR2; +typedef union { + struct { + unsigned CCP2IF:1; + unsigned TMR3IF:1; + unsigned LVDIF:1; + unsigned BCLIF:1; + unsigned EEIF:1; + unsigned :1; + unsigned CMIF:1; + unsigned :1; + }; +} __PIR2bits_t; + +extern volatile __PIR2bits_t at 0xfa1 PIR2bits; + +extern sfr at 0xfa2 IPR2; +typedef union { + struct { + unsigned CCP2IP:1; + unsigned TMR3IP:1; + unsigned LVDIP:1; + unsigned BCLIP:1; + unsigned EEIP:1; + unsigned :1; + unsigned CMIP:1; + unsigned :1; + }; +} __IPR2bits_t; + +extern volatile __IPR2bits_t at 0xfa2 IPR2bits; + +extern sfr at 0xfa3 PIE3; +typedef union { + struct { + unsigned CCP3IE:1; + unsigned CCP4IE:1; + unsigned CCP5IE:1; + unsigned TMR4IE:1; + unsigned TX2IE:1; + unsigned RC2IE:1; + unsigned :1; + unsigned :1; + }; +} __PIE3bits_t; + +extern volatile __PIE3bits_t at 0xfa3 PIE3bits; + +extern sfr at 0xfa4 PIR3; +typedef union { + struct { + unsigned CCP3IF:1; + unsigned CCP4IF:1; + unsigned CCP5IF:1; + unsigned TMR4IF:1; + unsigned TX2IF:1; + unsigned RC2IF:1; + unsigned :1; + unsigned :1; + }; +} __PIR3bits_t; + +extern volatile __PIR3bits_t at 0xfa4 PIR3bits; + +extern sfr at 0xfa5 IPR3; +typedef union { + struct { + unsigned CCP3IP:1; + unsigned CCP4IP:1; + unsigned CCP5IP:1; + unsigned TMR4IP:1; + unsigned TX2IP:1; + unsigned RC2IP:1; + unsigned :1; + unsigned :1; + }; +} __IPR3bits_t; + +extern volatile __IPR3bits_t at 0xfa5 IPR3bits; + +extern sfr at 0xfa6 EECON1; +typedef union { + struct { + unsigned RD:1; + unsigned WR:1; + unsigned WREN:1; + unsigned WRERR:1; + unsigned FREE:1; + unsigned :1; + unsigned CFGS:1; + unsigned EEPGD:1; + }; +} __EECON1bits_t; + +extern volatile __EECON1bits_t at 0xfa6 EECON1bits; + +extern sfr at 0xfa7 EECON2; +extern sfr at 0xfa8 EEDATA; +extern sfr at 0xfa9 EEADR; +extern sfr at 0xfaa EEADRH; +extern sfr at 0xfab RCSTA1; +typedef union { + struct { + unsigned RX9D:1; + unsigned OERR:1; + unsigned FERR:1; + unsigned ADDEN:1; + unsigned CREN:1; + unsigned SREN:1; + unsigned RX9:1; + unsigned SPEN:1; + }; +} __RCSTA1bits_t; + +extern volatile __RCSTA1bits_t at 0xfab RCSTA1bits; + +extern sfr at 0xfac TXSTA1; +typedef union { + struct { + unsigned TX9D:1; + unsigned TRMT:1; + unsigned BRGH:1; + unsigned :1; + unsigned SYNC:1; + unsigned TXEN:1; + unsigned TX9:1; + unsigned CSRC:1; + }; +} __TXSTA1bits_t; + +extern volatile __TXSTA1bits_t at 0xfac TXSTA1bits; + +extern sfr at 0xfad TXREG1; +extern sfr at 0xfae RCREG1; +extern sfr at 0xfaf SPBRG1; +extern sfr at 0xfb0 PSPCON; +typedef union { + struct { + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned PSPMODE:1; + unsigned IBOV:1; + unsigned OBF:1; + unsigned IBF:1; + }; +} __PSPCONbits_t; + +extern volatile __PSPCONbits_t at 0xfb0 PSPCONbits; + +extern sfr at 0xfb1 T3CON; +typedef union { + struct { + unsigned TMR3ON:1; + unsigned TMR3CS:1; + unsigned T3SYNC:1; + unsigned T3CCP1:1; + unsigned T3CKPS0:1; + unsigned T3CKPS1:1; + unsigned T3CCP2:1; + unsigned RD16:1; + }; +} __T3CONbits_t; + +extern volatile __T3CONbits_t at 0xfb1 T3CONbits; + +extern sfr at 0xfb2 TMR3L; +extern sfr at 0xfb3 TMR3H; +extern sfr at 0xfb4 CMCON; +typedef union { + struct { + unsigned CM0:1; + unsigned CM1:1; + unsigned CM2:1; + unsigned CIS:1; + unsigned C1INV:1; + unsigned C2INV:1; + unsigned C1OUT:1; + unsigned C2OUT:1; + }; +} __CMCONbits_t; + +extern volatile __CMCONbits_t at 0xfb4 CMCONbits; + +extern sfr at 0xfb5 CVRCON; +typedef union { + struct { + unsigned CVR0:1; + unsigned CVR1:1; + unsigned CVR2:1; + unsigned CVR3:1; + unsigned CVREF:1; + unsigned CVRR:1; + unsigned CVROE:1; + unsigned CVREN:1; + }; +} __CVRCONbits_t; + +extern volatile __CVRCONbits_t at 0xfb5 CVRCONbits; + +extern sfr at 0xfb7 CCP3CON; +typedef union { + struct { + unsigned CCP3M0:1; + unsigned CCP3M1:1; + unsigned CCP3M2:1; + unsigned CCP3M3:1; + unsigned DCCP3Y:1; + unsigned DCCP3X:1; + unsigned :1; + unsigned :1; + }; +} __CCP3CONbits_t; + +extern volatile __CCP3CONbits_t at 0xfb7 CCP3CONbits; + +extern sfr at 0xfb8 CCPR3L; +extern sfr at 0xfb9 CCPR3H; +extern sfr at 0xfba CCP2CON; +typedef union { + struct { + unsigned CCP2M0:1; + unsigned CCP2M1:1; + unsigned CCP2M2:1; + unsigned CCP2M3:1; + unsigned DCCP2Y:1; + unsigned DCCP2X:1; + unsigned :1; + unsigned :1; + }; +} __CCP2CONbits_t; + +extern volatile __CCP2CONbits_t at 0xfba CCP2CONbits; + +extern sfr at 0xfbb CCPR2L; +extern sfr at 0xfbc CCPR2H; +extern sfr at 0xfbd CCP1CON; +typedef union { + struct { + unsigned CCP1M0:1; + unsigned CCP1M1:1; + unsigned CCP1M2:1; + unsigned CCP1M3:1; + unsigned DCCP1Y:1; + unsigned DCCP1X:1; + unsigned :1; + unsigned :1; + }; +} __CCP1CONbits_t; + +extern volatile __CCP1CONbits_t at 0xfbd CCP1CONbits; + +extern sfr at 0xfbe CCPR1L; +extern sfr at 0xfbf CCPR1H; +extern sfr at 0xfc0 ADCON2; +typedef union { + struct { + unsigned ADCS0:1; + unsigned ADCS1:1; + unsigned ADCS2:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned ADFM:1; + }; +} __ADCON2bits_t; + +extern volatile __ADCON2bits_t at 0xfc0 ADCON2bits; + +extern sfr at 0xfc1 ADCON1; +typedef union { + struct { + unsigned PCFG0:1; + unsigned PCFG1:1; + unsigned PCFG2:1; + unsigned PCFG3:1; + unsigned VCFG0:1; + unsigned VCFG1:1; + unsigned :1; + unsigned :1; + }; +} __ADCON1bits_t; + +extern volatile __ADCON1bits_t at 0xfc1 ADCON1bits; + +extern sfr at 0xfc2 ADCON0; +typedef union { + struct { + unsigned ADON:1; + unsigned GO:1; + unsigned CHS0:1; + unsigned CHS1:1; + unsigned CHS2:1; + unsigned CHS3:1; + unsigned :1; + unsigned :1; + }; +} __ADCON0bits_t; + +extern volatile __ADCON0bits_t at 0xfc2 ADCON0bits; + +extern sfr at 0xfc3 ADRESL; +extern sfr at 0xfc4 ADRESH; +extern sfr at 0xfc5 SSPCON2; +typedef union { + struct { + unsigned SEN:1; + unsigned RSEN:1; + unsigned PEN:1; + unsigned RCEN:1; + unsigned ACKEN:1; + unsigned ACKDT:1; + unsigned ACKSTAT:1; + unsigned GCEN:1; + }; +} __SSPCON2bits_t; + +extern volatile __SSPCON2bits_t at 0xfc5 SSPCON2bits; + +extern sfr at 0xfc6 SSPCON1; +typedef union { + struct { + unsigned SSPM0:1; + unsigned SSPM1:1; + unsigned SSPM2:1; + unsigned SSPM3:1; + unsigned CKP:1; + unsigned SSPEN:1; + unsigned SSPOV:1; + unsigned WCOL:1; + }; +} __SSPCON1bits_t; + +extern volatile __SSPCON1bits_t at 0xfc6 SSPCON1bits; + +extern sfr at 0xfc7 SSPSTAT; +typedef union { + struct { + unsigned BF:1; + unsigned UA:1; + unsigned R_W:1; + unsigned S:1; + unsigned P:1; + unsigned D_A:1; + unsigned CKE:1; + unsigned SMP:1; + }; +} __SSPSTATbits_t; + +extern volatile __SSPSTATbits_t at 0xfc7 SSPSTATbits; + +extern sfr at 0xfc8 SSPADD; +extern sfr at 0xfc9 SSPBUF; +extern sfr at 0xfca T2CON; +typedef union { + struct { + unsigned T2CKPS0:1; + unsigned T2CKPS1:1; + unsigned TMR2ON:1; + unsigned TOUTPS0:1; + unsigned TOUTPS1:1; + unsigned TOUTPS2:1; + unsigned TOUTPS3:1; + unsigned :1; + }; +} __T2CONbits_t; + +extern volatile __T2CONbits_t at 0xfca T2CONbits; + +extern sfr at 0xfcb PR2; +extern sfr at 0xfcc TMR2; +extern sfr at 0xfcd T1CON; +typedef union { + struct { + unsigned TMR1ON:1; + unsigned TMR1CS:1; + unsigned NOT_T1SYNC:1; + unsigned T1OSCEN:1; + unsigned T1CKPS0:1; + unsigned T1CKPS1:1; + unsigned :1; + unsigned RD16:1; + }; +} __T1CONbits_t; + +extern volatile __T1CONbits_t at 0xfcd T1CONbits; + +extern sfr at 0xfce TMR1L; +extern sfr at 0xfcf TMR1H; +extern sfr at 0xfd0 RCON; +typedef union { + struct { + unsigned BOR:1; + unsigned POR:1; + unsigned PD:1; + unsigned TO:1; + unsigned RI:1; + unsigned :1; + unsigned :1; + unsigned IPEN:1; + }; +} __RCONbits_t; + +extern volatile __RCONbits_t at 0xfd0 RCONbits; + +extern sfr at 0xfd1 WDTCON; +typedef union { + struct { + unsigned SWDTEN:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned SWDTE:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __WDTCONbits_t; + +extern volatile __WDTCONbits_t at 0xfd1 WDTCONbits; + +extern sfr at 0xfd2 LVDCON; +typedef union { + struct { + unsigned LVDL0:1; + unsigned LVDL1:1; + unsigned LVDL2:1; + unsigned LVDL3:1; + unsigned LVDEN:1; + unsigned VRST:1; + unsigned :1; + unsigned :1; + }; + + struct { + unsigned LVV0:1; + unsigned LVV1:1; + unsigned LVV2:1; + unsigned LVV3:1; + unsigned :1; + unsigned BGST:1; + unsigned :1; + unsigned :1; + }; +} __LVDCONbits_t; + +extern volatile __LVDCONbits_t at 0xfd2 LVDCONbits; + +extern sfr at 0xfd3 OSCCON; +typedef union { + struct { + unsigned SCS:1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __OSCCONbits_t; + +extern volatile __OSCCONbits_t at 0xfd3 OSCCONbits; + +extern sfr at 0xfd5 T0CON; +extern sfr at 0xfd6 TMR0L; +extern sfr at 0xfd7 TMR0H; +extern sfr at 0xfd8 STATUS; +typedef union { + struct { + unsigned C:1; + unsigned DC:1; + unsigned Z:1; + unsigned OV:1; + unsigned N:1; + unsigned :1; + unsigned :1; + unsigned :1; + }; +} __STATUSbits_t; + +extern volatile __STATUSbits_t at 0xfd8 STATUSbits; + +extern sfr at 0xfd9 FSR2L; +extern sfr at 0xfda FSR2H; +extern sfr at 0xfdb PLUSW2; +extern sfr at 0xfdc PREINC2; +extern sfr at 0xfdd POSTDEC2; +extern sfr at 0xfde POSTINC2; +extern sfr at 0xfdf INDF2; +extern sfr at 0xfe0 BSR; +extern sfr at 0xfe1 FSR1L; +extern sfr at 0xfe2 FSR1H; +extern sfr at 0xfe3 PLUSW1; +extern sfr at 0xfe4 PREINC1; +extern sfr at 0xfe5 POSTDEC1; +extern sfr at 0xfe6 POSTINC1; +extern sfr at 0xfe7 INDF1; +extern sfr at 0xfe8 WREG; +extern sfr at 0xfe9 FSR0L; +extern sfr at 0xfea FSR0H; +extern sfr at 0xfeb PLUSW0; +extern sfr at 0xfec PREINC0; +extern sfr at 0xfed POSTDEC0; +extern sfr at 0xfee POSTINC0; +extern sfr at 0xfef INDF0; +extern sfr at 0xff0 INTCON3; +typedef union { + struct { + unsigned INT1F:1; + unsigned INT2F:1; + unsigned INT3F:1; + unsigned INT1E:1; + unsigned INT2E:1; + unsigned INT3E:1; + unsigned INT1P:1; + unsigned INT2P:1; + }; + + struct { + unsigned INT1IF:1; + unsigned INT2IF:1; + unsigned INT3IF:1; + unsigned INT1IE:1; + unsigned INT2IE:1; + unsigned INT3IE:1; + unsigned INT1IP:1; + unsigned INT2IP:1; + }; +} __INTCON3bits_t; + +extern volatile __INTCON3bits_t at 0xff0 INTCON3bits; + +extern sfr at 0xff1 INTCON2; +typedef union { + struct { + unsigned RBIP:1; + unsigned INT3P:1; + unsigned T0IP:1; + unsigned INTEDG3:1; + unsigned INTEDG2:1; + unsigned INTEDG1:1; + unsigned INTEDG0:1; + unsigned RBPU:1; + }; +} __INTCON2bits_t; + +extern volatile __INTCON2bits_t at 0xff1 INTCON2bits; + +extern sfr at 0xff2 INTCON; +typedef union { + struct { + unsigned RBIF:1; + unsigned INT0F:1; + unsigned T0IF:1; + unsigned RBIE:1; + unsigned INT0E:1; + unsigned T0IE:1; + unsigned PEIE:1; + unsigned GIE:1; + }; +} __INTCONbits_t; + +extern volatile __INTCONbits_t at 0xff2 INTCONbits; + +extern sfr at 0xff3 PRODL; +extern sfr at 0xff4 PRODH; +extern sfr at 0xff5 TABLAT; +extern sfr at 0xff6 TBLPTRL; +extern sfr at 0xff7 TBLPTRH; +extern sfr at 0xff8 TBLPTRU; +extern sfr at 0xff9 PCL; +extern sfr at 0xffa PCLATH; +extern sfr at 0xffb PCLATU; +extern sfr at 0xffc STKPTR; +typedef union { + struct { + unsigned STKPTR0:1; + unsigned STKPTR1:1; + unsigned STKPTR2:1; + unsigned STKPTR3:1; + unsigned STKPTR4:1; + unsigned :1; + unsigned STKUNF:1; + unsigned STKFUL:1; + }; +} __STKPTRbits_t; + +extern volatile __STKPTRbits_t at 0xffc STKPTRbits; + +extern sfr at 0xffd TOSL; +extern sfr at 0xffe TOSH; +extern sfr at 0xfff TOSU; + + +/* Configuration registers locations */ +#define __CONFIG0H 0x300001 +#define __CONFIG1L 0x300002 +#define __CONFIG1H 0x300003 +#define __CONFIG2L 0x300004 +#define __CONFIG2H 0x300005 +#define __CONFIG3L 0x300006 +#define __CONFIG4L 0x300008 +#define __CONFIG4H 0x300009 +#define __CONFIG5L 0x30000A +#define __CONFIG5H 0x30000B +#define __CONFIG6L 0x30000C +#define __CONFIG6H 0x30000D + + + +/* Oscillator 0H options */ +#define _OSC_RC_OSC2_0H 0xFF /* RC-OSC2 as RA6 */ +#define _OSC_HS_PLL_0H 0xFE /* HS-PLL Enabled */ +#define _OSC_EC_OSC2_RA6_0H 0xFD /* EC-OSC2 as RA6 */ +#define _OSC_EC_OSC2_Clock_Out_0H 0xFC /* EC-OSC2 as Clock_Out */ +#define _OSC_RC_0H 0xFB /* RC */ +#define _OSC_HS_0H 0xFA /* HS */ +#define _OSC_XT_0H 0xF9 /* XT */ +#define _OSC_LP_0H 0xF8 /* LP */ + +/* Osc. Switch Enable 0H options */ +#define _OSCS_OFF_0H 0xFF /* Disabled */ +#define _OSCS_ON_0H 0xDF /* Enabled */ + +/* Power Up Timer 1L options */ +#define _PUT_OFF_1L 0xFF /* Disabled */ +#define _PUT_ON_1L 0xFE /* Enabled */ + +/* Brown Out Detect 1L options */ +#define _BODEN_ON_1L 0xFF /* Enabled */ +#define _BODEN_OFF_1L 0xFD /* Disabled */ + +/* Brown Out Voltage 1L options */ +#define _BODENV_2_5V_1L 0xFF /* 2.5V */ +#define _BODENV_2_7V_1L 0xFB /* 2.7V */ +#define _BODENV_4_2V_1L 0xF7 /* 4.2V */ +#define _BODENV_4_5V_1L 0xF3 /* 4.5V */ + +/* Watchdog Timer 1H options */ +#define _WDT_ON_1H 0xFF /* Enabled */ +#define _WDT_OFF_1H 0xFE /* Disabled */ + +/* Watchdog Postscaler 1H options */ +#define _WDTPS_1_128_1H 0xFF /* 1:128 */ +#define _WDTPS_1_64_1H 0xFD /* 1:64 */ +#define _WDTPS_1_32_1H 0xFB /* 1:32 */ +#define _WDTPS_1_16_1H 0xF9 /* 1:16 */ +#define _WDTPS_1_8_1H 0xF7 /* 1:8 */ +#define _WDTPS_1_4_1H 0xF5 /* 1:4 */ +#define _WDTPS_1_2_1H 0xF3 /* 1:2 */ +#define _WDTPS_1_1_1H 0xF1 /* 1:1 */ + +/* Processor Mode 2L options */ +#define _PMODE_MICROCONTROLLER_2L 0xFF /* Microcontroller */ +#define _PMODE_MICROPROCESSOR__2L 0xFE /* Microprocessor */ +#define _PMODE_MICROPROCESSOR_w_Boot_2L 0xFD /* Microprocessor w_Boot */ +#define _PMODE_EXT_2L 0xFC /* Ext Microcontroller */ + +/* External Bus Wait 2L options */ +#define _WAIT_OFF_2L 0xFF /* Disabled */ +#define _WAIT_ON_2L 0x7F /* Enabled */ + +/* CCP2 Mux 2H options */ +#define _CCP2MUX_RC1_2H 0xFF /* RC1 */ +#define _CCP2MUX_RE7_MICROCONTROLLER__RB3_2H 0xFE /* RE7(Microcontroller)/RB3 */ + +/* Low Voltage Program 3L options */ +#define _LVP_ON_3L 0xFF /* Enabled */ +#define _LVP_OFF_3L 0xFB /* Disabled */ + +/* Background Debug 3L options */ +#define _BACKBUG_OFF_3L 0xFF /* Disabled */ +#define _BACKBUG_ON_3L 0x7F /* Enabled */ + +/* Stack Overflow Reset 3L options */ +#define _STVR_ON_3L 0xFF /* Enabled */ +#define _STVR_OFF_3L 0xFE /* Disabled */ + +/* Code Protect 00200-03FFF 4L options */ +#define _CP_0_OFF_4L 0xFF /* Disabled */ +#define _CP_0_ON_4L 0xFE /* Enabled */ + +/* Code Protect 04000-07FFF 4L options */ +#define _CP_1_OFF_4L 0xFF /* Disabled */ +#define _CP_1_ON_4L 0xFD /* Enabled */ + +/* Code Protect 08000-0BFFF 4L options */ +#define _CP_2_OFF_4L 0xFF /* Disabled */ +#define _CP_2_ON_4L 0xFB /* Enabled */ + +/* Code Protect 0C000-0FFFF 4L options */ +#define _CP_3_OFF_4L 0xFF /* Disabled */ +#define _CP_3_ON_4L 0xF7 /* Enabled */ + +/* Code Protect 10000-13FFF 4L options */ +#define _CP_4_OFF_4L 0xFF /* Disabled */ +#define _CP_4_ON_4L 0xEF /* Enabled */ + +/* Code Protect 14000-17FFF 4L options */ +#define _CP_5_OFF_4L 0xFF /* Disabled */ +#define _CP_5_ON_4L 0xDF /* Enabled */ + +/* Code Protect 18000-1BFFF 4L options */ +#define _CP_6_OFF_4L 0xFF /* Disabled */ +#define _CP_6_ON_4L 0xBF /* Enabled */ + +/* Code Protect 1C000-1FFFF 4L options */ +#define _CP_7_OFF_4L 0xFF /* Disabled */ +#define _CP_7_ON_4L 0x7F /* Enabled */ + +/* Data EE Read Protect 4H options */ +#define _CPD_OFF_4H 0xFF /* Disabled */ +#define _CPD_ON_4H 0x7F /* Enabled */ + +/* Code Protect Boot 4H options */ +#define _CPB_OFF_4H 0xFF /* Disabled */ +#define _CPB_ON_4H 0xBF /* Enabled */ + +/* Table Write Protect 00200-03FFF 5L options */ +#define _WRT_0_OFF_5L 0xFF /* Disabled */ +#define _WRT_0_ON_5L 0xFE /* Enabled */ + +/* Table Write Protect 04000-07FFF 5L options */ +#define _WRT_1_OFF_5L 0xFF /* Disabled */ +#define _WRT_1_ON_5L 0xFD /* Enabled */ + +/* Table Write Protect 08000-0BFFF 5L options */ +#define _WRT_2_OFF_5L 0xFF /* Disabled */ +#define _WRT_2_ON_5L 0xFB /* Enabled */ + +/* Table Write Protect 0C000-0FFFF 5L options */ +#define _WRT_3_OFF_5L 0xFF /* Disabled */ +#define _WRT_3_ON_5L 0xF7 /* Enabled */ + +/* Table Write Protect 10000-13FFF 5L options */ +#define _WRT_4_OFF_5L 0xFF /* Disabled */ +#define _WRT_4_ON_5L 0xEF /* Enabled */ + +/* Table Write Protect 14000-17FFF 5L options */ +#define _WRT_5_OFF_5L 0xFF /* Disabled */ +#define _WRT_5_ON_5L 0xDF /* Enabled */ + +/* Table Write Protect 18000-1BFFF 5L options */ +#define _WRT_6_OFF_5L 0xFF /* Disabled */ +#define _WRT_6_ON_5L 0xBF /* Enabled */ + +/* Table Write Protect 1C000-1FFFF 5L options */ +#define _WRT_7_OFF_5L 0xFF /* Disabled */ +#define _WRT_7_ON_5L 0x7F /* Enabled */ + +/* Data EE Write Protect 5H options */ +#define _WRTD_OFF_5H 0xFF /* Disabled */ +#define _WRTD_ON_5H 0x7F /* Enabled */ + +/* Table Write Protect Boot 5H options */ +#define _WRTB_OFF_5H 0xFF /* Disabled */ +#define _WRTB_ON_5H 0xBF /* Enabled */ + +/* Config. Write Protect 5H options */ +#define _WRTC_OFF_5H 0xFF /* Disabled */ +#define _WRTC_ON_5H 0xDF /* Enabled */ + +/* Table Read Protect 00200-03FFF 6L options */ +#define _EBTR_0_OFF_6L 0xFF /* Disabled */ +#define _EBTR_0_ON_6L 0xFE /* Enabled */ + +/* Table Read Protect 04000-07FFF 6L options */ +#define _EBTR_1_OFF_6L 0xFF /* Disabled */ +#define _EBTR_1_ON_6L 0xFD /* Enabled */ + +/* Table Read Protect 08000-0BFFF 6L options */ +#define _EBTR_2_OFF_6L 0xFF /* Disabled */ +#define _EBTR_2_ON_6L 0xFB /* Enabled */ + +/* Table Read Protect 0C000-0FFFF 6L options */ +#define _EBTR_3_OFF_6L 0xFF /* Disabled */ +#define _EBTR_3_ON_6L 0xF7 /* Enabled */ + +/* Table Read Protect 10000-13FFF 6L options */ +#define _EBTR_4_OFF_6L 0xFF /* Disabled */ +#define _EBTR_4_ON_6L 0xEF /* Enabled */ + +/* Table Read Protect 14000-17FFF 6L options */ +#define _EBTR_5_OFF_6L 0xFF /* Disabled */ +#define _EBTR_5_ON_6L 0xDF /* Enabled */ + +/* Table Read Protect 18000-1BFFF 6L options */ +#define _EBTR_6_OFF_6L 0xFF /* Disabled */ +#define _EBTR_6_ON_6L 0xBF /* Enabled */ + +/* Table Read Protect 1C000-1FFFF 6L options */ +#define _EBTR_7_OFF_6L 0xFF /* Disabled */ +#define _EBTR_7_ON_6L 0x7F /* Enabled */ + +/* Table Read Protect Boot 6H options */ +#define _EBTRB_OFF_6H 0xFF /* Disabled */ +#define _EBTRB_ON_6H 0xBF /* Enabled */ + + +#endif -- 2.47.2