From 52c4941b7c4c92918a2b46a76855fe7022df8117 Mon Sep 17 00:00:00 2001 From: tecodev Date: Fri, 27 Feb 2009 13:03:40 +0000 Subject: [PATCH] * device/include/pic16/pic18f[24][3456]k20.h, device/include/pic16/pic18f[68][567]j50.h, device/include/pic16/pic18f[68]6j55.h, device/lib/pic16/libdev/pic18f[24][3456]k20.c, device/lib/pic16/libdev/pic18f[68][567]j50.c, device/lib/pic16/libdev/pic18f[68]6j55.c, device/include/pic16/pic18fregs.h, device/include/pic16/pic16devices.txt, device/lib/pic16/pics.all, device/lib/pic16/libdev/Makefile.am, device/lib/pic16/libio/Makefile.am: added/re-enabled many device families (87j50 family contributed by Robert Wuest) * device/include/pic16/adc.h, device/lib/pic16/libio/adc/adcbusy.c, device/lib/pic16/libio/adc/adcclose.c, device/lib/pic16/libio/adc/adcconv.c, device/lib/pic16/libio/adc/adcopen.c, device/lib/pic16/libio/adc/adcsetch.c: added 65j50-style ADC * doc/sdccman.lyx: updated list of supported devices, fixed typo * device/lib/pic16/Makefile.common: do not suppress assembler warnings git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@5391 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 25 + device/include/pic16/adc.h | 99 +- device/include/pic16/pic16devices.txt | 115 + device/include/pic16/pic18f23k20.h | 6 + device/include/pic16/pic18f24k20.h | 6 + device/include/pic16/pic18f25k20.h | 6 + device/include/pic16/pic18f26k20.h | 6 + device/include/pic16/pic18f43k20.h | 6 + device/include/pic16/pic18f44k20.h | 6 + device/include/pic16/pic18f45k20.h | 6 + device/include/pic16/pic18f46k20.h | 1706 ++++++++++++ device/include/pic16/pic18f65j50.h | 26 + device/include/pic16/pic18f66j50.h | 26 + device/include/pic16/pic18f66j55.h | 26 + device/include/pic16/pic18f67j50.h | 3210 +++++++++++++++++++++++ device/include/pic16/pic18f85j50.h | 26 + device/include/pic16/pic18f86j50.h | 26 + device/include/pic16/pic18f86j55.h | 26 + device/include/pic16/pic18f87j50.h | 3435 +++++++++++++++++++++++++ device/include/pic16/pic18fregs.h | 48 + device/lib/pic16/Makefile.common | 2 +- device/lib/pic16/libdev/Makefile.am | 88 + device/lib/pic16/libdev/pic18f23k20.c | 6 + device/lib/pic16/libdev/pic18f24k20.c | 6 + device/lib/pic16/libdev/pic18f25k20.c | 6 + device/lib/pic16/libdev/pic18f26k20.c | 6 + device/lib/pic16/libdev/pic18f43k20.c | 6 + device/lib/pic16/libdev/pic18f44k20.c | 6 + device/lib/pic16/libdev/pic18f45k20.c | 6 + device/lib/pic16/libdev/pic18f46k20.c | 351 +++ device/lib/pic16/libdev/pic18f65j50.c | 7 + device/lib/pic16/libdev/pic18f66j50.c | 7 + device/lib/pic16/libdev/pic18f66j55.c | 7 + device/lib/pic16/libdev/pic18f67j50.c | 634 +++++ device/lib/pic16/libdev/pic18f85j50.c | 7 + device/lib/pic16/libdev/pic18f86j50.c | 7 + device/lib/pic16/libdev/pic18f86j55.c | 7 + device/lib/pic16/libdev/pic18f87j50.c | 661 +++++ device/lib/pic16/libio/Makefile.am | 330 +++ device/lib/pic16/libio/adc/adcbusy.c | 7 +- device/lib/pic16/libio/adc/adcclose.c | 3 + device/lib/pic16/libio/adc/adcconv.c | 3 + device/lib/pic16/libio/adc/adcopen.c | 21 +- device/lib/pic16/libio/adc/adcsetch.c | 3 + device/lib/pic16/pics.all | 28 +- doc/sdccman.lyx | 38 +- 46 files changed, 11047 insertions(+), 42 deletions(-) create mode 100644 device/include/pic16/pic18f23k20.h create mode 100644 device/include/pic16/pic18f24k20.h create mode 100644 device/include/pic16/pic18f25k20.h create mode 100644 device/include/pic16/pic18f26k20.h create mode 100644 device/include/pic16/pic18f43k20.h create mode 100644 device/include/pic16/pic18f44k20.h create mode 100644 device/include/pic16/pic18f45k20.h create mode 100644 device/include/pic16/pic18f46k20.h create mode 100644 device/include/pic16/pic18f65j50.h create mode 100644 device/include/pic16/pic18f66j50.h create mode 100644 device/include/pic16/pic18f66j55.h create mode 100644 device/include/pic16/pic18f67j50.h create mode 100644 device/include/pic16/pic18f85j50.h create mode 100644 device/include/pic16/pic18f86j50.h create mode 100644 device/include/pic16/pic18f86j55.h create mode 100644 device/include/pic16/pic18f87j50.h create mode 100644 device/lib/pic16/libdev/pic18f23k20.c create mode 100644 device/lib/pic16/libdev/pic18f24k20.c create mode 100644 device/lib/pic16/libdev/pic18f25k20.c create mode 100644 device/lib/pic16/libdev/pic18f26k20.c create mode 100644 device/lib/pic16/libdev/pic18f43k20.c create mode 100644 device/lib/pic16/libdev/pic18f44k20.c create mode 100644 device/lib/pic16/libdev/pic18f45k20.c create mode 100644 device/lib/pic16/libdev/pic18f46k20.c create mode 100644 device/lib/pic16/libdev/pic18f65j50.c create mode 100644 device/lib/pic16/libdev/pic18f66j50.c create mode 100644 device/lib/pic16/libdev/pic18f66j55.c create mode 100644 device/lib/pic16/libdev/pic18f67j50.c create mode 100644 device/lib/pic16/libdev/pic18f85j50.c create mode 100644 device/lib/pic16/libdev/pic18f86j50.c create mode 100644 device/lib/pic16/libdev/pic18f86j55.c create mode 100644 device/lib/pic16/libdev/pic18f87j50.c diff --git a/ChangeLog b/ChangeLog index 6bd22b12..160ffde5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +2009-02-27 Raphael Neider + + * device/include/pic16/pic18f[24][3456]k20.h, + device/include/pic16/pic18f[68][567]j50.h, + device/include/pic16/pic18f[68]6j55.h, + device/lib/pic16/libdev/pic18f[24][3456]k20.c, + device/lib/pic16/libdev/pic18f[68][567]j50.c, + device/lib/pic16/libdev/pic18f[68]6j55.c, + device/include/pic16/pic18fregs.h, + device/include/pic16/pic16devices.txt, + device/lib/pic16/pics.all, + device/lib/pic16/libdev/Makefile.am, + device/lib/pic16/libio/Makefile.am: added/re-enabled many device + families (87j50 family contributed by Robert Wuest) + + * device/include/pic16/adc.h, + device/lib/pic16/libio/adc/adcbusy.c, + device/lib/pic16/libio/adc/adcclose.c, + device/lib/pic16/libio/adc/adcconv.c, + device/lib/pic16/libio/adc/adcopen.c, + device/lib/pic16/libio/adc/adcsetch.c: added 65j50-style ADC + + * doc/sdccman.lyx: updated list of supported devices, fixed typo + * device/lib/pic16/Makefile.common: do not suppress assembler warnings + 2009-02-27 Borut Razem * as/z80/asexpr.c, as/z80/z80mch.c: re-fixed bugs diff --git a/device/include/pic16/adc.h b/device/include/pic16/adc.h index fad47b73..27f90949 100644 --- a/device/include/pic16/adc.h +++ b/device/include/pic16/adc.h @@ -57,31 +57,49 @@ #define ADC_FOSC_64 0x06 #define ADC_FOSC_RC 0x07 +/* + * acquisition time (65j50-style only) + * -- to be ORed with ADC_FOSC + */ +#define ADC_ACQT_0 (0x00 << 3) +#define ADC_ACQT_2 (0x01 << 3) +#define ADC_ACQT_4 (0x02 << 3) +#define ADC_ACQT_6 (0x03 << 3) +#define ADC_ACQT_8 (0x04 << 3) +#define ADC_ACQT_12 (0x05 << 3) +#define ADC_ACQT_16 (0x06 << 3) +#define ADC_ACQT_20 (0x07 << 3) + +/* + * calibration enable (65j50-style only) + * -- to be ORed with ADC_FOSC + */ +#define ADC_CAL 0x40 /* - * Distinguish between 18f242-style, 18f1220-style, and 18f2220-style ADC: + * Distinguishing between ADC-styles: * * ADCON0: - * bit 18f242 18f1220 18f2220 - * 0 ADON ADON ADON - * 1 - GO GO - * 2 GO CHS0 CHS0 - * 3 CHS0 CHS1 CHS1 - * 4 CHS1 CHS2 CHS2 - * 5 CHS2 - CHS3 - * 6 ADCS0 VCFG0 - - * 7 ADCS1 VCFG1 (ADCAL) + * bit 18f242 18f1220 18f2220 18f65j50 + * 0 ADON ADON ADON ADON + * 1 - GO GO GO + * 2 GO CHS0 CHS0 CHS0 + * 3 CHS0 CHS1 CHS1 CHS1 + * 4 CHS1 CHS2 CHS2 CHS2 + * 5 CHS2 - CHS3 CHS3 + * 6 ADCS0 VCFG0 - VCFG0 + * 7 ADCS1 VCFG1 (ADCAL) VCFG1 * * ADCON1: - * bit 18f242 18f1220 18f2220 - * 0 PCFG0 PCFG0 PCFG0 - * 1 PCFG1 PCFG1 PCFG1 - * 2 PCFG2 PCFG2 PCFG2 - * 3 PCFG3 PCFG3 PCFG3 - * 4 - PCFG4 VCFG0 - * 5 - PCFG5 VCFG1 - * 6 ADCS2 PCFG6 - - * 7 ADFM - - + * bit 18f242 18f1220 18f2220 18f65j50 + * 0 PCFG0 PCFG0 PCFG0 ADCS0 + * 1 PCFG1 PCFG1 PCFG1 ADCS1 + * 2 PCFG2 PCFG2 PCFG2 ADCS2 + * 3 PCFG3 PCFG3 PCFG3 ACQT0 + * 4 - PCFG4 VCFG0 ACQT1 + * 5 - PCFG5 VCFG1 ACQT2 + * 6 ADCS2 PCFG6 - ADCAL + * 7 ADFM - - ADFM */ /* 18f242-style */ @@ -98,6 +116,7 @@ /* 18f2220-style, ordered by device family */ #elif defined(pic18f2220) || defined(pic18f2320) || defined(pic18f4220) || defined(pic18f4320) \ || defined(pic18f2221) || defined(pic18f2321) || defined(pic18f4221) || defined(pic18f4321) \ + || defined(pic18f23k20) || defined(pic18f24k20) || defined(pic18f25k20) || defined(pic18f26k20) \ || defined(pic18f2410) || defined(pic18f2510) || defined(pic18f4410) || defined(pic18f4510) \ || defined(pic18f2420) || defined(pic18f2520) || defined(pic18f4420) || defined(pic18f4520) \ || defined(pic18f2423) || defined(pic18f2523) || defined(pic18f4423) || defined(pic18f4523) \ @@ -109,6 +128,7 @@ || defined(pic18f2525) || defined(pic18f2620) || defined(pic18f4525) || defined(pic18f4620) \ || defined(pic18f2585) || defined(pic18f2680) || defined(pic18f4585) || defined(pic18f4680) \ || defined(pic18f2682) || defined(pic18f2685) || defined(pic18f4682) || defined(pic18f4685) \ + || defined(pic18f43k20) || defined(pic18f44k20) || defined(pic18f45k20) || defined(pic18f46k20) \ || defined(pic18f6520) || defined(pic18f6620) || defined(pic18f6720) \ || defined(pic18f6585) || defined(pic18f6680) || defined(pic18f8585) || defined(pic18f8680) \ || defined(pic18f66j60) || defined(pic18f66j65) || defined(pic18f67j60) \ @@ -118,6 +138,11 @@ #define __SDCC_ADC_STYLE2220 1 +#elif defined(pic18f65j50) || defined(pic18f66j50) || defined(pic18f66j55) || defined(pic18f67j50) \ + || defined(pic18f85j50) || defined(pic18f86j50) || defined(pic18f86j55) || defined(pic18f87j50) \ + +#define __SDCC_ADC_STYLE65J50 + #else /* unknown device */ #error Device ADC style is unknown, please update your adc.h manually and/or inform the maintainer! @@ -268,6 +293,38 @@ #define ADC_CFG_01A_2R 0x3e #define ADC_CFG_00A_0R 0x0f +#elif defined(__SDCC_ADC_STYLE65J50) + +/* + * These devices use a bitmask in ANCON0/1 to configure + * AN7..0/AN15..8 as digital ports (bit set) or analog + * inputs (bit clear). + * + * These settings are selected based on their similarity with + * the 2220-style settings; 65j50-style is more flexible, though. + * + * Reference voltages are configured via adc_open's config parameter + * using ADC_VCFG_*. + */ + +#define ADC_CFG_16A 0x0000 +#define ADC_CFG_15A 0x8000 +#define ADC_CFG_14A 0xC000 +#define ADC_CFG_13A 0xE000 +#define ADC_CFG_12A 0xF000 +#define ADC_CFG_11A 0xF800 +#define ADC_CFG_10A 0xFC00 +#define ADC_CFG_9A 0xFE00 +#define ADC_CFG_8A 0xFF00 +#define ADC_CFG_7A 0xFF80 +#define ADC_CFG_6A 0xFFC0 +#define ADC_CFG_5A 0xFFE0 +#define ADC_CFG_4A 0xFFF0 +#define ADC_CFG_3A 0xFFF8 +#define ADC_CFG_2A 0xFFFC +#define ADC_CFG_1A 0xFFFE +#define ADC_CFG_0A 0xFFFF + #else /* unhandled ADC style */ #error No supported ADC style selected. @@ -277,7 +334,11 @@ /* initialize AD module */ +#if defined(__SDCC_ADC_STYLE65J50) +void adc_open(unsigned char channel, unsigned char fosc, unsigned int pcfg, unsigned char config); +#else void adc_open(unsigned char channel, unsigned char fosc, unsigned char pcfg, unsigned char config); +#endif /* shutdown AD module */ void adc_close(void); diff --git a/device/include/pic16/pic16devices.txt b/device/include/pic16/pic16devices.txt index 45aec7d4..a17cab09 100644 --- a/device/include/pic16/pic16devices.txt +++ b/device/include/pic16/pic16devices.txt @@ -122,6 +122,24 @@ configword 0x30000d 0x40 0xff idlocrange 0x200000 0x200007 +name 18f23k20 +ramsize 512 +split 0x60 +configrange 0x300001 0x30000d +configword 0x300001 0xcf 0x37 +configword 0x300002 0x1f 0xff +configword 0x300003 0x1f 0xff +configword 0x300005 0x8f 0xfb +configword 0x300006 0xc5 0xbf 0xbf +configword 0x300008 0x0f 0xff +configword 0x300009 0xc0 0xff +configword 0x30000a 0x0f 0xff +configword 0x30000b 0xe0 0xff +configword 0x30000c 0x0f 0xff +configword 0x30000d 0x40 0xff +idlocrange 0x200000 0x200007 + + name 18f2410 ramsize 768 split 0x80 @@ -283,6 +301,11 @@ configword 0x300005 0x01 0xff idlocrange 0x200000 0x200007 +name 18f24k20 +using 18f23k20 +ramsize 768 + + name 18f2510 using 18f2410 ramsize 1536 @@ -362,6 +385,11 @@ name 18f25j10 using 18f24j10 +name 18f25k20 +using 18f23k20 +ramsize 1536 + + name 18f2610 using 18f2410 ramsize 4096 @@ -397,6 +425,11 @@ name 18f2685 using 18f2682 +name 18f26k20 +using 18f23k20 +ramsize 3936 + + name 18f4220 using 18f2220 @@ -417,6 +450,10 @@ name 18f4331 using 18f2331 +name 18f43k20 +using 18f23k20 + + name 18f4410 using 18f2410 ramsize 768 @@ -457,6 +494,11 @@ name 18f44j10 using 18f24j10 +name 18f44k20 +using 18f23k20 +ramsize 768 + + name 18f4510 using 18f2410 ramsize 1536 @@ -507,6 +549,11 @@ name 18f45j10 using 18f24j10 +name 18f45k20 +using 18f23k20 +ramsize 1536 + + name 18f4610 using 18f2410 ramsize 4096 @@ -528,6 +575,11 @@ name 18f4685 using 18f2682 +name 18f46k20 +using 18f23k20 +ramsize 3936 + + name 18f6520 ramsize 2048 split 0x60 @@ -566,6 +618,18 @@ configword 0x30000d 0x40 0xff idlocrange 0x200000 0x200007 +name 18f65j50 +ramsize 3904 +split 0x60 +configrange 0x7ff8 0x7ffd +configword 0x7ff8 0xef 0xff 0xbf +configword 0x7ff9 0x07 0xff +configword 0x7ffa 0xc7 0xff +configword 0x7ffb 0x0f 0xff +configword 0x7ffc 0xf8 0xff +configword 0x7ffd 0x0f 0xff + + name 18f6620 using 18f6520 ramsize 3840 @@ -574,12 +638,47 @@ ramsize 3840 name 18f6680 using 18f6585 +name 18f66j50 +ramsize 3904 +split 0x60 +configrange 0xfff8 0xfffd +configword 0xfff8 0xef 0xff 0xbf +configword 0xfff9 0x07 0xff +configword 0xfffa 0xc7 0xff +configword 0xfffb 0x0f 0xff +configword 0xfffc 0xf8 0xff +configword 0xfffd 0x0f 0xff + + +name 18f66j55 +ramsize 3904 +split 0x60 +configrange 0x17ff8 0x17ffd +configword 0x17ff8 0xef 0xff 0xbf +configword 0x17ff9 0x07 0xff +configword 0x17ffa 0xc7 0xff +configword 0x17ffb 0x0f 0xff +configword 0x17ffc 0xf8 0xff +configword 0x17ffd 0x0f 0xff + name 18f6720 using 18f6520 ramsize 3840 +name 18f67j50 +ramsize 3904 +split 0x60 +configrange 0x1fff8 0x1fffd +configword 0x1fff8 0xef 0xff 0xbf +configword 0x1fff9 0x07 0xff +configword 0x1fffa 0xc7 0xff +configword 0x1fffb 0x0f 0xff +configword 0x1fffc 0xf8 0xff +configword 0x1fffd 0x0f 0xff + + name 18f8520 using 18f6520 @@ -638,6 +737,18 @@ configword 0x1fffc 0xf8 0xff configword 0x1fffd 0x07 0xff +name 18f85j50 +using 18f65j50 + + +name 18f86j50 +using 18f66j50 + + +name 18f86j55 +using 18f66j55 + + name 18f86j60 using 18f66j60 @@ -646,6 +757,10 @@ name 18f86j65 using 18f66j65 +name 18f87j50 +using 18f67j50 + + name 18f87j60 using 18f67j60 diff --git a/device/include/pic16/pic18f23k20.h b/device/include/pic16/pic18f23k20.h new file mode 100644 index 00000000..2b8f3d27 --- /dev/null +++ b/device/include/pic16/pic18f23k20.h @@ -0,0 +1,6 @@ +/* + * pic18f23k20.h - device specific declarations + */ + +#include "pic18f46k20.h" + diff --git a/device/include/pic16/pic18f24k20.h b/device/include/pic16/pic18f24k20.h new file mode 100644 index 00000000..c54718be --- /dev/null +++ b/device/include/pic16/pic18f24k20.h @@ -0,0 +1,6 @@ +/* + * pic18f24k20.h - device specific declarations + */ + +#include "pic18f46k20.h" + diff --git a/device/include/pic16/pic18f25k20.h b/device/include/pic16/pic18f25k20.h new file mode 100644 index 00000000..40f17949 --- /dev/null +++ b/device/include/pic16/pic18f25k20.h @@ -0,0 +1,6 @@ +/* + * pic18f25k20.h - device specific declarations + */ + +#include "pic18f46k20.h" + diff --git a/device/include/pic16/pic18f26k20.h b/device/include/pic16/pic18f26k20.h new file mode 100644 index 00000000..3b4b7960 --- /dev/null +++ b/device/include/pic16/pic18f26k20.h @@ -0,0 +1,6 @@ +/* + * pic18f26k20.h - device specific declarations + */ + +#include "pic18f46k20.h" + diff --git a/device/include/pic16/pic18f43k20.h b/device/include/pic16/pic18f43k20.h new file mode 100644 index 00000000..006f2412 --- /dev/null +++ b/device/include/pic16/pic18f43k20.h @@ -0,0 +1,6 @@ +/* + * pic18f43k20.h - device specific declarations + */ + +#include "pic18f46k20.h" + diff --git a/device/include/pic16/pic18f44k20.h b/device/include/pic16/pic18f44k20.h new file mode 100644 index 00000000..c9f23453 --- /dev/null +++ b/device/include/pic16/pic18f44k20.h @@ -0,0 +1,6 @@ +/* + * pic18f44k20.h - device specific declarations + */ + +#include "pic18f46k20.h" + diff --git a/device/include/pic16/pic18f45k20.h b/device/include/pic16/pic18f45k20.h new file mode 100644 index 00000000..5e5b485c --- /dev/null +++ b/device/include/pic16/pic18f45k20.h @@ -0,0 +1,6 @@ +/* + * pic18f45k20.h - device specific declarations + */ + +#include "pic18f46k20.h" + diff --git a/device/include/pic16/pic18f46k20.h b/device/include/pic16/pic18f46k20.h new file mode 100644 index 00000000..c88163ed --- /dev/null +++ b/device/include/pic16/pic18f46k20.h @@ -0,0 +1,1706 @@ +/* + * pic18f46k20.h - device specific declarations + * + * This file is part of the GNU PIC library for SDCC, + * originally devised by Vangelis Rokas + * + * It has been automatically generated by inc2h-pic16.pl, + * (c) 2007 by Raphael Neider + */ + +#ifndef __PIC18F46K20_H__ +#define __PIC18F46K20_H__ 1 + + + +// Configuration Bits +#define __CONFIG1H 0x300001 +#define __CONFIG2L 0x300002 +#define __CONFIG2H 0x300003 +#define __CONFIG3H 0x300005 +#define __CONFIG4L 0x300006 +#define __CONFIG5L 0x300008 +#define __CONFIG5H 0x300009 +#define __CONFIG6L 0x30000A +#define __CONFIG6H 0x30000B +#define __CONFIG7L 0x30000C +#define __CONFIG7H 0x30000D + +// CONFIG1H Options +#define _OSC_LP_1H 0xF0 // LP +#define _OSC_XT_1H 0xF1 // XT +#define _OSC_HS_1H 0xF2 // HS +#define _OSC_RC_1H 0xF3 // RC +#define _OSC_EC_1H 0xF4 // EC-OSC2 as Clock Out +#define _OSC_ECIO6_1H 0xF5 // EC-OSC2 as RA6 +#define _OSC_HSPLL_1H 0xF6 // HS-PLL Enabled +#define _OSC_RCIO6_1H 0xF7 // RC-OSC2 as RA6 +#define _OSC_INTIO67_1H 0xF8 // INTRC-OSC2 as RA6, OSC1 as RA7 +#define _OSC_INTIO7_1H 0xF9 // INTRC-OSC2 as Clock Out, OSC1 as RA7 +#define _FCMEN_OFF_1H 0xBF // Disabled +#define _FCMEN_ON_1H 0xFF // Enabled +#define _IESO_OFF_1H 0x7F // Disabled +#define _IESO_ON_1H 0xFF // Enabled + +// CONFIG2L Options +#define _PWRT_ON_2L 0xFE // Enabled +#define _PWRT_OFF_2L 0xFF // Disabled +#define _BOREN_OFF_2L 0xF9 // Disabled +#define _BOREN_ON_2L 0xFB // SBOREN Enabled +#define _BOREN_NOSLP_2L 0xFD // Enabled except SLEEP, SBOREN Disabled +#define _BOREN_SBORDIS_2L 0xFF // Enabled, SBOREN Disabled +#define _BORV_46_2L 0xE7 // 3.0V +#define _BORV_43_2L 0xEF // 2.7V +#define _BORV_28_2L 0xF7 // 2.2V +#define _BORV_21_2L 0xFF // 1.8 + +// CONFIG2H Options +#define _WDT_OFF_2H 0xFE // Disabled +#define _WDT_ON_2H 0xFF // Enabled +#define _WDTPS_1_2H 0xE1 // 1:1 +#define _WDTPS_2_2H 0xE3 // 1:2 +#define _WDTPS_4_2H 0xE5 // 1:4 +#define _WDTPS_8_2H 0xE7 // 1:8 +#define _WDTPS_16_2H 0xE9 // 1:16 +#define _WDTPS_32_2H 0xEB // 1:32 +#define _WDTPS_64_2H 0xED // 1:64 +#define _WDTPS_128_2H 0xEF // 1:128 +#define _WDTPS_256_2H 0xF1 // 1:256 +#define _WDTPS_512_2H 0xF3 // 1:512 +#define _WDTPS_1024_2H 0xF5 // 1:1024 +#define _WDTPS_2048_2H 0xF7 // 1:2048 +#define _WDTPS_4096_2H 0xF9 // 1:4096 +#define _WDTPS_8192_2H 0xFB // 1:8192 +#define _WDTPS_16384_2H 0xFD // 1:16384 +#define _WDTPS_32768_2H 0xFF // 1:32768 + +// CONFIG3H Options +#define _MCLRE_OFF_3H 0x7F // Disabled +#define _MCLRE_ON_3H 0xFF // Enabled +#define _LPT1OSC_OFF_3H 0xFB // Disabled +#define _LPT1OSC_ON_3H 0xFF // Enabled +#define _PBADEN_OFF_3H 0xFD // Port B<4:0> digital on RESET +#define _PBADEN_ON_3H 0xFF // Port B<4:0> analog on RESET +#define _CCP2MX_PORTBE_3H 0xFE // Muxed with RB3 +#define _CCP2MX_PORTC_3H 0xFF // Muxed with RC1 + +// CONFIG4L Options +#define _STVREN_OFF_4L 0xFE // Disabled +#define _STVREN_ON_4L 0xFF // Enabled +#define _LVP_OFF_4L 0xFB // Disabled +#define _LVP_ON_4L 0xFF // Enabled +#define _XINST_OFF_4L 0xBF // Disabled +#define _XINST_ON_4L 0xFF // Enabled +#define _DEBUG_ON_4L 0x7F // Enabled +#define _DEBUG_OFF_4L 0xFF // Disabled + +// CONFIG5L Options +#define _CP0_ON_5L 0xFE // Enabled +#define _CP0_OFF_5L 0xFF // Disabled +#define _CP1_ON_5L 0xFD // Enabled +#define _CP1_OFF_5L 0xFF // Disabled +#define _CP2_ON_5L 0xFB // Enabled +#define _CP2_OFF_5L 0xFF // Disabled +#define _CP3_ON_5L 0xF7 // Enabled +#define _CP3_OFF_5L 0xFF // Disabled + +// CONFIG5H Options +#define _CPB_ON_5H 0xBF // Enabled +#define _CPB_OFF_5H 0xFF // Disabled +#define _CPD_ON_5H 0x7F // Enabled +#define _CPD_OFF_5H 0xFF // Disabled + +// CONFIG6L Options +#define _WRT0_ON_6L 0xFE // Enabled +#define _WRT0_OFF_6L 0xFF // Disabled +#define _WRT1_ON_6L 0xFD // Enabled +#define _WRT1_OFF_6L 0xFF // Disabled +#define _WRT2_ON_6L 0xFB // Enabled +#define _WRT2_OFF_6L 0xFF // Disabled +#define _WRT3_ON_6L 0xF7 // Enabled +#define _WRT3_OFF_6L 0xFF // Disabled + +// CONFIG6H Options +#define _WRTB_ON_6H 0xBF // Enabled +#define _WRTB_OFF_6H 0xFF // Disabled +#define _WRTC_ON_6H 0xDF // Enabled +#define _WRTC_OFF_6H 0xFF // Disabled +#define _WRTD_ON_6H 0x7F // Enabled +#define _WRTD_OFF_6H 0xFF // Disabled + +// CONFIG7L Options +#define _EBTR0_ON_7L 0xFE // Enabled +#define _EBTR0_OFF_7L 0xFF // Disabled +#define _EBTR1_ON_7L 0xFD // Enabled +#define _EBTR1_OFF_7L 0xFF // Disabled +#define _EBTR2_ON_7L 0xFB // Enabled +#define _EBTR2_OFF_7L 0xFF // Disabled +#define _EBTR3_ON_7L 0xF7 // Enabled +#define _EBTR3_OFF_7L 0xFF // Disabled + +// CONFIG7H Options +#define _EBTRB_ON_7H 0xBF // Enabled +#define _EBTRB_OFF_7H 0xFF // Disabled +#define _DEVID1 0x3FFFFE +#define _DEVID2 0x3FFFFF +#define _IDLOC0 0x200000 +#define _IDLOC1 0x200001 +#define _IDLOC2 0x200002 +#define _IDLOC3 0x200003 +#define _IDLOC4 0x200004 +#define _IDLOC5 0x200005 +#define _IDLOC6 0x200006 +#define _IDLOC7 0x200007 + +extern __sfr __at (0xF77) SSPMSK; + +extern __sfr __at (0xF78) SLRCON; +typedef union { + struct { + unsigned SLRA : 1; + unsigned SLRB : 1; + unsigned SLRC : 1; + unsigned SLRD : 1; + unsigned SLRE : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __SLRCONbits_t; +extern volatile __SLRCONbits_t __at (0xF78) SLRCONbits; + +extern __sfr __at (0xF79) CM12CON; +typedef union { + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned C2RSEL : 1; + unsigned C1RSEL : 1; + unsigned MC2OUT : 1; + unsigned MC1OUT : 1; + }; +} __CM12CONbits_t; +extern volatile __CM12CONbits_t __at (0xF79) CM12CONbits; + +extern __sfr __at (0xF7A) CM2CON; +typedef union { + struct { + unsigned C2CH0 : 1; + unsigned C2CH1 : 1; + unsigned C2R : 1; + unsigned C2SP : 1; + unsigned C2POL : 1; + unsigned C2OE : 1; + unsigned C2OUT : 1; + unsigned C2ON : 1; + }; +} __CM2CONbits_t; +extern volatile __CM2CONbits_t __at (0xF7A) CM2CONbits; + +extern __sfr __at (0xF7B) CM1CON; +typedef union { + struct { + unsigned C1CH0 : 1; + unsigned C1CH1 : 1; + unsigned C1R : 1; + unsigned C1SP : 1; + unsigned C1POL : 1; + unsigned C1OE : 1; + unsigned C1OUT : 1; + unsigned C1ON : 1; + }; +} __CM1CONbits_t; +extern volatile __CM1CONbits_t __at (0xF7B) CM1CONbits; + +extern __sfr __at (0xF7C) WPUB; +typedef union { + struct { + unsigned WPUB0 : 1; + unsigned WPUB1 : 1; + unsigned WPUB2 : 1; + unsigned WPUB3 : 1; + unsigned WPUB4 : 1; + unsigned WPUB5 : 1; + unsigned WPUB6 : 1; + unsigned WPUB7 : 1; + }; +} __WPUBbits_t; +extern volatile __WPUBbits_t __at (0xF7C) WPUBbits; + +extern __sfr __at (0xF7D) IOCB; +typedef union { + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned IOCB4 : 1; + unsigned IOCB5 : 1; + unsigned IOCB6 : 1; + unsigned IOCB7 : 1; + }; +} __IOCBbits_t; +extern volatile __IOCBbits_t __at (0xF7D) IOCBbits; + +extern __sfr __at (0xF7E) ANSEL; +typedef union { + struct { + unsigned ANS0 : 1; + unsigned ANS1 : 1; + unsigned ANS2 : 1; + unsigned ANS3 : 1; + unsigned ANS4 : 1; + unsigned ANS5 : 1; + unsigned ANS6 : 1; + unsigned ANS7 : 1; + }; +} __ANSELbits_t; +extern volatile __ANSELbits_t __at (0xF7E) ANSELbits; + +extern __sfr __at (0xF7F) ANSELH; +typedef union { + struct { + unsigned ANS8 : 1; + unsigned ANS9 : 1; + unsigned ANS10 : 1; + unsigned ANS11 : 1; + unsigned ANS12 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __ANSELHbits_t; +extern volatile __ANSELHbits_t __at (0xF7F) ANSELHbits; + +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 RA7 : 1; + }; + struct { + unsigned AN0 : 1; + unsigned AN1 : 1; + unsigned AN2 : 1; + unsigned AN3 : 1; + unsigned C1OUT : 1; + unsigned AN4 : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned C12IN0M : 1; + unsigned C12IN1M : 1; + unsigned C2INP : 1; + unsigned C1INP : 1; + unsigned T0CKI : 1; + unsigned C2OUT : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned C12IN0N : 1; + unsigned C12IN1N : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned SS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_SS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned LVDIN : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned HLVDIN : 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 CCP2_PORTB : 1; + unsigned KBI0 : 1; + unsigned KBI1 : 1; + unsigned KBI2 : 1; + unsigned KBI3 : 1; + }; + struct { + unsigned AN12 : 1; + unsigned AN10 : 1; + unsigned AN8 : 1; + unsigned AN9 : 1; + unsigned AN11 : 1; + unsigned PGM : 1; + unsigned PGC : 1; + unsigned PGD : 1; + }; + struct { + unsigned : 1; + unsigned C12IN2M : 1; + unsigned : 1; + unsigned C12IN3M : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned C12IN2N : 1; + unsigned : 1; + unsigned C12IN3N : 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 CCP1 : 1; + unsigned SCK : 1; + unsigned SDI : 1; + unsigned SDO : 1; + unsigned TX : 1; + unsigned RX : 1; + }; + struct { + unsigned T13CKI : 1; + unsigned CCP2_PORTC : 1; + unsigned : 1; + unsigned SCL : 1; + unsigned SDA : 1; + unsigned : 1; + unsigned CK : 1; + unsigned DT : 1; + }; + struct { + unsigned T1CKI : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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 PSP0 : 1; + unsigned PSP1 : 1; + unsigned PSP2 : 1; + unsigned PSP3 : 1; + unsigned PSP4 : 1; + unsigned PSP5 : 1; + unsigned PSP6 : 1; + unsigned PSP7 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned P1B : 1; + unsigned P1C : 1; + unsigned P1D : 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 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned RD : 1; + unsigned WR : 1; + unsigned CS : 1; + unsigned MCLR : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned NOT_RD : 1; + unsigned NOT_WR : 1; + unsigned NOT_CS : 1; + unsigned NOT_MCLR : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned AN5 : 1; + unsigned AN6 : 1; + unsigned AN7 : 1; + unsigned VPP : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __PORTEbits_t; +extern volatile __PORTEbits_t __at (0xF84) PORTEbits; + +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 LATA7 : 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 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __LATEbits_t; +extern volatile __LATEbits_t __at (0xF8D) LATEbits; + +extern __sfr __at (0xF92) DDRA; +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 RA7 : 1; + }; +} __DDRAbits_t; +extern volatile __DDRAbits_t __at (0xF92) DDRAbits; + +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 TRISA7 : 1; + }; +} __TRISAbits_t; +extern volatile __TRISAbits_t __at (0xF92) TRISAbits; + +extern __sfr __at (0xF93) DDRB; +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; + }; +} __DDRBbits_t; +extern volatile __DDRBbits_t __at (0xF93) DDRBbits; + +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) DDRC; +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; + }; +} __DDRCbits_t; +extern volatile __DDRCbits_t __at (0xF94) DDRCbits; + +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) DDRD; +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; + }; +} __DDRDbits_t; +extern volatile __DDRDbits_t __at (0xF95) DDRDbits; + +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) DDRE; +typedef union { + struct { + unsigned RE0 : 1; + unsigned RE1 : 1; + unsigned RE2 : 1; + unsigned RE3 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __DDREbits_t; +extern volatile __DDREbits_t __at (0xF96) DDREbits; + +extern __sfr __at (0xF96) TRISE; +typedef union { + struct { + unsigned TRISE0 : 1; + unsigned TRISE1 : 1; + unsigned TRISE2 : 1; + unsigned : 1; + unsigned PSPMODE : 1; + unsigned IBOV : 1; + unsigned OBF : 1; + unsigned IBF : 1; + }; +} __TRISEbits_t; +extern volatile __TRISEbits_t __at (0xF96) TRISEbits; + +extern __sfr __at (0xF9B) OSCTUNE; +typedef union { + struct { + unsigned TUN0 : 1; + unsigned TUN1 : 1; + unsigned TUN2 : 1; + unsigned TUN3 : 1; + unsigned TUN4 : 1; + unsigned TUN5 : 1; + unsigned PLLEN : 1; + unsigned INTSRC : 1; + }; +} __OSCTUNEbits_t; +extern volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits; + +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 CM2IE : 1; + unsigned CM1IE : 1; + unsigned OSCFIE : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned HLVDIE : 1; + unsigned : 1; + unsigned : 1; + unsigned C2IE : 1; + unsigned C1IE : 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 CM2IF : 1; + unsigned CM1IF : 1; + unsigned OSCFIF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned HLVDIF : 1; + unsigned : 1; + unsigned : 1; + unsigned C2IF : 1; + unsigned C1IF : 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 CM2IP : 1; + unsigned CM1IP : 1; + unsigned OSCFIP : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned HLVDIP : 1; + unsigned : 1; + unsigned : 1; + unsigned C2IP : 1; + unsigned C1IP : 1; + unsigned : 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 (0xFAB) RCSTA; +typedef union { + struct { + unsigned RX9D : 1; + unsigned OERR : 1; + unsigned FERR : 1; + unsigned ADEN : 1; + unsigned CREN : 1; + unsigned SREN : 1; + unsigned RX9 : 1; + unsigned SPEN : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned ADDEN : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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 SENDB : 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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_T3SYNC : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __T3CONbits_t; +extern volatile __T3CONbits_t __at (0xFB1) T3CONbits; + +extern __sfr __at (0xFB2) TMR3L; + +extern __sfr __at (0xFB3) TMR3H; + +extern __sfr __at (0xFB4) CVRCON2; +typedef union { + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned FVRST : 1; + unsigned FVREN : 1; + }; +} __CVRCON2bits_t; +extern volatile __CVRCON2bits_t __at (0xFB4) CVRCON2bits; + +extern __sfr __at (0xFB5) CVRCON; +typedef union { + struct { + unsigned CVR0 : 1; + unsigned CVR1 : 1; + unsigned CVR2 : 1; + unsigned CVR3 : 1; + unsigned CVRSS : 1; + unsigned CVRR : 1; + unsigned CVROE : 1; + unsigned CVREN : 1; + }; +} __CVRCONbits_t; +extern volatile __CVRCONbits_t __at (0xFB5) CVRCONbits; + +extern __sfr __at (0xFB6) ECCP1AS; +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; + }; +} __ECCP1ASbits_t; +extern volatile __ECCP1ASbits_t __at (0xFB6) ECCP1ASbits; + +extern __sfr __at (0xFB7) PWM1CON; +typedef union { + struct { + unsigned PDC0 : 1; + unsigned PDC1 : 1; + unsigned PDC2 : 1; + unsigned PDC3 : 1; + unsigned PDC4 : 1; + unsigned PDC5 : 1; + unsigned PDC6 : 1; + unsigned PRSEN : 1; + }; +} __PWM1CONbits_t; +extern volatile __PWM1CONbits_t __at (0xFB7) PWM1CONbits; + +extern __sfr __at (0xFB8) BAUDCON; +typedef union { + struct { + unsigned ABDEN : 1; + unsigned WUE : 1; + unsigned : 1; + unsigned BRG16 : 1; + unsigned SCKP : 1; + unsigned : 1; + unsigned RCIDL : 1; + unsigned ABDOVF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CKTXP : 1; + unsigned DTRXP : 1; + unsigned : 1; + unsigned : 1; + }; +} __BAUDCONbits_t; +extern volatile __BAUDCONbits_t __at (0xFB8) BAUDCONbits; + +extern __sfr __at (0xFB8) BAUDCTL; +typedef union { + struct { + unsigned ABDEN : 1; + unsigned WUE : 1; + unsigned : 1; + unsigned BRG16 : 1; + unsigned SCKP : 1; + unsigned : 1; + unsigned RCIDL : 1; + unsigned ABDOVF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CKTXP : 1; + unsigned DTRXP : 1; + unsigned : 1; + unsigned : 1; + }; +} __BAUDCTLbits_t; +extern volatile __BAUDCTLbits_t __at (0xFB8) BAUDCTLbits; + +extern __sfr __at (0xFB9) PSTRCON; +typedef union { + struct { + unsigned STRA : 1; + unsigned STRB : 1; + unsigned STRC : 1; + unsigned STRD : 1; + unsigned STRSYNC : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __PSTRCONbits_t; +extern volatile __PSTRCONbits_t __at (0xFB9) PSTRCONbits; + +extern __sfr __at (0xFBA) CCP2CON; +typedef union { + struct { + unsigned CCP2M0 : 1; + unsigned CCP2M1 : 1; + unsigned CCP2M2 : 1; + unsigned CCP2M3 : 1; + unsigned DC2B0 : 1; + unsigned DC2B1 : 1; + unsigned : 1; + unsigned : 1; + }; +} __CCP2CONbits_t; +extern volatile __CCP2CONbits_t __at (0xFBA) CCP2CONbits; + +extern __sfr __at (0xFBB) CCPR2; + +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 DC1B0 : 1; + unsigned DC1B1 : 1; + unsigned P1M0 : 1; + unsigned P1M1 : 1; + }; +} __CCP1CONbits_t; +extern volatile __CCP1CONbits_t __at (0xFBD) CCP1CONbits; + +extern __sfr __at (0xFBE) CCPR1; + +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 ACQT0 : 1; + unsigned ACQT1 : 1; + unsigned ACQT2 : 1; + unsigned : 1; + unsigned ADFM : 1; + }; +} __ADCON2bits_t; +extern volatile __ADCON2bits_t __at (0xFC0) ADCON2bits; + +extern __sfr __at (0xFC1) ADCON1; +typedef union { + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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; + }; + struct { + unsigned : 1; + unsigned DONE : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned NOT_DONE : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned GO_DONE : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __ADCON0bits_t; +extern volatile __ADCON0bits_t __at (0xFC2) ADCON0bits; + +extern __sfr __at (0xFC3) ADRES; + +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 : 1; + unsigned S : 1; + unsigned P : 1; + unsigned D : 1; + unsigned CKE : 1; + unsigned SMP : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_W : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_A : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned R_W : 1; + unsigned : 1; + unsigned : 1; + unsigned D_A : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_ADDRESS : 1; + unsigned : 1; + unsigned : 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 T2OUTPS0 : 1; + unsigned T2OUTPS1 : 1; + unsigned T2OUTPS2 : 1; + unsigned T2OUTPS3 : 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 T1SYNC : 1; + unsigned T1OSCEN : 1; + unsigned T1CKPS0 : 1; + unsigned T1CKPS1 : 1; + unsigned T1RUN : 1; + unsigned RD16 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_T1SYNC : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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 SBOREN : 1; + unsigned IPEN : 1; + }; + struct { + unsigned NOT_BOR : 1; + unsigned NOT_POR : 1; + unsigned NOT_PD : 1; + unsigned NOT_TO : 1; + unsigned NOT_RI : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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) HLVDCON; +typedef union { + struct { + unsigned LVDL0 : 1; + unsigned LVDL1 : 1; + unsigned LVDL2 : 1; + unsigned LVDL3 : 1; + unsigned LVDEN : 1; + unsigned IRVST : 1; + unsigned : 1; + unsigned VDIRMAG : 1; + }; + struct { + unsigned LVV0 : 1; + unsigned LVV1 : 1; + unsigned LVV2 : 1; + unsigned LVV3 : 1; + unsigned HLVDEN : 1; + unsigned BGST : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned HLVDL0 : 1; + unsigned HLVDL1 : 1; + unsigned HLVDL2 : 1; + unsigned HLVDL3 : 1; + unsigned : 1; + unsigned IVRST : 1; + unsigned : 1; + unsigned : 1; + }; +} __HLVDCONbits_t; +extern volatile __HLVDCONbits_t __at (0xFD2) HLVDCONbits; + +extern __sfr __at (0xFD2) LVDCON; +typedef union { + struct { + unsigned LVDL0 : 1; + unsigned LVDL1 : 1; + unsigned LVDL2 : 1; + unsigned LVDL3 : 1; + unsigned LVDEN : 1; + unsigned IRVST : 1; + unsigned : 1; + unsigned VDIRMAG : 1; + }; + struct { + unsigned LVV0 : 1; + unsigned LVV1 : 1; + unsigned LVV2 : 1; + unsigned LVV3 : 1; + unsigned HLVDEN : 1; + unsigned BGST : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned HLVDL0 : 1; + unsigned HLVDL1 : 1; + unsigned HLVDL2 : 1; + unsigned HLVDL3 : 1; + unsigned : 1; + unsigned IVRST : 1; + unsigned : 1; + unsigned : 1; + }; +} __LVDCONbits_t; +extern volatile __LVDCONbits_t __at (0xFD2) LVDCONbits; + +extern __sfr __at (0xFD3) OSCCON; +typedef union { + struct { + unsigned SCS0 : 1; + unsigned SCS1 : 1; + unsigned IOFS : 1; + unsigned OSTS : 1; + unsigned IRCF0 : 1; + unsigned IRCF1 : 1; + unsigned IRCF2 : 1; + unsigned IDLEN : 1; + }; +} __OSCCONbits_t; +extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits; + +extern __sfr __at (0xFD4) DEBUG; + +extern __sfr __at (0xFD5) T0CON; +typedef union { + struct { + unsigned T0PS0 : 1; + unsigned T0PS1 : 1; + unsigned T0PS2 : 1; + unsigned PSA : 1; + unsigned T0SE : 1; + unsigned T0CS : 1; + unsigned T08BIT : 1; + unsigned TMR0ON : 1; + }; +} __T0CONbits_t; +extern volatile __T0CONbits_t __at (0xFD5) T0CONbits; + +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 TMR0IP : 1; + unsigned : 1; + unsigned INTEDG2 : 1; + unsigned INTEDG1 : 1; + unsigned INTEDG0 : 1; + unsigned RBPU : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_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 TMR0IF : 1; + unsigned RBIE : 1; + unsigned INT0E : 1; + unsigned TMR0IE : 1; + unsigned PEIE : 1; + unsigned GIE : 1; + }; + struct { + unsigned : 1; + unsigned INT0IF : 1; + unsigned T0IF : 1; + unsigned : 1; + unsigned INT0IE : 1; + unsigned T0IE : 1; + unsigned GIEL : 1; + unsigned GIEH : 1; + }; +} __INTCONbits_t; +extern volatile __INTCONbits_t __at (0xFF2) INTCONbits; + +extern __sfr __at (0xFF3) PROD; + +extern __sfr __at (0xFF3) PRODL; + +extern __sfr __at (0xFF4) PRODH; + +extern __sfr __at (0xFF5) TABLAT; + +extern __sfr __at (0xFF6) TBLPTR; + +extern __sfr __at (0xFF6) TBLPTRL; + +extern __sfr __at (0xFF7) TBLPTRH; + +extern __sfr __at (0xFF8) TBLPTRU; + +extern __sfr __at (0xFF9) PC; + +extern __sfr __at (0xFF9) PCL; + +extern __sfr __at (0xFFA) PCLATH; + +extern __sfr __at (0xFFB) PCLATU; + +extern __sfr __at (0xFFC) STKPTR; +typedef union { + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned STKUNF : 1; + unsigned STKOVF : 1; + }; +} __STKPTRbits_t; +extern volatile __STKPTRbits_t __at (0xFFC) STKPTRbits; + +extern __sfr __at (0xFFD) TOS; + +extern __sfr __at (0xFFD) TOSL; + +extern __sfr __at (0xFFE) TOSH; + +extern __sfr __at (0xFFF) TOSU; + + +#endif + diff --git a/device/include/pic16/pic18f65j50.h b/device/include/pic16/pic18f65j50.h new file mode 100644 index 00000000..8d377912 --- /dev/null +++ b/device/include/pic16/pic18f65j50.h @@ -0,0 +1,26 @@ +/* + * pic18f65j50.h - device specific declarations + */ + +#ifndef __PIC18F65J50_H__ +#define __PIC18F65J50_H__ 1 + +#include "pic18f67j50.h" + +// Configuration Bits +#undef __CONFIG1L +#undef __CONFIG1H +#undef __CONFIG2L +#undef __CONFIG2H +#undef __CONFIG3L +#undef __CONFIG3H + +#define __CONFIG1L 0x7FF8 +#define __CONFIG1H 0x7FF9 +#define __CONFIG2L 0x7FFA +#define __CONFIG2H 0x7FFB +#define __CONFIG3L 0x7FFC +#define __CONFIG3H 0x7FFD + +#endif + diff --git a/device/include/pic16/pic18f66j50.h b/device/include/pic16/pic18f66j50.h new file mode 100644 index 00000000..43b71d29 --- /dev/null +++ b/device/include/pic16/pic18f66j50.h @@ -0,0 +1,26 @@ +/* + * pic18f66j50.h - device specific declarations + */ + +#ifndef __PIC18F66J50_H__ +#define __PIC18F66J50_H__ 1 + +#include "pic18f67j50.h" + +#undef __CONFIG1L +#undef __CONFIG1H +#undef __CONFIG2L +#undef __CONFIG2H +#undef __CONFIG3L +#undef __CONFIG3H + +// Configuration Bits +#define __CONFIG1L 0xFFF8 +#define __CONFIG1H 0xFFF9 +#define __CONFIG2L 0xFFFA +#define __CONFIG2H 0xFFFB +#define __CONFIG3L 0xFFFC +#define __CONFIG3H 0xFFFD + +#endif + diff --git a/device/include/pic16/pic18f66j55.h b/device/include/pic16/pic18f66j55.h new file mode 100644 index 00000000..feab09ad --- /dev/null +++ b/device/include/pic16/pic18f66j55.h @@ -0,0 +1,26 @@ +/* + * pic18f66j55.h - device specific declarations + */ + +#ifndef __PIC18F66J55_H__ +#define __PIC18F66J55_H__ 1 + +#include "pic18f67j50.h" + +#undef __CONFIG1L +#undef __CONFIG1H +#undef __CONFIG2L +#undef __CONFIG2H +#undef __CONFIG3L +#undef __CONFIG3H + +// Configuration Bits +#define __CONFIG1L 0x17FF8 +#define __CONFIG1H 0x17FF9 +#define __CONFIG2L 0x17FFA +#define __CONFIG2H 0x17FFB +#define __CONFIG3L 0x17FFC +#define __CONFIG3H 0x17FFD + +#endif + diff --git a/device/include/pic16/pic18f67j50.h b/device/include/pic16/pic18f67j50.h new file mode 100644 index 00000000..10f279f0 --- /dev/null +++ b/device/include/pic16/pic18f67j50.h @@ -0,0 +1,3210 @@ +/* + * pic18f67j50.h - device specific declarations + * + * This file is part of the GNU PIC library for SDCC, + * originally devised by Vangelis Rokas + * + * It has been automatically generated by inc2h-pic16.pl, + * (c) 2007 by Raphael Neider + */ + +#ifndef __PIC18F67J50_H__ +#define __PIC18F67J50_H__ 1 + + + +// Configuration Bits +#define __CONFIG1L 0x1FFF8 +#define __CONFIG1H 0x1FFF9 +#define __CONFIG2L 0x1FFFA +#define __CONFIG2H 0x1FFFB +#define __CONFIG3L 0x1FFFC +#define __CONFIG3H 0x1FFFD +#define _DEVID1 0x3FFFFE +#define _DEVID2 0x3FFFFF + +extern __sfr __at (0xF40) PMSTAT; + +extern __sfr __at (0xF40) PMSTATL; +typedef union { + struct { + unsigned OB0E : 1; + unsigned OB1E : 1; + unsigned OB2E : 1; + unsigned OB3E : 1; + unsigned : 1; + unsigned : 1; + unsigned OBUF : 1; + unsigned OBE : 1; + }; +} __PMSTATLbits_t; +extern volatile __PMSTATLbits_t __at (0xF40) PMSTATLbits; + +extern __sfr __at (0xF41) PMSTATH; +typedef union { + struct { + unsigned IB0F : 1; + unsigned IB1F : 1; + unsigned IB2F : 1; + unsigned IB3F : 1; + unsigned : 1; + unsigned : 1; + unsigned IBOV : 1; + unsigned IBF : 1; + }; +} __PMSTATHbits_t; +extern volatile __PMSTATHbits_t __at (0xF41) PMSTATHbits; + +extern __sfr __at (0xF42) PMEL; +typedef union { + struct { + unsigned PTEN0 : 1; + unsigned PTEN1 : 1; + unsigned PTEN2 : 1; + unsigned PTEN3 : 1; + unsigned PTEN4 : 1; + unsigned PTEN5 : 1; + unsigned PTEN6 : 1; + unsigned PTEN7 : 1; + }; +} __PMELbits_t; +extern volatile __PMELbits_t __at (0xF42) PMELbits; + +extern __sfr __at (0xF42) PMEN; + +extern __sfr __at (0xF43) PMEH; +typedef union { + struct { + unsigned PTEN8 : 1; + unsigned PTEN9 : 1; + unsigned PTEN10 : 1; + unsigned PTEN11 : 1; + unsigned PTEN12 : 1; + unsigned PTEN13 : 1; + unsigned PTEN14 : 1; + unsigned PTEN15 : 1; + }; +} __PMEHbits_t; +extern volatile __PMEHbits_t __at (0xF43) PMEHbits; + +extern __sfr __at (0xF44) PMDIN2; + +extern __sfr __at (0xF44) PMDIN2L; + +extern __sfr __at (0xF45) PMDIN2H; + +extern __sfr __at (0xF46) PMDOUT2; + +extern __sfr __at (0xF46) PMDOUT2L; + +extern __sfr __at (0xF47) PMDOUT2H; + +extern __sfr __at (0xF48) PMMODE; + +extern __sfr __at (0xF48) PMMODEL; +typedef union { + struct { + unsigned WAITE0 : 1; + unsigned WAITE1 : 1; + unsigned WAITM0 : 1; + unsigned WAITM1 : 1; + unsigned WAITM2 : 1; + unsigned WAITM3 : 1; + unsigned WAITB0 : 1; + unsigned WAITB1 : 1; + }; +} __PMMODELbits_t; +extern volatile __PMMODELbits_t __at (0xF48) PMMODELbits; + +extern __sfr __at (0xF49) PMMODEH; +typedef union { + struct { + unsigned MODE0 : 1; + unsigned MODE1 : 1; + unsigned MODE16 : 1; + unsigned INCM0 : 1; + unsigned INCM1 : 1; + unsigned IRQM0 : 1; + unsigned IRQM1 : 1; + unsigned BUSY : 1; + }; +} __PMMODEHbits_t; +extern volatile __PMMODEHbits_t __at (0xF49) PMMODEHbits; + +extern __sfr __at (0xF4A) PMCON; + +extern __sfr __at (0xF4A) PMCONL; +typedef union { + struct { + unsigned RDSP : 1; + unsigned WRSP : 1; + unsigned BEP : 1; + unsigned CS1P : 1; + unsigned CS2P : 1; + unsigned ALP : 1; + unsigned CSF0 : 1; + unsigned CSF1 : 1; + }; +} __PMCONLbits_t; +extern volatile __PMCONLbits_t __at (0xF4A) PMCONLbits; + +extern __sfr __at (0xF4B) PMCONH; +typedef union { + struct { + unsigned PTRDEN : 1; + unsigned PTWREN : 1; + unsigned PTBEEN : 1; + unsigned ADRMUX0 : 1; + unsigned ADRMUX1 : 1; + unsigned PSIDL : 1; + unsigned : 1; + unsigned PMPEN : 1; + }; +} __PMCONHbits_t; +extern volatile __PMCONHbits_t __at (0xF4B) PMCONHbits; + +extern __sfr __at (0xF4C) UEP0; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP0bits_t; +extern volatile __UEP0bits_t __at (0xF4C) UEP0bits; + +extern __sfr __at (0xF4D) UEP1; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP1bits_t; +extern volatile __UEP1bits_t __at (0xF4D) UEP1bits; + +extern __sfr __at (0xF4E) UEP2; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP2bits_t; +extern volatile __UEP2bits_t __at (0xF4E) UEP2bits; + +extern __sfr __at (0xF4F) UEP3; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP3bits_t; +extern volatile __UEP3bits_t __at (0xF4F) UEP3bits; + +extern __sfr __at (0xF50) UEP4; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP4bits_t; +extern volatile __UEP4bits_t __at (0xF50) UEP4bits; + +extern __sfr __at (0xF51) UEP5; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP5bits_t; +extern volatile __UEP5bits_t __at (0xF51) UEP5bits; + +extern __sfr __at (0xF52) UEP6; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP6bits_t; +extern volatile __UEP6bits_t __at (0xF52) UEP6bits; + +extern __sfr __at (0xF53) UEP7; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP7bits_t; +extern volatile __UEP7bits_t __at (0xF53) UEP7bits; + +extern __sfr __at (0xF54) UEP8; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP8bits_t; +extern volatile __UEP8bits_t __at (0xF54) UEP8bits; + +extern __sfr __at (0xF55) UEP9; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP9bits_t; +extern volatile __UEP9bits_t __at (0xF55) UEP9bits; + +extern __sfr __at (0xF56) UEP10; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP10bits_t; +extern volatile __UEP10bits_t __at (0xF56) UEP10bits; + +extern __sfr __at (0xF57) UEP11; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP11bits_t; +extern volatile __UEP11bits_t __at (0xF57) UEP11bits; + +extern __sfr __at (0xF58) UEP12; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP12bits_t; +extern volatile __UEP12bits_t __at (0xF58) UEP12bits; + +extern __sfr __at (0xF59) UEP13; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP13bits_t; +extern volatile __UEP13bits_t __at (0xF59) UEP13bits; + +extern __sfr __at (0xF5A) UEP14; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP14bits_t; +extern volatile __UEP14bits_t __at (0xF5A) UEP14bits; + +extern __sfr __at (0xF5B) UEP15; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP15bits_t; +extern volatile __UEP15bits_t __at (0xF5B) UEP15bits; + +extern __sfr __at (0xF5C) UIE; +typedef union { + struct { + unsigned URSTIE : 1; + unsigned UERRIE : 1; + unsigned ACTVIE : 1; + unsigned TRNIE : 1; + unsigned IDLEIE : 1; + unsigned STALLIE : 1; + unsigned SOFIE : 1; + unsigned : 1; + }; +} __UIEbits_t; +extern volatile __UIEbits_t __at (0xF5C) UIEbits; + +extern __sfr __at (0xF5D) UEIE; +typedef union { + struct { + unsigned PIDEE : 1; + unsigned CRC5EE : 1; + unsigned CRC16EE : 1; + unsigned DFN8EE : 1; + unsigned BTOEE : 1; + unsigned : 1; + unsigned : 1; + unsigned BTSEE : 1; + }; +} __UEIEbits_t; +extern volatile __UEIEbits_t __at (0xF5D) UEIEbits; + +extern __sfr __at (0xF5E) UADDR; +typedef union { + struct { + unsigned ADDR0 : 1; + unsigned ADDR1 : 1; + unsigned ADDR2 : 1; + unsigned ADDR3 : 1; + unsigned ADDR4 : 1; + unsigned ADDR5 : 1; + unsigned ADDR6 : 1; + unsigned : 1; + }; +} __UADDRbits_t; +extern volatile __UADDRbits_t __at (0xF5E) UADDRbits; + +extern __sfr __at (0xF5F) UCFG; +typedef union { + struct { + unsigned PPB0 : 1; + unsigned PPB1 : 1; + unsigned FSEN : 1; + unsigned UTRDIS : 1; + unsigned UPUEN : 1; + unsigned : 1; + unsigned UOEMON : 1; + unsigned UTEYE : 1; + }; +} __UCFGbits_t; +extern volatile __UCFGbits_t __at (0xF5F) UCFGbits; + +extern __sfr __at (0xF60) UFRM; + +extern __sfr __at (0xF60) UFRML; +typedef union { + struct { + unsigned FRM0 : 1; + unsigned FRM1 : 1; + unsigned FRM2 : 1; + unsigned FRM3 : 1; + unsigned FRM4 : 1; + unsigned FRM5 : 1; + unsigned FRM6 : 1; + unsigned FRM7 : 1; + }; +} __UFRMLbits_t; +extern volatile __UFRMLbits_t __at (0xF60) UFRMLbits; + +extern __sfr __at (0xF61) UFRMH; +typedef union { + struct { + unsigned FRM8 : 1; + unsigned FRM9 : 1; + unsigned FRM10 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UFRMHbits_t; +extern volatile __UFRMHbits_t __at (0xF61) UFRMHbits; + +extern __sfr __at (0xF62) UIR; +typedef union { + struct { + unsigned URSTIF : 1; + unsigned UERRIF : 1; + unsigned ACTVIF : 1; + unsigned TRNIF : 1; + unsigned IDLEIF : 1; + unsigned STALLIF : 1; + unsigned SOFIF : 1; + unsigned : 1; + }; +} __UIRbits_t; +extern volatile __UIRbits_t __at (0xF62) UIRbits; + +extern __sfr __at (0xF63) UEIR; +typedef union { + struct { + unsigned PIDEF : 1; + unsigned CRC5EF : 1; + unsigned CRC16EF : 1; + unsigned DFN8EF : 1; + unsigned BTOEF : 1; + unsigned : 1; + unsigned : 1; + unsigned BTSEF : 1; + }; +} __UEIRbits_t; +extern volatile __UEIRbits_t __at (0xF63) UEIRbits; + +extern __sfr __at (0xF64) USTAT; +typedef union { + struct { + unsigned : 1; + unsigned PPBI : 1; + unsigned DIR : 1; + unsigned ENDP0 : 1; + unsigned ENDP1 : 1; + unsigned ENDP2 : 1; + unsigned ENDP3 : 1; + unsigned : 1; + }; +} __USTATbits_t; +extern volatile __USTATbits_t __at (0xF64) USTATbits; + +extern __sfr __at (0xF65) UCON; +typedef union { + struct { + unsigned : 1; + unsigned SUSPND : 1; + unsigned RESUME : 1; + unsigned USBEN : 1; + unsigned PKTDIS : 1; + unsigned SE0 : 1; + unsigned PPBRST : 1; + unsigned : 1; + }; +} __UCONbits_t; +extern volatile __UCONbits_t __at (0xF65) UCONbits; + +extern __sfr __at (0xF66) PMDIN1; + +extern __sfr __at (0xF66) PMDIN1L; + +extern __sfr __at (0xF67) PMDIN1H; + +extern __sfr __at (0xF68) PMADDR; + +extern __sfr __at (0xF68) PMADDRL; + +extern __sfr __at (0xF68) PMDOUT1; + +extern __sfr __at (0xF68) PMDOUT1L; + +extern __sfr __at (0xF69) PMADDRH; +typedef union { + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CS1 : 1; + unsigned CS2 : 1; + }; +} __PMADDRHbits_t; +extern volatile __PMADDRHbits_t __at (0xF69) PMADDRHbits; + +extern __sfr __at (0xF69) PMDOUT1H; + +extern __sfr __at (0xF6A) CMSTAT; +typedef union { + struct { + unsigned COUT1 : 1; + unsigned COUT2 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __CMSTATbits_t; +extern volatile __CMSTATbits_t __at (0xF6A) CMSTATbits; + +extern __sfr __at (0xF6A) CMSTATUS; +typedef union { + struct { + unsigned COUT1 : 1; + unsigned COUT2 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __CMSTATUSbits_t; +extern volatile __CMSTATUSbits_t __at (0xF6A) CMSTATUSbits; + +extern __sfr __at (0xF6B) SSP2CON2; +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; + }; + struct { + unsigned : 1; + unsigned ADMSK1 : 1; + unsigned ADMSK2 : 1; + unsigned ADMSK3 : 1; + unsigned ADMSK4 : 1; + unsigned ADMSK5 : 1; + unsigned : 1; + unsigned : 1; + }; +} __SSP2CON2bits_t; +extern volatile __SSP2CON2bits_t __at (0xF6B) SSP2CON2bits; + +extern __sfr __at (0xF6C) SSP2CON1; +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; + }; +} __SSP2CON1bits_t; +extern volatile __SSP2CON1bits_t __at (0xF6C) SSP2CON1bits; + +extern __sfr __at (0xF6D) SSP2STAT; +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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned I2C_READ : 1; + unsigned I2C_START : 1; + unsigned I2C_STOP : 1; + unsigned I2C_DAT : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_W : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_A : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_ADDRESS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned READ_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned DATA_ADDRESS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned R : 1; + unsigned : 1; + unsigned : 1; + unsigned D : 1; + unsigned : 1; + unsigned : 1; + }; +} __SSP2STATbits_t; +extern volatile __SSP2STATbits_t __at (0xF6D) SSP2STATbits; + +extern __sfr __at (0xF6E) SSP2ADD; + +extern __sfr __at (0xF6E) SSP2MSK; +typedef union { + struct { + unsigned MSK0 : 1; + unsigned MSK1 : 1; + unsigned MSK2 : 1; + unsigned MSK3 : 1; + unsigned MSK4 : 1; + unsigned MSK5 : 1; + unsigned MSK6 : 1; + unsigned MSK7 : 1; + }; +} __SSP2MSKbits_t; +extern volatile __SSP2MSKbits_t __at (0xF6E) SSP2MSKbits; + +extern __sfr __at (0xF6F) SSP2BUF; + +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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned DC5B0 : 1; + unsigned DC5B1 : 1; + unsigned : 1; + unsigned : 1; + }; +} __CCP5CONbits_t; +extern volatile __CCP5CONbits_t __at (0xF70) CCP5CONbits; + +extern __sfr __at (0xF71) CCPR5; + +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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned DC4B0 : 1; + unsigned DC4B1 : 1; + unsigned : 1; + unsigned : 1; + }; +} __CCP4CONbits_t; +extern volatile __CCP4CONbits_t __at (0xF73) CCP4CONbits; + +extern __sfr __at (0xF74) CCPR4; + +extern __sfr __at (0xF74) CCPR4L; + +extern __sfr __at (0xF75) CCPR4H; + +extern __sfr __at (0xF76) T4CON; +typedef union { + struct { + unsigned T4CKPS0 : 1; + unsigned T4CKPS1 : 1; + unsigned TMR4ON : 1; + unsigned T4OUTPS0 : 1; + unsigned T4OUTPS1 : 1; + unsigned T4OUTPS2 : 1; + unsigned T4OUTPS3 : 1; + unsigned : 1; + }; +} __T4CONbits_t; +extern volatile __T4CONbits_t __at (0xF76) T4CONbits; + +extern __sfr __at (0xF77) CVRCON; +typedef union { + struct { + unsigned CVR0 : 1; + unsigned CVR1 : 1; + unsigned CVR2 : 1; + unsigned CVR3 : 1; + unsigned CVRSS : 1; + unsigned CVRR : 1; + unsigned CVROE : 1; + unsigned CVREN : 1; + }; +} __CVRCONbits_t; +extern volatile __CVRCONbits_t __at (0xF77) CVRCONbits; + +extern __sfr __at (0xF77) PR4; + +extern __sfr __at (0xF78) TMR4; + +extern __sfr __at (0xF79) 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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned T3INSYNC : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_T3SYNC : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __T3CONbits_t; +extern volatile __T3CONbits_t __at (0xF79) T3CONbits; + +extern __sfr __at (0xF7A) TMR3L; + +extern __sfr __at (0xF7B) TMR3H; + +extern __sfr __at (0xF7C) BAUDCON2; +typedef union { + struct { + unsigned ABDEN : 1; + unsigned WUE : 1; + unsigned : 1; + unsigned BRG16 : 1; + unsigned SCKP : 1; + unsigned DTRXP : 1; + unsigned RCMT : 1; + unsigned ABDOVF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned TXCKP : 1; + unsigned RXDTP : 1; + unsigned RCIDL : 1; + unsigned : 1; + }; +} __BAUDCON2bits_t; +extern volatile __BAUDCON2bits_t __at (0xF7C) BAUDCON2bits; + +extern __sfr __at (0xF7D) SPBRGH2; + +extern __sfr __at (0xF7E) BAUDCON; +typedef union { + struct { + unsigned ABDEN : 1; + unsigned WUE : 1; + unsigned : 1; + unsigned BRG16 : 1; + unsigned SCKP : 1; + unsigned DTRXP : 1; + unsigned RCMT : 1; + unsigned ABDOVF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned TXCKP : 1; + unsigned RXDTP : 1; + unsigned RCIDL : 1; + unsigned : 1; + }; +} __BAUDCONbits_t; +extern volatile __BAUDCONbits_t __at (0xF7E) BAUDCONbits; + +extern __sfr __at (0xF7E) BAUDCON1; +typedef union { + struct { + unsigned ABDEN : 1; + unsigned WUE : 1; + unsigned : 1; + unsigned BRG16 : 1; + unsigned SCKP : 1; + unsigned DTRXP : 1; + unsigned RCMT : 1; + unsigned ABDOVF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned TXCKP : 1; + unsigned RXDTP : 1; + unsigned RCIDL : 1; + unsigned : 1; + }; +} __BAUDCON1bits_t; +extern volatile __BAUDCON1bits_t __at (0xF7E) BAUDCON1bits; + +extern __sfr __at (0xF7F) SPBRGH; + +extern __sfr __at (0xF7F) SPBRGH1; + +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 RA7 : 1; + }; + struct { + unsigned AN0 : 1; + unsigned AN1 : 1; + unsigned AN2 : 1; + unsigned AN3 : 1; + unsigned T0CKI : 1; + unsigned AN4 : 1; + unsigned OSC2 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned VREFM : 1; + unsigned VREFP : 1; + unsigned : 1; + unsigned C2INA : 1; + unsigned CLKO : 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 KBI0 : 1; + unsigned KBI1 : 1; + unsigned KBI2 : 1; + unsigned KBI3 : 1; + }; + struct { + unsigned FLT0 : 1; + unsigned PMA4 : 1; + unsigned PMA3 : 1; + unsigned PMA2 : 1; + unsigned PMA1 : 1; + unsigned PMA0 : 1; + unsigned PGC : 1; + unsigned PGD : 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 CCP1 : 1; + unsigned SCK : 1; + unsigned SDI : 1; + unsigned SDO : 1; + unsigned TX : 1; + unsigned RX : 1; + }; + struct { + unsigned T13CKI : 1; + unsigned CCP2_PORTC : 1; + unsigned : 1; + unsigned SCL : 1; + unsigned SDA : 1; + unsigned C2OUT : 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 PMD0 : 1; + unsigned PMD1 : 1; + unsigned PMD2 : 1; + unsigned PMD3 : 1; + unsigned PMD4 : 1; + unsigned PMD5 : 1; + unsigned PMD6 : 1; + unsigned PMD7 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned SDO2 : 1; + unsigned SDA2 : 1; + unsigned SCL2 : 1; + unsigned SS2 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned SDI2 : 1; + unsigned SCK2 : 1; + unsigned : 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 PMRD : 1; + unsigned PMWR : 1; + unsigned PMBE : 1; + unsigned PMA13 : 1; + unsigned PMA12 : 1; + unsigned PMA11 : 1; + unsigned PMA10 : 1; + unsigned PMA9 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned REFO : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP2_PORTE : 1; + }; +} __PORTEbits_t; +extern volatile __PORTEbits_t __at (0xF84) PORTEbits; + +extern __sfr __at (0xF85) PORTF; +typedef union { + struct { + unsigned : 1; + unsigned : 1; + unsigned RF2 : 1; + unsigned RF3 : 1; + unsigned RF4 : 1; + unsigned RF5 : 1; + unsigned RF6 : 1; + unsigned RF7 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned AN7 : 1; + unsigned : 1; + unsigned : 1; + unsigned AN10 : 1; + unsigned AN11 : 1; + unsigned SS : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned C2INB : 1; + unsigned : 1; + unsigned : 1; + unsigned CVREF : 1; + unsigned C1INA : 1; + unsigned C1OUT : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned PMA5 : 1; + unsigned : 1; + unsigned : 1; + unsigned C1INB : 1; + unsigned : 1; + unsigned : 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 REPU : 1; + unsigned RDPU : 1; + }; + struct { + unsigned CCP3 : 1; + unsigned TX2 : 1; + unsigned RX2 : 1; + unsigned CCP4 : 1; + unsigned CCP5 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned PMA8 : 1; + unsigned CK2 : 1; + unsigned DT2 : 1; + unsigned PMCS1 : 1; + unsigned PMCS2 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned PMA7 : 1; + unsigned PMA6 : 1; + unsigned : 1; + unsigned : 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 : 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 : 1; + unsigned : 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) DDRA; +typedef union { + struct { + unsigned RA0 : 1; + unsigned RA1 : 1; + unsigned RA2 : 1; + unsigned RA3 : 1; + unsigned RA4 : 1; + unsigned RA5 : 1; + unsigned : 1; + unsigned : 1; + }; +} __DDRAbits_t; +extern volatile __DDRAbits_t __at (0xF92) DDRAbits; + +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 : 1; + unsigned : 1; + }; +} __TRISAbits_t; +extern volatile __TRISAbits_t __at (0xF92) TRISAbits; + +extern __sfr __at (0xF93) DDRB; +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; + }; +} __DDRBbits_t; +extern volatile __DDRBbits_t __at (0xF93) DDRBbits; + +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) DDRC; +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; + }; +} __DDRCbits_t; +extern volatile __DDRCbits_t __at (0xF94) DDRCbits; + +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) DDRD; +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; + }; +} __DDRDbits_t; +extern volatile __DDRDbits_t __at (0xF95) DDRDbits; + +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) DDRE; +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; + }; +} __DDREbits_t; +extern volatile __DDREbits_t __at (0xF96) DDREbits; + +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) DDRF; +typedef union { + struct { + unsigned : 1; + unsigned RF1 : 1; + unsigned RF2 : 1; + unsigned RF3 : 1; + unsigned RF4 : 1; + unsigned RF5 : 1; + unsigned RF6 : 1; + unsigned RF7 : 1; + }; +} __DDRFbits_t; +extern volatile __DDRFbits_t __at (0xF97) DDRFbits; + +extern __sfr __at (0xF97) TRISF; +typedef union { + struct { + unsigned : 1; + unsigned : 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) DDRG; +typedef union { + struct { + unsigned RG0 : 1; + unsigned RG1 : 1; + unsigned RG2 : 1; + unsigned RG3 : 1; + unsigned RG4 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __DDRGbits_t; +extern volatile __DDRGbits_t __at (0xF98) DDRGbits; + +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 (0xF9B) OSCTUNE; +typedef union { + struct { + unsigned TUN0 : 1; + unsigned TUN1 : 1; + unsigned TUN2 : 1; + unsigned TUN3 : 1; + unsigned TUN4 : 1; + unsigned TUN5 : 1; + unsigned PLLEN : 1; + unsigned INTSRC : 1; + }; +} __OSCTUNEbits_t; +extern volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits; + +extern __sfr __at (0xF9C) RCSTA2; +typedef union { + struct { + unsigned RCD8 : 1; + unsigned OERR : 1; + unsigned FERR : 1; + unsigned ADDEN : 1; + unsigned CREN : 1; + unsigned SREN : 1; + unsigned RC9 : 1; + unsigned SPEN : 1; + }; + struct { + unsigned RX9D : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_RC8 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned RC8_9 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned RX9 : 1; + unsigned : 1; + }; +} __RCSTA2bits_t; +extern volatile __RCSTA2bits_t __at (0xF9C) RCSTA2bits; + +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 PMPIE : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned SSP1IE : 1; + unsigned TX1IE : 1; + unsigned RC1IE : 1; + unsigned : 1; + unsigned : 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 PMPIF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned SSP1IF : 1; + unsigned TX1IF : 1; + unsigned RC1IF : 1; + unsigned : 1; + unsigned : 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 PMPIP : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned SSP1IP : 1; + unsigned TX1IP : 1; + unsigned RC1IP : 1; + unsigned : 1; + unsigned : 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 USBIE : 1; + unsigned CM1IE : 1; + unsigned CM2IE : 1; + unsigned OSCFIE : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned BCL1IE : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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 USBIF : 1; + unsigned CM1IF : 1; + unsigned CM2IF : 1; + unsigned OSCFIF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned BCL1IF : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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 USBIP : 1; + unsigned CM1IP : 1; + unsigned CM2IP : 1; + unsigned OSCFIP : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned BCL1IP : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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 BCL2IE : 1; + unsigned SSP2IE : 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 BCL2IF : 1; + unsigned SSP2IF : 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 BCL2IP : 1; + unsigned SSP2IP : 1; + }; +} __IPR3bits_t; +extern volatile __IPR3bits_t __at (0xFA5) IPR3bits; + +extern __sfr __at (0xFA6) EECON1; +typedef union { + struct { + unsigned : 1; + unsigned WR : 1; + unsigned WREN : 1; + unsigned WRERR : 1; + unsigned FREE : 1; + unsigned WPROG : 1; + unsigned : 1; + unsigned : 1; + }; +} __EECON1bits_t; +extern volatile __EECON1bits_t __at (0xFA6) EECON1bits; + +extern __sfr __at (0xFA7) EECON2; + +extern __sfr __at (0xFA8) TXSTA2; +typedef union { + struct { + unsigned TX9D : 1; + unsigned TRMT : 1; + unsigned BRGH : 1; + unsigned SENDB : 1; + unsigned SYNC : 1; + unsigned TXEN : 1; + unsigned TX9 : 1; + unsigned CSRC : 1; + }; + struct { + unsigned TXD8 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned TX8_9 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_TX8 : 1; + unsigned : 1; + }; +} __TXSTA2bits_t; +extern volatile __TXSTA2bits_t __at (0xFA8) TXSTA2bits; + +extern __sfr __at (0xFA9) TXREG2; + +extern __sfr __at (0xFAA) RCREG2; + +extern __sfr __at (0xFAB) SPBRG2; + +extern __sfr __at (0xFAC) 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; + }; + struct { + unsigned RCD8 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned RC9 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_RC8 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned RC8_9 : 1; + unsigned : 1; + }; +} __RCSTAbits_t; +extern volatile __RCSTAbits_t __at (0xFAC) RCSTAbits; + +extern __sfr __at (0xFAC) 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; + }; + struct { + unsigned RCD8 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned RC9 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_RC8 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned RC8_9 : 1; + unsigned : 1; + }; +} __RCSTA1bits_t; +extern volatile __RCSTA1bits_t __at (0xFAC) RCSTA1bits; + +extern __sfr __at (0xFAD) TXSTA; +typedef union { + struct { + unsigned TX9D : 1; + unsigned TRMT : 1; + unsigned BRGH : 1; + unsigned SENDB : 1; + unsigned SYNC : 1; + unsigned TXEN : 1; + unsigned TX9 : 1; + unsigned CSRC : 1; + }; + struct { + unsigned TXD8 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned TX8_9 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_TX8 : 1; + unsigned : 1; + }; +} __TXSTAbits_t; +extern volatile __TXSTAbits_t __at (0xFAD) TXSTAbits; + +extern __sfr __at (0xFAD) TXSTA1; +typedef union { + struct { + unsigned TX9D : 1; + unsigned TRMT : 1; + unsigned BRGH : 1; + unsigned SENDB : 1; + unsigned SYNC : 1; + unsigned TXEN : 1; + unsigned TX9 : 1; + unsigned CSRC : 1; + }; + struct { + unsigned TXD8 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned TX8_9 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_TX8 : 1; + unsigned : 1; + }; +} __TXSTA1bits_t; +extern volatile __TXSTA1bits_t __at (0xFAD) TXSTA1bits; + +extern __sfr __at (0xFAE) TXREG; + +extern __sfr __at (0xFAE) TXREG1; + +extern __sfr __at (0xFAF) RCREG; + +extern __sfr __at (0xFAF) RCREG1; + +extern __sfr __at (0xFB0) SPBRG; + +extern __sfr __at (0xFB0) SPBRG1; + +extern __sfr __at (0xFB1) CCP3CON; +typedef union { + struct { + unsigned CCP3M0 : 1; + unsigned CCP3M1 : 1; + unsigned CCP3M2 : 1; + unsigned CCP3M3 : 1; + unsigned DC3B0 : 1; + unsigned DC3B1 : 1; + unsigned P3M0 : 1; + unsigned P3M1 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP3Y : 1; + unsigned CCP3X : 1; + unsigned : 1; + unsigned : 1; + }; +} __CCP3CONbits_t; +extern volatile __CCP3CONbits_t __at (0xFB1) CCP3CONbits; + +extern __sfr __at (0xFB1) ECCP3CON; +typedef union { + struct { + unsigned CCP3M0 : 1; + unsigned CCP3M1 : 1; + unsigned CCP3M2 : 1; + unsigned CCP3M3 : 1; + unsigned DC3B0 : 1; + unsigned DC3B1 : 1; + unsigned P3M0 : 1; + unsigned P3M1 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP3Y : 1; + unsigned CCP3X : 1; + unsigned : 1; + unsigned : 1; + }; +} __ECCP3CONbits_t; +extern volatile __ECCP3CONbits_t __at (0xFB1) ECCP3CONbits; + +extern __sfr __at (0xFB2) CCPR3; + +extern __sfr __at (0xFB2) CCPR3L; + +extern __sfr __at (0xFB3) CCPR3H; + +extern __sfr __at (0xFB4) ECCP3DEL; +typedef union { + struct { + unsigned PDC0 : 1; + unsigned PDC1 : 1; + unsigned PDC2 : 1; + unsigned PDC3 : 1; + unsigned PDC4 : 1; + unsigned PDC5 : 1; + unsigned PDC6 : 1; + unsigned PRSEN : 1; + }; + struct { + unsigned P3DC0 : 1; + unsigned P3DC1 : 1; + unsigned P3DC2 : 1; + unsigned P3DC3 : 1; + unsigned P3DC4 : 1; + unsigned P3DC5 : 1; + unsigned P3DC6 : 1; + unsigned P3RSEN : 1; + }; +} __ECCP3DELbits_t; +extern volatile __ECCP3DELbits_t __at (0xFB4) ECCP3DELbits; + +extern __sfr __at (0xFB5) ECCP3AS; +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; + }; + struct { + unsigned PSS3BD0 : 1; + unsigned PSS3BD1 : 1; + unsigned PSS3AC0 : 1; + unsigned PSS3AC1 : 1; + unsigned ECCP3AS0 : 1; + unsigned ECCP3AS1 : 1; + unsigned ECCP3AS2 : 1; + unsigned ECCP3ASE : 1; + }; +} __ECCP3ASbits_t; +extern volatile __ECCP3ASbits_t __at (0xFB5) ECCP3ASbits; + +extern __sfr __at (0xFB6) CCP2CON; +typedef union { + struct { + unsigned CCP2M0 : 1; + unsigned CCP2M1 : 1; + unsigned CCP2M2 : 1; + unsigned CCP2M3 : 1; + unsigned DC2B0 : 1; + unsigned DC2B1 : 1; + unsigned P2M0 : 1; + unsigned P2M1 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP2Y : 1; + unsigned CCP2X : 1; + unsigned : 1; + unsigned : 1; + }; +} __CCP2CONbits_t; +extern volatile __CCP2CONbits_t __at (0xFB6) CCP2CONbits; + +extern __sfr __at (0xFB6) ECCP2CON; +typedef union { + struct { + unsigned CCP2M0 : 1; + unsigned CCP2M1 : 1; + unsigned CCP2M2 : 1; + unsigned CCP2M3 : 1; + unsigned DC2B0 : 1; + unsigned DC2B1 : 1; + unsigned P2M0 : 1; + unsigned P2M1 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP2Y : 1; + unsigned CCP2X : 1; + unsigned : 1; + unsigned : 1; + }; +} __ECCP2CONbits_t; +extern volatile __ECCP2CONbits_t __at (0xFB6) ECCP2CONbits; + +extern __sfr __at (0xFB7) CCPR2; + +extern __sfr __at (0xFB7) CCPR2L; + +extern __sfr __at (0xFB8) CCPR2H; + +extern __sfr __at (0xFB9) ECCP2DEL; +typedef union { + struct { + unsigned PDC0 : 1; + unsigned PDC1 : 1; + unsigned PDC2 : 1; + unsigned PDC3 : 1; + unsigned PDC4 : 1; + unsigned PDC5 : 1; + unsigned PDC6 : 1; + unsigned PRSEN : 1; + }; + struct { + unsigned P2DC0 : 1; + unsigned P2DC1 : 1; + unsigned P2DC2 : 1; + unsigned P2DC3 : 1; + unsigned P2DC4 : 1; + unsigned P2DC5 : 1; + unsigned P2DC6 : 1; + unsigned P2RSEN : 1; + }; +} __ECCP2DELbits_t; +extern volatile __ECCP2DELbits_t __at (0xFB9) ECCP2DELbits; + +extern __sfr __at (0xFBA) ECCP2AS; +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; + }; + struct { + unsigned PSS2BD0 : 1; + unsigned PSS2BD1 : 1; + unsigned PSS2AC0 : 1; + unsigned PSS2AC1 : 1; + unsigned ECCP2AS0 : 1; + unsigned ECCP2AS1 : 1; + unsigned ECCP2AS2 : 1; + unsigned ECCP2ASE : 1; + }; +} __ECCP2ASbits_t; +extern volatile __ECCP2ASbits_t __at (0xFBA) ECCP2ASbits; + +extern __sfr __at (0xFBB) CCP1CON; +typedef union { + struct { + unsigned CCP1M0 : 1; + unsigned CCP1M1 : 1; + unsigned CCP1M2 : 1; + unsigned CCP1M3 : 1; + unsigned DC1B0 : 1; + unsigned DC1B1 : 1; + unsigned P1M0 : 1; + unsigned P1M1 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP1Y : 1; + unsigned CCP1X : 1; + unsigned : 1; + unsigned : 1; + }; +} __CCP1CONbits_t; +extern volatile __CCP1CONbits_t __at (0xFBB) CCP1CONbits; + +extern __sfr __at (0xFBB) ECCP1CON; +typedef union { + struct { + unsigned CCP1M0 : 1; + unsigned CCP1M1 : 1; + unsigned CCP1M2 : 1; + unsigned CCP1M3 : 1; + unsigned DC1B0 : 1; + unsigned DC1B1 : 1; + unsigned P1M0 : 1; + unsigned P1M1 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP1Y : 1; + unsigned CCP1X : 1; + unsigned : 1; + unsigned : 1; + }; +} __ECCP1CONbits_t; +extern volatile __ECCP1CONbits_t __at (0xFBB) ECCP1CONbits; + +extern __sfr __at (0xFBC) CCPR1; + +extern __sfr __at (0xFBC) CCPR1L; + +extern __sfr __at (0xFBD) CCPR1H; + +extern __sfr __at (0xFBE) ECCP1DEL; +typedef union { + struct { + unsigned PDC0 : 1; + unsigned PDC1 : 1; + unsigned PDC2 : 1; + unsigned PDC3 : 1; + unsigned PDC4 : 1; + unsigned PDC5 : 1; + unsigned PDC6 : 1; + unsigned PRSEN : 1; + }; + struct { + unsigned P1DC0 : 1; + unsigned P1DC1 : 1; + unsigned P1DC2 : 1; + unsigned P1DC3 : 1; + unsigned P1DC4 : 1; + unsigned P1DC5 : 1; + unsigned P1DC6 : 1; + unsigned P1RSEN : 1; + }; +} __ECCP1DELbits_t; +extern volatile __ECCP1DELbits_t __at (0xFBE) ECCP1DELbits; + +extern __sfr __at (0xFBF) ECCP1AS; +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; + }; + struct { + unsigned PSS1BD0 : 1; + unsigned PSS1BD1 : 1; + unsigned PSS1AC0 : 1; + unsigned PSS1AC1 : 1; + unsigned ECCP1AS0 : 1; + unsigned ECCP1AS1 : 1; + unsigned ECCP1AS2 : 1; + unsigned ECCP1ASE : 1; + }; +} __ECCP1ASbits_t; +extern volatile __ECCP1ASbits_t __at (0xFBF) ECCP1ASbits; + +extern __sfr __at (0xFC0) WDTCON; +typedef union { + struct { + unsigned SWDTE : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned DEVCFG : 1; + unsigned : 1; + unsigned LVDSTAT : 1; + unsigned REGSLP : 1; + }; + struct { + unsigned SWDTEN : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned ADSHR : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __WDTCONbits_t; +extern volatile __WDTCONbits_t __at (0xFC0) WDTCONbits; + +extern __sfr __at (0xFC1) ADCON1; +typedef union { + struct { + unsigned ADCS0 : 1; + unsigned ADCS1 : 1; + unsigned ADCS2 : 1; + unsigned ACQT0 : 1; + unsigned ACQT1 : 1; + unsigned ACQT2 : 1; + unsigned ADCAL : 1; + unsigned ADFM : 1; + }; +} __ADCON1bits_t; +extern volatile __ADCON1bits_t __at (0xFC1) ADCON1bits; + +extern __sfr __at (0xFC1) ANCON0; +typedef union { + struct { + unsigned PCFG0 : 1; + unsigned PCFG1 : 1; + unsigned PCFG2 : 1; + unsigned PCFG3 : 1; + unsigned PCFG4 : 1; + unsigned PCFG5 : 1; + unsigned PCFG6 : 1; + unsigned PCFG7 : 1; + }; +} __ANCON0bits_t; +extern volatile __ANCON0bits_t __at (0xFC1) ANCON0bits; + +extern __sfr __at (0xFC2) ADCON0; +typedef union { + struct { + unsigned ADON : 1; + unsigned DONE : 1; + unsigned CHS0 : 1; + unsigned CHS1 : 1; + unsigned CHS2 : 1; + unsigned CHS3 : 1; + unsigned VCFG0 : 1; + unsigned VCFG1 : 1; + }; + struct { + unsigned : 1; + unsigned GO_DONE : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned GO : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned NOT_DONE : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __ADCON0bits_t; +extern volatile __ADCON0bits_t __at (0xFC2) ADCON0bits; + +extern __sfr __at (0xFC2) ANCON1; +typedef union { + struct { + unsigned PCFG8 : 1; + unsigned PCFG9 : 1; + unsigned PCFG10 : 1; + unsigned PCFG11 : 1; + unsigned PCFG12 : 1; + unsigned PCFG13 : 1; + unsigned PCFG14 : 1; + unsigned PCFG15 : 1; + }; +} __ANCON1bits_t; +extern volatile __ANCON1bits_t __at (0xFC2) ANCON1bits; + +extern __sfr __at (0xFC3) ADRES; + +extern __sfr __at (0xFC3) ADRESL; + +extern __sfr __at (0xFC4) ADRESH; + +extern __sfr __at (0xFC5) SSP1CON2; +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; + }; + struct { + unsigned : 1; + unsigned ADMSK1 : 1; + unsigned ADMSK2 : 1; + unsigned ADMSK3 : 1; + unsigned ADMSK4 : 1; + unsigned ADMSK5 : 1; + unsigned : 1; + unsigned : 1; + }; +} __SSP1CON2bits_t; +extern volatile __SSP1CON2bits_t __at (0xFC5) SSP1CON2bits; + +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; + }; + struct { + unsigned : 1; + unsigned ADMSK1 : 1; + unsigned ADMSK2 : 1; + unsigned ADMSK3 : 1; + unsigned ADMSK4 : 1; + unsigned ADMSK5 : 1; + unsigned : 1; + unsigned : 1; + }; +} __SSPCON2bits_t; +extern volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits; + +extern __sfr __at (0xFC6) SSP1CON1; +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; + }; +} __SSP1CON1bits_t; +extern volatile __SSP1CON1bits_t __at (0xFC6) SSP1CON1bits; + +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) SSP1STAT; +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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned I2C_READ : 1; + unsigned I2C_START : 1; + unsigned I2C_STOP : 1; + unsigned I2C_DAT : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_W : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_A : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_ADDRESS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned READ_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned DATA_ADDRESS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned R : 1; + unsigned : 1; + unsigned : 1; + unsigned D : 1; + unsigned : 1; + unsigned : 1; + }; +} __SSP1STATbits_t; +extern volatile __SSP1STATbits_t __at (0xFC7) SSP1STATbits; + +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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned I2C_READ : 1; + unsigned I2C_START : 1; + unsigned I2C_STOP : 1; + unsigned I2C_DAT : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_W : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_A : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_ADDRESS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned READ_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned DATA_ADDRESS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned R : 1; + unsigned : 1; + unsigned : 1; + unsigned D : 1; + unsigned : 1; + unsigned : 1; + }; +} __SSPSTATbits_t; +extern volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits; + +extern __sfr __at (0xFC8) SSP1ADD; + +extern __sfr __at (0xFC8) SSP1MSK; + +extern __sfr __at (0xFC8) SSPADD; + +extern __sfr __at (0xFC9) SSP1BUF; + +extern __sfr __at (0xFC9) SSPBUF; + +extern __sfr __at (0xFCA) T2CON; +typedef union { + struct { + unsigned T2CKPS0 : 1; + unsigned T2CKPS1 : 1; + unsigned TMR2ON : 1; + unsigned T2OUTPS0 : 1; + unsigned T2OUTPS1 : 1; + unsigned T2OUTPS2 : 1; + unsigned T2OUTPS3 : 1; + unsigned : 1; + }; +} __T2CONbits_t; +extern volatile __T2CONbits_t __at (0xFCA) T2CONbits; + +extern __sfr __at (0xFCB) PR2; + +extern __sfr __at (0xFCC) PADCFG1; +typedef union { + struct { + unsigned PMPTTL : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __PADCFG1bits_t; +extern volatile __PADCFG1bits_t __at (0xFCC) PADCFG1bits; + +extern __sfr __at (0xFCC) TMR2; + +extern __sfr __at (0xFCD) ODCON3; +typedef union { + struct { + unsigned SPI1OD : 1; + unsigned SPI2OD : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __ODCON3bits_t; +extern volatile __ODCON3bits_t __at (0xFCD) ODCON3bits; + +extern __sfr __at (0xFCD) T1CON; +typedef union { + struct { + unsigned TMR1ON : 1; + unsigned TMR1CS : 1; + unsigned T1SYNC : 1; + unsigned T1OSCEN : 1; + unsigned T1CKPS0 : 1; + unsigned T1CKPS1 : 1; + unsigned T1RUN : 1; + unsigned RD16 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned T1INSYNC : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_T1SYNC : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __T1CONbits_t; +extern volatile __T1CONbits_t __at (0xFCD) T1CONbits; + +extern __sfr __at (0xFCE) ODCON2; +typedef union { + struct { + unsigned USART1OD : 1; + unsigned USART2OD : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned U1OD : 1; + unsigned U2OD : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __ODCON2bits_t; +extern volatile __ODCON2bits_t __at (0xFCE) ODCON2bits; + +extern __sfr __at (0xFCE) TMR1L; + +extern __sfr __at (0xFCF) ODCON1; +typedef union { + struct { + unsigned ECCP1OD : 1; + unsigned ECCP2OD : 1; + unsigned ECCP3OD : 1; + unsigned CCP4OD : 1; + unsigned CCP5OD : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __ODCON1bits_t; +extern volatile __ODCON1bits_t __at (0xFCF) ODCON1bits; + +extern __sfr __at (0xFCF) TMR1H; + +extern __sfr __at (0xFD0) RCON; +typedef union { + struct { + unsigned NOT_BOR : 1; + unsigned NOT_POR : 1; + unsigned NOT_PD : 1; + unsigned NOT_TO : 1; + unsigned NOT_RI : 1; + unsigned NOT_CM : 1; + unsigned : 1; + unsigned IPEN : 1; + }; + struct { + unsigned BOR : 1; + unsigned POR : 1; + unsigned PD : 1; + unsigned TO : 1; + unsigned RI : 1; + unsigned CM : 1; + unsigned : 1; + unsigned : 1; + }; +} __RCONbits_t; +extern volatile __RCONbits_t __at (0xFD0) RCONbits; + +extern __sfr __at (0xFD1) CM2CON; +typedef union { + struct { + unsigned C1CH0 : 1; + unsigned C1CH1 : 1; + unsigned CREF : 1; + unsigned EVPOL0 : 1; + unsigned EVPOL1 : 1; + unsigned CPOL : 1; + unsigned COE : 1; + unsigned CON : 1; + }; + struct { + unsigned CCH0 : 1; + unsigned CCH1 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __CM2CONbits_t; +extern volatile __CM2CONbits_t __at (0xFD1) CM2CONbits; + +extern __sfr __at (0xFD1) CM2CON1; +typedef union { + struct { + unsigned C1CH0 : 1; + unsigned C1CH1 : 1; + unsigned CREF : 1; + unsigned EVPOL0 : 1; + unsigned EVPOL1 : 1; + unsigned CPOL : 1; + unsigned COE : 1; + unsigned CON : 1; + }; + struct { + unsigned CCH0 : 1; + unsigned CCH1 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __CM2CON1bits_t; +extern volatile __CM2CON1bits_t __at (0xFD1) CM2CON1bits; + +extern __sfr __at (0xFD2) CM1CON; +typedef union { + struct { + unsigned C1CH0 : 1; + unsigned C1CH1 : 1; + unsigned CREF : 1; + unsigned EVPOL0 : 1; + unsigned EVPOL1 : 1; + unsigned CPOL : 1; + unsigned COE : 1; + unsigned CON : 1; + }; + struct { + unsigned CCH0 : 1; + unsigned CCH1 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __CM1CONbits_t; +extern volatile __CM1CONbits_t __at (0xFD2) CM1CONbits; + +extern __sfr __at (0xFD2) CM1CON1; +typedef union { + struct { + unsigned C1CH0 : 1; + unsigned C1CH1 : 1; + unsigned CREF : 1; + unsigned EVPOL0 : 1; + unsigned EVPOL1 : 1; + unsigned CPOL : 1; + unsigned COE : 1; + unsigned CON : 1; + }; + struct { + unsigned CCH0 : 1; + unsigned CCH1 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __CM1CON1bits_t; +extern volatile __CM1CON1bits_t __at (0xFD2) CM1CON1bits; + +extern __sfr __at (0xFD3) OSCCON; +typedef union { + struct { + unsigned SCS0 : 1; + unsigned SCS1 : 1; + unsigned IOFS : 1; + unsigned OSTS : 1; + unsigned IRCF0 : 1; + unsigned IRCF1 : 1; + unsigned IRCF2 : 1; + unsigned IDLEN : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned FLTS : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __OSCCONbits_t; +extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits; + +extern __sfr __at (0xFD3) REFOCON; +typedef union { + struct { + unsigned RODIV0 : 1; + unsigned RODIV1 : 1; + unsigned RODIV2 : 1; + unsigned RODIV3 : 1; + unsigned ROSEL : 1; + unsigned ROSSLP : 1; + unsigned : 1; + unsigned ROON : 1; + }; +} __REFOCONbits_t; +extern volatile __REFOCONbits_t __at (0xFD3) REFOCONbits; + +extern __sfr __at (0xFD5) T0CON; +typedef union { + struct { + unsigned T0PS0 : 1; + unsigned T0PS1 : 1; + unsigned T0PS2 : 1; + unsigned PSA : 1; + unsigned T0SE : 1; + unsigned T0CS : 1; + unsigned T08BIT : 1; + unsigned TMR0ON : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned T0PS3 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __T0CONbits_t; +extern volatile __T0CONbits_t __at (0xFD5) T0CONbits; + +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 NOT_RBPU : 1; + }; + struct { + unsigned : 1; + unsigned INT3IP : 1; + unsigned TMR0IP : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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; + }; + struct { + unsigned : 1; + unsigned INT0IF : 1; + unsigned TMR0IF : 1; + unsigned : 1; + unsigned INT0IE : 1; + unsigned TMR0IE : 1; + unsigned GIEL : 1; + unsigned GIEH : 1; + }; +} __INTCONbits_t; +extern volatile __INTCONbits_t __at (0xFF2) INTCONbits; + +extern __sfr __at (0xFF3) PROD; + +extern __sfr __at (0xFF3) PRODL; + +extern __sfr __at (0xFF4) PRODH; + +extern __sfr __at (0xFF5) TABLAT; + +extern __sfr __at (0xFF6) TBLPTR; + +extern __sfr __at (0xFF6) TBLPTRL; + +extern __sfr __at (0xFF7) TBLPTRH; + +extern __sfr __at (0xFF8) TBLPTRU; + +extern __sfr __at (0xFF9) PC; + +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 STKOVF : 1; + }; + struct { + unsigned SP0 : 1; + unsigned SP1 : 1; + unsigned SP2 : 1; + unsigned SP3 : 1; + unsigned SP4 : 1; + unsigned : 1; + unsigned : 1; + unsigned STKFUL : 1; + }; +} __STKPTRbits_t; +extern volatile __STKPTRbits_t __at (0xFFC) STKPTRbits; + +extern __sfr __at (0xFFD) TOS; + +extern __sfr __at (0xFFD) TOSL; + +extern __sfr __at (0xFFE) TOSH; + +extern __sfr __at (0xFFF) TOSU; + + +#endif + diff --git a/device/include/pic16/pic18f85j50.h b/device/include/pic16/pic18f85j50.h new file mode 100644 index 00000000..a3ff7917 --- /dev/null +++ b/device/include/pic16/pic18f85j50.h @@ -0,0 +1,26 @@ +/* + * pic18f85j50.h - device specific declarations + */ + +#ifndef __PIC18F85J50_H__ +#define __PIC18F85J50_H__ 1 + +#include "pic18f87j50.h" + +#undef __CONFIG1L +#undef __CONFIG1H +#undef __CONFIG2L +#undef __CONFIG2H +#undef __CONFIG3L +#undef __CONFIG3H + +// Configuration Bits +#define __CONFIG1L 0x7FF8 +#define __CONFIG1H 0x7FF9 +#define __CONFIG2L 0x7FFA +#define __CONFIG2H 0x7FFB +#define __CONFIG3L 0x7FFC +#define __CONFIG3H 0x7FFD + +#endif + diff --git a/device/include/pic16/pic18f86j50.h b/device/include/pic16/pic18f86j50.h new file mode 100644 index 00000000..55b61a5e --- /dev/null +++ b/device/include/pic16/pic18f86j50.h @@ -0,0 +1,26 @@ +/* + * pic18f86j50.h - device specific declarations + */ + +#ifndef __PIC18F86J50_H__ +#define __PIC18F86J50_H__ 1 + +#include "pic18f87j50.h" + +#undef __CONFIG1L +#undef __CONFIG1H +#undef __CONFIG2L +#undef __CONFIG2H +#undef __CONFIG3L +#undef __CONFIG3H + +// Configuration Bits +#define __CONFIG1L 0xFFF8 +#define __CONFIG1H 0xFFF9 +#define __CONFIG2L 0xFFFA +#define __CONFIG2H 0xFFFB +#define __CONFIG3L 0xFFFC +#define __CONFIG3H 0xFFFD + +#endif + diff --git a/device/include/pic16/pic18f86j55.h b/device/include/pic16/pic18f86j55.h new file mode 100644 index 00000000..33052bfe --- /dev/null +++ b/device/include/pic16/pic18f86j55.h @@ -0,0 +1,26 @@ +/* + * pic18f86j55.h - device specific declarations + */ + +#ifndef __PIC18F86J55_H__ +#define __PIC18F86J55_H__ 1 + +#include "pic18f87j50.h" + +#undef __CONFIG1L +#undef __CONFIG1H +#undef __CONFIG2L +#undef __CONFIG2H +#undef __CONFIG3L +#undef __CONFIG3H + +// Configuration Bits +#define __CONFIG1L 0x17FF8 +#define __CONFIG1H 0x17FF9 +#define __CONFIG2L 0x17FFA +#define __CONFIG2H 0x17FFB +#define __CONFIG3L 0x17FFC +#define __CONFIG3H 0x17FFD + +#endif + diff --git a/device/include/pic16/pic18f87j50.h b/device/include/pic16/pic18f87j50.h new file mode 100644 index 00000000..380cc07f --- /dev/null +++ b/device/include/pic16/pic18f87j50.h @@ -0,0 +1,3435 @@ +/* + * pic18f87j50.h - device specific declarations + * + * This file is part of the GNU PIC library for SDCC, + * originally devised by Vangelis Rokas + * + * It has been automatically generated by inc2h-pic16.pl, + * (c) 2007 by Raphael Neider + */ + +#ifndef __PIC18F87J50_H__ +#define __PIC18F87J50_H__ 1 + + + +// Configuration Bits +#define __CONFIG1L 0x1FFF8 +#define __CONFIG1H 0x1FFF9 +#define __CONFIG2L 0x1FFFA +#define __CONFIG2H 0x1FFFB +#define __CONFIG3L 0x1FFFC +#define __CONFIG3H 0x1FFFD +#define _DEVID1 0x3FFFFE +#define _DEVID2 0x3FFFFF + +extern __sfr __at (0xF40) PMSTAT; + +extern __sfr __at (0xF40) PMSTATL; +typedef union { + struct { + unsigned OB0E : 1; + unsigned OB1E : 1; + unsigned OB2E : 1; + unsigned OB3E : 1; + unsigned : 1; + unsigned : 1; + unsigned OBUF : 1; + unsigned OBE : 1; + }; +} __PMSTATLbits_t; +extern volatile __PMSTATLbits_t __at (0xF40) PMSTATLbits; + +extern __sfr __at (0xF41) PMSTATH; +typedef union { + struct { + unsigned IB0F : 1; + unsigned IB1F : 1; + unsigned IB2F : 1; + unsigned IB3F : 1; + unsigned : 1; + unsigned : 1; + unsigned IBOV : 1; + unsigned IBF : 1; + }; +} __PMSTATHbits_t; +extern volatile __PMSTATHbits_t __at (0xF41) PMSTATHbits; + +extern __sfr __at (0xF42) PMEL; +typedef union { + struct { + unsigned PTEN0 : 1; + unsigned PTEN1 : 1; + unsigned PTEN2 : 1; + unsigned PTEN3 : 1; + unsigned PTEN4 : 1; + unsigned PTEN5 : 1; + unsigned PTEN6 : 1; + unsigned PTEN7 : 1; + }; +} __PMELbits_t; +extern volatile __PMELbits_t __at (0xF42) PMELbits; + +extern __sfr __at (0xF42) PMEN; + +extern __sfr __at (0xF43) PMEH; +typedef union { + struct { + unsigned PTEN8 : 1; + unsigned PTEN9 : 1; + unsigned PTEN10 : 1; + unsigned PTEN11 : 1; + unsigned PTEN12 : 1; + unsigned PTEN13 : 1; + unsigned PTEN14 : 1; + unsigned PTEN15 : 1; + }; +} __PMEHbits_t; +extern volatile __PMEHbits_t __at (0xF43) PMEHbits; + +extern __sfr __at (0xF44) PMDIN2; + +extern __sfr __at (0xF44) PMDIN2L; + +extern __sfr __at (0xF45) PMDIN2H; + +extern __sfr __at (0xF46) PMDOUT2; + +extern __sfr __at (0xF46) PMDOUT2L; + +extern __sfr __at (0xF47) PMDOUT2H; + +extern __sfr __at (0xF48) PMMODE; + +extern __sfr __at (0xF48) PMMODEL; +typedef union { + struct { + unsigned WAITE0 : 1; + unsigned WAITE1 : 1; + unsigned WAITM0 : 1; + unsigned WAITM1 : 1; + unsigned WAITM2 : 1; + unsigned WAITM3 : 1; + unsigned WAITB0 : 1; + unsigned WAITB1 : 1; + }; +} __PMMODELbits_t; +extern volatile __PMMODELbits_t __at (0xF48) PMMODELbits; + +extern __sfr __at (0xF49) PMMODEH; +typedef union { + struct { + unsigned MODE0 : 1; + unsigned MODE1 : 1; + unsigned MODE16 : 1; + unsigned INCM0 : 1; + unsigned INCM1 : 1; + unsigned IRQM0 : 1; + unsigned IRQM1 : 1; + unsigned BUSY : 1; + }; +} __PMMODEHbits_t; +extern volatile __PMMODEHbits_t __at (0xF49) PMMODEHbits; + +extern __sfr __at (0xF4A) PMCON; + +extern __sfr __at (0xF4A) PMCONL; +typedef union { + struct { + unsigned RDSP : 1; + unsigned WRSP : 1; + unsigned BEP : 1; + unsigned CS1P : 1; + unsigned CS2P : 1; + unsigned ALP : 1; + unsigned CSF0 : 1; + unsigned CSF1 : 1; + }; +} __PMCONLbits_t; +extern volatile __PMCONLbits_t __at (0xF4A) PMCONLbits; + +extern __sfr __at (0xF4B) PMCONH; +typedef union { + struct { + unsigned PTRDEN : 1; + unsigned PTWREN : 1; + unsigned PTBEEN : 1; + unsigned ADRMUX0 : 1; + unsigned ADRMUX1 : 1; + unsigned PSIDL : 1; + unsigned : 1; + unsigned PMPEN : 1; + }; +} __PMCONHbits_t; +extern volatile __PMCONHbits_t __at (0xF4B) PMCONHbits; + +extern __sfr __at (0xF4C) UEP0; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP0bits_t; +extern volatile __UEP0bits_t __at (0xF4C) UEP0bits; + +extern __sfr __at (0xF4D) UEP1; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP1bits_t; +extern volatile __UEP1bits_t __at (0xF4D) UEP1bits; + +extern __sfr __at (0xF4E) UEP2; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP2bits_t; +extern volatile __UEP2bits_t __at (0xF4E) UEP2bits; + +extern __sfr __at (0xF4F) UEP3; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP3bits_t; +extern volatile __UEP3bits_t __at (0xF4F) UEP3bits; + +extern __sfr __at (0xF50) UEP4; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP4bits_t; +extern volatile __UEP4bits_t __at (0xF50) UEP4bits; + +extern __sfr __at (0xF51) UEP5; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP5bits_t; +extern volatile __UEP5bits_t __at (0xF51) UEP5bits; + +extern __sfr __at (0xF52) UEP6; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP6bits_t; +extern volatile __UEP6bits_t __at (0xF52) UEP6bits; + +extern __sfr __at (0xF53) UEP7; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP7bits_t; +extern volatile __UEP7bits_t __at (0xF53) UEP7bits; + +extern __sfr __at (0xF54) UEP8; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP8bits_t; +extern volatile __UEP8bits_t __at (0xF54) UEP8bits; + +extern __sfr __at (0xF55) UEP9; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP9bits_t; +extern volatile __UEP9bits_t __at (0xF55) UEP9bits; + +extern __sfr __at (0xF56) UEP10; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP10bits_t; +extern volatile __UEP10bits_t __at (0xF56) UEP10bits; + +extern __sfr __at (0xF57) UEP11; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP11bits_t; +extern volatile __UEP11bits_t __at (0xF57) UEP11bits; + +extern __sfr __at (0xF58) UEP12; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP12bits_t; +extern volatile __UEP12bits_t __at (0xF58) UEP12bits; + +extern __sfr __at (0xF59) UEP13; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP13bits_t; +extern volatile __UEP13bits_t __at (0xF59) UEP13bits; + +extern __sfr __at (0xF5A) UEP14; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP14bits_t; +extern volatile __UEP14bits_t __at (0xF5A) UEP14bits; + +extern __sfr __at (0xF5B) UEP15; +typedef union { + struct { + unsigned EPSTALL : 1; + unsigned EPINEN : 1; + unsigned EPOUTEN : 1; + unsigned EPCONDIS : 1; + unsigned EPHSHK : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UEP15bits_t; +extern volatile __UEP15bits_t __at (0xF5B) UEP15bits; + +extern __sfr __at (0xF5C) UIE; +typedef union { + struct { + unsigned URSTIE : 1; + unsigned UERRIE : 1; + unsigned ACTVIE : 1; + unsigned TRNIE : 1; + unsigned IDLEIE : 1; + unsigned STALLIE : 1; + unsigned SOFIE : 1; + unsigned : 1; + }; +} __UIEbits_t; +extern volatile __UIEbits_t __at (0xF5C) UIEbits; + +extern __sfr __at (0xF5D) UEIE; +typedef union { + struct { + unsigned PIDEE : 1; + unsigned CRC5EE : 1; + unsigned CRC16EE : 1; + unsigned DFN8EE : 1; + unsigned BTOEE : 1; + unsigned : 1; + unsigned : 1; + unsigned BTSEE : 1; + }; +} __UEIEbits_t; +extern volatile __UEIEbits_t __at (0xF5D) UEIEbits; + +extern __sfr __at (0xF5E) UADDR; +typedef union { + struct { + unsigned ADDR0 : 1; + unsigned ADDR1 : 1; + unsigned ADDR2 : 1; + unsigned ADDR3 : 1; + unsigned ADDR4 : 1; + unsigned ADDR5 : 1; + unsigned ADDR6 : 1; + unsigned : 1; + }; +} __UADDRbits_t; +extern volatile __UADDRbits_t __at (0xF5E) UADDRbits; + +extern __sfr __at (0xF5F) UCFG; +typedef union { + struct { + unsigned PPB0 : 1; + unsigned PPB1 : 1; + unsigned FSEN : 1; + unsigned UTRDIS : 1; + unsigned UPUEN : 1; + unsigned : 1; + unsigned UOEMON : 1; + unsigned UTEYE : 1; + }; +} __UCFGbits_t; +extern volatile __UCFGbits_t __at (0xF5F) UCFGbits; + +extern __sfr __at (0xF60) UFRM; + +extern __sfr __at (0xF60) UFRML; +typedef union { + struct { + unsigned FRM0 : 1; + unsigned FRM1 : 1; + unsigned FRM2 : 1; + unsigned FRM3 : 1; + unsigned FRM4 : 1; + unsigned FRM5 : 1; + unsigned FRM6 : 1; + unsigned FRM7 : 1; + }; +} __UFRMLbits_t; +extern volatile __UFRMLbits_t __at (0xF60) UFRMLbits; + +extern __sfr __at (0xF61) UFRMH; +typedef union { + struct { + unsigned FRM8 : 1; + unsigned FRM9 : 1; + unsigned FRM10 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __UFRMHbits_t; +extern volatile __UFRMHbits_t __at (0xF61) UFRMHbits; + +extern __sfr __at (0xF62) UIR; +typedef union { + struct { + unsigned URSTIF : 1; + unsigned UERRIF : 1; + unsigned ACTVIF : 1; + unsigned TRNIF : 1; + unsigned IDLEIF : 1; + unsigned STALLIF : 1; + unsigned SOFIF : 1; + unsigned : 1; + }; +} __UIRbits_t; +extern volatile __UIRbits_t __at (0xF62) UIRbits; + +extern __sfr __at (0xF63) UEIR; +typedef union { + struct { + unsigned PIDEF : 1; + unsigned CRC5EF : 1; + unsigned CRC16EF : 1; + unsigned DFN8EF : 1; + unsigned BTOEF : 1; + unsigned : 1; + unsigned : 1; + unsigned BTSEF : 1; + }; +} __UEIRbits_t; +extern volatile __UEIRbits_t __at (0xF63) UEIRbits; + +extern __sfr __at (0xF64) USTAT; +typedef union { + struct { + unsigned : 1; + unsigned PPBI : 1; + unsigned DIR : 1; + unsigned ENDP0 : 1; + unsigned ENDP1 : 1; + unsigned ENDP2 : 1; + unsigned ENDP3 : 1; + unsigned : 1; + }; +} __USTATbits_t; +extern volatile __USTATbits_t __at (0xF64) USTATbits; + +extern __sfr __at (0xF65) UCON; +typedef union { + struct { + unsigned : 1; + unsigned SUSPND : 1; + unsigned RESUME : 1; + unsigned USBEN : 1; + unsigned PKTDIS : 1; + unsigned SE0 : 1; + unsigned PPBRST : 1; + unsigned : 1; + }; +} __UCONbits_t; +extern volatile __UCONbits_t __at (0xF65) UCONbits; + +extern __sfr __at (0xF66) PMDIN1; + +extern __sfr __at (0xF66) PMDIN1L; + +extern __sfr __at (0xF67) PMDIN1H; + +extern __sfr __at (0xF68) PMADDR; + +extern __sfr __at (0xF68) PMADDRL; + +extern __sfr __at (0xF68) PMDOUT1; + +extern __sfr __at (0xF68) PMDOUT1L; + +extern __sfr __at (0xF69) PMADDRH; +typedef union { + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CS1 : 1; + unsigned CS2 : 1; + }; +} __PMADDRHbits_t; +extern volatile __PMADDRHbits_t __at (0xF69) PMADDRHbits; + +extern __sfr __at (0xF69) PMDOUT1H; + +extern __sfr __at (0xF6A) CMSTAT; +typedef union { + struct { + unsigned COUT1 : 1; + unsigned COUT2 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __CMSTATbits_t; +extern volatile __CMSTATbits_t __at (0xF6A) CMSTATbits; + +extern __sfr __at (0xF6A) CMSTATUS; +typedef union { + struct { + unsigned COUT1 : 1; + unsigned COUT2 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __CMSTATUSbits_t; +extern volatile __CMSTATUSbits_t __at (0xF6A) CMSTATUSbits; + +extern __sfr __at (0xF6B) SSP2CON2; +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; + }; + struct { + unsigned : 1; + unsigned ADMSK1 : 1; + unsigned ADMSK2 : 1; + unsigned ADMSK3 : 1; + unsigned ADMSK4 : 1; + unsigned ADMSK5 : 1; + unsigned : 1; + unsigned : 1; + }; +} __SSP2CON2bits_t; +extern volatile __SSP2CON2bits_t __at (0xF6B) SSP2CON2bits; + +extern __sfr __at (0xF6C) SSP2CON1; +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; + }; +} __SSP2CON1bits_t; +extern volatile __SSP2CON1bits_t __at (0xF6C) SSP2CON1bits; + +extern __sfr __at (0xF6D) SSP2STAT; +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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned I2C_READ : 1; + unsigned I2C_START : 1; + unsigned I2C_STOP : 1; + unsigned I2C_DAT : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_W : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_A : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_ADDRESS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned READ_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned DATA_ADDRESS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned R : 1; + unsigned : 1; + unsigned : 1; + unsigned D : 1; + unsigned : 1; + unsigned : 1; + }; +} __SSP2STATbits_t; +extern volatile __SSP2STATbits_t __at (0xF6D) SSP2STATbits; + +extern __sfr __at (0xF6E) SSP2ADD; + +extern __sfr __at (0xF6E) SSP2MSK; +typedef union { + struct { + unsigned MSK0 : 1; + unsigned MSK1 : 1; + unsigned MSK2 : 1; + unsigned MSK3 : 1; + unsigned MSK4 : 1; + unsigned MSK5 : 1; + unsigned MSK6 : 1; + unsigned MSK7 : 1; + }; +} __SSP2MSKbits_t; +extern volatile __SSP2MSKbits_t __at (0xF6E) SSP2MSKbits; + +extern __sfr __at (0xF6F) SSP2BUF; + +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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned DC5B0 : 1; + unsigned DC5B1 : 1; + unsigned : 1; + unsigned : 1; + }; +} __CCP5CONbits_t; +extern volatile __CCP5CONbits_t __at (0xF70) CCP5CONbits; + +extern __sfr __at (0xF71) CCPR5; + +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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned DC4B0 : 1; + unsigned DC4B1 : 1; + unsigned : 1; + unsigned : 1; + }; +} __CCP4CONbits_t; +extern volatile __CCP4CONbits_t __at (0xF73) CCP4CONbits; + +extern __sfr __at (0xF74) CCPR4; + +extern __sfr __at (0xF74) CCPR4L; + +extern __sfr __at (0xF75) CCPR4H; + +extern __sfr __at (0xF76) T4CON; +typedef union { + struct { + unsigned T4CKPS0 : 1; + unsigned T4CKPS1 : 1; + unsigned TMR4ON : 1; + unsigned T4OUTPS0 : 1; + unsigned T4OUTPS1 : 1; + unsigned T4OUTPS2 : 1; + unsigned T4OUTPS3 : 1; + unsigned : 1; + }; +} __T4CONbits_t; +extern volatile __T4CONbits_t __at (0xF76) T4CONbits; + +extern __sfr __at (0xF77) CVRCON; +typedef union { + struct { + unsigned CVR0 : 1; + unsigned CVR1 : 1; + unsigned CVR2 : 1; + unsigned CVR3 : 1; + unsigned CVRSS : 1; + unsigned CVRR : 1; + unsigned CVROE : 1; + unsigned CVREN : 1; + }; +} __CVRCONbits_t; +extern volatile __CVRCONbits_t __at (0xF77) CVRCONbits; + +extern __sfr __at (0xF77) PR4; + +extern __sfr __at (0xF78) TMR4; + +extern __sfr __at (0xF79) 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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned T3INSYNC : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_T3SYNC : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __T3CONbits_t; +extern volatile __T3CONbits_t __at (0xF79) T3CONbits; + +extern __sfr __at (0xF7A) TMR3L; + +extern __sfr __at (0xF7B) TMR3H; + +extern __sfr __at (0xF7C) BAUDCON2; +typedef union { + struct { + unsigned ABDEN : 1; + unsigned WUE : 1; + unsigned : 1; + unsigned BRG16 : 1; + unsigned SCKP : 1; + unsigned DTRXP : 1; + unsigned RCMT : 1; + unsigned ABDOVF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned TXCKP : 1; + unsigned RXDTP : 1; + unsigned RCIDL : 1; + unsigned : 1; + }; +} __BAUDCON2bits_t; +extern volatile __BAUDCON2bits_t __at (0xF7C) BAUDCON2bits; + +extern __sfr __at (0xF7D) SPBRGH2; + +extern __sfr __at (0xF7E) BAUDCON; +typedef union { + struct { + unsigned ABDEN : 1; + unsigned WUE : 1; + unsigned : 1; + unsigned BRG16 : 1; + unsigned SCKP : 1; + unsigned DTRXP : 1; + unsigned RCMT : 1; + unsigned ABDOVF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned TXCKP : 1; + unsigned RXDTP : 1; + unsigned RCIDL : 1; + unsigned : 1; + }; +} __BAUDCONbits_t; +extern volatile __BAUDCONbits_t __at (0xF7E) BAUDCONbits; + +extern __sfr __at (0xF7E) BAUDCON1; +typedef union { + struct { + unsigned ABDEN : 1; + unsigned WUE : 1; + unsigned : 1; + unsigned BRG16 : 1; + unsigned SCKP : 1; + unsigned DTRXP : 1; + unsigned RCMT : 1; + unsigned ABDOVF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned TXCKP : 1; + unsigned RXDTP : 1; + unsigned RCIDL : 1; + unsigned : 1; + }; +} __BAUDCON1bits_t; +extern volatile __BAUDCON1bits_t __at (0xF7E) BAUDCON1bits; + +extern __sfr __at (0xF7F) SPBRGH; + +extern __sfr __at (0xF7F) SPBRGH1; + +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 RA7 : 1; + }; + struct { + unsigned AN0 : 1; + unsigned AN1 : 1; + unsigned AN2 : 1; + unsigned AN3 : 1; + unsigned T0CKI : 1; + unsigned AN4 : 1; + unsigned OSC2 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned VREFM : 1; + unsigned VREFP : 1; + unsigned PMD5_PORTA : 1; + unsigned C2INA : 1; + unsigned CLKO : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned PMD4_PORTA : 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 KBI0 : 1; + unsigned KBI1 : 1; + unsigned KBI2 : 1; + unsigned KBI3 : 1; + }; + struct { + unsigned FLT0 : 1; + unsigned PMA4 : 1; + unsigned PMA3 : 1; + unsigned PMA2 : 1; + unsigned PMA1 : 1; + unsigned PMA0 : 1; + unsigned PGC : 1; + unsigned PGD : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP2_PORTB : 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 CCP1 : 1; + unsigned SCK : 1; + unsigned SDI : 1; + unsigned SDO : 1; + unsigned TX : 1; + unsigned RX : 1; + }; + struct { + unsigned T13CKI : 1; + unsigned CCP2_PORTC : 1; + unsigned : 1; + unsigned SCL : 1; + unsigned SDA : 1; + unsigned C2OUT : 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 PMD0_PORTD : 1; + unsigned PMD1_PORTD : 1; + unsigned PMD2_PORTD : 1; + unsigned PMD3_PORTD : 1; + unsigned PMD4_PORTD : 1; + unsigned PMD5_PORTD : 1; + unsigned PMD6_PORTD : 1; + unsigned PMD7_PORTD : 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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned SDO2 : 1; + unsigned SDA2 : 1; + unsigned SCL2 : 1; + unsigned SS2 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned SDI2 : 1; + unsigned SCK2 : 1; + unsigned : 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 AD8 : 1; + unsigned AD9 : 1; + unsigned AD10 : 1; + unsigned AD11 : 1; + unsigned AD12 : 1; + unsigned AD13 : 1; + unsigned AD14 : 1; + unsigned AD15 : 1; + }; + struct { + unsigned PMRD_PORTE : 1; + unsigned PMWR_PORTE : 1; + unsigned PMBE_PORTE : 1; + unsigned PMA13 : 1; + unsigned PMA12 : 1; + unsigned PMA11 : 1; + unsigned PMA10 : 1; + unsigned PMA9 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned REFO : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP2_PORTE : 1; + }; +} __PORTEbits_t; +extern volatile __PORTEbits_t __at (0xF84) PORTEbits; + +extern __sfr __at (0xF85) PORTF; +typedef union { + struct { + unsigned : 1; + unsigned : 1; + unsigned RF2 : 1; + unsigned RF3 : 1; + unsigned RF4 : 1; + unsigned RF5 : 1; + unsigned RF6 : 1; + unsigned RF7 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned AN7 : 1; + unsigned : 1; + unsigned : 1; + unsigned AN10 : 1; + unsigned AN11 : 1; + unsigned SS : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned C2INB : 1; + unsigned : 1; + unsigned : 1; + unsigned CVREF : 1; + unsigned C1INA : 1; + unsigned C1OUT : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned PMA5 : 1; + unsigned : 1; + unsigned : 1; + unsigned C1INB : 1; + unsigned PMD1_PORTF : 1; + unsigned PMD0_PORTF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned PMD2_PORTF : 1; + unsigned : 1; + unsigned : 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 RJPU : 1; + unsigned REPU : 1; + unsigned RDPU : 1; + }; + struct { + unsigned CCP3 : 1; + unsigned TX2 : 1; + unsigned RX2 : 1; + unsigned CCP4 : 1; + unsigned CCP5 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned PMA8 : 1; + unsigned CK2 : 1; + unsigned DT2 : 1; + unsigned PMCS1 : 1; + unsigned PMCS2 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned PMA7 : 1; + unsigned PMA6 : 1; + unsigned : 1; + unsigned : 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; + }; + struct { + unsigned A16 : 1; + unsigned A17 : 1; + unsigned A18 : 1; + unsigned A19 : 1; + unsigned AN12 : 1; + unsigned AN13 : 1; + unsigned AN14 : 1; + unsigned AN15 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned PMD7_PORTH : 1; + unsigned PMD6_PORTH : 1; + unsigned PMD3_PORTH : 1; + unsigned PMBE_PORTH : 1; + unsigned PMRD_PORTH : 1; + unsigned PMWR_PORTH : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned C2INC : 1; + unsigned C2IND : 1; + unsigned C1INC : 1; + unsigned P1B : 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; + }; + struct { + unsigned ALE : 1; + unsigned OE : 1; + unsigned WRL : 1; + unsigned WRH : 1; + unsigned BA0 : 1; + unsigned CE : 1; + unsigned LB : 1; + unsigned UB : 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 : 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 : 1; + unsigned : 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) DDRA; +typedef union { + struct { + unsigned RA0 : 1; + unsigned RA1 : 1; + unsigned RA2 : 1; + unsigned RA3 : 1; + unsigned RA4 : 1; + unsigned RA5 : 1; + unsigned : 1; + unsigned : 1; + }; +} __DDRAbits_t; +extern volatile __DDRAbits_t __at (0xF92) DDRAbits; + +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 : 1; + unsigned : 1; + }; +} __TRISAbits_t; +extern volatile __TRISAbits_t __at (0xF92) TRISAbits; + +extern __sfr __at (0xF93) DDRB; +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; + }; +} __DDRBbits_t; +extern volatile __DDRBbits_t __at (0xF93) DDRBbits; + +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) DDRC; +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; + }; +} __DDRCbits_t; +extern volatile __DDRCbits_t __at (0xF94) DDRCbits; + +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) DDRD; +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; + }; +} __DDRDbits_t; +extern volatile __DDRDbits_t __at (0xF95) DDRDbits; + +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) DDRE; +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; + }; +} __DDREbits_t; +extern volatile __DDREbits_t __at (0xF96) DDREbits; + +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) DDRF; +typedef union { + struct { + unsigned : 1; + unsigned RF1 : 1; + unsigned RF2 : 1; + unsigned RF3 : 1; + unsigned RF4 : 1; + unsigned RF5 : 1; + unsigned RF6 : 1; + unsigned RF7 : 1; + }; +} __DDRFbits_t; +extern volatile __DDRFbits_t __at (0xF97) DDRFbits; + +extern __sfr __at (0xF97) TRISF; +typedef union { + struct { + unsigned : 1; + unsigned : 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) DDRG; +typedef union { + struct { + unsigned RG0 : 1; + unsigned RG1 : 1; + unsigned RG2 : 1; + unsigned RG3 : 1; + unsigned RG4 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __DDRGbits_t; +extern volatile __DDRGbits_t __at (0xF98) DDRGbits; + +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) DDRH; +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; + }; +} __DDRHbits_t; +extern volatile __DDRHbits_t __at (0xF99) DDRHbits; + +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) DDRJ; +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; + }; +} __DDRJbits_t; +extern volatile __DDRJbits_t __at (0xF9A) DDRJbits; + +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 (0xF9B) OSCTUNE; +typedef union { + struct { + unsigned TUN0 : 1; + unsigned TUN1 : 1; + unsigned TUN2 : 1; + unsigned TUN3 : 1; + unsigned TUN4 : 1; + unsigned TUN5 : 1; + unsigned PLLEN : 1; + unsigned INTSRC : 1; + }; +} __OSCTUNEbits_t; +extern volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits; + +extern __sfr __at (0xF9C) RCSTA2; +typedef union { + struct { + unsigned RCD8 : 1; + unsigned OERR : 1; + unsigned FERR : 1; + unsigned ADDEN : 1; + unsigned CREN : 1; + unsigned SREN : 1; + unsigned RC9 : 1; + unsigned SPEN : 1; + }; + struct { + unsigned RX9D : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_RC8 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned RC8_9 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned RX9 : 1; + unsigned : 1; + }; +} __RCSTA2bits_t; +extern volatile __RCSTA2bits_t __at (0xF9C) RCSTA2bits; + +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 PMPIE : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned SSP1IE : 1; + unsigned TX1IE : 1; + unsigned RC1IE : 1; + unsigned : 1; + unsigned : 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 PMPIF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned SSP1IF : 1; + unsigned TX1IF : 1; + unsigned RC1IF : 1; + unsigned : 1; + unsigned : 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 PMPIP : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned SSP1IP : 1; + unsigned TX1IP : 1; + unsigned RC1IP : 1; + unsigned : 1; + unsigned : 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 USBIE : 1; + unsigned CM1IE : 1; + unsigned CM2IE : 1; + unsigned OSCFIE : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned BCL1IE : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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 USBIF : 1; + unsigned CM1IF : 1; + unsigned CM2IF : 1; + unsigned OSCFIF : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned BCL1IF : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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 USBIP : 1; + unsigned CM1IP : 1; + unsigned CM2IP : 1; + unsigned OSCFIP : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned BCL1IP : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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 BCL2IE : 1; + unsigned SSP2IE : 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 BCL2IF : 1; + unsigned SSP2IF : 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 BCL2IP : 1; + unsigned SSP2IP : 1; + }; +} __IPR3bits_t; +extern volatile __IPR3bits_t __at (0xFA5) IPR3bits; + +extern __sfr __at (0xFA6) EECON1; +typedef union { + struct { + unsigned : 1; + unsigned WR : 1; + unsigned WREN : 1; + unsigned WRERR : 1; + unsigned FREE : 1; + unsigned WPROG : 1; + unsigned : 1; + unsigned : 1; + }; +} __EECON1bits_t; +extern volatile __EECON1bits_t __at (0xFA6) EECON1bits; + +extern __sfr __at (0xFA7) EECON2; + +extern __sfr __at (0xFA8) TXSTA2; +typedef union { + struct { + unsigned TX9D : 1; + unsigned TRMT : 1; + unsigned BRGH : 1; + unsigned SENDB : 1; + unsigned SYNC : 1; + unsigned TXEN : 1; + unsigned TX9 : 1; + unsigned CSRC : 1; + }; + struct { + unsigned TXD8 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned TX8_9 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_TX8 : 1; + unsigned : 1; + }; +} __TXSTA2bits_t; +extern volatile __TXSTA2bits_t __at (0xFA8) TXSTA2bits; + +extern __sfr __at (0xFA9) TXREG2; + +extern __sfr __at (0xFAA) RCREG2; + +extern __sfr __at (0xFAB) SPBRG2; + +extern __sfr __at (0xFAC) 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; + }; + struct { + unsigned RCD8 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned RC9 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_RC8 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned RC8_9 : 1; + unsigned : 1; + }; +} __RCSTAbits_t; +extern volatile __RCSTAbits_t __at (0xFAC) RCSTAbits; + +extern __sfr __at (0xFAC) 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; + }; + struct { + unsigned RCD8 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned RC9 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_RC8 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned RC8_9 : 1; + unsigned : 1; + }; +} __RCSTA1bits_t; +extern volatile __RCSTA1bits_t __at (0xFAC) RCSTA1bits; + +extern __sfr __at (0xFAD) TXSTA; +typedef union { + struct { + unsigned TX9D : 1; + unsigned TRMT : 1; + unsigned BRGH : 1; + unsigned SENDB : 1; + unsigned SYNC : 1; + unsigned TXEN : 1; + unsigned TX9 : 1; + unsigned CSRC : 1; + }; + struct { + unsigned TXD8 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned TX8_9 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_TX8 : 1; + unsigned : 1; + }; +} __TXSTAbits_t; +extern volatile __TXSTAbits_t __at (0xFAD) TXSTAbits; + +extern __sfr __at (0xFAD) TXSTA1; +typedef union { + struct { + unsigned TX9D : 1; + unsigned TRMT : 1; + unsigned BRGH : 1; + unsigned SENDB : 1; + unsigned SYNC : 1; + unsigned TXEN : 1; + unsigned TX9 : 1; + unsigned CSRC : 1; + }; + struct { + unsigned TXD8 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned TX8_9 : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_TX8 : 1; + unsigned : 1; + }; +} __TXSTA1bits_t; +extern volatile __TXSTA1bits_t __at (0xFAD) TXSTA1bits; + +extern __sfr __at (0xFAE) TXREG; + +extern __sfr __at (0xFAE) TXREG1; + +extern __sfr __at (0xFAF) RCREG; + +extern __sfr __at (0xFAF) RCREG1; + +extern __sfr __at (0xFB0) SPBRG; + +extern __sfr __at (0xFB0) SPBRG1; + +extern __sfr __at (0xFB1) CCP3CON; +typedef union { + struct { + unsigned CCP3M0 : 1; + unsigned CCP3M1 : 1; + unsigned CCP3M2 : 1; + unsigned CCP3M3 : 1; + unsigned DC3B0 : 1; + unsigned DC3B1 : 1; + unsigned P3M0 : 1; + unsigned P3M1 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP3Y : 1; + unsigned CCP3X : 1; + unsigned : 1; + unsigned : 1; + }; +} __CCP3CONbits_t; +extern volatile __CCP3CONbits_t __at (0xFB1) CCP3CONbits; + +extern __sfr __at (0xFB1) ECCP3CON; +typedef union { + struct { + unsigned CCP3M0 : 1; + unsigned CCP3M1 : 1; + unsigned CCP3M2 : 1; + unsigned CCP3M3 : 1; + unsigned DC3B0 : 1; + unsigned DC3B1 : 1; + unsigned P3M0 : 1; + unsigned P3M1 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP3Y : 1; + unsigned CCP3X : 1; + unsigned : 1; + unsigned : 1; + }; +} __ECCP3CONbits_t; +extern volatile __ECCP3CONbits_t __at (0xFB1) ECCP3CONbits; + +extern __sfr __at (0xFB2) CCPR3; + +extern __sfr __at (0xFB2) CCPR3L; + +extern __sfr __at (0xFB3) CCPR3H; + +extern __sfr __at (0xFB4) ECCP3DEL; +typedef union { + struct { + unsigned PDC0 : 1; + unsigned PDC1 : 1; + unsigned PDC2 : 1; + unsigned PDC3 : 1; + unsigned PDC4 : 1; + unsigned PDC5 : 1; + unsigned PDC6 : 1; + unsigned PRSEN : 1; + }; + struct { + unsigned P3DC0 : 1; + unsigned P3DC1 : 1; + unsigned P3DC2 : 1; + unsigned P3DC3 : 1; + unsigned P3DC4 : 1; + unsigned P3DC5 : 1; + unsigned P3DC6 : 1; + unsigned P3RSEN : 1; + }; +} __ECCP3DELbits_t; +extern volatile __ECCP3DELbits_t __at (0xFB4) ECCP3DELbits; + +extern __sfr __at (0xFB5) ECCP3AS; +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; + }; + struct { + unsigned PSS3BD0 : 1; + unsigned PSS3BD1 : 1; + unsigned PSS3AC0 : 1; + unsigned PSS3AC1 : 1; + unsigned ECCP3AS0 : 1; + unsigned ECCP3AS1 : 1; + unsigned ECCP3AS2 : 1; + unsigned ECCP3ASE : 1; + }; +} __ECCP3ASbits_t; +extern volatile __ECCP3ASbits_t __at (0xFB5) ECCP3ASbits; + +extern __sfr __at (0xFB6) CCP2CON; +typedef union { + struct { + unsigned CCP2M0 : 1; + unsigned CCP2M1 : 1; + unsigned CCP2M2 : 1; + unsigned CCP2M3 : 1; + unsigned DC2B0 : 1; + unsigned DC2B1 : 1; + unsigned P2M0 : 1; + unsigned P2M1 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP2Y : 1; + unsigned CCP2X : 1; + unsigned : 1; + unsigned : 1; + }; +} __CCP2CONbits_t; +extern volatile __CCP2CONbits_t __at (0xFB6) CCP2CONbits; + +extern __sfr __at (0xFB6) ECCP2CON; +typedef union { + struct { + unsigned CCP2M0 : 1; + unsigned CCP2M1 : 1; + unsigned CCP2M2 : 1; + unsigned CCP2M3 : 1; + unsigned DC2B0 : 1; + unsigned DC2B1 : 1; + unsigned P2M0 : 1; + unsigned P2M1 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP2Y : 1; + unsigned CCP2X : 1; + unsigned : 1; + unsigned : 1; + }; +} __ECCP2CONbits_t; +extern volatile __ECCP2CONbits_t __at (0xFB6) ECCP2CONbits; + +extern __sfr __at (0xFB7) CCPR2; + +extern __sfr __at (0xFB7) CCPR2L; + +extern __sfr __at (0xFB8) CCPR2H; + +extern __sfr __at (0xFB9) ECCP2DEL; +typedef union { + struct { + unsigned PDC0 : 1; + unsigned PDC1 : 1; + unsigned PDC2 : 1; + unsigned PDC3 : 1; + unsigned PDC4 : 1; + unsigned PDC5 : 1; + unsigned PDC6 : 1; + unsigned PRSEN : 1; + }; + struct { + unsigned P2DC0 : 1; + unsigned P2DC1 : 1; + unsigned P2DC2 : 1; + unsigned P2DC3 : 1; + unsigned P2DC4 : 1; + unsigned P2DC5 : 1; + unsigned P2DC6 : 1; + unsigned P2RSEN : 1; + }; +} __ECCP2DELbits_t; +extern volatile __ECCP2DELbits_t __at (0xFB9) ECCP2DELbits; + +extern __sfr __at (0xFBA) ECCP2AS; +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; + }; + struct { + unsigned PSS2BD0 : 1; + unsigned PSS2BD1 : 1; + unsigned PSS2AC0 : 1; + unsigned PSS2AC1 : 1; + unsigned ECCP2AS0 : 1; + unsigned ECCP2AS1 : 1; + unsigned ECCP2AS2 : 1; + unsigned ECCP2ASE : 1; + }; +} __ECCP2ASbits_t; +extern volatile __ECCP2ASbits_t __at (0xFBA) ECCP2ASbits; + +extern __sfr __at (0xFBB) CCP1CON; +typedef union { + struct { + unsigned CCP1M0 : 1; + unsigned CCP1M1 : 1; + unsigned CCP1M2 : 1; + unsigned CCP1M3 : 1; + unsigned DC1B0 : 1; + unsigned DC1B1 : 1; + unsigned P1M0 : 1; + unsigned P1M1 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP1Y : 1; + unsigned CCP1X : 1; + unsigned : 1; + unsigned : 1; + }; +} __CCP1CONbits_t; +extern volatile __CCP1CONbits_t __at (0xFBB) CCP1CONbits; + +extern __sfr __at (0xFBB) ECCP1CON; +typedef union { + struct { + unsigned CCP1M0 : 1; + unsigned CCP1M1 : 1; + unsigned CCP1M2 : 1; + unsigned CCP1M3 : 1; + unsigned DC1B0 : 1; + unsigned DC1B1 : 1; + unsigned P1M0 : 1; + unsigned P1M1 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned CCP1Y : 1; + unsigned CCP1X : 1; + unsigned : 1; + unsigned : 1; + }; +} __ECCP1CONbits_t; +extern volatile __ECCP1CONbits_t __at (0xFBB) ECCP1CONbits; + +extern __sfr __at (0xFBC) CCPR1; + +extern __sfr __at (0xFBC) CCPR1L; + +extern __sfr __at (0xFBD) CCPR1H; + +extern __sfr __at (0xFBE) ECCP1DEL; +typedef union { + struct { + unsigned PDC0 : 1; + unsigned PDC1 : 1; + unsigned PDC2 : 1; + unsigned PDC3 : 1; + unsigned PDC4 : 1; + unsigned PDC5 : 1; + unsigned PDC6 : 1; + unsigned PRSEN : 1; + }; + struct { + unsigned P1DC0 : 1; + unsigned P1DC1 : 1; + unsigned P1DC2 : 1; + unsigned P1DC3 : 1; + unsigned P1DC4 : 1; + unsigned P1DC5 : 1; + unsigned P1DC6 : 1; + unsigned P1RSEN : 1; + }; +} __ECCP1DELbits_t; +extern volatile __ECCP1DELbits_t __at (0xFBE) ECCP1DELbits; + +extern __sfr __at (0xFBF) ECCP1AS; +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; + }; + struct { + unsigned PSS1BD0 : 1; + unsigned PSS1BD1 : 1; + unsigned PSS1AC0 : 1; + unsigned PSS1AC1 : 1; + unsigned ECCP1AS0 : 1; + unsigned ECCP1AS1 : 1; + unsigned ECCP1AS2 : 1; + unsigned ECCP1ASE : 1; + }; +} __ECCP1ASbits_t; +extern volatile __ECCP1ASbits_t __at (0xFBF) ECCP1ASbits; + +extern __sfr __at (0xFC0) WDTCON; +typedef union { + struct { + unsigned SWDTE : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned DEVCFG : 1; + unsigned : 1; + unsigned LVDSTAT : 1; + unsigned REGSLP : 1; + }; + struct { + unsigned SWDTEN : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned ADSHR : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __WDTCONbits_t; +extern volatile __WDTCONbits_t __at (0xFC0) WDTCONbits; + +extern __sfr __at (0xFC1) ADCON1; +typedef union { + struct { + unsigned ADCS0 : 1; + unsigned ADCS1 : 1; + unsigned ADCS2 : 1; + unsigned ACQT0 : 1; + unsigned ACQT1 : 1; + unsigned ACQT2 : 1; + unsigned ADCAL : 1; + unsigned ADFM : 1; + }; +} __ADCON1bits_t; +extern volatile __ADCON1bits_t __at (0xFC1) ADCON1bits; + +extern __sfr __at (0xFC1) ANCON0; +typedef union { + struct { + unsigned PCFG0 : 1; + unsigned PCFG1 : 1; + unsigned PCFG2 : 1; + unsigned PCFG3 : 1; + unsigned PCFG4 : 1; + unsigned PCFG5 : 1; + unsigned PCFG6 : 1; + unsigned PCFG7 : 1; + }; +} __ANCON0bits_t; +extern volatile __ANCON0bits_t __at (0xFC1) ANCON0bits; + +extern __sfr __at (0xFC2) ADCON0; +typedef union { + struct { + unsigned ADON : 1; + unsigned DONE : 1; + unsigned CHS0 : 1; + unsigned CHS1 : 1; + unsigned CHS2 : 1; + unsigned CHS3 : 1; + unsigned VCFG0 : 1; + unsigned VCFG1 : 1; + }; + struct { + unsigned : 1; + unsigned GO_DONE : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned GO : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned NOT_DONE : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __ADCON0bits_t; +extern volatile __ADCON0bits_t __at (0xFC2) ADCON0bits; + +extern __sfr __at (0xFC2) ANCON1; +typedef union { + struct { + unsigned PCFG8 : 1; + unsigned PCFG9 : 1; + unsigned PCFG10 : 1; + unsigned PCFG11 : 1; + unsigned PCFG12 : 1; + unsigned PCFG13 : 1; + unsigned PCFG14 : 1; + unsigned PCFG15 : 1; + }; +} __ANCON1bits_t; +extern volatile __ANCON1bits_t __at (0xFC2) ANCON1bits; + +extern __sfr __at (0xFC3) ADRES; + +extern __sfr __at (0xFC3) ADRESL; + +extern __sfr __at (0xFC4) ADRESH; + +extern __sfr __at (0xFC5) SSP1CON2; +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; + }; + struct { + unsigned : 1; + unsigned ADMSK1 : 1; + unsigned ADMSK2 : 1; + unsigned ADMSK3 : 1; + unsigned ADMSK4 : 1; + unsigned ADMSK5 : 1; + unsigned : 1; + unsigned : 1; + }; +} __SSP1CON2bits_t; +extern volatile __SSP1CON2bits_t __at (0xFC5) SSP1CON2bits; + +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; + }; + struct { + unsigned : 1; + unsigned ADMSK1 : 1; + unsigned ADMSK2 : 1; + unsigned ADMSK3 : 1; + unsigned ADMSK4 : 1; + unsigned ADMSK5 : 1; + unsigned : 1; + unsigned : 1; + }; +} __SSPCON2bits_t; +extern volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits; + +extern __sfr __at (0xFC6) SSP1CON1; +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; + }; +} __SSP1CON1bits_t; +extern volatile __SSP1CON1bits_t __at (0xFC6) SSP1CON1bits; + +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) SSP1STAT; +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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned I2C_READ : 1; + unsigned I2C_START : 1; + unsigned I2C_STOP : 1; + unsigned I2C_DAT : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_W : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_A : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_ADDRESS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned READ_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned DATA_ADDRESS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned R : 1; + unsigned : 1; + unsigned : 1; + unsigned D : 1; + unsigned : 1; + unsigned : 1; + }; +} __SSP1STATbits_t; +extern volatile __SSP1STATbits_t __at (0xFC7) SSP1STATbits; + +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; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned I2C_READ : 1; + unsigned I2C_START : 1; + unsigned I2C_STOP : 1; + unsigned I2C_DAT : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_W : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_A : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned NOT_ADDRESS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned READ_WRITE : 1; + unsigned : 1; + unsigned : 1; + unsigned DATA_ADDRESS : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned R : 1; + unsigned : 1; + unsigned : 1; + unsigned D : 1; + unsigned : 1; + unsigned : 1; + }; +} __SSPSTATbits_t; +extern volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits; + +extern __sfr __at (0xFC8) SSP1ADD; + +extern __sfr __at (0xFC8) SSP1MSK; + +extern __sfr __at (0xFC8) SSPADD; + +extern __sfr __at (0xFC9) SSP1BUF; + +extern __sfr __at (0xFC9) SSPBUF; + +extern __sfr __at (0xFCA) T2CON; +typedef union { + struct { + unsigned T2CKPS0 : 1; + unsigned T2CKPS1 : 1; + unsigned TMR2ON : 1; + unsigned T2OUTPS0 : 1; + unsigned T2OUTPS1 : 1; + unsigned T2OUTPS2 : 1; + unsigned T2OUTPS3 : 1; + unsigned : 1; + }; +} __T2CONbits_t; +extern volatile __T2CONbits_t __at (0xFCA) T2CONbits; + +extern __sfr __at (0xFCB) MEMCON; +typedef union { + struct { + unsigned WM0 : 1; + unsigned WM1 : 1; + unsigned : 1; + unsigned : 1; + unsigned WAIT0 : 1; + unsigned WAIT1 : 1; + unsigned : 1; + unsigned EDBIS : 1; + }; +} __MEMCONbits_t; +extern volatile __MEMCONbits_t __at (0xFCB) MEMCONbits; + +extern __sfr __at (0xFCB) PR2; + +extern __sfr __at (0xFCC) PADCFG1; +typedef union { + struct { + unsigned PMPTTL : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __PADCFG1bits_t; +extern volatile __PADCFG1bits_t __at (0xFCC) PADCFG1bits; + +extern __sfr __at (0xFCC) TMR2; + +extern __sfr __at (0xFCD) ODCON3; +typedef union { + struct { + unsigned SPI1OD : 1; + unsigned SPI2OD : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __ODCON3bits_t; +extern volatile __ODCON3bits_t __at (0xFCD) ODCON3bits; + +extern __sfr __at (0xFCD) T1CON; +typedef union { + struct { + unsigned TMR1ON : 1; + unsigned TMR1CS : 1; + unsigned T1SYNC : 1; + unsigned T1OSCEN : 1; + unsigned T1CKPS0 : 1; + unsigned T1CKPS1 : 1; + unsigned T1RUN : 1; + unsigned RD16 : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned T1INSYNC : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned NOT_T1SYNC : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __T1CONbits_t; +extern volatile __T1CONbits_t __at (0xFCD) T1CONbits; + +extern __sfr __at (0xFCE) ODCON2; +typedef union { + struct { + unsigned USART1OD : 1; + unsigned USART2OD : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; + struct { + unsigned U1OD : 1; + unsigned U2OD : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __ODCON2bits_t; +extern volatile __ODCON2bits_t __at (0xFCE) ODCON2bits; + +extern __sfr __at (0xFCE) TMR1L; + +extern __sfr __at (0xFCF) ODCON1; +typedef union { + struct { + unsigned ECCP1OD : 1; + unsigned ECCP2OD : 1; + unsigned ECCP3OD : 1; + unsigned CCP4OD : 1; + unsigned CCP5OD : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __ODCON1bits_t; +extern volatile __ODCON1bits_t __at (0xFCF) ODCON1bits; + +extern __sfr __at (0xFCF) TMR1H; + +extern __sfr __at (0xFD0) RCON; +typedef union { + struct { + unsigned NOT_BOR : 1; + unsigned NOT_POR : 1; + unsigned NOT_PD : 1; + unsigned NOT_TO : 1; + unsigned NOT_RI : 1; + unsigned NOT_CM : 1; + unsigned : 1; + unsigned IPEN : 1; + }; + struct { + unsigned BOR : 1; + unsigned POR : 1; + unsigned PD : 1; + unsigned TO : 1; + unsigned RI : 1; + unsigned CM : 1; + unsigned : 1; + unsigned : 1; + }; +} __RCONbits_t; +extern volatile __RCONbits_t __at (0xFD0) RCONbits; + +extern __sfr __at (0xFD1) CM2CON; +typedef union { + struct { + unsigned C1CH0 : 1; + unsigned C1CH1 : 1; + unsigned CREF : 1; + unsigned EVPOL0 : 1; + unsigned EVPOL1 : 1; + unsigned CPOL : 1; + unsigned COE : 1; + unsigned CON : 1; + }; + struct { + unsigned CCH0 : 1; + unsigned CCH1 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __CM2CONbits_t; +extern volatile __CM2CONbits_t __at (0xFD1) CM2CONbits; + +extern __sfr __at (0xFD1) CM2CON1; +typedef union { + struct { + unsigned C1CH0 : 1; + unsigned C1CH1 : 1; + unsigned CREF : 1; + unsigned EVPOL0 : 1; + unsigned EVPOL1 : 1; + unsigned CPOL : 1; + unsigned COE : 1; + unsigned CON : 1; + }; + struct { + unsigned CCH0 : 1; + unsigned CCH1 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __CM2CON1bits_t; +extern volatile __CM2CON1bits_t __at (0xFD1) CM2CON1bits; + +extern __sfr __at (0xFD2) CM1CON; +typedef union { + struct { + unsigned C1CH0 : 1; + unsigned C1CH1 : 1; + unsigned CREF : 1; + unsigned EVPOL0 : 1; + unsigned EVPOL1 : 1; + unsigned CPOL : 1; + unsigned COE : 1; + unsigned CON : 1; + }; + struct { + unsigned CCH0 : 1; + unsigned CCH1 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __CM1CONbits_t; +extern volatile __CM1CONbits_t __at (0xFD2) CM1CONbits; + +extern __sfr __at (0xFD2) CM1CON1; +typedef union { + struct { + unsigned C1CH0 : 1; + unsigned C1CH1 : 1; + unsigned CREF : 1; + unsigned EVPOL0 : 1; + unsigned EVPOL1 : 1; + unsigned CPOL : 1; + unsigned COE : 1; + unsigned CON : 1; + }; + struct { + unsigned CCH0 : 1; + unsigned CCH1 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __CM1CON1bits_t; +extern volatile __CM1CON1bits_t __at (0xFD2) CM1CON1bits; + +extern __sfr __at (0xFD3) OSCCON; +typedef union { + struct { + unsigned SCS0 : 1; + unsigned SCS1 : 1; + unsigned IOFS : 1; + unsigned OSTS : 1; + unsigned IRCF0 : 1; + unsigned IRCF1 : 1; + unsigned IRCF2 : 1; + unsigned IDLEN : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned FLTS : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __OSCCONbits_t; +extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits; + +extern __sfr __at (0xFD3) REFOCON; +typedef union { + struct { + unsigned RODIV0 : 1; + unsigned RODIV1 : 1; + unsigned RODIV2 : 1; + unsigned RODIV3 : 1; + unsigned ROSEL : 1; + unsigned ROSSLP : 1; + unsigned : 1; + unsigned ROON : 1; + }; +} __REFOCONbits_t; +extern volatile __REFOCONbits_t __at (0xFD3) REFOCONbits; + +extern __sfr __at (0xFD5) T0CON; +typedef union { + struct { + unsigned T0PS0 : 1; + unsigned T0PS1 : 1; + unsigned T0PS2 : 1; + unsigned PSA : 1; + unsigned T0SE : 1; + unsigned T0CS : 1; + unsigned T08BIT : 1; + unsigned TMR0ON : 1; + }; + struct { + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned T0PS3 : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + }; +} __T0CONbits_t; +extern volatile __T0CONbits_t __at (0xFD5) T0CONbits; + +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 NOT_RBPU : 1; + }; + struct { + unsigned : 1; + unsigned INT3IP : 1; + unsigned TMR0IP : 1; + unsigned : 1; + unsigned : 1; + unsigned : 1; + unsigned : 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; + }; + struct { + unsigned : 1; + unsigned INT0IF : 1; + unsigned TMR0IF : 1; + unsigned : 1; + unsigned INT0IE : 1; + unsigned TMR0IE : 1; + unsigned GIEL : 1; + unsigned GIEH : 1; + }; +} __INTCONbits_t; +extern volatile __INTCONbits_t __at (0xFF2) INTCONbits; + +extern __sfr __at (0xFF3) PROD; + +extern __sfr __at (0xFF3) PRODL; + +extern __sfr __at (0xFF4) PRODH; + +extern __sfr __at (0xFF5) TABLAT; + +extern __sfr __at (0xFF6) TBLPTR; + +extern __sfr __at (0xFF6) TBLPTRL; + +extern __sfr __at (0xFF7) TBLPTRH; + +extern __sfr __at (0xFF8) TBLPTRU; + +extern __sfr __at (0xFF9) PC; + +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 STKOVF : 1; + }; + struct { + unsigned SP0 : 1; + unsigned SP1 : 1; + unsigned SP2 : 1; + unsigned SP3 : 1; + unsigned SP4 : 1; + unsigned : 1; + unsigned : 1; + unsigned STKFUL : 1; + }; +} __STKPTRbits_t; +extern volatile __STKPTRbits_t __at (0xFFC) STKPTRbits; + +extern __sfr __at (0xFFD) TOS; + +extern __sfr __at (0xFFD) TOSL; + +extern __sfr __at (0xFFE) TOSH; + +extern __sfr __at (0xFFF) TOSU; + + +#endif + diff --git a/device/include/pic16/pic18fregs.h b/device/include/pic16/pic18fregs.h index 26fc7afa..cfb0179d 100644 --- a/device/include/pic16/pic18fregs.h +++ b/device/include/pic16/pic18fregs.h @@ -60,6 +60,9 @@ #elif defined(pic18f2331) # include +#elif defined(pic18f23k20) +# include + #elif defined(pic18f2410) # include @@ -84,6 +87,9 @@ #elif defined(pic18f24j10) # include +#elif defined(pic18f24k20) +# include + #elif defined(pic18f2510) # include @@ -111,6 +117,9 @@ #elif defined(pic18f25j10) # include +#elif defined(pic18f25k20) +# include + #elif defined(pic18f2610) # include @@ -126,6 +135,9 @@ #elif defined(pic18f2685) # include +#elif defined(pic18f26k20) +# include + #elif defined(pic18f4220) # include @@ -141,6 +153,9 @@ #elif defined(pic18f4331) # include +#elif defined(pic18f43k20) +# include + #elif defined(pic18f4410) # include @@ -165,6 +180,9 @@ #elif defined(pic18f44j10) # include +#elif defined(pic18f44k20) +# include + #elif defined(pic18f4510) # include @@ -192,6 +210,9 @@ #elif defined(pic18f45j10) # include +#elif defined(pic18f45k20) +# include + #elif defined(pic18f4610) # include @@ -207,18 +228,30 @@ #elif defined(pic18f4685) # include +#elif defined(pic18f46k20) +# include + #elif defined(pic18f6520) # include #elif defined(pic18f6585) # include +#elif defined(pic18f65j50) +# include + #elif defined(pic18f6620) # include #elif defined(pic18f6680) # include +#elif defined(pic18f66j50) +# include + +#elif defined(pic18f66j55) +# include + #elif defined(pic18f66j60) # include @@ -228,6 +261,9 @@ #elif defined(pic18f6720) # include +#elif defined(pic18f67j50) +# include + #elif defined(pic18f67j60) # include @@ -237,12 +273,21 @@ #elif defined(pic18f8585) # include +#elif defined(pic18f85j50) +# include + #elif defined(pic18f8620) # include #elif defined(pic18f8680) # include +#elif defined(pic18f86j50) +# include + +#elif defined(pic18f86j55) +# include + #elif defined(pic18f86j60) # include @@ -252,6 +297,9 @@ #elif defined(pic18f8720) # include +#elif defined(pic18f87j50) +# include + #elif defined(pic18f87j60) # include diff --git a/device/lib/pic16/Makefile.common b/device/lib/pic16/Makefile.common index 55baa836..22cee8b2 100644 --- a/device/lib/pic16/Makefile.common +++ b/device/lib/pic16/Makefile.common @@ -3,7 +3,7 @@ AM_CFLAGS += --std-c99 AM_CFLAGS += --asm="$(CCAS)" AM_CFLAGS += -I. AM_CFLAGS += -I$(top_srcdir)/../../include/pic16 -AM_CFLAGS += -Wa,-q +##AM_CFLAGS += -Wa,-q AM_CFLAGS += --fommit-frame-pointer AM_CFLAGS += --obanksel=9 diff --git a/device/lib/pic16/libdev/Makefile.am b/device/lib/pic16/libdev/Makefile.am index fc596962..47aad5e6 100644 --- a/device/lib/pic16/libdev/Makefile.am +++ b/device/lib/pic16/libdev/Makefile.am @@ -15,6 +15,10 @@ lib_LIBRARIES += libdev18f2220.a libdev18f2220_a_SOURCES = pic18f2220.c libdev18f2220_a_CFLAGS = -p18f2220 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f2221.a +libdev18f2221_a_SOURCES = pic18f2221.c +libdev18f2221_a_CFLAGS = -p18f2221 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f2320.a libdev18f2320_a_SOURCES = pic18f2320.c libdev18f2320_a_CFLAGS = -p18f2320 $(AM_CFLAGS) @@ -27,6 +31,10 @@ lib_LIBRARIES += libdev18f2331.a libdev18f2331_a_SOURCES = pic18f2331.c libdev18f2331_a_CFLAGS = -p18f2331 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f23k20.a +libdev18f23k20_a_SOURCES = pic18f23k20.c +libdev18f23k20_a_CFLAGS = -p18f23k20 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f2410.a libdev18f2410_a_SOURCES = pic18f2410.c libdev18f2410_a_CFLAGS = -p18f2410 $(AM_CFLAGS) @@ -39,6 +47,10 @@ lib_LIBRARIES += libdev18f2420.a libdev18f2420_a_SOURCES = pic18f2420.c libdev18f2420_a_CFLAGS = -p18f2420 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f2423.a +libdev18f2423_a_SOURCES = pic18f2423.c +libdev18f2423_a_CFLAGS = -p18f2423 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f2431.a libdev18f2431_a_SOURCES = pic18f2431.c libdev18f2431_a_CFLAGS = -p18f2431 $(AM_CFLAGS) @@ -63,6 +75,14 @@ lib_LIBRARIES += libdev18f24j10.a libdev18f24j10_a_SOURCES = pic18f24j10.c libdev18f24j10_a_CFLAGS = -p18f24j10 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f24k20.a +libdev18f24k20_a_SOURCES = pic18f24k20.c +libdev18f24k20_a_CFLAGS = -p18f24k20 $(AM_CFLAGS) + +lib_LIBRARIES += libdev18f2510.a +libdev18f2510_a_SOURCES = pic18f2510.c +libdev18f2510_a_CFLAGS = -p18f2510 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f2515.a libdev18f2515_a_SOURCES = pic18f2515.c libdev18f2515_a_CFLAGS = -p18f2515 $(AM_CFLAGS) @@ -103,6 +123,10 @@ lib_LIBRARIES += libdev18f25j10.a libdev18f25j10_a_SOURCES = pic18f25j10.c libdev18f25j10_a_CFLAGS = -p18f25j10 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f25k20.a +libdev18f25k20_a_SOURCES = pic18f25k20.c +libdev18f25k20_a_CFLAGS = -p18f25k20 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f2610.a libdev18f2610_a_SOURCES = pic18f2610.c libdev18f2610_a_CFLAGS = -p18f2610 $(AM_CFLAGS) @@ -123,10 +147,18 @@ lib_LIBRARIES += libdev18f2685.a libdev18f2685_a_SOURCES = pic18f2685.c libdev18f2685_a_CFLAGS = -p18f2685 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f26k20.a +libdev18f26k20_a_SOURCES = pic18f26k20.c +libdev18f26k20_a_CFLAGS = -p18f26k20 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f4220.a libdev18f4220_a_SOURCES = pic18f4220.c libdev18f4220_a_CFLAGS = -p18f4220 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f4221.a +libdev18f4221_a_SOURCES = pic18f4221.c +libdev18f4221_a_CFLAGS = -p18f4221 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f4320.a libdev18f4320_a_SOURCES = pic18f4320.c libdev18f4320_a_CFLAGS = -p18f4320 $(AM_CFLAGS) @@ -139,6 +171,10 @@ lib_LIBRARIES += libdev18f4331.a libdev18f4331_a_SOURCES = pic18f4331.c libdev18f4331_a_CFLAGS = -p18f4331 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f43k20.a +libdev18f43k20_a_SOURCES = pic18f43k20.c +libdev18f43k20_a_CFLAGS = -p18f43k20 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f4410.a libdev18f4410_a_SOURCES = pic18f4410.c libdev18f4410_a_CFLAGS = -p18f4410 $(AM_CFLAGS) @@ -151,6 +187,10 @@ lib_LIBRARIES += libdev18f4420.a libdev18f4420_a_SOURCES = pic18f4420.c libdev18f4420_a_CFLAGS = -p18f4420 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f4423.a +libdev18f4423_a_SOURCES = pic18f4423.c +libdev18f4423_a_CFLAGS = -p18f4423 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f4431.a libdev18f4431_a_SOURCES = pic18f4431.c libdev18f4431_a_CFLAGS = -p18f4431 $(AM_CFLAGS) @@ -175,6 +215,10 @@ lib_LIBRARIES += libdev18f44j10.a libdev18f44j10_a_SOURCES = pic18f44j10.c libdev18f44j10_a_CFLAGS = -p18f44j10 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f44k20.a +libdev18f44k20_a_SOURCES = pic18f44k20.c +libdev18f44k20_a_CFLAGS = -p18f44k20 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f4510.a libdev18f4510_a_SOURCES = pic18f4510.c libdev18f4510_a_CFLAGS = -p18f4510 $(AM_CFLAGS) @@ -191,6 +235,10 @@ lib_LIBRARIES += libdev18f4520.a libdev18f4520_a_SOURCES = pic18f4520.c libdev18f4520_a_CFLAGS = -p18f4520 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f4523.a +libdev18f4523_a_SOURCES = pic18f4523.c +libdev18f4523_a_CFLAGS = -p18f4523 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f4525.a libdev18f4525_a_SOURCES = pic18f4525.c libdev18f4525_a_CFLAGS = -p18f4525 $(AM_CFLAGS) @@ -215,6 +263,10 @@ lib_LIBRARIES += libdev18f45j10.a libdev18f45j10_a_SOURCES = pic18f45j10.c libdev18f45j10_a_CFLAGS = -p18f45j10 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f45k20.a +libdev18f45k20_a_SOURCES = pic18f45k20.c +libdev18f45k20_a_CFLAGS = -p18f45k20 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f4610.a libdev18f4610_a_SOURCES = pic18f4610.c libdev18f4610_a_CFLAGS = -p18f4610 $(AM_CFLAGS) @@ -235,6 +287,10 @@ lib_LIBRARIES += libdev18f4685.a libdev18f4685_a_SOURCES = pic18f4685.c libdev18f4685_a_CFLAGS = -p18f4685 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f46k20.a +libdev18f46k20_a_SOURCES = pic18f46k20.c +libdev18f46k20_a_CFLAGS = -p18f46k20 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f6520.a libdev18f6520_a_SOURCES = pic18f6520.c libdev18f6520_a_CFLAGS = -p18f6520 $(AM_CFLAGS) @@ -243,6 +299,10 @@ lib_LIBRARIES += libdev18f6585.a libdev18f6585_a_SOURCES = pic18f6585.c libdev18f6585_a_CFLAGS = -p18f6585 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f65j50.a +libdev18f65j50_a_SOURCES = pic18f65j50.c +libdev18f65j50_a_CFLAGS = -p18f65j50 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f6620.a libdev18f6620_a_SOURCES = pic18f6620.c libdev18f6620_a_CFLAGS = -p18f6620 $(AM_CFLAGS) @@ -251,6 +311,14 @@ lib_LIBRARIES += libdev18f6680.a libdev18f6680_a_SOURCES = pic18f6680.c libdev18f6680_a_CFLAGS = -p18f6680 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f66j50.a +libdev18f66j50_a_SOURCES = pic18f66j50.c +libdev18f66j50_a_CFLAGS = -p18f66j50 $(AM_CFLAGS) + +lib_LIBRARIES += libdev18f66j55.a +libdev18f66j55_a_SOURCES = pic18f66j55.c +libdev18f66j55_a_CFLAGS = -p18f66j55 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f66j60.a libdev18f66j60_a_SOURCES = pic18f66j60.c libdev18f66j60_a_CFLAGS = -p18f66j60 $(AM_CFLAGS) @@ -263,6 +331,10 @@ lib_LIBRARIES += libdev18f6720.a libdev18f6720_a_SOURCES = pic18f6720.c libdev18f6720_a_CFLAGS = -p18f6720 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f67j50.a +libdev18f67j50_a_SOURCES = pic18f67j50.c +libdev18f67j50_a_CFLAGS = -p18f67j50 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f67j60.a libdev18f67j60_a_SOURCES = pic18f67j60.c libdev18f67j60_a_CFLAGS = -p18f67j60 $(AM_CFLAGS) @@ -275,6 +347,10 @@ lib_LIBRARIES += libdev18f8585.a libdev18f8585_a_SOURCES = pic18f8585.c libdev18f8585_a_CFLAGS = -p18f8585 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f85j50.a +libdev18f85j50_a_SOURCES = pic18f85j50.c +libdev18f85j50_a_CFLAGS = -p18f85j50 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f8620.a libdev18f8620_a_SOURCES = pic18f8620.c libdev18f8620_a_CFLAGS = -p18f8620 $(AM_CFLAGS) @@ -283,6 +359,14 @@ lib_LIBRARIES += libdev18f8680.a libdev18f8680_a_SOURCES = pic18f8680.c libdev18f8680_a_CFLAGS = -p18f8680 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f86j50.a +libdev18f86j50_a_SOURCES = pic18f86j50.c +libdev18f86j50_a_CFLAGS = -p18f86j50 $(AM_CFLAGS) + +lib_LIBRARIES += libdev18f86j55.a +libdev18f86j55_a_SOURCES = pic18f86j55.c +libdev18f86j55_a_CFLAGS = -p18f86j55 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f86j60.a libdev18f86j60_a_SOURCES = pic18f86j60.c libdev18f86j60_a_CFLAGS = -p18f86j60 $(AM_CFLAGS) @@ -295,6 +379,10 @@ lib_LIBRARIES += libdev18f8720.a libdev18f8720_a_SOURCES = pic18f8720.c libdev18f8720_a_CFLAGS = -p18f8720 $(AM_CFLAGS) +lib_LIBRARIES += libdev18f87j50.a +libdev18f87j50_a_SOURCES = pic18f87j50.c +libdev18f87j50_a_CFLAGS = -p18f87j50 $(AM_CFLAGS) + lib_LIBRARIES += libdev18f87j60.a libdev18f87j60_a_SOURCES = pic18f87j60.c libdev18f87j60_a_CFLAGS = -p18f87j60 $(AM_CFLAGS) diff --git a/device/lib/pic16/libdev/pic18f23k20.c b/device/lib/pic16/libdev/pic18f23k20.c new file mode 100644 index 00000000..619a86b1 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f23k20.c @@ -0,0 +1,6 @@ +/* + * pic18f23k20.c - device specific definitions + */ + +#include "pic18f46k20.c" + diff --git a/device/lib/pic16/libdev/pic18f24k20.c b/device/lib/pic16/libdev/pic18f24k20.c new file mode 100644 index 00000000..39ca38a1 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f24k20.c @@ -0,0 +1,6 @@ +/* + * pic18f24k20.c - device specific definitions + */ + +#include "pic18f46k20.c" + diff --git a/device/lib/pic16/libdev/pic18f25k20.c b/device/lib/pic16/libdev/pic18f25k20.c new file mode 100644 index 00000000..46024f45 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f25k20.c @@ -0,0 +1,6 @@ +/* + * pic18f25k20.c - device specific definitions + */ + +#include "pic18f46k20.c" + diff --git a/device/lib/pic16/libdev/pic18f26k20.c b/device/lib/pic16/libdev/pic18f26k20.c new file mode 100644 index 00000000..38369120 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f26k20.c @@ -0,0 +1,6 @@ +/* + * pic18f26k20.c - device specific definitions + */ + +#include "pic18f46k20.c" + diff --git a/device/lib/pic16/libdev/pic18f43k20.c b/device/lib/pic16/libdev/pic18f43k20.c new file mode 100644 index 00000000..3718ae3f --- /dev/null +++ b/device/lib/pic16/libdev/pic18f43k20.c @@ -0,0 +1,6 @@ +/* + * pic18f43k20.c - device specific definitions + */ + +#include "pic18f46k20.c" + diff --git a/device/lib/pic16/libdev/pic18f44k20.c b/device/lib/pic16/libdev/pic18f44k20.c new file mode 100644 index 00000000..c7b53ae9 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f44k20.c @@ -0,0 +1,6 @@ +/* + * pic18f44k20.c - device specific definitions + */ + +#include "pic18f46k20.c" + diff --git a/device/lib/pic16/libdev/pic18f45k20.c b/device/lib/pic16/libdev/pic18f45k20.c new file mode 100644 index 00000000..da3d2158 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f45k20.c @@ -0,0 +1,6 @@ +/* + * pic18f45k20.c - device specific definitions + */ + +#include "pic18f46k20.c" + diff --git a/device/lib/pic16/libdev/pic18f46k20.c b/device/lib/pic16/libdev/pic18f46k20.c new file mode 100644 index 00000000..26d272a5 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f46k20.c @@ -0,0 +1,351 @@ +/* + * pic18f46k20.c - device specific definitions + * + * This file is part of the GNU PIC library for SDCC, + * originally devised by Vangelis Rokas + * + * It has been automatically generated by inc2h-pic16.pl, + * (c) 2007 by Raphael Neider + */ + +#include + + +__sfr __at (0xF77) SSPMSK; + +__sfr __at (0xF78) SLRCON; +volatile __SLRCONbits_t __at (0xF78) SLRCONbits; + +__sfr __at (0xF79) CM12CON; +volatile __CM12CONbits_t __at (0xF79) CM12CONbits; + +__sfr __at (0xF7A) CM2CON; +volatile __CM2CONbits_t __at (0xF7A) CM2CONbits; + +__sfr __at (0xF7B) CM1CON; +volatile __CM1CONbits_t __at (0xF7B) CM1CONbits; + +__sfr __at (0xF7C) WPUB; +volatile __WPUBbits_t __at (0xF7C) WPUBbits; + +__sfr __at (0xF7D) IOCB; +volatile __IOCBbits_t __at (0xF7D) IOCBbits; + +__sfr __at (0xF7E) ANSEL; +volatile __ANSELbits_t __at (0xF7E) ANSELbits; + +__sfr __at (0xF7F) ANSELH; +volatile __ANSELHbits_t __at (0xF7F) ANSELHbits; + +__sfr __at (0xF80) PORTA; +volatile __PORTAbits_t __at (0xF80) PORTAbits; + +__sfr __at (0xF81) PORTB; +volatile __PORTBbits_t __at (0xF81) PORTBbits; + +__sfr __at (0xF82) PORTC; +volatile __PORTCbits_t __at (0xF82) PORTCbits; + +__sfr __at (0xF83) PORTD; +volatile __PORTDbits_t __at (0xF83) PORTDbits; + +__sfr __at (0xF84) PORTE; +volatile __PORTEbits_t __at (0xF84) PORTEbits; + +__sfr __at (0xF89) LATA; +volatile __LATAbits_t __at (0xF89) LATAbits; + +__sfr __at (0xF8A) LATB; +volatile __LATBbits_t __at (0xF8A) LATBbits; + +__sfr __at (0xF8B) LATC; +volatile __LATCbits_t __at (0xF8B) LATCbits; + +__sfr __at (0xF8C) LATD; +volatile __LATDbits_t __at (0xF8C) LATDbits; + +__sfr __at (0xF8D) LATE; +volatile __LATEbits_t __at (0xF8D) LATEbits; + +__sfr __at (0xF92) DDRA; +volatile __DDRAbits_t __at (0xF92) DDRAbits; + +__sfr __at (0xF92) TRISA; +volatile __TRISAbits_t __at (0xF92) TRISAbits; + +__sfr __at (0xF93) DDRB; +volatile __DDRBbits_t __at (0xF93) DDRBbits; + +__sfr __at (0xF93) TRISB; +volatile __TRISBbits_t __at (0xF93) TRISBbits; + +__sfr __at (0xF94) DDRC; +volatile __DDRCbits_t __at (0xF94) DDRCbits; + +__sfr __at (0xF94) TRISC; +volatile __TRISCbits_t __at (0xF94) TRISCbits; + +__sfr __at (0xF95) DDRD; +volatile __DDRDbits_t __at (0xF95) DDRDbits; + +__sfr __at (0xF95) TRISD; +volatile __TRISDbits_t __at (0xF95) TRISDbits; + +__sfr __at (0xF96) DDRE; +volatile __DDREbits_t __at (0xF96) DDREbits; + +__sfr __at (0xF96) TRISE; +volatile __TRISEbits_t __at (0xF96) TRISEbits; + +__sfr __at (0xF9B) OSCTUNE; +volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits; + +__sfr __at (0xF9D) PIE1; +volatile __PIE1bits_t __at (0xF9D) PIE1bits; + +__sfr __at (0xF9E) PIR1; +volatile __PIR1bits_t __at (0xF9E) PIR1bits; + +__sfr __at (0xF9F) IPR1; +volatile __IPR1bits_t __at (0xF9F) IPR1bits; + +__sfr __at (0xFA0) PIE2; +volatile __PIE2bits_t __at (0xFA0) PIE2bits; + +__sfr __at (0xFA1) PIR2; +volatile __PIR2bits_t __at (0xFA1) PIR2bits; + +__sfr __at (0xFA2) IPR2; +volatile __IPR2bits_t __at (0xFA2) IPR2bits; + +__sfr __at (0xFA6) EECON1; +volatile __EECON1bits_t __at (0xFA6) EECON1bits; + +__sfr __at (0xFA7) EECON2; + +__sfr __at (0xFA8) EEDATA; + +__sfr __at (0xFA9) EEADR; + +__sfr __at (0xFAA) EEADRH; + +__sfr __at (0xFAB) RCSTA; +volatile __RCSTAbits_t __at (0xFAB) RCSTAbits; + +__sfr __at (0xFAC) TXSTA; +volatile __TXSTAbits_t __at (0xFAC) TXSTAbits; + +__sfr __at (0xFAD) TXREG; + +__sfr __at (0xFAE) RCREG; + +__sfr __at (0xFAF) SPBRG; + +__sfr __at (0xFB0) SPBRGH; + +__sfr __at (0xFB1) T3CON; +volatile __T3CONbits_t __at (0xFB1) T3CONbits; + +__sfr __at (0xFB2) TMR3L; + +__sfr __at (0xFB3) TMR3H; + +__sfr __at (0xFB4) CVRCON2; +volatile __CVRCON2bits_t __at (0xFB4) CVRCON2bits; + +__sfr __at (0xFB5) CVRCON; +volatile __CVRCONbits_t __at (0xFB5) CVRCONbits; + +__sfr __at (0xFB6) ECCP1AS; +volatile __ECCP1ASbits_t __at (0xFB6) ECCP1ASbits; + +__sfr __at (0xFB7) PWM1CON; +volatile __PWM1CONbits_t __at (0xFB7) PWM1CONbits; + +__sfr __at (0xFB8) BAUDCON; +volatile __BAUDCONbits_t __at (0xFB8) BAUDCONbits; + +__sfr __at (0xFB8) BAUDCTL; +volatile __BAUDCTLbits_t __at (0xFB8) BAUDCTLbits; + +__sfr __at (0xFB9) PSTRCON; +volatile __PSTRCONbits_t __at (0xFB9) PSTRCONbits; + +__sfr __at (0xFBA) CCP2CON; +volatile __CCP2CONbits_t __at (0xFBA) CCP2CONbits; + +__sfr __at (0xFBB) CCPR2; + +__sfr __at (0xFBB) CCPR2L; + +__sfr __at (0xFBC) CCPR2H; + +__sfr __at (0xFBD) CCP1CON; +volatile __CCP1CONbits_t __at (0xFBD) CCP1CONbits; + +__sfr __at (0xFBE) CCPR1; + +__sfr __at (0xFBE) CCPR1L; + +__sfr __at (0xFBF) CCPR1H; + +__sfr __at (0xFC0) ADCON2; +volatile __ADCON2bits_t __at (0xFC0) ADCON2bits; + +__sfr __at (0xFC1) ADCON1; +volatile __ADCON1bits_t __at (0xFC1) ADCON1bits; + +__sfr __at (0xFC2) ADCON0; +volatile __ADCON0bits_t __at (0xFC2) ADCON0bits; + +__sfr __at (0xFC3) ADRES; + +__sfr __at (0xFC3) ADRESL; + +__sfr __at (0xFC4) ADRESH; + +__sfr __at (0xFC5) SSPCON2; +volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits; + +__sfr __at (0xFC6) SSPCON1; +volatile __SSPCON1bits_t __at (0xFC6) SSPCON1bits; + +__sfr __at (0xFC7) SSPSTAT; +volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits; + +__sfr __at (0xFC8) SSPADD; + +__sfr __at (0xFC9) SSPBUF; + +__sfr __at (0xFCA) T2CON; +volatile __T2CONbits_t __at (0xFCA) T2CONbits; + +__sfr __at (0xFCB) PR2; + +__sfr __at (0xFCC) TMR2; + +__sfr __at (0xFCD) T1CON; +volatile __T1CONbits_t __at (0xFCD) T1CONbits; + +__sfr __at (0xFCE) TMR1L; + +__sfr __at (0xFCF) TMR1H; + +__sfr __at (0xFD0) RCON; +volatile __RCONbits_t __at (0xFD0) RCONbits; + +__sfr __at (0xFD1) WDTCON; +volatile __WDTCONbits_t __at (0xFD1) WDTCONbits; + +__sfr __at (0xFD2) HLVDCON; +volatile __HLVDCONbits_t __at (0xFD2) HLVDCONbits; + +__sfr __at (0xFD2) LVDCON; +volatile __LVDCONbits_t __at (0xFD2) LVDCONbits; + +__sfr __at (0xFD3) OSCCON; +volatile __OSCCONbits_t __at (0xFD3) OSCCONbits; + +__sfr __at (0xFD4) DEBUG; + +__sfr __at (0xFD5) T0CON; +volatile __T0CONbits_t __at (0xFD5) T0CONbits; + +__sfr __at (0xFD6) TMR0L; + +__sfr __at (0xFD7) TMR0H; + +__sfr __at (0xFD8) STATUS; +volatile __STATUSbits_t __at (0xFD8) STATUSbits; + +__sfr __at (0xFD9) FSR2L; + +__sfr __at (0xFDA) FSR2H; + +__sfr __at (0xFDB) PLUSW2; + +__sfr __at (0xFDC) PREINC2; + +__sfr __at (0xFDD) POSTDEC2; + +__sfr __at (0xFDE) POSTINC2; + +__sfr __at (0xFDF) INDF2; + +__sfr __at (0xFE0) BSR; + +__sfr __at (0xFE1) FSR1L; + +__sfr __at (0xFE2) FSR1H; + +__sfr __at (0xFE3) PLUSW1; + +__sfr __at (0xFE4) PREINC1; + +__sfr __at (0xFE5) POSTDEC1; + +__sfr __at (0xFE6) POSTINC1; + +__sfr __at (0xFE7) INDF1; + +__sfr __at (0xFE8) WREG; + +__sfr __at (0xFE9) FSR0L; + +__sfr __at (0xFEA) FSR0H; + +__sfr __at (0xFEB) PLUSW0; + +__sfr __at (0xFEC) PREINC0; + +__sfr __at (0xFED) POSTDEC0; + +__sfr __at (0xFEE) POSTINC0; + +__sfr __at (0xFEF) INDF0; + +__sfr __at (0xFF0) INTCON3; +volatile __INTCON3bits_t __at (0xFF0) INTCON3bits; + +__sfr __at (0xFF1) INTCON2; +volatile __INTCON2bits_t __at (0xFF1) INTCON2bits; + +__sfr __at (0xFF2) INTCON; +volatile __INTCONbits_t __at (0xFF2) INTCONbits; + +__sfr __at (0xFF3) PROD; + +__sfr __at (0xFF3) PRODL; + +__sfr __at (0xFF4) PRODH; + +__sfr __at (0xFF5) TABLAT; + +__sfr __at (0xFF6) TBLPTR; + +__sfr __at (0xFF6) TBLPTRL; + +__sfr __at (0xFF7) TBLPTRH; + +__sfr __at (0xFF8) TBLPTRU; + +__sfr __at (0xFF9) PC; + +__sfr __at (0xFF9) PCL; + +__sfr __at (0xFFA) PCLATH; + +__sfr __at (0xFFB) PCLATU; + +__sfr __at (0xFFC) STKPTR; +volatile __STKPTRbits_t __at (0xFFC) STKPTRbits; + +__sfr __at (0xFFD) TOS; + +__sfr __at (0xFFD) TOSL; + +__sfr __at (0xFFE) TOSH; + +__sfr __at (0xFFF) TOSU; + + diff --git a/device/lib/pic16/libdev/pic18f65j50.c b/device/lib/pic16/libdev/pic18f65j50.c new file mode 100644 index 00000000..b05410ab --- /dev/null +++ b/device/lib/pic16/libdev/pic18f65j50.c @@ -0,0 +1,7 @@ +/* + * pic18f65j50.c - device specific definitions + */ + +#include +#include "pic18f67j50.c" + diff --git a/device/lib/pic16/libdev/pic18f66j50.c b/device/lib/pic16/libdev/pic18f66j50.c new file mode 100644 index 00000000..8cb21962 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f66j50.c @@ -0,0 +1,7 @@ +/* + * pic18f66j50.c - device specific definitions + */ + +#include +#include "pic18f67j50.c" + diff --git a/device/lib/pic16/libdev/pic18f66j55.c b/device/lib/pic16/libdev/pic18f66j55.c new file mode 100644 index 00000000..a20cca96 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f66j55.c @@ -0,0 +1,7 @@ +/* + * pic18f66j55.c - device specific definitions + */ + +#include +#include "pic18f67j50.c" + diff --git a/device/lib/pic16/libdev/pic18f67j50.c b/device/lib/pic16/libdev/pic18f67j50.c new file mode 100644 index 00000000..816ecd5b --- /dev/null +++ b/device/lib/pic16/libdev/pic18f67j50.c @@ -0,0 +1,634 @@ +/* + * pic18f67j50.c - device specific definitions + * + * This file is part of the GNU PIC library for SDCC, + * originally devised by Vangelis Rokas + * + * It has been automatically generated by inc2h-pic16.pl, + * (c) 2007 by Raphael Neider + */ + +#include + + +__sfr __at (0xF40) PMSTAT; + +__sfr __at (0xF40) PMSTATL; +volatile __PMSTATLbits_t __at (0xF40) PMSTATLbits; + +__sfr __at (0xF41) PMSTATH; +volatile __PMSTATHbits_t __at (0xF41) PMSTATHbits; + +__sfr __at (0xF42) PMEL; +volatile __PMELbits_t __at (0xF42) PMELbits; + +__sfr __at (0xF42) PMEN; + +__sfr __at (0xF43) PMEH; +volatile __PMEHbits_t __at (0xF43) PMEHbits; + +__sfr __at (0xF44) PMDIN2; + +__sfr __at (0xF44) PMDIN2L; + +__sfr __at (0xF45) PMDIN2H; + +__sfr __at (0xF46) PMDOUT2; + +__sfr __at (0xF46) PMDOUT2L; + +__sfr __at (0xF47) PMDOUT2H; + +__sfr __at (0xF48) PMMODE; + +__sfr __at (0xF48) PMMODEL; +volatile __PMMODELbits_t __at (0xF48) PMMODELbits; + +__sfr __at (0xF49) PMMODEH; +volatile __PMMODEHbits_t __at (0xF49) PMMODEHbits; + +__sfr __at (0xF4A) PMCON; + +__sfr __at (0xF4A) PMCONL; +volatile __PMCONLbits_t __at (0xF4A) PMCONLbits; + +__sfr __at (0xF4B) PMCONH; +volatile __PMCONHbits_t __at (0xF4B) PMCONHbits; + +__sfr __at (0xF4C) UEP0; +volatile __UEP0bits_t __at (0xF4C) UEP0bits; + +__sfr __at (0xF4D) UEP1; +volatile __UEP1bits_t __at (0xF4D) UEP1bits; + +__sfr __at (0xF4E) UEP2; +volatile __UEP2bits_t __at (0xF4E) UEP2bits; + +__sfr __at (0xF4F) UEP3; +volatile __UEP3bits_t __at (0xF4F) UEP3bits; + +__sfr __at (0xF50) UEP4; +volatile __UEP4bits_t __at (0xF50) UEP4bits; + +__sfr __at (0xF51) UEP5; +volatile __UEP5bits_t __at (0xF51) UEP5bits; + +__sfr __at (0xF52) UEP6; +volatile __UEP6bits_t __at (0xF52) UEP6bits; + +__sfr __at (0xF53) UEP7; +volatile __UEP7bits_t __at (0xF53) UEP7bits; + +__sfr __at (0xF54) UEP8; +volatile __UEP8bits_t __at (0xF54) UEP8bits; + +__sfr __at (0xF55) UEP9; +volatile __UEP9bits_t __at (0xF55) UEP9bits; + +__sfr __at (0xF56) UEP10; +volatile __UEP10bits_t __at (0xF56) UEP10bits; + +__sfr __at (0xF57) UEP11; +volatile __UEP11bits_t __at (0xF57) UEP11bits; + +__sfr __at (0xF58) UEP12; +volatile __UEP12bits_t __at (0xF58) UEP12bits; + +__sfr __at (0xF59) UEP13; +volatile __UEP13bits_t __at (0xF59) UEP13bits; + +__sfr __at (0xF5A) UEP14; +volatile __UEP14bits_t __at (0xF5A) UEP14bits; + +__sfr __at (0xF5B) UEP15; +volatile __UEP15bits_t __at (0xF5B) UEP15bits; + +__sfr __at (0xF5C) UIE; +volatile __UIEbits_t __at (0xF5C) UIEbits; + +__sfr __at (0xF5D) UEIE; +volatile __UEIEbits_t __at (0xF5D) UEIEbits; + +__sfr __at (0xF5E) UADDR; +volatile __UADDRbits_t __at (0xF5E) UADDRbits; + +__sfr __at (0xF5F) UCFG; +volatile __UCFGbits_t __at (0xF5F) UCFGbits; + +__sfr __at (0xF60) UFRM; + +__sfr __at (0xF60) UFRML; +volatile __UFRMLbits_t __at (0xF60) UFRMLbits; + +__sfr __at (0xF61) UFRMH; +volatile __UFRMHbits_t __at (0xF61) UFRMHbits; + +__sfr __at (0xF62) UIR; +volatile __UIRbits_t __at (0xF62) UIRbits; + +__sfr __at (0xF63) UEIR; +volatile __UEIRbits_t __at (0xF63) UEIRbits; + +__sfr __at (0xF64) USTAT; +volatile __USTATbits_t __at (0xF64) USTATbits; + +__sfr __at (0xF65) UCON; +volatile __UCONbits_t __at (0xF65) UCONbits; + +__sfr __at (0xF66) PMDIN1; + +__sfr __at (0xF66) PMDIN1L; + +__sfr __at (0xF67) PMDIN1H; + +__sfr __at (0xF68) PMADDR; + +__sfr __at (0xF68) PMADDRL; + +__sfr __at (0xF68) PMDOUT1; + +__sfr __at (0xF68) PMDOUT1L; + +__sfr __at (0xF69) PMADDRH; +volatile __PMADDRHbits_t __at (0xF69) PMADDRHbits; + +__sfr __at (0xF69) PMDOUT1H; + +__sfr __at (0xF6A) CMSTAT; +volatile __CMSTATbits_t __at (0xF6A) CMSTATbits; + +__sfr __at (0xF6A) CMSTATUS; +volatile __CMSTATUSbits_t __at (0xF6A) CMSTATUSbits; + +__sfr __at (0xF6B) SSP2CON2; +volatile __SSP2CON2bits_t __at (0xF6B) SSP2CON2bits; + +__sfr __at (0xF6C) SSP2CON1; +volatile __SSP2CON1bits_t __at (0xF6C) SSP2CON1bits; + +__sfr __at (0xF6D) SSP2STAT; +volatile __SSP2STATbits_t __at (0xF6D) SSP2STATbits; + +__sfr __at (0xF6E) SSP2ADD; + +__sfr __at (0xF6E) SSP2MSK; +volatile __SSP2MSKbits_t __at (0xF6E) SSP2MSKbits; + +__sfr __at (0xF6F) SSP2BUF; + +__sfr __at (0xF70) CCP5CON; +volatile __CCP5CONbits_t __at (0xF70) CCP5CONbits; + +__sfr __at (0xF71) CCPR5; + +__sfr __at (0xF71) CCPR5L; + +__sfr __at (0xF72) CCPR5H; + +__sfr __at (0xF73) CCP4CON; +volatile __CCP4CONbits_t __at (0xF73) CCP4CONbits; + +__sfr __at (0xF74) CCPR4; + +__sfr __at (0xF74) CCPR4L; + +__sfr __at (0xF75) CCPR4H; + +__sfr __at (0xF76) T4CON; +volatile __T4CONbits_t __at (0xF76) T4CONbits; + +__sfr __at (0xF77) CVRCON; +volatile __CVRCONbits_t __at (0xF77) CVRCONbits; + +__sfr __at (0xF77) PR4; + +__sfr __at (0xF78) TMR4; + +__sfr __at (0xF79) T3CON; +volatile __T3CONbits_t __at (0xF79) T3CONbits; + +__sfr __at (0xF7A) TMR3L; + +__sfr __at (0xF7B) TMR3H; + +__sfr __at (0xF7C) BAUDCON2; +volatile __BAUDCON2bits_t __at (0xF7C) BAUDCON2bits; + +__sfr __at (0xF7D) SPBRGH2; + +__sfr __at (0xF7E) BAUDCON; +volatile __BAUDCONbits_t __at (0xF7E) BAUDCONbits; + +__sfr __at (0xF7E) BAUDCON1; +volatile __BAUDCON1bits_t __at (0xF7E) BAUDCON1bits; + +__sfr __at (0xF7F) SPBRGH; + +__sfr __at (0xF7F) SPBRGH1; + +__sfr __at (0xF80) PORTA; +volatile __PORTAbits_t __at (0xF80) PORTAbits; + +__sfr __at (0xF81) PORTB; +volatile __PORTBbits_t __at (0xF81) PORTBbits; + +__sfr __at (0xF82) PORTC; +volatile __PORTCbits_t __at (0xF82) PORTCbits; + +__sfr __at (0xF83) PORTD; +volatile __PORTDbits_t __at (0xF83) PORTDbits; + +__sfr __at (0xF84) PORTE; +volatile __PORTEbits_t __at (0xF84) PORTEbits; + +__sfr __at (0xF85) PORTF; +volatile __PORTFbits_t __at (0xF85) PORTFbits; + +__sfr __at (0xF86) PORTG; +volatile __PORTGbits_t __at (0xF86) PORTGbits; + +__sfr __at (0xF89) LATA; +volatile __LATAbits_t __at (0xF89) LATAbits; + +__sfr __at (0xF8A) LATB; +volatile __LATBbits_t __at (0xF8A) LATBbits; + +__sfr __at (0xF8B) LATC; +volatile __LATCbits_t __at (0xF8B) LATCbits; + +__sfr __at (0xF8C) LATD; +volatile __LATDbits_t __at (0xF8C) LATDbits; + +__sfr __at (0xF8D) LATE; +volatile __LATEbits_t __at (0xF8D) LATEbits; + +__sfr __at (0xF8E) LATF; +volatile __LATFbits_t __at (0xF8E) LATFbits; + +__sfr __at (0xF8F) LATG; +volatile __LATGbits_t __at (0xF8F) LATGbits; + +__sfr __at (0xF92) DDRA; +volatile __DDRAbits_t __at (0xF92) DDRAbits; + +__sfr __at (0xF92) TRISA; +volatile __TRISAbits_t __at (0xF92) TRISAbits; + +__sfr __at (0xF93) DDRB; +volatile __DDRBbits_t __at (0xF93) DDRBbits; + +__sfr __at (0xF93) TRISB; +volatile __TRISBbits_t __at (0xF93) TRISBbits; + +__sfr __at (0xF94) DDRC; +volatile __DDRCbits_t __at (0xF94) DDRCbits; + +__sfr __at (0xF94) TRISC; +volatile __TRISCbits_t __at (0xF94) TRISCbits; + +__sfr __at (0xF95) DDRD; +volatile __DDRDbits_t __at (0xF95) DDRDbits; + +__sfr __at (0xF95) TRISD; +volatile __TRISDbits_t __at (0xF95) TRISDbits; + +__sfr __at (0xF96) DDRE; +volatile __DDREbits_t __at (0xF96) DDREbits; + +__sfr __at (0xF96) TRISE; +volatile __TRISEbits_t __at (0xF96) TRISEbits; + +__sfr __at (0xF97) DDRF; +volatile __DDRFbits_t __at (0xF97) DDRFbits; + +__sfr __at (0xF97) TRISF; +volatile __TRISFbits_t __at (0xF97) TRISFbits; + +__sfr __at (0xF98) DDRG; +volatile __DDRGbits_t __at (0xF98) DDRGbits; + +__sfr __at (0xF98) TRISG; +volatile __TRISGbits_t __at (0xF98) TRISGbits; + +__sfr __at (0xF9B) OSCTUNE; +volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits; + +__sfr __at (0xF9C) RCSTA2; +volatile __RCSTA2bits_t __at (0xF9C) RCSTA2bits; + +__sfr __at (0xF9D) PIE1; +volatile __PIE1bits_t __at (0xF9D) PIE1bits; + +__sfr __at (0xF9E) PIR1; +volatile __PIR1bits_t __at (0xF9E) PIR1bits; + +__sfr __at (0xF9F) IPR1; +volatile __IPR1bits_t __at (0xF9F) IPR1bits; + +__sfr __at (0xFA0) PIE2; +volatile __PIE2bits_t __at (0xFA0) PIE2bits; + +__sfr __at (0xFA1) PIR2; +volatile __PIR2bits_t __at (0xFA1) PIR2bits; + +__sfr __at (0xFA2) IPR2; +volatile __IPR2bits_t __at (0xFA2) IPR2bits; + +__sfr __at (0xFA3) PIE3; +volatile __PIE3bits_t __at (0xFA3) PIE3bits; + +__sfr __at (0xFA4) PIR3; +volatile __PIR3bits_t __at (0xFA4) PIR3bits; + +__sfr __at (0xFA5) IPR3; +volatile __IPR3bits_t __at (0xFA5) IPR3bits; + +__sfr __at (0xFA6) EECON1; +volatile __EECON1bits_t __at (0xFA6) EECON1bits; + +__sfr __at (0xFA7) EECON2; + +__sfr __at (0xFA8) TXSTA2; +volatile __TXSTA2bits_t __at (0xFA8) TXSTA2bits; + +__sfr __at (0xFA9) TXREG2; + +__sfr __at (0xFAA) RCREG2; + +__sfr __at (0xFAB) SPBRG2; + +__sfr __at (0xFAC) RCSTA; +volatile __RCSTAbits_t __at (0xFAC) RCSTAbits; + +__sfr __at (0xFAC) RCSTA1; +volatile __RCSTA1bits_t __at (0xFAC) RCSTA1bits; + +__sfr __at (0xFAD) TXSTA; +volatile __TXSTAbits_t __at (0xFAD) TXSTAbits; + +__sfr __at (0xFAD) TXSTA1; +volatile __TXSTA1bits_t __at (0xFAD) TXSTA1bits; + +__sfr __at (0xFAE) TXREG; + +__sfr __at (0xFAE) TXREG1; + +__sfr __at (0xFAF) RCREG; + +__sfr __at (0xFAF) RCREG1; + +__sfr __at (0xFB0) SPBRG; + +__sfr __at (0xFB0) SPBRG1; + +__sfr __at (0xFB1) CCP3CON; +volatile __CCP3CONbits_t __at (0xFB1) CCP3CONbits; + +__sfr __at (0xFB1) ECCP3CON; +volatile __ECCP3CONbits_t __at (0xFB1) ECCP3CONbits; + +__sfr __at (0xFB2) CCPR3; + +__sfr __at (0xFB2) CCPR3L; + +__sfr __at (0xFB3) CCPR3H; + +__sfr __at (0xFB4) ECCP3DEL; +volatile __ECCP3DELbits_t __at (0xFB4) ECCP3DELbits; + +__sfr __at (0xFB5) ECCP3AS; +volatile __ECCP3ASbits_t __at (0xFB5) ECCP3ASbits; + +__sfr __at (0xFB6) CCP2CON; +volatile __CCP2CONbits_t __at (0xFB6) CCP2CONbits; + +__sfr __at (0xFB6) ECCP2CON; +volatile __ECCP2CONbits_t __at (0xFB6) ECCP2CONbits; + +__sfr __at (0xFB7) CCPR2; + +__sfr __at (0xFB7) CCPR2L; + +__sfr __at (0xFB8) CCPR2H; + +__sfr __at (0xFB9) ECCP2DEL; +volatile __ECCP2DELbits_t __at (0xFB9) ECCP2DELbits; + +__sfr __at (0xFBA) ECCP2AS; +volatile __ECCP2ASbits_t __at (0xFBA) ECCP2ASbits; + +__sfr __at (0xFBB) CCP1CON; +volatile __CCP1CONbits_t __at (0xFBB) CCP1CONbits; + +__sfr __at (0xFBB) ECCP1CON; +volatile __ECCP1CONbits_t __at (0xFBB) ECCP1CONbits; + +__sfr __at (0xFBC) CCPR1; + +__sfr __at (0xFBC) CCPR1L; + +__sfr __at (0xFBD) CCPR1H; + +__sfr __at (0xFBE) ECCP1DEL; +volatile __ECCP1DELbits_t __at (0xFBE) ECCP1DELbits; + +__sfr __at (0xFBF) ECCP1AS; +volatile __ECCP1ASbits_t __at (0xFBF) ECCP1ASbits; + +__sfr __at (0xFC0) WDTCON; +volatile __WDTCONbits_t __at (0xFC0) WDTCONbits; + +__sfr __at (0xFC1) ADCON1; +volatile __ADCON1bits_t __at (0xFC1) ADCON1bits; + +__sfr __at (0xFC1) ANCON0; +volatile __ANCON0bits_t __at (0xFC1) ANCON0bits; + +__sfr __at (0xFC2) ADCON0; +volatile __ADCON0bits_t __at (0xFC2) ADCON0bits; + +__sfr __at (0xFC2) ANCON1; +volatile __ANCON1bits_t __at (0xFC2) ANCON1bits; + +__sfr __at (0xFC3) ADRES; + +__sfr __at (0xFC3) ADRESL; + +__sfr __at (0xFC4) ADRESH; + +__sfr __at (0xFC5) SSP1CON2; +volatile __SSP1CON2bits_t __at (0xFC5) SSP1CON2bits; + +__sfr __at (0xFC5) SSPCON2; +volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits; + +__sfr __at (0xFC6) SSP1CON1; +volatile __SSP1CON1bits_t __at (0xFC6) SSP1CON1bits; + +__sfr __at (0xFC6) SSPCON1; +volatile __SSPCON1bits_t __at (0xFC6) SSPCON1bits; + +__sfr __at (0xFC7) SSP1STAT; +volatile __SSP1STATbits_t __at (0xFC7) SSP1STATbits; + +__sfr __at (0xFC7) SSPSTAT; +volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits; + +__sfr __at (0xFC8) SSP1ADD; + +__sfr __at (0xFC8) SSP1MSK; + +__sfr __at (0xFC8) SSPADD; + +__sfr __at (0xFC9) SSP1BUF; + +__sfr __at (0xFC9) SSPBUF; + +__sfr __at (0xFCA) T2CON; +volatile __T2CONbits_t __at (0xFCA) T2CONbits; + +__sfr __at (0xFCB) PR2; + +__sfr __at (0xFCC) PADCFG1; +volatile __PADCFG1bits_t __at (0xFCC) PADCFG1bits; + +__sfr __at (0xFCC) TMR2; + +__sfr __at (0xFCD) ODCON3; +volatile __ODCON3bits_t __at (0xFCD) ODCON3bits; + +__sfr __at (0xFCD) T1CON; +volatile __T1CONbits_t __at (0xFCD) T1CONbits; + +__sfr __at (0xFCE) ODCON2; +volatile __ODCON2bits_t __at (0xFCE) ODCON2bits; + +__sfr __at (0xFCE) TMR1L; + +__sfr __at (0xFCF) ODCON1; +volatile __ODCON1bits_t __at (0xFCF) ODCON1bits; + +__sfr __at (0xFCF) TMR1H; + +__sfr __at (0xFD0) RCON; +volatile __RCONbits_t __at (0xFD0) RCONbits; + +__sfr __at (0xFD1) CM2CON; +volatile __CM2CONbits_t __at (0xFD1) CM2CONbits; + +__sfr __at (0xFD1) CM2CON1; +volatile __CM2CON1bits_t __at (0xFD1) CM2CON1bits; + +__sfr __at (0xFD2) CM1CON; +volatile __CM1CONbits_t __at (0xFD2) CM1CONbits; + +__sfr __at (0xFD2) CM1CON1; +volatile __CM1CON1bits_t __at (0xFD2) CM1CON1bits; + +__sfr __at (0xFD3) OSCCON; +volatile __OSCCONbits_t __at (0xFD3) OSCCONbits; + +__sfr __at (0xFD3) REFOCON; +volatile __REFOCONbits_t __at (0xFD3) REFOCONbits; + +__sfr __at (0xFD5) T0CON; +volatile __T0CONbits_t __at (0xFD5) T0CONbits; + +__sfr __at (0xFD6) TMR0L; + +__sfr __at (0xFD7) TMR0H; + +__sfr __at (0xFD8) STATUS; +volatile __STATUSbits_t __at (0xFD8) STATUSbits; + +__sfr __at (0xFD9) FSR2L; + +__sfr __at (0xFDA) FSR2H; + +__sfr __at (0xFDB) PLUSW2; + +__sfr __at (0xFDC) PREINC2; + +__sfr __at (0xFDD) POSTDEC2; + +__sfr __at (0xFDE) POSTINC2; + +__sfr __at (0xFDF) INDF2; + +__sfr __at (0xFE0) BSR; + +__sfr __at (0xFE1) FSR1L; + +__sfr __at (0xFE2) FSR1H; + +__sfr __at (0xFE3) PLUSW1; + +__sfr __at (0xFE4) PREINC1; + +__sfr __at (0xFE5) POSTDEC1; + +__sfr __at (0xFE6) POSTINC1; + +__sfr __at (0xFE7) INDF1; + +__sfr __at (0xFE8) WREG; + +__sfr __at (0xFE9) FSR0L; + +__sfr __at (0xFEA) FSR0H; + +__sfr __at (0xFEB) PLUSW0; + +__sfr __at (0xFEC) PREINC0; + +__sfr __at (0xFED) POSTDEC0; + +__sfr __at (0xFEE) POSTINC0; + +__sfr __at (0xFEF) INDF0; + +__sfr __at (0xFF0) INTCON3; +volatile __INTCON3bits_t __at (0xFF0) INTCON3bits; + +__sfr __at (0xFF1) INTCON2; +volatile __INTCON2bits_t __at (0xFF1) INTCON2bits; + +__sfr __at (0xFF2) INTCON; +volatile __INTCONbits_t __at (0xFF2) INTCONbits; + +__sfr __at (0xFF3) PROD; + +__sfr __at (0xFF3) PRODL; + +__sfr __at (0xFF4) PRODH; + +__sfr __at (0xFF5) TABLAT; + +__sfr __at (0xFF6) TBLPTR; + +__sfr __at (0xFF6) TBLPTRL; + +__sfr __at (0xFF7) TBLPTRH; + +__sfr __at (0xFF8) TBLPTRU; + +__sfr __at (0xFF9) PC; + +__sfr __at (0xFF9) PCL; + +__sfr __at (0xFFA) PCLATH; + +__sfr __at (0xFFB) PCLATU; + +__sfr __at (0xFFC) STKPTR; +volatile __STKPTRbits_t __at (0xFFC) STKPTRbits; + +__sfr __at (0xFFD) TOS; + +__sfr __at (0xFFD) TOSL; + +__sfr __at (0xFFE) TOSH; + +__sfr __at (0xFFF) TOSU; + + diff --git a/device/lib/pic16/libdev/pic18f85j50.c b/device/lib/pic16/libdev/pic18f85j50.c new file mode 100644 index 00000000..6116d036 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f85j50.c @@ -0,0 +1,7 @@ +/* + * pic18f85j50.c - device specific definitions + */ + +#include +#include "pic18f87j50.c" + diff --git a/device/lib/pic16/libdev/pic18f86j50.c b/device/lib/pic16/libdev/pic18f86j50.c new file mode 100644 index 00000000..d5bcabb6 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f86j50.c @@ -0,0 +1,7 @@ +/* + * pic18f86j50.c - device specific definitions + */ + +#include +#include "pic18f87j50.c" + diff --git a/device/lib/pic16/libdev/pic18f86j55.c b/device/lib/pic16/libdev/pic18f86j55.c new file mode 100644 index 00000000..4a48bb8f --- /dev/null +++ b/device/lib/pic16/libdev/pic18f86j55.c @@ -0,0 +1,7 @@ +/* + * pic18f86j55.c - device specific definitions + */ + +#include +#include "pic18f87j50.c" + diff --git a/device/lib/pic16/libdev/pic18f87j50.c b/device/lib/pic16/libdev/pic18f87j50.c new file mode 100644 index 00000000..0c6d5cf1 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f87j50.c @@ -0,0 +1,661 @@ +/* + * pic18f87j50.c - device specific definitions + * + * This file is part of the GNU PIC library for SDCC, + * originally devised by Vangelis Rokas + * + * It has been automatically generated by inc2h-pic16.pl, + * (c) 2007 by Raphael Neider + */ + +#include + + +__sfr __at (0xF40) PMSTAT; + +__sfr __at (0xF40) PMSTATL; +volatile __PMSTATLbits_t __at (0xF40) PMSTATLbits; + +__sfr __at (0xF41) PMSTATH; +volatile __PMSTATHbits_t __at (0xF41) PMSTATHbits; + +__sfr __at (0xF42) PMEL; +volatile __PMELbits_t __at (0xF42) PMELbits; + +__sfr __at (0xF42) PMEN; + +__sfr __at (0xF43) PMEH; +volatile __PMEHbits_t __at (0xF43) PMEHbits; + +__sfr __at (0xF44) PMDIN2; + +__sfr __at (0xF44) PMDIN2L; + +__sfr __at (0xF45) PMDIN2H; + +__sfr __at (0xF46) PMDOUT2; + +__sfr __at (0xF46) PMDOUT2L; + +__sfr __at (0xF47) PMDOUT2H; + +__sfr __at (0xF48) PMMODE; + +__sfr __at (0xF48) PMMODEL; +volatile __PMMODELbits_t __at (0xF48) PMMODELbits; + +__sfr __at (0xF49) PMMODEH; +volatile __PMMODEHbits_t __at (0xF49) PMMODEHbits; + +__sfr __at (0xF4A) PMCON; + +__sfr __at (0xF4A) PMCONL; +volatile __PMCONLbits_t __at (0xF4A) PMCONLbits; + +__sfr __at (0xF4B) PMCONH; +volatile __PMCONHbits_t __at (0xF4B) PMCONHbits; + +__sfr __at (0xF4C) UEP0; +volatile __UEP0bits_t __at (0xF4C) UEP0bits; + +__sfr __at (0xF4D) UEP1; +volatile __UEP1bits_t __at (0xF4D) UEP1bits; + +__sfr __at (0xF4E) UEP2; +volatile __UEP2bits_t __at (0xF4E) UEP2bits; + +__sfr __at (0xF4F) UEP3; +volatile __UEP3bits_t __at (0xF4F) UEP3bits; + +__sfr __at (0xF50) UEP4; +volatile __UEP4bits_t __at (0xF50) UEP4bits; + +__sfr __at (0xF51) UEP5; +volatile __UEP5bits_t __at (0xF51) UEP5bits; + +__sfr __at (0xF52) UEP6; +volatile __UEP6bits_t __at (0xF52) UEP6bits; + +__sfr __at (0xF53) UEP7; +volatile __UEP7bits_t __at (0xF53) UEP7bits; + +__sfr __at (0xF54) UEP8; +volatile __UEP8bits_t __at (0xF54) UEP8bits; + +__sfr __at (0xF55) UEP9; +volatile __UEP9bits_t __at (0xF55) UEP9bits; + +__sfr __at (0xF56) UEP10; +volatile __UEP10bits_t __at (0xF56) UEP10bits; + +__sfr __at (0xF57) UEP11; +volatile __UEP11bits_t __at (0xF57) UEP11bits; + +__sfr __at (0xF58) UEP12; +volatile __UEP12bits_t __at (0xF58) UEP12bits; + +__sfr __at (0xF59) UEP13; +volatile __UEP13bits_t __at (0xF59) UEP13bits; + +__sfr __at (0xF5A) UEP14; +volatile __UEP14bits_t __at (0xF5A) UEP14bits; + +__sfr __at (0xF5B) UEP15; +volatile __UEP15bits_t __at (0xF5B) UEP15bits; + +__sfr __at (0xF5C) UIE; +volatile __UIEbits_t __at (0xF5C) UIEbits; + +__sfr __at (0xF5D) UEIE; +volatile __UEIEbits_t __at (0xF5D) UEIEbits; + +__sfr __at (0xF5E) UADDR; +volatile __UADDRbits_t __at (0xF5E) UADDRbits; + +__sfr __at (0xF5F) UCFG; +volatile __UCFGbits_t __at (0xF5F) UCFGbits; + +__sfr __at (0xF60) UFRM; + +__sfr __at (0xF60) UFRML; +volatile __UFRMLbits_t __at (0xF60) UFRMLbits; + +__sfr __at (0xF61) UFRMH; +volatile __UFRMHbits_t __at (0xF61) UFRMHbits; + +__sfr __at (0xF62) UIR; +volatile __UIRbits_t __at (0xF62) UIRbits; + +__sfr __at (0xF63) UEIR; +volatile __UEIRbits_t __at (0xF63) UEIRbits; + +__sfr __at (0xF64) USTAT; +volatile __USTATbits_t __at (0xF64) USTATbits; + +__sfr __at (0xF65) UCON; +volatile __UCONbits_t __at (0xF65) UCONbits; + +__sfr __at (0xF66) PMDIN1; + +__sfr __at (0xF66) PMDIN1L; + +__sfr __at (0xF67) PMDIN1H; + +__sfr __at (0xF68) PMADDR; + +__sfr __at (0xF68) PMADDRL; + +__sfr __at (0xF68) PMDOUT1; + +__sfr __at (0xF68) PMDOUT1L; + +__sfr __at (0xF69) PMADDRH; +volatile __PMADDRHbits_t __at (0xF69) PMADDRHbits; + +__sfr __at (0xF69) PMDOUT1H; + +__sfr __at (0xF6A) CMSTAT; +volatile __CMSTATbits_t __at (0xF6A) CMSTATbits; + +__sfr __at (0xF6A) CMSTATUS; +volatile __CMSTATUSbits_t __at (0xF6A) CMSTATUSbits; + +__sfr __at (0xF6B) SSP2CON2; +volatile __SSP2CON2bits_t __at (0xF6B) SSP2CON2bits; + +__sfr __at (0xF6C) SSP2CON1; +volatile __SSP2CON1bits_t __at (0xF6C) SSP2CON1bits; + +__sfr __at (0xF6D) SSP2STAT; +volatile __SSP2STATbits_t __at (0xF6D) SSP2STATbits; + +__sfr __at (0xF6E) SSP2ADD; + +__sfr __at (0xF6E) SSP2MSK; +volatile __SSP2MSKbits_t __at (0xF6E) SSP2MSKbits; + +__sfr __at (0xF6F) SSP2BUF; + +__sfr __at (0xF70) CCP5CON; +volatile __CCP5CONbits_t __at (0xF70) CCP5CONbits; + +__sfr __at (0xF71) CCPR5; + +__sfr __at (0xF71) CCPR5L; + +__sfr __at (0xF72) CCPR5H; + +__sfr __at (0xF73) CCP4CON; +volatile __CCP4CONbits_t __at (0xF73) CCP4CONbits; + +__sfr __at (0xF74) CCPR4; + +__sfr __at (0xF74) CCPR4L; + +__sfr __at (0xF75) CCPR4H; + +__sfr __at (0xF76) T4CON; +volatile __T4CONbits_t __at (0xF76) T4CONbits; + +__sfr __at (0xF77) CVRCON; +volatile __CVRCONbits_t __at (0xF77) CVRCONbits; + +__sfr __at (0xF77) PR4; + +__sfr __at (0xF78) TMR4; + +__sfr __at (0xF79) T3CON; +volatile __T3CONbits_t __at (0xF79) T3CONbits; + +__sfr __at (0xF7A) TMR3L; + +__sfr __at (0xF7B) TMR3H; + +__sfr __at (0xF7C) BAUDCON2; +volatile __BAUDCON2bits_t __at (0xF7C) BAUDCON2bits; + +__sfr __at (0xF7D) SPBRGH2; + +__sfr __at (0xF7E) BAUDCON; +volatile __BAUDCONbits_t __at (0xF7E) BAUDCONbits; + +__sfr __at (0xF7E) BAUDCON1; +volatile __BAUDCON1bits_t __at (0xF7E) BAUDCON1bits; + +__sfr __at (0xF7F) SPBRGH; + +__sfr __at (0xF7F) SPBRGH1; + +__sfr __at (0xF80) PORTA; +volatile __PORTAbits_t __at (0xF80) PORTAbits; + +__sfr __at (0xF81) PORTB; +volatile __PORTBbits_t __at (0xF81) PORTBbits; + +__sfr __at (0xF82) PORTC; +volatile __PORTCbits_t __at (0xF82) PORTCbits; + +__sfr __at (0xF83) PORTD; +volatile __PORTDbits_t __at (0xF83) PORTDbits; + +__sfr __at (0xF84) PORTE; +volatile __PORTEbits_t __at (0xF84) PORTEbits; + +__sfr __at (0xF85) PORTF; +volatile __PORTFbits_t __at (0xF85) PORTFbits; + +__sfr __at (0xF86) PORTG; +volatile __PORTGbits_t __at (0xF86) PORTGbits; + +__sfr __at (0xF87) PORTH; +volatile __PORTHbits_t __at (0xF87) PORTHbits; + +__sfr __at (0xF88) PORTJ; +volatile __PORTJbits_t __at (0xF88) PORTJbits; + +__sfr __at (0xF89) LATA; +volatile __LATAbits_t __at (0xF89) LATAbits; + +__sfr __at (0xF8A) LATB; +volatile __LATBbits_t __at (0xF8A) LATBbits; + +__sfr __at (0xF8B) LATC; +volatile __LATCbits_t __at (0xF8B) LATCbits; + +__sfr __at (0xF8C) LATD; +volatile __LATDbits_t __at (0xF8C) LATDbits; + +__sfr __at (0xF8D) LATE; +volatile __LATEbits_t __at (0xF8D) LATEbits; + +__sfr __at (0xF8E) LATF; +volatile __LATFbits_t __at (0xF8E) LATFbits; + +__sfr __at (0xF8F) LATG; +volatile __LATGbits_t __at (0xF8F) LATGbits; + +__sfr __at (0xF90) LATH; +volatile __LATHbits_t __at (0xF90) LATHbits; + +__sfr __at (0xF91) LATJ; +volatile __LATJbits_t __at (0xF91) LATJbits; + +__sfr __at (0xF92) DDRA; +volatile __DDRAbits_t __at (0xF92) DDRAbits; + +__sfr __at (0xF92) TRISA; +volatile __TRISAbits_t __at (0xF92) TRISAbits; + +__sfr __at (0xF93) DDRB; +volatile __DDRBbits_t __at (0xF93) DDRBbits; + +__sfr __at (0xF93) TRISB; +volatile __TRISBbits_t __at (0xF93) TRISBbits; + +__sfr __at (0xF94) DDRC; +volatile __DDRCbits_t __at (0xF94) DDRCbits; + +__sfr __at (0xF94) TRISC; +volatile __TRISCbits_t __at (0xF94) TRISCbits; + +__sfr __at (0xF95) DDRD; +volatile __DDRDbits_t __at (0xF95) DDRDbits; + +__sfr __at (0xF95) TRISD; +volatile __TRISDbits_t __at (0xF95) TRISDbits; + +__sfr __at (0xF96) DDRE; +volatile __DDREbits_t __at (0xF96) DDREbits; + +__sfr __at (0xF96) TRISE; +volatile __TRISEbits_t __at (0xF96) TRISEbits; + +__sfr __at (0xF97) DDRF; +volatile __DDRFbits_t __at (0xF97) DDRFbits; + +__sfr __at (0xF97) TRISF; +volatile __TRISFbits_t __at (0xF97) TRISFbits; + +__sfr __at (0xF98) DDRG; +volatile __DDRGbits_t __at (0xF98) DDRGbits; + +__sfr __at (0xF98) TRISG; +volatile __TRISGbits_t __at (0xF98) TRISGbits; + +__sfr __at (0xF99) DDRH; +volatile __DDRHbits_t __at (0xF99) DDRHbits; + +__sfr __at (0xF99) TRISH; +volatile __TRISHbits_t __at (0xF99) TRISHbits; + +__sfr __at (0xF9A) DDRJ; +volatile __DDRJbits_t __at (0xF9A) DDRJbits; + +__sfr __at (0xF9A) TRISJ; +volatile __TRISJbits_t __at (0xF9A) TRISJbits; + +__sfr __at (0xF9B) OSCTUNE; +volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits; + +__sfr __at (0xF9C) RCSTA2; +volatile __RCSTA2bits_t __at (0xF9C) RCSTA2bits; + +__sfr __at (0xF9D) PIE1; +volatile __PIE1bits_t __at (0xF9D) PIE1bits; + +__sfr __at (0xF9E) PIR1; +volatile __PIR1bits_t __at (0xF9E) PIR1bits; + +__sfr __at (0xF9F) IPR1; +volatile __IPR1bits_t __at (0xF9F) IPR1bits; + +__sfr __at (0xFA0) PIE2; +volatile __PIE2bits_t __at (0xFA0) PIE2bits; + +__sfr __at (0xFA1) PIR2; +volatile __PIR2bits_t __at (0xFA1) PIR2bits; + +__sfr __at (0xFA2) IPR2; +volatile __IPR2bits_t __at (0xFA2) IPR2bits; + +__sfr __at (0xFA3) PIE3; +volatile __PIE3bits_t __at (0xFA3) PIE3bits; + +__sfr __at (0xFA4) PIR3; +volatile __PIR3bits_t __at (0xFA4) PIR3bits; + +__sfr __at (0xFA5) IPR3; +volatile __IPR3bits_t __at (0xFA5) IPR3bits; + +__sfr __at (0xFA6) EECON1; +volatile __EECON1bits_t __at (0xFA6) EECON1bits; + +__sfr __at (0xFA7) EECON2; + +__sfr __at (0xFA8) TXSTA2; +volatile __TXSTA2bits_t __at (0xFA8) TXSTA2bits; + +__sfr __at (0xFA9) TXREG2; + +__sfr __at (0xFAA) RCREG2; + +__sfr __at (0xFAB) SPBRG2; + +__sfr __at (0xFAC) RCSTA; +volatile __RCSTAbits_t __at (0xFAC) RCSTAbits; + +__sfr __at (0xFAC) RCSTA1; +volatile __RCSTA1bits_t __at (0xFAC) RCSTA1bits; + +__sfr __at (0xFAD) TXSTA; +volatile __TXSTAbits_t __at (0xFAD) TXSTAbits; + +__sfr __at (0xFAD) TXSTA1; +volatile __TXSTA1bits_t __at (0xFAD) TXSTA1bits; + +__sfr __at (0xFAE) TXREG; + +__sfr __at (0xFAE) TXREG1; + +__sfr __at (0xFAF) RCREG; + +__sfr __at (0xFAF) RCREG1; + +__sfr __at (0xFB0) SPBRG; + +__sfr __at (0xFB0) SPBRG1; + +__sfr __at (0xFB1) CCP3CON; +volatile __CCP3CONbits_t __at (0xFB1) CCP3CONbits; + +__sfr __at (0xFB1) ECCP3CON; +volatile __ECCP3CONbits_t __at (0xFB1) ECCP3CONbits; + +__sfr __at (0xFB2) CCPR3; + +__sfr __at (0xFB2) CCPR3L; + +__sfr __at (0xFB3) CCPR3H; + +__sfr __at (0xFB4) ECCP3DEL; +volatile __ECCP3DELbits_t __at (0xFB4) ECCP3DELbits; + +__sfr __at (0xFB5) ECCP3AS; +volatile __ECCP3ASbits_t __at (0xFB5) ECCP3ASbits; + +__sfr __at (0xFB6) CCP2CON; +volatile __CCP2CONbits_t __at (0xFB6) CCP2CONbits; + +__sfr __at (0xFB6) ECCP2CON; +volatile __ECCP2CONbits_t __at (0xFB6) ECCP2CONbits; + +__sfr __at (0xFB7) CCPR2; + +__sfr __at (0xFB7) CCPR2L; + +__sfr __at (0xFB8) CCPR2H; + +__sfr __at (0xFB9) ECCP2DEL; +volatile __ECCP2DELbits_t __at (0xFB9) ECCP2DELbits; + +__sfr __at (0xFBA) ECCP2AS; +volatile __ECCP2ASbits_t __at (0xFBA) ECCP2ASbits; + +__sfr __at (0xFBB) CCP1CON; +volatile __CCP1CONbits_t __at (0xFBB) CCP1CONbits; + +__sfr __at (0xFBB) ECCP1CON; +volatile __ECCP1CONbits_t __at (0xFBB) ECCP1CONbits; + +__sfr __at (0xFBC) CCPR1; + +__sfr __at (0xFBC) CCPR1L; + +__sfr __at (0xFBD) CCPR1H; + +__sfr __at (0xFBE) ECCP1DEL; +volatile __ECCP1DELbits_t __at (0xFBE) ECCP1DELbits; + +__sfr __at (0xFBF) ECCP1AS; +volatile __ECCP1ASbits_t __at (0xFBF) ECCP1ASbits; + +__sfr __at (0xFC0) WDTCON; +volatile __WDTCONbits_t __at (0xFC0) WDTCONbits; + +__sfr __at (0xFC1) ADCON1; +volatile __ADCON1bits_t __at (0xFC1) ADCON1bits; + +__sfr __at (0xFC1) ANCON0; +volatile __ANCON0bits_t __at (0xFC1) ANCON0bits; + +__sfr __at (0xFC2) ADCON0; +volatile __ADCON0bits_t __at (0xFC2) ADCON0bits; + +__sfr __at (0xFC2) ANCON1; +volatile __ANCON1bits_t __at (0xFC2) ANCON1bits; + +__sfr __at (0xFC3) ADRES; + +__sfr __at (0xFC3) ADRESL; + +__sfr __at (0xFC4) ADRESH; + +__sfr __at (0xFC5) SSP1CON2; +volatile __SSP1CON2bits_t __at (0xFC5) SSP1CON2bits; + +__sfr __at (0xFC5) SSPCON2; +volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits; + +__sfr __at (0xFC6) SSP1CON1; +volatile __SSP1CON1bits_t __at (0xFC6) SSP1CON1bits; + +__sfr __at (0xFC6) SSPCON1; +volatile __SSPCON1bits_t __at (0xFC6) SSPCON1bits; + +__sfr __at (0xFC7) SSP1STAT; +volatile __SSP1STATbits_t __at (0xFC7) SSP1STATbits; + +__sfr __at (0xFC7) SSPSTAT; +volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits; + +__sfr __at (0xFC8) SSP1ADD; + +__sfr __at (0xFC8) SSP1MSK; + +__sfr __at (0xFC8) SSPADD; + +__sfr __at (0xFC9) SSP1BUF; + +__sfr __at (0xFC9) SSPBUF; + +__sfr __at (0xFCA) T2CON; +volatile __T2CONbits_t __at (0xFCA) T2CONbits; + +__sfr __at (0xFCB) MEMCON; +volatile __MEMCONbits_t __at (0xFCB) MEMCONbits; + +__sfr __at (0xFCB) PR2; + +__sfr __at (0xFCC) PADCFG1; +volatile __PADCFG1bits_t __at (0xFCC) PADCFG1bits; + +__sfr __at (0xFCC) TMR2; + +__sfr __at (0xFCD) ODCON3; +volatile __ODCON3bits_t __at (0xFCD) ODCON3bits; + +__sfr __at (0xFCD) T1CON; +volatile __T1CONbits_t __at (0xFCD) T1CONbits; + +__sfr __at (0xFCE) ODCON2; +volatile __ODCON2bits_t __at (0xFCE) ODCON2bits; + +__sfr __at (0xFCE) TMR1L; + +__sfr __at (0xFCF) ODCON1; +volatile __ODCON1bits_t __at (0xFCF) ODCON1bits; + +__sfr __at (0xFCF) TMR1H; + +__sfr __at (0xFD0) RCON; +volatile __RCONbits_t __at (0xFD0) RCONbits; + +__sfr __at (0xFD1) CM2CON; +volatile __CM2CONbits_t __at (0xFD1) CM2CONbits; + +__sfr __at (0xFD1) CM2CON1; +volatile __CM2CON1bits_t __at (0xFD1) CM2CON1bits; + +__sfr __at (0xFD2) CM1CON; +volatile __CM1CONbits_t __at (0xFD2) CM1CONbits; + +__sfr __at (0xFD2) CM1CON1; +volatile __CM1CON1bits_t __at (0xFD2) CM1CON1bits; + +__sfr __at (0xFD3) OSCCON; +volatile __OSCCONbits_t __at (0xFD3) OSCCONbits; + +__sfr __at (0xFD3) REFOCON; +volatile __REFOCONbits_t __at (0xFD3) REFOCONbits; + +__sfr __at (0xFD5) T0CON; +volatile __T0CONbits_t __at (0xFD5) T0CONbits; + +__sfr __at (0xFD6) TMR0L; + +__sfr __at (0xFD7) TMR0H; + +__sfr __at (0xFD8) STATUS; +volatile __STATUSbits_t __at (0xFD8) STATUSbits; + +__sfr __at (0xFD9) FSR2L; + +__sfr __at (0xFDA) FSR2H; + +__sfr __at (0xFDB) PLUSW2; + +__sfr __at (0xFDC) PREINC2; + +__sfr __at (0xFDD) POSTDEC2; + +__sfr __at (0xFDE) POSTINC2; + +__sfr __at (0xFDF) INDF2; + +__sfr __at (0xFE0) BSR; + +__sfr __at (0xFE1) FSR1L; + +__sfr __at (0xFE2) FSR1H; + +__sfr __at (0xFE3) PLUSW1; + +__sfr __at (0xFE4) PREINC1; + +__sfr __at (0xFE5) POSTDEC1; + +__sfr __at (0xFE6) POSTINC1; + +__sfr __at (0xFE7) INDF1; + +__sfr __at (0xFE8) WREG; + +__sfr __at (0xFE9) FSR0L; + +__sfr __at (0xFEA) FSR0H; + +__sfr __at (0xFEB) PLUSW0; + +__sfr __at (0xFEC) PREINC0; + +__sfr __at (0xFED) POSTDEC0; + +__sfr __at (0xFEE) POSTINC0; + +__sfr __at (0xFEF) INDF0; + +__sfr __at (0xFF0) INTCON3; +volatile __INTCON3bits_t __at (0xFF0) INTCON3bits; + +__sfr __at (0xFF1) INTCON2; +volatile __INTCON2bits_t __at (0xFF1) INTCON2bits; + +__sfr __at (0xFF2) INTCON; +volatile __INTCONbits_t __at (0xFF2) INTCONbits; + +__sfr __at (0xFF3) PROD; + +__sfr __at (0xFF3) PRODL; + +__sfr __at (0xFF4) PRODH; + +__sfr __at (0xFF5) TABLAT; + +__sfr __at (0xFF6) TBLPTR; + +__sfr __at (0xFF6) TBLPTRL; + +__sfr __at (0xFF7) TBLPTRH; + +__sfr __at (0xFF8) TBLPTRU; + +__sfr __at (0xFF9) PC; + +__sfr __at (0xFF9) PCL; + +__sfr __at (0xFFA) PCLATH; + +__sfr __at (0xFFB) PCLATU; + +__sfr __at (0xFFC) STKPTR; +volatile __STKPTRbits_t __at (0xFFC) STKPTRbits; + +__sfr __at (0xFFD) TOS; + +__sfr __at (0xFFD) TOSL; + +__sfr __at (0xFFE) TOSH; + +__sfr __at (0xFFF) TOSU; + + diff --git a/device/lib/pic16/libio/Makefile.am b/device/lib/pic16/libio/Makefile.am index 619e87f9..fd274e0a 100644 --- a/device/lib/pic16/libio/Makefile.am +++ b/device/lib/pic16/libio/Makefile.am @@ -38,6 +38,21 @@ libio18f2220_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f2220_a_SOURCES += usart/usartd.c libio18f2220_a_CFLAGS = -p18f2220 $(AM_CFLAGS) +lib_LIBRARIES += libio18f2221.a +libio18f2221_a_SOURCES = dummy.c +libio18f2221_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f2221_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f2221_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f2221_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f2221_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f2221_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f2221_a_SOURCES += i2c/i2cwrites.c +libio18f2221_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f2221_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f2221_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f2221_a_SOURCES += usart/usartd.c +libio18f2221_a_CFLAGS = -p18f2221 $(AM_CFLAGS) + lib_LIBRARIES += libio18f2320.a libio18f2320_a_SOURCES = dummy.c libio18f2320_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -76,6 +91,21 @@ libio18f2331_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f2331_a_SOURCES += usart/usartd.c libio18f2331_a_CFLAGS = -p18f2331 $(AM_CFLAGS) +lib_LIBRARIES += libio18f23k20.a +libio18f23k20_a_SOURCES = dummy.c +libio18f23k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f23k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f23k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f23k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f23k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f23k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f23k20_a_SOURCES += i2c/i2cwrites.c +libio18f23k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f23k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f23k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f23k20_a_SOURCES += usart/usartd.c +libio18f23k20_a_CFLAGS = -p18f23k20 $(AM_CFLAGS) + lib_LIBRARIES += libio18f2410.a libio18f2410_a_SOURCES = dummy.c libio18f2410_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -121,6 +151,21 @@ libio18f2420_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f2420_a_SOURCES += usart/usartd.c libio18f2420_a_CFLAGS = -p18f2420 $(AM_CFLAGS) +lib_LIBRARIES += libio18f2423.a +libio18f2423_a_SOURCES = dummy.c +libio18f2423_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f2423_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f2423_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f2423_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f2423_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f2423_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f2423_a_SOURCES += i2c/i2cwrites.c +libio18f2423_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f2423_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f2423_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f2423_a_SOURCES += usart/usartd.c +libio18f2423_a_CFLAGS = -p18f2423 $(AM_CFLAGS) + lib_LIBRARIES += libio18f2431.a libio18f2431_a_SOURCES = dummy.c libio18f2431_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c @@ -199,6 +244,36 @@ libio18f24j10_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f24j10_a_SOURCES += usart/usartd.c libio18f24j10_a_CFLAGS = -p18f24j10 $(AM_CFLAGS) +lib_LIBRARIES += libio18f24k20.a +libio18f24k20_a_SOURCES = dummy.c +libio18f24k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f24k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f24k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f24k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f24k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f24k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f24k20_a_SOURCES += i2c/i2cwrites.c +libio18f24k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f24k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f24k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f24k20_a_SOURCES += usart/usartd.c +libio18f24k20_a_CFLAGS = -p18f24k20 $(AM_CFLAGS) + +lib_LIBRARIES += libio18f2510.a +libio18f2510_a_SOURCES = dummy.c +libio18f2510_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f2510_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f2510_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f2510_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f2510_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f2510_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f2510_a_SOURCES += i2c/i2cwrites.c +libio18f2510_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f2510_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f2510_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f2510_a_SOURCES += usart/usartd.c +libio18f2510_a_CFLAGS = -p18f2510 $(AM_CFLAGS) + lib_LIBRARIES += libio18f2515.a libio18f2515_a_SOURCES = dummy.c libio18f2515_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -349,6 +424,21 @@ libio18f25j10_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f25j10_a_SOURCES += usart/usartd.c libio18f25j10_a_CFLAGS = -p18f25j10 $(AM_CFLAGS) +lib_LIBRARIES += libio18f25k20.a +libio18f25k20_a_SOURCES = dummy.c +libio18f25k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f25k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f25k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f25k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f25k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f25k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f25k20_a_SOURCES += i2c/i2cwrites.c +libio18f25k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f25k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f25k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f25k20_a_SOURCES += usart/usartd.c +libio18f25k20_a_CFLAGS = -p18f25k20 $(AM_CFLAGS) + lib_LIBRARIES += libio18f2610.a libio18f2610_a_SOURCES = dummy.c libio18f2610_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -424,6 +514,21 @@ libio18f2685_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f2685_a_SOURCES += usart/usartd.c libio18f2685_a_CFLAGS = -p18f2685 $(AM_CFLAGS) +lib_LIBRARIES += libio18f26k20.a +libio18f26k20_a_SOURCES = dummy.c +libio18f26k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f26k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f26k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f26k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f26k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f26k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f26k20_a_SOURCES += i2c/i2cwrites.c +libio18f26k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f26k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f26k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f26k20_a_SOURCES += usart/usartd.c +libio18f26k20_a_CFLAGS = -p18f26k20 $(AM_CFLAGS) + lib_LIBRARIES += libio18f4220.a libio18f4220_a_SOURCES = dummy.c libio18f4220_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -439,6 +544,21 @@ libio18f4220_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f4220_a_SOURCES += usart/usartd.c libio18f4220_a_CFLAGS = -p18f4220 $(AM_CFLAGS) +lib_LIBRARIES += libio18f4221.a +libio18f4221_a_SOURCES = dummy.c +libio18f4221_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f4221_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f4221_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f4221_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f4221_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f4221_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f4221_a_SOURCES += i2c/i2cwrites.c +libio18f4221_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f4221_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f4221_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f4221_a_SOURCES += usart/usartd.c +libio18f4221_a_CFLAGS = -p18f4221 $(AM_CFLAGS) + lib_LIBRARIES += libio18f4320.a libio18f4320_a_SOURCES = dummy.c libio18f4320_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -477,6 +597,21 @@ libio18f4331_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f4331_a_SOURCES += usart/usartd.c libio18f4331_a_CFLAGS = -p18f4331 $(AM_CFLAGS) +lib_LIBRARIES += libio18f43k20.a +libio18f43k20_a_SOURCES = dummy.c +libio18f43k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f43k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f43k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f43k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f43k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f43k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f43k20_a_SOURCES += i2c/i2cwrites.c +libio18f43k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f43k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f43k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f43k20_a_SOURCES += usart/usartd.c +libio18f43k20_a_CFLAGS = -p18f43k20 $(AM_CFLAGS) + lib_LIBRARIES += libio18f4410.a libio18f4410_a_SOURCES = dummy.c libio18f4410_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -522,6 +657,21 @@ libio18f4420_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f4420_a_SOURCES += usart/usartd.c libio18f4420_a_CFLAGS = -p18f4420 $(AM_CFLAGS) +lib_LIBRARIES += libio18f4423.a +libio18f4423_a_SOURCES = dummy.c +libio18f4423_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f4423_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f4423_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f4423_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f4423_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f4423_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f4423_a_SOURCES += i2c/i2cwrites.c +libio18f4423_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f4423_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f4423_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f4423_a_SOURCES += usart/usartd.c +libio18f4423_a_CFLAGS = -p18f4423 $(AM_CFLAGS) + lib_LIBRARIES += libio18f4431.a libio18f4431_a_SOURCES = dummy.c libio18f4431_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c @@ -600,6 +750,21 @@ libio18f44j10_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f44j10_a_SOURCES += usart/usartd.c libio18f44j10_a_CFLAGS = -p18f44j10 $(AM_CFLAGS) +lib_LIBRARIES += libio18f44k20.a +libio18f44k20_a_SOURCES = dummy.c +libio18f44k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f44k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f44k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f44k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f44k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f44k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f44k20_a_SOURCES += i2c/i2cwrites.c +libio18f44k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f44k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f44k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f44k20_a_SOURCES += usart/usartd.c +libio18f44k20_a_CFLAGS = -p18f44k20 $(AM_CFLAGS) + lib_LIBRARIES += libio18f4510.a libio18f4510_a_SOURCES = dummy.c libio18f4510_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -660,6 +825,21 @@ libio18f4520_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f4520_a_SOURCES += usart/usartd.c libio18f4520_a_CFLAGS = -p18f4520 $(AM_CFLAGS) +lib_LIBRARIES += libio18f4523.a +libio18f4523_a_SOURCES = dummy.c +libio18f4523_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f4523_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f4523_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f4523_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f4523_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f4523_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f4523_a_SOURCES += i2c/i2cwrites.c +libio18f4523_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f4523_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f4523_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f4523_a_SOURCES += usart/usartd.c +libio18f4523_a_CFLAGS = -p18f4523 $(AM_CFLAGS) + lib_LIBRARIES += libio18f4525.a libio18f4525_a_SOURCES = dummy.c libio18f4525_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -750,6 +930,21 @@ libio18f45j10_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f45j10_a_SOURCES += usart/usartd.c libio18f45j10_a_CFLAGS = -p18f45j10 $(AM_CFLAGS) +lib_LIBRARIES += libio18f45k20.a +libio18f45k20_a_SOURCES = dummy.c +libio18f45k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f45k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f45k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f45k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f45k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f45k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f45k20_a_SOURCES += i2c/i2cwrites.c +libio18f45k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f45k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f45k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f45k20_a_SOURCES += usart/usartd.c +libio18f45k20_a_CFLAGS = -p18f45k20 $(AM_CFLAGS) + lib_LIBRARIES += libio18f4610.a libio18f4610_a_SOURCES = dummy.c libio18f4610_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -825,6 +1020,21 @@ libio18f4685_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f4685_a_SOURCES += usart/usartd.c libio18f4685_a_CFLAGS = -p18f4685 $(AM_CFLAGS) +lib_LIBRARIES += libio18f46k20.a +libio18f46k20_a_SOURCES = dummy.c +libio18f46k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f46k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f46k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f46k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f46k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f46k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f46k20_a_SOURCES += i2c/i2cwrites.c +libio18f46k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f46k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f46k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f46k20_a_SOURCES += usart/usartd.c +libio18f46k20_a_CFLAGS = -p18f46k20 $(AM_CFLAGS) + lib_LIBRARIES += libio18f6520.a libio18f6520_a_SOURCES = dummy.c libio18f6520_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -855,6 +1065,21 @@ libio18f6585_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f6585_a_SOURCES += usart/usartd.c libio18f6585_a_CFLAGS = -p18f6585 $(AM_CFLAGS) +lib_LIBRARIES += libio18f65j50.a +libio18f65j50_a_SOURCES = dummy.c +libio18f65j50_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f65j50_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f65j50_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f65j50_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f65j50_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f65j50_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f65j50_a_SOURCES += i2c/i2cwrites.c +libio18f65j50_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f65j50_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f65j50_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f65j50_a_SOURCES += usart/usartd.c +libio18f65j50_a_CFLAGS = -p18f65j50 $(AM_CFLAGS) + lib_LIBRARIES += libio18f6620.a libio18f6620_a_SOURCES = dummy.c libio18f6620_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -885,6 +1110,36 @@ libio18f6680_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f6680_a_SOURCES += usart/usartd.c libio18f6680_a_CFLAGS = -p18f6680 $(AM_CFLAGS) +lib_LIBRARIES += libio18f66j50.a +libio18f66j50_a_SOURCES = dummy.c +libio18f66j50_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f66j50_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f66j50_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f66j50_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f66j50_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f66j50_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f66j50_a_SOURCES += i2c/i2cwrites.c +libio18f66j50_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f66j50_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f66j50_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f66j50_a_SOURCES += usart/usartd.c +libio18f66j50_a_CFLAGS = -p18f66j50 $(AM_CFLAGS) + +lib_LIBRARIES += libio18f66j55.a +libio18f66j55_a_SOURCES = dummy.c +libio18f66j55_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f66j55_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f66j55_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f66j55_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f66j55_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f66j55_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f66j55_a_SOURCES += i2c/i2cwrites.c +libio18f66j55_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f66j55_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f66j55_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f66j55_a_SOURCES += usart/usartd.c +libio18f66j55_a_CFLAGS = -p18f66j55 $(AM_CFLAGS) + lib_LIBRARIES += libio18f66j60.a libio18f66j60_a_SOURCES = dummy.c libio18f66j60_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -930,6 +1185,21 @@ libio18f6720_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f6720_a_SOURCES += usart/usartd.c libio18f6720_a_CFLAGS = -p18f6720 $(AM_CFLAGS) +lib_LIBRARIES += libio18f67j50.a +libio18f67j50_a_SOURCES = dummy.c +libio18f67j50_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f67j50_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f67j50_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f67j50_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f67j50_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f67j50_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f67j50_a_SOURCES += i2c/i2cwrites.c +libio18f67j50_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f67j50_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f67j50_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f67j50_a_SOURCES += usart/usartd.c +libio18f67j50_a_CFLAGS = -p18f67j50 $(AM_CFLAGS) + lib_LIBRARIES += libio18f67j60.a libio18f67j60_a_SOURCES = dummy.c libio18f67j60_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -975,6 +1245,21 @@ libio18f8585_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f8585_a_SOURCES += usart/usartd.c libio18f8585_a_CFLAGS = -p18f8585 $(AM_CFLAGS) +lib_LIBRARIES += libio18f85j50.a +libio18f85j50_a_SOURCES = dummy.c +libio18f85j50_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f85j50_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f85j50_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f85j50_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f85j50_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f85j50_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f85j50_a_SOURCES += i2c/i2cwrites.c +libio18f85j50_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f85j50_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f85j50_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f85j50_a_SOURCES += usart/usartd.c +libio18f85j50_a_CFLAGS = -p18f85j50 $(AM_CFLAGS) + lib_LIBRARIES += libio18f8620.a libio18f8620_a_SOURCES = dummy.c libio18f8620_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -1005,6 +1290,36 @@ libio18f8680_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f8680_a_SOURCES += usart/usartd.c libio18f8680_a_CFLAGS = -p18f8680 $(AM_CFLAGS) +lib_LIBRARIES += libio18f86j50.a +libio18f86j50_a_SOURCES = dummy.c +libio18f86j50_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f86j50_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f86j50_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f86j50_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f86j50_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f86j50_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f86j50_a_SOURCES += i2c/i2cwrites.c +libio18f86j50_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f86j50_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f86j50_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f86j50_a_SOURCES += usart/usartd.c +libio18f86j50_a_CFLAGS = -p18f86j50 $(AM_CFLAGS) + +lib_LIBRARIES += libio18f86j55.a +libio18f86j55_a_SOURCES = dummy.c +libio18f86j55_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f86j55_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f86j55_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f86j55_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f86j55_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f86j55_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f86j55_a_SOURCES += i2c/i2cwrites.c +libio18f86j55_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f86j55_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f86j55_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f86j55_a_SOURCES += usart/usartd.c +libio18f86j55_a_CFLAGS = -p18f86j55 $(AM_CFLAGS) + lib_LIBRARIES += libio18f86j60.a libio18f86j60_a_SOURCES = dummy.c libio18f86j60_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c @@ -1050,6 +1365,21 @@ libio18f8720_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c libio18f8720_a_SOURCES += usart/usartd.c libio18f8720_a_CFLAGS = -p18f8720 $(AM_CFLAGS) +lib_LIBRARIES += libio18f87j50.a +libio18f87j50_a_SOURCES = dummy.c +libio18f87j50_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +libio18f87j50_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +libio18f87j50_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +libio18f87j50_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +libio18f87j50_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +libio18f87j50_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +libio18f87j50_a_SOURCES += i2c/i2cwrites.c +libio18f87j50_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +libio18f87j50_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +libio18f87j50_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +libio18f87j50_a_SOURCES += usart/usartd.c +libio18f87j50_a_CFLAGS = -p18f87j50 $(AM_CFLAGS) + lib_LIBRARIES += libio18f87j60.a libio18f87j60_a_SOURCES = dummy.c libio18f87j60_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c diff --git a/device/lib/pic16/libio/adc/adcbusy.c b/device/lib/pic16/libio/adc/adcbusy.c index 9486da86..16362400 100644 --- a/device/lib/pic16/libio/adc/adcbusy.c +++ b/device/lib/pic16/libio/adc/adcbusy.c @@ -25,6 +25,9 @@ char adc_busy(void) __naked { +#if defined(__SDCC_ADC_STYLE65J50) + WDTCONbits.ADSHR = 0; /* access ADCON0/1 */ +#endif #if 0 return (ADCON0bits.GO); #else @@ -32,7 +35,9 @@ char adc_busy(void) __naked movlw 0x00 #if defined(__SDCC_ADC_STYLE242) btfsc _ADCON0bits, 2 -#elif defined(__SDCC_ADC_STYLE1220) || defined(__SDCC_ADC_STYLE2220) +#elif defined(__SDCC_ADC_STYLE1220) \ + || defined(__SDCC_ADC_STYLE2220) \ + || defined(__SDCC_ADC_STYLE65J50) btfsc _ADCON0bits, 1 #else /* unsupported ADC style */ #error Unsupported ADC style. diff --git a/device/lib/pic16/libio/adc/adcclose.c b/device/lib/pic16/libio/adc/adcclose.c index 9a287aae..9153fe0b 100644 --- a/device/lib/pic16/libio/adc/adcclose.c +++ b/device/lib/pic16/libio/adc/adcclose.c @@ -25,6 +25,9 @@ void adc_close(void) { +#if defined(__SDCC_ADC_STYLE65J50) + WDTCONbits.ADSHR = 0; /* access ADCON0/1 */ +#endif ADCON0bits.ADON = 0; PIE1bits.ADIE = 0; } diff --git a/device/lib/pic16/libio/adc/adcconv.c b/device/lib/pic16/libio/adc/adcconv.c index ded07227..cbbd8a83 100644 --- a/device/lib/pic16/libio/adc/adcconv.c +++ b/device/lib/pic16/libio/adc/adcconv.c @@ -25,6 +25,9 @@ void adc_conv(void) { +#if defined(__SDCC_ADC_STYLE65J50) + WDTCONbits.ADSHR = 0; /* access ADCON0/1 */ +#endif ADCON0bits.GO = 1; } diff --git a/device/lib/pic16/libio/adc/adcopen.c b/device/lib/pic16/libio/adc/adcopen.c index 846c8f0b..35beadd8 100644 --- a/device/lib/pic16/libio/adc/adcopen.c +++ b/device/lib/pic16/libio/adc/adcopen.c @@ -23,16 +23,24 @@ #include -/* parameters are: +/* + * parameters are: * channel: one of ADC_CHN_* - * fosc: one of ADC_FOSC_* - * pcfg: one of ADC_CFG_* (a bitmask with set bits denoting digital ports for 242-style) + * fosc: one of ADC_FOSC_* | ADC_ACQT_* | ADC_CAL + * pcfg: one of ADC_CFG_* (a bitmask with set bits denoting digital ports for 1220/65j50-style) * config: ADC_FRM_* | ADC_INT_* | ADC_VCFG_* */ +#if defined(__SDCC_ADC_STYLE65J50) +void adc_open(unsigned char channel, unsigned char fosc, unsigned int pcfg, unsigned char config) +#else void adc_open(unsigned char channel, unsigned char fosc, unsigned char pcfg, unsigned char config) +#endif { /* disable ADC */ +#if defined(__SDCC_ADC_STYLE65J50) + WDTCONbits.ADSHR = 0; /* access ADCON0/1 */ +#endif ADCON0 = 0; #if defined(__SDCC_ADC_STYLE242) @@ -51,6 +59,13 @@ void adc_open(unsigned char channel, unsigned char fosc, unsigned char pcfg, uns * but we retain compatibility for now ... */ ADCON1 = (pcfg & 0x3f) | (config & ADC_VCFG_AN3_AN2); ADCON2 = (ADCON2 & 0x38) | (fosc & 0x07) | (config & ADC_FRM_RJUST); +#elif defined(__SDCC_ADC_STYLE65J50) + WDTCONbits.ADSHR = 1; /* access ANCON0/1 */ + ANCON0 = pcfg; + ANCON1 = (pcfg >> 8); + WDTCONbits.ADSHR = 0; /* access ADCON0/1 */ + ADCON0 = ((channel & 0x0f) << 2) | ((config & ADC_VCFG_AN3_AN2) << 2); + ADCON1 = (config & ADC_FRM_RJUST) | (fosc & 0x7f); #else /* unsupported ADC style */ #error Unsupported ADC style. #endif diff --git a/device/lib/pic16/libio/adc/adcsetch.c b/device/lib/pic16/libio/adc/adcsetch.c index f61200a1..0daffb11 100644 --- a/device/lib/pic16/libio/adc/adcsetch.c +++ b/device/lib/pic16/libio/adc/adcsetch.c @@ -31,6 +31,9 @@ void adc_setchannel(unsigned char channel) ADCON0 = (ADCON0 & ~(0x07 << 2)) | ((channel & 0x07) << 2); #elif defined(__SDCC_ADC_STYLE2220) ADCON0 = (ADCON0 & ~(0x0f << 2)) | ((channel & 0x0f) << 2); +#elif defined(__SDCC_ADC_STYLE65J50) + WDTCONbits.ADSHR = 0; /* access ADCON0/1 */ + ADCON0 = (ADCON0 & ~(0x0f << 2)) | ((channel & 0x0f) << 2); #else /* unsupported ADC style */ #error Unsupported ADC style. #endif diff --git a/device/lib/pic16/pics.all b/device/lib/pic16/pics.all index 71b65cb5..1ff8ed9c 100644 --- a/device/lib/pic16/pics.all +++ b/device/lib/pic16/pics.all @@ -12,19 +12,21 @@ 1320 2220 -#2221 # not in gputils (2008-11-10) +2221 2320 2321 2331 +23k20 2410 2420 -#2423 # not in gputils (2008-11-10) +2423 2431 2450 2455 2480 24j10 -#2510 # gplib aborts: invalid rom width for selected processor (8) in "libdev18f2510_a-pic18f2510.o" (2008-11-10) +24k20 +2510 2515 2520 2523 @@ -33,56 +35,70 @@ 2580 2585 25j10 +25k20 2610 2620 2680 2682 2685 +26k20 4220 -#4221 # not in gputils (2008-11-10) +4221 4320 4321 4331 +43k20 4410 4420 -#4423 # not in gputils (2008-11-10) +4423 4431 4450 4455 4480 44j10 +44k20 4510 4515 4520 -#4523 # not in gputils (2008-11-10) +4523 4525 4550 4580 4585 45j10 +45k20 4610 4620 4680 4682 4685 +46k20 6520 6585 +65j50 6620 6680 +66j50 +66j55 66j60 66j65 6720 +67j50 67j60 8520 8585 +85j50 8620 8680 +86j50 +86j55 86j60 86j65 8720 +87j50 87j60 96j60 diff --git a/doc/sdccman.lyx b/doc/sdccman.lyx index e60f1343..95d34d9a 100644 --- a/doc/sdccman.lyx +++ b/doc/sdccman.lyx @@ -1,4 +1,4 @@ -#LyX 1.5.7 created this file. For more info see http://www.lyx.org/ +#LyX 1.5.6 created this file. For more info see http://www.lyx.org/ \lyxformat 276 \begin_document \begin_header @@ -22480,7 +22480,7 @@ name "heap (malloc)" \begin_layout Verse \family typewriter -sdcc -c _heap.c -D HEAD_SIZE=2048 +sdcc -c _heap.c -D HEAP_SIZE=2048 \end_layout \begin_layout Standard @@ -25745,31 +25745,45 @@ name "PIC" \end_layout \begin_layout Standard -18F: 2220, 2221, 2320, 2321, 2331, 2410, 2420, 2423, 2431, 2450, 2455, 2480, - 24j10 +18F: 2220, 2221, 2320, 2321, 2331, 23k20 \end_layout \begin_layout Standard -18F: (2510,) 2515, 2520, 2523, 2525, 2550, 2580, 2585, 25j10, 2610, 2620, - 2680, 2682, 2685 +18F: 2410, 2420, 2423, 2431, 2450, 2455, 2480, 24j10, 24k20 \end_layout \begin_layout Standard -18F: 4220, 4221, 4320, 4321, 4331, 4410, 4420, 4423, 4431, 4450, 4455, 4480, - 44j10 +18F: 2510, 2515, 2520, 2523, 2525, 2550, 2580, 2585, 25j10, 25k20 \end_layout \begin_layout Standard -18F: 4510, 4515, 4520, 4523, 4525, 4550, 4580, 4585, 45j10, 4610, 4620, - 4680, 4682, 4685 +18F: 2610, 2620, 2680, 2682, 2685 \end_layout \begin_layout Standard -18F: 6520, 6585, 6620, 6680, 66j60, 66j65, 6720, 67j60 +18F: 4220, 4221, 4320, 4321, 4331, 43k20 \end_layout \begin_layout Standard -18F: 8520, 8585, 8620, 8680, 86j60, 86j65, 8720, 87j60 +18F: 4410, 4420, 4423, 4431, 4450, 4455, 4480, 44j10, 44k20 +\end_layout + +\begin_layout Standard +18F: 4510, 4515, 4520, 4523, 4525, 4550, 4580, 4585, 45j10, 45k20 +\end_layout + +\begin_layout Standard +18F: 4610, 4620, 4680, 4682, 4685, 46k20 +\end_layout + +\begin_layout Standard +18F: 6520, 6585, 65j50, 6620, 6680, 66j50, 66j55, 66j60, 66j65, 6720, 67j50, + 67j60 +\end_layout + +\begin_layout Standard +18F: 8520, 8585, 85j50, 8620, 8680, 86j50, 86j55, 86j60, 86j65, 8720, 87j50, + 87j60 \end_layout \begin_layout Standard -- 2.30.2