# 1 "ts_actions.c"
# 1 "X:\\902001_4K_ROVCameraDevelopment\\Software\\cameracontrol\\TopSideController.X"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "ts_actions.c"
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdio.h" 1 3 4







# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/features.h" 1 3 4
# 9 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdio.h" 2 3 4
# 22 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdio.h" 3 4
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 1 3 4






typedef __builtin_va_list va_list;




typedef __builtin_va_list __isoc_va_list;
# 195 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 3 4
typedef unsigned int size_t;
# 236 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 3 4
typedef int ssize_t;
# 427 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 3 4
typedef long long off_t;
# 597 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 3 4
typedef struct _IO_FILE FILE;
# 23 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdio.h" 2 3 4
# 50 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdio.h" 3 4
typedef union _G_fpos64_t {
 char __opaque[16];
 double __align;
} fpos_t;

extern FILE *const *_stdout;
extern FILE *const *_stderr;
extern FILE *const *_stdin;





FILE *fopen(const char *restrict, const char *restrict);
FILE *freopen(const char *restrict, const char *restrict, FILE *restrict);
int fclose(FILE *);

int remove(const char *);
int rename(const char *, const char *);

int feof(FILE *);
int ferror(FILE *);
int fflush(FILE *);
void clearerr(FILE *);

int fseek(FILE *, long, int);
long ftell(FILE *);
void rewind(FILE *);

int fgetpos(FILE *restrict, fpos_t *restrict);
int fsetpos(FILE *, const fpos_t *);

size_t fread(void *restrict, size_t, size_t, FILE *restrict);
size_t fwrite(const void *restrict, size_t, size_t, FILE *restrict);

int fgetc(FILE *);
int getc(FILE *);
int getchar(void);
int ungetc(int, FILE *);

int fputc(int, FILE *);
int putc(int, FILE *);
int putchar(int);

char *fgets(char *restrict, int, FILE *restrict);

char *gets(char *);


int fputs(const char *restrict, FILE *restrict);
int puts(const char *);

int printf(const char *restrict, ...);
int fprintf(FILE *restrict, const char *restrict, ...);
int sprintf(char *restrict, const char *restrict, ...);
int snprintf(char *restrict, size_t, const char *restrict, ...);

int vprintf(const char *restrict, __isoc_va_list);
int vfprintf(FILE *restrict, const char *restrict, __isoc_va_list);
int vsprintf(char *restrict, const char *restrict, __isoc_va_list);
int vsnprintf(char *restrict, size_t, const char *restrict, __isoc_va_list);

int scanf(const char *restrict, ...);
int fscanf(FILE *restrict, const char *restrict, ...);
int sscanf(const char *restrict, const char *restrict, ...);
int vscanf(const char *restrict, __isoc_va_list);
int vfscanf(FILE *restrict, const char *restrict, __isoc_va_list);
int vsscanf(const char *restrict, const char *restrict, __isoc_va_list);

void perror(const char *);

int setvbuf(FILE *restrict, char *restrict, int, size_t);
void setbuf(FILE *restrict, char *restrict);

char *tmpnam(char *);
FILE *tmpfile(void);




FILE *fmemopen(void *restrict, size_t, const char *restrict);
FILE *fdopen(int, const char *);
int fileno(FILE *);
int fseeko(FILE *, off_t, int);
off_t ftello(FILE *);
int getc_unlocked(FILE *);
int getchar_unlocked(void);
int putc_unlocked(int, FILE *);
int putchar_unlocked(int);






char *tempnam(const char *, const char *);



void setbuffer(FILE *, char *, size_t);
void setlinebuf(FILE *f);
int fgetc_unlocked(FILE *);
int fputc_unlocked(int, FILE *);
int fflush_unlocked(FILE *);
size_t fread_unlocked(void *, size_t, size_t, FILE *);
size_t fwrite_unlocked(const void *, size_t, size_t, FILE *);
int feof_unlocked(FILE *);
int ferror_unlocked(FILE *);
int fileno_unlocked(FILE *);
int asprintf(char **, const char *, ...);
int vasprintf(char **, const char *, __isoc_va_list);
# 2 "ts_actions.c" 2
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdlib.h" 1 3 4
# 19 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdlib.h" 3 4
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 1 3 4
# 32 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 3 4
typedef short unsigned int wchar_t;
# 20 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdlib.h" 2 3 4

int atoi (const char *);
long atol (const char *);
long long atoll (const char *);
double atof (const char *);

float strtof (const char *restrict, char **restrict);
double strtod (const char *restrict, char **restrict);
long double strtold (const char *restrict, char **restrict);

long strtol (const char *restrict, char **restrict, int);
unsigned long strtoul (const char *restrict, char **restrict, int);
long long strtoll (const char *restrict, char **restrict, int);
unsigned long long strtoull (const char *restrict, char **restrict, int);

int rand (void);
void srand (unsigned);

void *malloc (size_t);
void *calloc (size_t, size_t);
void *realloc (void *, size_t);
void free (void *);
void *aligned_alloc(size_t, size_t);

__attribute__((__noreturn__)) void abort (void);
int atexit (void (*) (void));
__attribute__((__noreturn__)) void exit (int);
__attribute__((__noreturn__)) void _Exit (int);
int at_quick_exit (void (*) (void));
__attribute__((__noreturn__)) void quick_exit (int);

char *getenv (const char *);

int system (const char *);

void *bsearch (const void *, const void *, size_t, size_t, int (*)(const void *, const void *));
void qsort (void *, size_t, size_t, int (*)(const void *, const void *));

int abs (int);
long labs (long);
long long llabs (long long);

typedef struct { int quot, rem; } div_t;
typedef struct { long quot, rem; } ldiv_t;
typedef struct { long long quot, rem; } lldiv_t;

div_t div (int, int);
ldiv_t ldiv (long, long);
lldiv_t lldiv (long long, long long);

int mblen (const char *, size_t);
int mbtowc (wchar_t *restrict, const char *restrict, size_t);
int wctomb (char *, wchar_t);
size_t mbstowcs (wchar_t *restrict, const char *restrict, size_t);
size_t wcstombs (char *restrict, const wchar_t *restrict, size_t);




size_t __ctype_get_mb_cur_max(void);
# 99 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdlib.h" 3 4
int posix_memalign (void **, size_t, size_t);
int setenv (const char *, const char *, int);
int unsetenv (const char *);
int mkstemp (char *);
int mkostemp (char *, int);
char *mkdtemp (char *);
int getsubopt (char **, char *const *, char **);
int rand_r (unsigned *);






char *realpath (const char *restrict, char *restrict);
long int random (void);
void srandom (unsigned int);
char *initstate (unsigned int, char *, size_t);
char *setstate (char *);
int putenv (char *);
int posix_openpt (int);
int grantpt (int);
int unlockpt (int);
char *ptsname (int);
char *l64a (long);
long a64l (const char *);
void setkey (const char *);
double drand48 (void);
double erand48 (unsigned short [3]);
long int lrand48 (void);
long int nrand48 (unsigned short [3]);
long mrand48 (void);
long jrand48 (unsigned short [3]);
void srand48 (long);
unsigned short *seed48 (unsigned short [3]);
void lcong48 (unsigned short [7]);



# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/alloca.h" 1 3 4
# 9 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/alloca.h" 3 4
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 1 3 4
# 10 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/alloca.h" 2 3 4

void *alloca(size_t);
# 139 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdlib.h" 2 3 4
char *mktemp (char *);
int mkstemps (char *, int);
int mkostemps (char *, int, int);
void *valloc (size_t);
void *memalign(size_t, size_t);
int getloadavg(double *, int);
int clearenv(void);
# 3 "ts_actions.c" 2
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/string.h" 1 3 4
# 23 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/string.h" 3 4
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 1 3 4
# 609 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 3 4
typedef struct __locale_struct * locale_t;
# 24 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/string.h" 2 3 4

void *memcpy (void *restrict, const void *restrict, size_t);
void *memmove (void *, const void *, size_t);
void *memset (void *, int, size_t);
int memcmp (const void *, const void *, size_t);
void *memchr (const void *, int, size_t);

char *strcpy (char *restrict, const char *restrict);
char *strncpy (char *restrict, const char *restrict, size_t);

char *strcat (char *restrict, const char *restrict);
char *strncat (char *restrict, const char *restrict, size_t);

int strcmp (const char *, const char *);
int strncmp (const char *, const char *, size_t);

int strcoll (const char *, const char *);
size_t strxfrm (char *restrict, const char *restrict, size_t);

char *strchr (const char *, int);
char *strrchr (const char *, int);

size_t strcspn (const char *, const char *);
size_t strspn (const char *, const char *);
char *strpbrk (const char *, const char *);
char *strstr (const char *, const char *);
char *strtok (char *restrict, const char *restrict);

size_t strlen (const char *);

char *strerror (int);




char *strtok_r (char *restrict, const char *restrict, char **restrict);
int strerror_r (int, char *, size_t);
char *stpcpy(char *restrict, const char *restrict);
char *stpncpy(char *restrict, const char *restrict, size_t);
size_t strnlen (const char *, size_t);
char *strdup (const char *);
char *strndup (const char *, size_t);
char *strsignal(int);
char *strerror_l (int, locale_t);
int strcoll_l (const char *, const char *, locale_t);
size_t strxfrm_l (char *restrict, const char *restrict, size_t, locale_t);




void *memccpy (void *restrict, const void *restrict, int, size_t);



char *strsep(char **, const char *);
size_t strlcat (char *, const char *, size_t);
size_t strlcpy (char *, const char *, size_t);
# 4 "ts_actions.c" 2

# 1 "UART.h" 1






# 1 "config.h" 1
# 8 "UART.h" 2
# 29 "UART.h"
void InitU1(void);
void InitU2(void);
int putU1( int c);
void putsU1(char *s);
char getU1(void);

int putU2( int c);
void putsU2(char *s);
char getU2(void);

int u2GetByte(unsigned char* b);
int u2PutByte(unsigned char b);
int u2PutString(char* buff);

int u2GetRxOverFlow();
void u2ClrRxOverFlow();
# 6 "ts_actions.c" 2
# 1 "extern.h" 1







# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 1 3 4
# 41 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/math.h" 1 3 4







# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdint.h" 1 3 4
# 20 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdint.h" 3 4
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 1 3 4
# 144 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 3 4
typedef signed char int8_t;




typedef signed int int16_t;




typedef signed long int int32_t;




typedef signed long long int int64_t;




typedef long long int intmax_t;




typedef unsigned char uint8_t;




typedef unsigned int uint16_t;




typedef unsigned long int uint32_t;




typedef unsigned long long int uint64_t;




typedef unsigned long long int uintmax_t;
# 215 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 3 4
typedef unsigned int uintptr_t;
# 249 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 3 4
typedef int intptr_t;
# 21 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdint.h" 2 3 4

typedef signed int int_fast8_t;
typedef signed int int_fast16_t;
typedef signed long int int_fast24_t;
typedef signed long int int_fast32_t;
typedef signed long long int int_fast64_t;

typedef signed char int_least8_t;
typedef signed int int_least16_t;
typedef signed long int int_least24_t;
typedef signed long int int_least32_t;
typedef signed long long int int_least64_t;

typedef unsigned int uint_fast8_t;
typedef unsigned int uint_fast16_t;
typedef unsigned long int uint_fast24_t;
typedef unsigned long int uint_fast32_t;
typedef unsigned long long int uint_fast64_t;

typedef unsigned char uint_least8_t;
typedef unsigned int uint_least16_t;
typedef unsigned long int uint_least24_t;
typedef unsigned long int uint_least32_t;
typedef unsigned long long int uint_least64_t;
# 128 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdint.h" 3 4
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/stdint.h" 1 3 4
# 129 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stdint.h" 2 3 4
# 9 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/math.h" 2 3 4




# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 1 3 4
# 47 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 3 4
typedef float float_t;




typedef double double_t;
# 14 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/math.h" 2 3 4
# 40 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/math.h" 3 4
int __fpclassify(double);
int __fpclassifyf(float);
int __fpclassifyl(long double);

static inline uint32_t __FLOAT_BITS(float __f)
{
 union {float __f; uint32_t __i;} __u;
 __u.__f = __f;
 return __u.__i;
}
static inline uint64_t __LONG_DOUBLE_BITS(long double __f)
{
 union {long double __f; uint64_t __i;} __u;
 __u.__f = __f;
 return __u.__i;
}
# 77 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/math.h" 3 4
int __signbit(double);
int __signbitf(float);
int __signbitl(long double);
# 91 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/math.h" 3 4
static inline int __islessf(float_t __x, float_t __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x < __y; }
static inline int __isless(double_t __x, double_t __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x < __y; }
static inline int __islessl(long double __x, long double __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x < __y; }
static inline int __islessequalf(float_t __x, float_t __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x <= __y; }
static inline int __islessequal(double_t __x, double_t __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x <= __y; }
static inline int __islessequall(long double __x, long double __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x <= __y; }
static inline int __islessgreaterf(float_t __x, float_t __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x != __y; }
static inline int __islessgreater(double_t __x, double_t __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x != __y; }
static inline int __islessgreaterl(long double __x, long double __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x != __y; }
static inline int __isgreaterf(float_t __x, float_t __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x > __y; }
static inline int __isgreater(double_t __x, double_t __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x > __y; }
static inline int __isgreaterl(long double __x, long double __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x > __y; }
static inline int __isgreaterequalf(float_t __x, float_t __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x >= __y; }
static inline int __isgreaterequal(double_t __x, double_t __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x >= __y; }
static inline int __isgreaterequall(long double __x, long double __y) { return !(( sizeof((__x)) == sizeof(float) ? (__FLOAT_BITS((__x)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__x)) & -1ULL>>1) > 0x7ffULL<<52 ) ? ((void)(__y),1) : ( sizeof((__y)) == sizeof(float) ? (__FLOAT_BITS((__y)) & 0x7fffffff) > 0x7f800000 : (__LONG_DOUBLE_BITS((__y)) & -1ULL>>1) > 0x7ffULL<<52 )) && __x >= __y; }
# 181 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/math.h" 3 4
float acosf(float);
float acoshf(float);
float asinf(float);
float asinhf(float);
float atanf(float);
float atan2f(float, float);
float atanhf(float);
float cbrtf(float);
float ceilf(float);
float copysignf(float, float);
float cosf(float);
float coshf(float);
float erff(float);
float erfcf(float);
float expf(float);
float exp2f(float);
float expm1f(float);
float fabsf(float);
float fdimf(float, float);
float floorf(float);
float fmaf(float, float, float);
float fmaxf(float, float);
float fminf(float, float);
float fmodf(float, float);
float frexpf(float, int *);
float hypotf(float, float);
float ldexpf(float, int);
float lgammaf(float);
float logf(float);
float log10f(float);
float log1pf(float);
float log2f(float);
float logbf(float);






float modff(float, void *);




float nanf(const char *);
float nearbyintf(float);
float nextafterf(float, float);
float nexttowardf(float, long double);
float powf(float, float);
float remainderf(float, float);
float remquof(float, float, int *);
float rintf(float);
float roundf(float);
float scalblnf(float, long);
float scalbnf(float, int);
float sinf(float);
float sinhf(float);
float sqrtf(float);
float tanf(float);
float tanhf(float);
float tgammaf(float);
float truncf(float);
int ilogbf(float);
long long llrintf(float);
long long llroundf(float);
long lrintf(float);
long lroundf(float);







long double acosl(long double);
long double acoshl(long double);
long double asinl(long double);
long double asinhl(long double);
long double atanl(long double);
long double atan2l(long double, long double);
long double atanhl(long double);
long double cbrtl(long double);
long double ceill(long double);
long double copysignl(long double, long double);
long double cosl(long double);
long double coshl(long double);
long double erfl(long double);
long double erfcl(long double);
long double expl(long double);
long double exp2l(long double);
long double expm1l(long double);
long double fabsl(long double);
long double fdiml(long double, long double);
long double floorl(long double);
long double fmal(long double, long double, long double);
long double fmaxl(long double, long double);
long double fminl(long double, long double);
long double fmodl(long double, long double);
long double frexpl(long double, int *);
long double hypotl(long double, long double);
int ilogbl(long double);
long double ldexpl(long double, int);
long double lgammal(long double);
long long llrintl(long double);
long long llroundl(long double);
long double logl(long double);
long double log10l(long double);
long double log1pl(long double);
long double log2l(long double);
long double logbl(long double);
long lrintl(long double);
long lroundl(long double);
long double modfl(long double, long double *);
long double nanl(const char *);
long double nearbyintl(long double);
long double nextafterl(long double, long double);
long double nexttowardl(long double, long double);
long double powl(long double, long double);
long double remainderl(long double, long double);
long double remquol(long double, long double, int *);
long double rintl(long double);
long double roundl(long double);
long double scalblnl(long double, long);
long double scalbnl(long double, int);
long double sinl(long double);
long double sinhl(long double);
long double sqrtl(long double);
long double tanl(long double);
long double tanhl(long double);
long double tgammal(long double);
long double truncl(long double);
# 334 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/math.h" 3 4
extern int signgam;

double j0(double);
double j1(double);
double jn(int, double);

double y0(double);
double y1(double);
double yn(int, double);





double drem(double, double);
float dremf(float, float);

int finite(double);
int finitef(float);

double scalb(double, double);
float scalbf(float, float);

double significand(double);
float significandf(float);

double lgamma_r(double, int*);
float lgammaf_r(float, int*);

float j0f(float);
float j1f(float);
float jnf(int, float);

float y0f(float);
float y1f(float);
float ynf(int, float);
# 42 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 2 3 4
# 92 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
typedef int fractional;



typedef struct {
  fractional real;
  fractional imag;
} fractcomplex;
# 131 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern fractional Float2Fract (
   float aVal
);
extern float Fract2Float (
   fractional aVal
);
# 220 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern fractional VectorMax (



   int numElems,
   fractional* srcV,
   int* maxIndex


);



extern fractional VectorMin (



   int numElems,
   fractional* srcV,
   int* minIndex


);



extern fractional* VectorCopy (





   int numElems,
   fractional* dstV,
   fractional* srcV


);



extern fractional* VectorZeroPad (





   int numElems,
   int numZeros,
   fractional* dstV,
   fractional* srcV


);



extern fractional* VectorNegate (


   int numElems,
   fractional* dstV,
   fractional* srcV


);



extern fractional* VectorScale (


   int numElems,
   fractional* dstV,
   fractional* srcV,
   fractional sclVal


);



extern fractional* VectorAdd (




   int numElems,
   fractional* dstV,
   fractional* srcV1,
   fractional* srcV2


);



extern fractional* VectorSubtract (




   int numElems,
   fractional* dstV,
   fractional* srcV1,
   fractional* srcV2


);



extern fractional* VectorMultiply (




   int numElems,
   fractional* dstV,
   fractional* srcV1,
   fractional* srcV2


);



extern fractional VectorDotProduct (



   int numElems,
   fractional* srcV1,
   fractional* srcV2


);



extern fractional VectorPower (


   int numElems,
   fractional* srcV


);



extern fractional* VectorConvolve (

   int numElems1,
   int numElems2,

   fractional* dstV,

   fractional* srcV1,
   fractional* srcV2


);



extern fractional* VectorCorrelate (

   int numElems1,
   int numElems2,

   fractional* dstV,

   fractional* srcV1,
   fractional* srcV2


);
# 439 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern fractional* BartlettInit (


   int numElems,
   fractional* window


);



extern fractional* BlackmanInit (


   int numElems,
   fractional* window


);



extern fractional* HammingInit (


   int numElems,
   fractional* window


);



extern fractional* HanningInit (


   int numElems,
   fractional* window


);



extern fractional* KaiserInit (


   int numElems,
   fractional* window,
   float betaVal


);



extern fractional* VectorWindow (



   int numElems,
   fractional* dstV,
   fractional* srcV,
   fractional* window


);
# 601 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern fractional* MatrixScale (


   int numRows,
   int numCols,
   fractional* dstM,
   fractional* srcM,
   fractional sclVal


);



extern fractional* MatrixTranspose (


   int numRows,
   int numCols,
   fractional* dstM,
   fractional* srcM


);



float* MatrixInvert (


   int numRowsCols,

   float* dstM,
   float* srcM,
   float* pivotFlag,
   int* swappedRows,
   int* swappedCols






);



extern fractional* MatrixAdd (




   int numRows,
   int numCols,
   fractional* dstM,
   fractional* srcM1,
   fractional* srcM2


);



extern fractional* MatrixSubtract (




   int numRows,
   int numCols,
   fractional* dstM,
   fractional* srcM1,
   fractional* srcM2


);



extern fractional* MatrixMultiply (







   int numRows1,
   int numCols1Rows2,

   int numCols2,
   fractional* dstM,
   fractional* srcM1,
   fractional* srcM2


);
# 754 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
typedef struct {
   int numCoeffs;



   fractional* coeffsBase;
# 771 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
   fractional* coeffsEnd;






   int coeffsPage;




   fractional* delayBase;






   fractional* delayEnd;

   fractional* delay;
} FIRStruct;


extern void FIRStructInit (
   FIRStruct* FIRFilter,
   int numCoeffs,



   fractional* coeffsBase,
# 814 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
   int coeffsPage,




   fractional* delayBase
# 828 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
);


extern void FIRDelayInit (
   FIRStruct* filter


);


extern void FIRInterpDelayInit (

   FIRStruct* filter,
   int rate
);


extern fractional* FIR (
   int numSamps,
   fractional* dstSamps,

   fractional* srcSamps,

   FIRStruct* filter
# 860 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
);


extern fractional* FIRDecimate (
   int numSamps,

   fractional* dstSamps,

   fractional* srcSamps,

   FIRStruct* filter,





   int rate


);


extern fractional* FIRInterpolate (
   int numSamps,

   fractional* dstSamps,

   fractional* srcSamps,

   FIRStruct* filter,




   int rate


);


extern fractional* FIRLattice (
   int numSamps,
   fractional* dstSamps,

   fractional* srcSamps,

   FIRStruct* filter
# 915 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
);

extern fractional* FIRLMS (
# 927 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
   int numSamps,
   fractional* dstSamps,

   fractional* srcSamps,

   FIRStruct* filter,






   fractional* refSamps,

   fractional muVal


);

extern fractional* FIRLMSNorm (
# 963 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
   int numSamps,
   fractional* dstSamps,

   fractional* srcSamps,

   FIRStruct* filter,






   fractional* refSamps,

   fractional muVal,
   fractional* energyEstimate






);
# 1048 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
typedef struct {
  int numSectionsLess1;

  fractional* coeffsBase;




  int coeffsPage;


  fractional* delayBase;


  fractional initialGain;
  int finalShift;






} IIRCanonicStruct;

extern fractional* IIRCanonic (

   int numSamps,
   fractional* dstSamps,

   fractional* srcSamps,

   IIRCanonicStruct* filter


);

extern void IIRCanonicInit (
   IIRCanonicStruct* filter
);



typedef struct {
  int numSectionsLess1;

  fractional* coeffsBase;




  int coeffsPage;


  fractional* delayBase1;


  fractional* delayBase2;


  int finalShift;





} IIRTransposedStruct;

extern fractional* IIRTransposed (

   int numSamps,
   fractional* dstSamps,

   fractional* srcSamps,

   IIRTransposedStruct* filter


);

extern void IIRTransposedInit (
   IIRTransposedStruct* filter
);



typedef struct {
   int order;

   fractional* kappaVals;


   fractional* gammaVals;



   int coeffsPage;


   fractional* delay;


} IIRLatticeStruct;

extern fractional* IIRLattice (
   int numSamps,
   fractional* dstSamps,

   fractional* srcSamps,

   IIRLatticeStruct* filter


);

extern void IIRLatticeInit (
   IIRLatticeStruct* filter
);
# 1219 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern fractcomplex* TwidFactorInit (



   int log2N,



   fractcomplex* twidFactors,
   int conjFlag
# 1237 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
);



extern fractcomplex* BitReverseComplex (

   int log2N,
   fractcomplex* srcCV



);
# 1275 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern fractcomplex* FFTComplex (

   int log2N,
   fractcomplex* dstCV,



   fractcomplex* srcCV,


   fractcomplex* twidFactors,







   int factPage
# 1303 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
);
# 1329 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern fractcomplex* FFTComplexIP (

   int log2N,
   fractcomplex* srcCV,


   fractcomplex* twidFactors,







   int factPage
# 1353 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
);
# 1379 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern fractcomplex* IFFTComplex (

   int log2N,
   fractcomplex* dstCV,
   fractcomplex* srcCV,



   fractcomplex* twidFactors,







   int factPage
# 1404 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
);
# 1430 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern fractcomplex* IFFTComplexIP (

   int log2N,
   fractcomplex* srcCV,



   fractcomplex* twidFactors,







   int factPage
# 1454 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
);



extern long toneGen32b(
  int samp,
  int tone,
  int phase,
  long *tfBuff
);



extern void BitReverseReal32bIP(
  int N,
  long *ipBuff
);
# 1496 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern long* FFTReal32bIP(
   int log2N,
   int N,
   long *ipBuff,
   long *tfBuf,
   int factPage
);
# 1528 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern long* FFTReal32b(
   int log2N,
   int N,
   long *opBuff,
   long *ipBuff,
   long *tfBuf,
   int factPage
);
# 1561 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern void FFTComplex32bIP(
  int log2N,
  long *ipBuff,
  long *tfBuff,
  int factPage
);
# 1592 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern void realFft32bIP(
  int log2N,
  long *ipBuff,
  long *tfBuff,
  int factPage
);
# 1623 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern long* IFFTReal32bIP(
   int log2N,
   int N,
   long *ipBuff,
   long *tfBuf,
   int factPage
);
# 1655 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern long* IFFTReal32b(
   int log2N,
   int N,
   long *opBuff,
   long *ipBuff,
   long *tfBuf,
   int factPage
);
# 1688 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern void IFFTComplex32bIP(
  int log2N,
  long *ipBuff,
  long *tfBuff,
  int factPage
);
# 1719 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern void realiFft32bIP(
  int log2N,
  long *ipBuff,
  long *tfBuff,
  int factPage
);



extern void MagnitudeCplx32bIP(
  int N,
  long *ipBuff
);



extern fractcomplex* CosFactorInit (



   int log2N,



   fractcomplex* cosFactors




);
# 1774 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern fractional* DCT (

   int log2N,
   fractional* dstV,


   fractional* srcV,

   fractcomplex* cosFactors,
# 1793 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
   fractcomplex* twidFactors,
# 1805 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
   int factPage
# 1819 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
);
# 1845 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern fractional* DCTIP (

   int log2N,
   fractional* srcV,


   fractcomplex* cosFactors,
# 1862 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
   fractcomplex* twidFactors,
# 1874 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
   int factPage
# 1888 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
);



extern fractional* SquareMagnitudeCplx (
   int numelems,
   fractcomplex* srcV,
   fractional* dstV







);



typedef struct {
        fractional* abcCoefficients;


        fractional* controlHistory;

        fractional controlOutput;
        fractional measuredOutput;
        fractional controlReference;
} tPID;



extern void PIDCoeffCalc(
        fractional* kCoeffs,
        tPID* controller
);



extern void PIDInit (
        tPID* controller
);




extern fractional* PID (
        tPID* controller
);
# 1947 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/dsp.h" 3 4
extern void SetStackGuard (
   unsigned int stackGuard
);
# 9 "extern.h" 2

# 1 "../CommonCode/types.h" 1
# 12 "../CommonCode/types.h"
struct BottomStatusBits {
    unsigned int AftWaterAlarm : 1;
    unsigned int FwdWaterAlarm : 1;
    unsigned int ZoomExtendState : 1;
    unsigned int CameraPowerState : 1;
    unsigned int LaserPowerState : 1;
    unsigned int OverTemperatureState : 1;
};

typedef union
{
    unsigned int word;
    struct BottomStatusBits bitfields;
} BOTTOM_STATUS;

struct TopStatusBits {
    unsigned int ZoomExtendRequest : 1;
    unsigned int CameraPowerRequest : 1;
    unsigned int LaserPowerRequest : 1;

    unsigned int JoystickReversalRequest : 1;
    unsigned int JoystickSensitivityRequest : 1;
    unsigned int PortLightRequest : 1;
    unsigned int StbdLightRequest : 1;
    unsigned int PortCamRequest : 1;
    unsigned int StbdCamRequest : 1;

};

typedef union
{
    unsigned int word;
    struct TopStatusBits bitfields;
} TOP_STATUS;


typedef struct tagBottomToTopDataPacket {
    unsigned int preamble;
    unsigned int CameraTemp;
    float FocusFollow;
    float ZoomFollow;
    float Humidity;
    float Pressure;
    BOTTOM_STATUS status;
    unsigned int crc;
} BottomToTopDataPacket;

typedef struct tagTopToBottomDataPacket {
    unsigned int preamble;
    signed int FocusTarget;
    signed int ZoomRateTarget;
    TOP_STATUS status;
    unsigned int crc;
} TopToBottomDataPacket;



typedef struct tagGainScalingAndLimits {
    int GainScaleFactor;
    int LowerActuatorLimit;
    int UpperActuatorLimit;
    int LowerLimitActive;
    int UpperLimitActive;
} tGSAL;

typedef struct tagCmdRepScalingAndLimits {
    int Value;
    int LowerLimit;
    int UpperLimit;
} tCRSAL;
# 11 "extern.h" 2
# 1 "../CommonCode/pl_interp.h" 1
# 36 "../CommonCode/pl_interp.h"
typedef struct pl_interp {
    unsigned int N;
    int X[16];
    int Y[16];
    long Slope[16];
} PL_Interp;


void pl_interp_init(PL_Interp *s,int N, int *X, int *Y);
int pl_interp(PL_Interp *s,int x);
# 12 "extern.h" 2





extern volatile TopToBottomDataPacket SerialDataOut;
extern volatile BottomToTopDataPacket SerialDataIn_A;
extern volatile BottomToTopDataPacket SerialDataIn_B;
extern volatile BottomToTopDataPacket *SerialDataIn;

extern volatile BottomToTopDataPacket FakeBottomSidePacket;

extern volatile unsigned int CentiSecCtr;


extern tPID *PIDptr;
extern volatile fractional *kCoeffs;
extern int raw;

extern volatile unsigned char SPI1_DataOut[4];
extern volatile unsigned char SPI2_DataOut[4];

extern volatile signed int Zoom_Rocker;
extern volatile signed int Focus_Slider;

extern PL_Interp Zoom_interp;
extern PL_Interp Focus_interp;

extern volatile int DimmerCtr;

extern volatile fractional kCoeffs_ChanA[];
extern volatile fractional kCoeffs_ChanB[];


extern volatile float f_time;

extern unsigned int BufferA[32*2] __attribute__((space(dma),aligned(64)));
extern unsigned int BufferB[32*2] __attribute__((space(dma),aligned(64)));

extern unsigned int SPIBufferA[2] __attribute__((space(dma)));
extern unsigned int SPIBufferB[2] __attribute__((space(dma)));


extern tPID ChanA_PID;
extern tPID ChanB_PID;


extern tGSAL ChanA_GSAL;
extern tGSAL ChanB_GSAL;

extern volatile TOP_STATUS top_status;



extern volatile BOTTOM_STATUS bottom_status;





extern volatile fractional ADC_JoyStk_X[32];
extern volatile fractional ADC_JoyStk_Y[32];


extern volatile fractional JoyStk_X;
extern volatile fractional JoyStk_Y;

extern FIRStruct Inner_Filter;

extern volatile int MeasStatus;


extern volatile int iTemp1;
extern volatile int iTemp2;
extern volatile int iTemp3;
extern volatile int iTemp4;

extern int echoMode;


extern int camOutput;
extern int envOutput;
extern int ptbOutput;


extern unsigned char npLedState;

extern int tsDebugOutput;
# 7 "ts_actions.c" 2
# 1 "ts_actions.h" 1
# 10 "ts_actions.h"
int actGetCmd(char* s);
int actSetCmd(char* s);
int actClrCmd(char* s);
int actHelpCmd(char* s);
int actResetCmd(char* s);
int actNpOnCmd(char* s);
int actNpOffCmd(char* s);
int actCamOnCmd(char* s);
int actCamOffCmd(char* s);
int actEnvOnCmd(char* s);
int actEnvOffCmd(char* s);
int actPtbOnCmd(char* s);
int actPtbOffCmd(char* s);
int actEchoOnCmd(char* s);
int actEchoOffCmd(char* s);
int actTsDebugOnCmd(char* s);
int actTsDebugOffCmd(char* s);

int actLedOutputCmd(char* s);
int actHelloKittyCmd(char* s);


int actGetHumCmd(char* s);


int actSetStubCmd(char* s);


int actClrStubCmd(char* s);
# 8 "ts_actions.c" 2

# 1 "../CommonCode/i2c.h" 1
# 15 "../CommonCode/i2c.h"
# 1 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\generic\\h/xc.h" 1 3 4
# 43 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\generic\\h/xc.h" 3 4
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/builtins.h" 1 3 4
# 44 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/builtins.h" 3 4
void __builtin_write_OSCCONL(
        uint16_t);
void __builtin_write_OSCCONH(
        uint16_t);
void __builtin_write_DISICNT(
        uint16_t);
void __builtin_write_NVM(
        void);
void __builtin_write_CRYOTP(
        void);
void __builtin_write_DATAFLASH(
        void);
void __builtin_write_NVM_secure(
        uint16_t,
        uint16_t);
void __builtin_write_DATAFLASH_secure(
        uint16_t,
        uint16_t);
void __builtin_write_RTCWEN(
        void);
void __builtin_write_RTCC_WRLOCK(
        void);
void __builtin_write_PWMSFR(
        volatile uint16_t *,
        uint16_t,
        volatile uint16_t *);
void __builtin_write_RPCON(
        uint16_t);
uint16_t __builtin_readsfr(
        volatile void *);
void __builtin_writesfr(
        volatile void *,
        uint16_t);

uint16_t __builtin_edspage();
uint16_t __builtin_tblpage();
uint16_t __builtin_edsoffset();
uint16_t __builtin_dataflashoffset();
uint16_t __builtin_tbloffset();
uint16_t __builtin_psvpage();
uint16_t __builtin_psvoffset();
uint16_t __builtin_dmaoffset();
uint16_t __builtin_dmapage();
uint32_t __builtin_tbladdress();

void __builtin_nop(
        void);
int16_t __builtin_divsd(
        const int32_t,
        const int16_t);
int16_t __builtin_modsd(
        const int32_t,
        const int16_t);
int16_t __builtin_divmodsd(
        const int32_t,
        const int16_t,
        int16_t *);
uint16_t __builtin_divud(
        const uint32_t,
        const uint16_t);
uint16_t __builtin_modud(
        const uint32_t,
        const uint16_t);
uint16_t __builtin_divmodud(
        const uint32_t,
        const uint16_t,
        uint16_t *);
uint16_t __builtin_divf(
        uint16_t,
        uint16_t);
int32_t __builtin_mulss(
        const int16_t,
        const int16_t);
uint32_t __builtin_muluu(
        const uint16_t,
        const uint16_t);
int32_t __builtin_mulsu(
        const int16_t,
        const uint16_t);
int32_t __builtin_mulus(
        const uint16_t,
        const int16_t);
void __builtin_btg(
        uint16_t *,
        const uint16_t);
int16_t __builtin_addab(
        int16_t,
        int16_t);
int16_t __builtin_add(
        int16_t,
        int16_t,
        int16_t);
int16_t __builtin_clr(
        void);
int16_t __builtin_clr_prefetch(
        int16_t * *,
        int16_t *,
        int16_t,
        int16_t * *,
        int16_t *,
        int16_t,
        int16_t *,
        int16_t);
int16_t __builtin_ed(
        int16_t,
        int16_t * *,
        int16_t,
        int16_t * *,
        int16_t,
        int16_t *);
int16_t __builtin_edac(
        int16_t,
        int16_t,
        int16_t * *,
        int16_t,
        int16_t * *,
        int16_t,
        int16_t *);
int16_t __builtin_fbcl(
        int16_t);
int16_t __builtin_lac(
        int16_t,
        int16_t);
int16_t __builtin_lacd(
        int32_t,
        int16_t);
int16_t __builtin_mac(
        int16_t,
        int16_t,
        int16_t,
        int16_t * *,
        int16_t *,
        int16_t,
        int16_t * *,
        int16_t *,
        int16_t,
        int16_t *,
        int16_t);
void __builtin_movsac(
        int16_t * *,
        int16_t *,
        int16_t,
        int16_t * *,
        int16_t *,
        int16_t,
        int16_t *,
        int16_t);
int16_t __builtin_mpy(
        int16_t,
        int16_t,
        int16_t * *,
        int16_t *,
        int16_t,
        int16_t * *,
        int16_t *,
        int16_t);
int16_t __builtin_mpyn(
        int16_t,
        int16_t,
        int16_t * *,
        int16_t *,
        int16_t,
        int16_t * *,
        int16_t *,
        int16_t);
int16_t __builtin_msc(
        int16_t,
        int16_t,
        int16_t,
        int16_t * *,
        int16_t *,
        int16_t,
        int16_t * *,
        int16_t *,
        int16_t,
        int16_t *,
        int16_t);
int16_t __builtin_sac(
        int16_t,
        int16_t);
int32_t __builtin_sacd(
        int16_t,
        int16_t);
int16_t __builtin_sacr(
        int16_t,
        int16_t);
int16_t __builtin_sftac(
        int16_t,
        int16_t);
int16_t __builtin_subab(
        int16_t,
        int16_t);
int16_t __builtin_ACCL(
        int16_t);
int16_t __builtin_ACCH(
        int16_t);
int16_t __builtin_ACCU(
        int16_t);
uint16_t __builtin_tblrdl(
        uint16_t);
uint16_t __builtin_tblrdh(
        uint16_t);
unsigned char __builtin_tblrdhb(
        uint16_t);
unsigned char __builtin_tblrdlb(
        uint16_t);
void __builtin_tblwtl(
        uint16_t,
        uint16_t);
void __builtin_tblwth(
        uint16_t,
        uint16_t);
void __builtin_tblwtlb(
        uint16_t,
        unsigned char);
void __builtin_tblwthb(
        uint16_t,
        unsigned char);
void __builtin_disi(
        int16_t);
uint32_t __builtin_section_begin(
        const char *);
uint32_t __builtin_section_size(
        const char *);
uint32_t __builtin_section_end(
        const char *);
uint16_t __builtin_get_isr_state(
        void);
void __builtin_set_isr_state(
        uint16_t);
void __builtin_disable_interrupts(
        void);
void __builtin_enable_interrupts(
        void);
void __builtin_software_breakpoint(
        void);

uint16_t __builtin_addr_low();
uint16_t __builtin_addr_high();
uint32_t __builtin_addr();

void __builtin_pwrsav(
        uint16_t);
void __builtin_clrwdt(
        void);
void _Static_assert(
        uint16_t,
        const char *);
uint16_t __builtin_ff1l(
        uint16_t);
uint16_t __builtin_ff1r(
        uint16_t);
uint16_t __builtin_swap(
        uint16_t);
unsigned char __builtin_swap_byte(
        unsigned char);
int16_t __builtin_flim(
        int16_t,
        int16_t,
        int16_t);
int16_t __builtin_flim_excess(
        int16_t,
        int16_t,
        int16_t,
        int16_t *);
int16_t __builtin_flimv_excess(
        int16_t,
        int16_t,
        int16_t,
        int16_t *);
int16_t __builtin_min(
        int16_t,
        int16_t);
int16_t __builtin_max(
        int16_t,
        int16_t);
int16_t __builtin_min_excess(
        int16_t,
        int16_t,
        int16_t *);
int16_t __builtin_minv_excess(
        int16_t,
        int16_t,
        int16_t *);
int16_t __builtin_max_excess(
        int16_t,
        int16_t,
        int16_t *);
int16_t __builtin_maxv_excess(
        int16_t,
        int16_t,
        int16_t *);
# 44 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\generic\\h/xc.h" 2 3 4
# 416 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\generic\\h/xc.h" 3 4
# 1 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 1 3 4
# 56 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern volatile uint16_t WREG0 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG1 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG2 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG3 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG4 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG5 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG6 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG7 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG8 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG9 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG10 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG11 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG12 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG13 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG14 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t WREG15 __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t SPLIM __attribute__((__sfr__));

extern volatile uint16_t ACCAL __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t ACCAH __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint8_t ACCAU __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t ACCBL __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t ACCBH __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint8_t ACCBU __attribute__((__sfr__,__deprecated__,__unsafe__));

extern volatile uint16_t PCL __attribute__((__sfr__));

extern volatile uint8_t PCH __attribute__((__sfr__));

extern volatile uint8_t TBLPAG __attribute__((__sfr__));

extern volatile uint8_t PSVPAG __attribute__((__sfr__));

extern volatile uint16_t RCOUNT __attribute__((__sfr__));

extern volatile uint16_t DCOUNT __attribute__((__sfr__));

extern volatile uint16_t DOSTARTL __attribute__((__sfr__));

extern volatile uint16_t DOSTARTH __attribute__((__sfr__));

extern volatile uint16_t DOENDL __attribute__((__sfr__));

extern volatile uint16_t DOENDH __attribute__((__sfr__));

extern volatile uint16_t SR __attribute__((__sfr__));
__extension__ typedef struct tagSRBITS {
  union {
    struct {
      uint16_t C:1;
      uint16_t Z:1;
      uint16_t OV:1;
      uint16_t N:1;
      uint16_t RA:1;
      uint16_t IPL:3;
      uint16_t DC:1;
      uint16_t DA:1;
      uint16_t SAB:1;
      uint16_t OAB:1;
      uint16_t SB:1;
      uint16_t SA:1;
      uint16_t OB:1;
      uint16_t OA:1;
    };
    struct {
      uint16_t :5;
      uint16_t IPL0:1;
      uint16_t IPL1:1;
      uint16_t IPL2:1;
    };
  };
} SRBITS;
extern volatile SRBITS SRbits __attribute__((__sfr__));


extern volatile uint16_t CORCON __attribute__((__sfr__));
__extension__ typedef struct tagCORCONBITS {
  union {
    struct {
      uint16_t IF:1;
      uint16_t RND:1;
      uint16_t PSV:1;
      uint16_t IPL3:1;
      uint16_t ACCSAT:1;
      uint16_t SATDW:1;
      uint16_t SATB:1;
      uint16_t SATA:1;
      uint16_t DL:3;
      uint16_t EDT:1;
      uint16_t US:1;
    };
    struct {
      uint16_t :8;
      uint16_t DL0:1;
      uint16_t DL1:1;
      uint16_t DL2:1;
    };
  };
} CORCONBITS;
extern volatile CORCONBITS CORCONbits __attribute__((__sfr__));


extern volatile uint16_t MODCON __attribute__((__sfr__));
__extension__ typedef struct tagMODCONBITS {
  union {
    struct {
      uint16_t XWM:4;
      uint16_t YWM:4;
      uint16_t BWM:4;
      uint16_t :2;
      uint16_t YMODEN:1;
      uint16_t XMODEN:1;
    };
    struct {
      uint16_t XWM0:1;
      uint16_t XWM1:1;
      uint16_t XWM2:1;
      uint16_t XWM3:1;
      uint16_t YWM0:1;
      uint16_t YWM1:1;
      uint16_t YWM2:1;
      uint16_t YWM3:1;
      uint16_t BWM0:1;
      uint16_t BWM1:1;
      uint16_t BWM2:1;
      uint16_t BWM3:1;
    };
  };
} MODCONBITS;
extern volatile MODCONBITS MODCONbits __attribute__((__sfr__));


extern volatile uint16_t XMODSRT __attribute__((__sfr__));

extern volatile uint16_t XMODEND __attribute__((__sfr__));

extern volatile uint16_t YMODSRT __attribute__((__sfr__));

extern volatile uint16_t YMODEND __attribute__((__sfr__));

extern volatile uint16_t XBREV __attribute__((__sfr__));
__extension__ typedef struct tagXBREVBITS {
  union {
    struct {
      uint16_t XB:15;
      uint16_t BREN:1;
    };
    struct {
      uint16_t XB0:1;
      uint16_t XB1:1;
      uint16_t XB2:1;
      uint16_t XB3:1;
      uint16_t XB4:1;
      uint16_t XB5:1;
      uint16_t XB6:1;
      uint16_t XB7:1;
      uint16_t XB8:1;
      uint16_t XB9:1;
      uint16_t XB10:1;
      uint16_t XB11:1;
      uint16_t XB12:1;
      uint16_t XB13:1;
      uint16_t XB14:1;
    };
  };
} XBREVBITS;
extern volatile XBREVBITS XBREVbits __attribute__((__sfr__));


extern volatile uint16_t DISICNT __attribute__((__sfr__));

extern volatile uint16_t CNEN1 __attribute__((__sfr__));
typedef struct tagCNEN1BITS {
  uint16_t CN0IE:1;
  uint16_t CN1IE:1;
  uint16_t CN2IE:1;
  uint16_t CN3IE:1;
  uint16_t CN4IE:1;
  uint16_t CN5IE:1;
  uint16_t CN6IE:1;
  uint16_t CN7IE:1;
  uint16_t CN8IE:1;
  uint16_t CN9IE:1;
  uint16_t CN10IE:1;
  uint16_t CN11IE:1;
  uint16_t CN12IE:1;
  uint16_t CN13IE:1;
  uint16_t CN14IE:1;
  uint16_t CN15IE:1;
} CNEN1BITS;
extern volatile CNEN1BITS CNEN1bits __attribute__((__sfr__));


extern volatile uint16_t CNEN2 __attribute__((__sfr__));
typedef struct tagCNEN2BITS {
  uint16_t CN16IE:1;
  uint16_t CN17IE:1;
  uint16_t CN18IE:1;
  uint16_t CN19IE:1;
  uint16_t CN20IE:1;
  uint16_t CN21IE:1;
  uint16_t CN22IE:1;
  uint16_t CN23IE:1;
} CNEN2BITS;
extern volatile CNEN2BITS CNEN2bits __attribute__((__sfr__));


extern volatile uint16_t CNPU1 __attribute__((__sfr__));
typedef struct tagCNPU1BITS {
  uint16_t CN0PUE:1;
  uint16_t CN1PUE:1;
  uint16_t CN2PUE:1;
  uint16_t CN3PUE:1;
  uint16_t CN4PUE:1;
  uint16_t CN5PUE:1;
  uint16_t CN6PUE:1;
  uint16_t CN7PUE:1;
  uint16_t CN8PUE:1;
  uint16_t CN9PUE:1;
  uint16_t CN10PUE:1;
  uint16_t CN11PUE:1;
  uint16_t CN12PUE:1;
  uint16_t CN13PUE:1;
  uint16_t CN14PUE:1;
  uint16_t CN15PUE:1;
} CNPU1BITS;
extern volatile CNPU1BITS CNPU1bits __attribute__((__sfr__));


extern volatile uint16_t CNPU2 __attribute__((__sfr__));
typedef struct tagCNPU2BITS {
  uint16_t CN16PUE:1;
  uint16_t CN17PUE:1;
  uint16_t CN18PUE:1;
  uint16_t CN19PUE:1;
  uint16_t CN20PUE:1;
  uint16_t CN21PUE:1;
  uint16_t CN22PUE:1;
  uint16_t CN23PUE:1;
} CNPU2BITS;
extern volatile CNPU2BITS CNPU2bits __attribute__((__sfr__));


extern volatile uint16_t INTCON1 __attribute__((__sfr__));
typedef struct tagINTCON1BITS {
  uint16_t :1;
  uint16_t OSCFAIL:1;
  uint16_t STKERR:1;
  uint16_t ADDRERR:1;
  uint16_t MATHERR:1;
  uint16_t DMACERR:1;
  uint16_t DIV0ERR:1;
  uint16_t SFTACERR:1;
  uint16_t COVTE:1;
  uint16_t OVBTE:1;
  uint16_t OVATE:1;
  uint16_t COVBERR:1;
  uint16_t COVAERR:1;
  uint16_t OVBERR:1;
  uint16_t OVAERR:1;
  uint16_t NSTDIS:1;
} INTCON1BITS;
extern volatile INTCON1BITS INTCON1bits __attribute__((__sfr__));


extern volatile uint16_t INTCON2 __attribute__((__sfr__));
typedef struct tagINTCON2BITS {
  uint16_t INT0EP:1;
  uint16_t INT1EP:1;
  uint16_t INT2EP:1;
  uint16_t INT3EP:1;
  uint16_t INT4EP:1;
  uint16_t :9;
  uint16_t DISI:1;
  uint16_t ALTIVT:1;
} INTCON2BITS;
extern volatile INTCON2BITS INTCON2bits __attribute__((__sfr__));


extern volatile uint16_t IFS0 __attribute__((__sfr__));
typedef struct tagIFS0BITS {
  uint16_t INT0IF:1;
  uint16_t IC1IF:1;
  uint16_t OC1IF:1;
  uint16_t T1IF:1;
  uint16_t DMA0IF:1;
  uint16_t IC2IF:1;
  uint16_t OC2IF:1;
  uint16_t T2IF:1;
  uint16_t T3IF:1;
  uint16_t SPI1EIF:1;
  uint16_t SPI1IF:1;
  uint16_t U1RXIF:1;
  uint16_t U1TXIF:1;
  uint16_t AD1IF:1;
  uint16_t DMA1IF:1;
} IFS0BITS;
extern volatile IFS0BITS IFS0bits __attribute__((__sfr__));


extern volatile uint16_t IFS1 __attribute__((__sfr__));
__extension__ typedef struct tagIFS1BITS {
  union {
    struct {
      uint16_t SI2C1IF:1;
      uint16_t MI2C1IF:1;
      uint16_t :1;
      uint16_t CNIF:1;
      uint16_t INT1IF:1;
      uint16_t AD2IF:1;
      uint16_t IC7IF:1;
      uint16_t IC8IF:1;
      uint16_t DMA2IF:1;
      uint16_t OC3IF:1;
      uint16_t OC4IF:1;
      uint16_t T4IF:1;
      uint16_t T5IF:1;
      uint16_t INT2IF:1;
      uint16_t U2RXIF:1;
      uint16_t U2TXIF:1;
    };
    struct {
      uint16_t SI2CIF:1;
    };
  };
} IFS1BITS;
extern volatile IFS1BITS IFS1bits __attribute__((__sfr__));


extern volatile uint16_t IFS2 __attribute__((__sfr__));
typedef struct tagIFS2BITS {
  uint16_t SPI2EIF:1;
  uint16_t SPI2IF:1;
  uint16_t C1RXIF:1;
  uint16_t C1IF:1;
  uint16_t DMA3IF:1;
  uint16_t IC3IF:1;
  uint16_t IC4IF:1;
  uint16_t IC5IF:1;
  uint16_t IC6IF:1;
  uint16_t OC5IF:1;
  uint16_t OC6IF:1;
  uint16_t OC7IF:1;
  uint16_t OC8IF:1;
  uint16_t :1;
  uint16_t DMA4IF:1;
  uint16_t T6IF:1;
} IFS2BITS;
extern volatile IFS2BITS IFS2bits __attribute__((__sfr__));


extern volatile uint16_t IFS3 __attribute__((__sfr__));
typedef struct tagIFS3BITS {
  uint16_t T7IF:1;
  uint16_t SI2C2IF:1;
  uint16_t MI2C2IF:1;
  uint16_t T8IF:1;
  uint16_t T9IF:1;
  uint16_t INT3IF:1;
  uint16_t INT4IF:1;
  uint16_t C2RXIF:1;
  uint16_t C2IF:1;
  uint16_t PWMIF:1;
  uint16_t QEIIF:1;
  uint16_t :2;
  uint16_t DMA5IF:1;
  uint16_t :1;
  uint16_t FLTAIF:1;
} IFS3BITS;
extern volatile IFS3BITS IFS3bits __attribute__((__sfr__));


extern volatile uint16_t IFS4 __attribute__((__sfr__));
typedef struct tagIFS4BITS {
  uint16_t FLTBIF:1;
  uint16_t U1EIF:1;
  uint16_t U2EIF:1;
  uint16_t :1;
  uint16_t DMA6IF:1;
  uint16_t DMA7IF:1;
  uint16_t C1TXIF:1;
  uint16_t C2TXIF:1;
} IFS4BITS;
extern volatile IFS4BITS IFS4bits __attribute__((__sfr__));


extern volatile uint16_t IEC0 __attribute__((__sfr__));
typedef struct tagIEC0BITS {
  uint16_t INT0IE:1;
  uint16_t IC1IE:1;
  uint16_t OC1IE:1;
  uint16_t T1IE:1;
  uint16_t DMA0IE:1;
  uint16_t IC2IE:1;
  uint16_t OC2IE:1;
  uint16_t T2IE:1;
  uint16_t T3IE:1;
  uint16_t SPI1EIE:1;
  uint16_t SPI1IE:1;
  uint16_t U1RXIE:1;
  uint16_t U1TXIE:1;
  uint16_t AD1IE:1;
  uint16_t DMA1IE:1;
} IEC0BITS;
extern volatile IEC0BITS IEC0bits __attribute__((__sfr__));


extern volatile uint16_t IEC1 __attribute__((__sfr__));
__extension__ typedef struct tagIEC1BITS {
  union {
    struct {
      uint16_t SI2C1IE:1;
      uint16_t MI2C1IE:1;
      uint16_t :1;
      uint16_t CNIE:1;
      uint16_t INT1IE:1;
      uint16_t AD2IE:1;
      uint16_t IC7IE:1;
      uint16_t IC8IE:1;
      uint16_t DMA2IE:1;
      uint16_t OC3IE:1;
      uint16_t OC4IE:1;
      uint16_t T4IE:1;
      uint16_t T5IE:1;
      uint16_t INT2IE:1;
      uint16_t U2RXIE:1;
      uint16_t U2TXIE:1;
    };
    struct {
      uint16_t SI2CIE:1;
    };
  };
} IEC1BITS;
extern volatile IEC1BITS IEC1bits __attribute__((__sfr__));


extern volatile uint16_t IEC2 __attribute__((__sfr__));
typedef struct tagIEC2BITS {
  uint16_t SPI2EIE:1;
  uint16_t SPI2IE:1;
  uint16_t C1RXIE:1;
  uint16_t C1IE:1;
  uint16_t DMA3IE:1;
  uint16_t IC3IE:1;
  uint16_t IC4IE:1;
  uint16_t IC5IE:1;
  uint16_t IC6IE:1;
  uint16_t OC5IE:1;
  uint16_t OC6IE:1;
  uint16_t OC7IE:1;
  uint16_t OC8IE:1;
  uint16_t :1;
  uint16_t DMA4IE:1;
  uint16_t T6IE:1;
} IEC2BITS;
extern volatile IEC2BITS IEC2bits __attribute__((__sfr__));


extern volatile uint16_t IEC3 __attribute__((__sfr__));
typedef struct tagIEC3BITS {
  uint16_t T7IE:1;
  uint16_t SI2C2IE:1;
  uint16_t MI2C2IE:1;
  uint16_t T8IE:1;
  uint16_t T9IE:1;
  uint16_t INT3IE:1;
  uint16_t INT4IE:1;
  uint16_t C2RXIE:1;
  uint16_t C2IE:1;
  uint16_t PWMIE:1;
  uint16_t QEIIE:1;
  uint16_t :2;
  uint16_t DMA5IE:1;
  uint16_t :1;
  uint16_t FLTAIE:1;
} IEC3BITS;
extern volatile IEC3BITS IEC3bits __attribute__((__sfr__));


extern volatile uint16_t IEC4 __attribute__((__sfr__));
typedef struct tagIEC4BITS {
  uint16_t FLTBIE:1;
  uint16_t U1EIE:1;
  uint16_t U2EIE:1;
  uint16_t :1;
  uint16_t DMA6IE:1;
  uint16_t DMA7IE:1;
  uint16_t C1TXIE:1;
  uint16_t C2TXIE:1;
} IEC4BITS;
extern volatile IEC4BITS IEC4bits __attribute__((__sfr__));


extern volatile uint16_t IPC0 __attribute__((__sfr__));
__extension__ typedef struct tagIPC0BITS {
  union {
    struct {
      uint16_t INT0IP:3;
      uint16_t :1;
      uint16_t IC1IP:3;
      uint16_t :1;
      uint16_t OC1IP:3;
      uint16_t :1;
      uint16_t T1IP:3;
    };
    struct {
      uint16_t INT0IP0:1;
      uint16_t INT0IP1:1;
      uint16_t INT0IP2:1;
      uint16_t :1;
      uint16_t IC1IP0:1;
      uint16_t IC1IP1:1;
      uint16_t IC1IP2:1;
      uint16_t :1;
      uint16_t OC1IP0:1;
      uint16_t OC1IP1:1;
      uint16_t OC1IP2:1;
      uint16_t :1;
      uint16_t T1IP0:1;
      uint16_t T1IP1:1;
      uint16_t T1IP2:1;
    };
  };
} IPC0BITS;
extern volatile IPC0BITS IPC0bits __attribute__((__sfr__));


extern volatile uint16_t IPC1 __attribute__((__sfr__));
__extension__ typedef struct tagIPC1BITS {
  union {
    struct {
      uint16_t DMA0IP:3;
      uint16_t :1;
      uint16_t IC2IP:3;
      uint16_t :1;
      uint16_t OC2IP:3;
      uint16_t :1;
      uint16_t T2IP:3;
    };
    struct {
      uint16_t DMA0IP0:1;
      uint16_t DMA0IP1:1;
      uint16_t DMA0IP2:1;
      uint16_t :1;
      uint16_t IC2IP0:1;
      uint16_t IC2IP1:1;
      uint16_t IC2IP2:1;
      uint16_t :1;
      uint16_t OC2IP0:1;
      uint16_t OC2IP1:1;
      uint16_t OC2IP2:1;
      uint16_t :1;
      uint16_t T2IP0:1;
      uint16_t T2IP1:1;
      uint16_t T2IP2:1;
    };
  };
} IPC1BITS;
extern volatile IPC1BITS IPC1bits __attribute__((__sfr__));


extern volatile uint16_t IPC2 __attribute__((__sfr__));
__extension__ typedef struct tagIPC2BITS {
  union {
    struct {
      uint16_t T3IP:3;
      uint16_t :1;
      uint16_t SPI1EIP:3;
      uint16_t :1;
      uint16_t SPI1IP:3;
      uint16_t :1;
      uint16_t U1RXIP:3;
    };
    struct {
      uint16_t T3IP0:1;
      uint16_t T3IP1:1;
      uint16_t T3IP2:1;
      uint16_t :1;
      uint16_t SPI1EIP0:1;
      uint16_t SPI1EIP1:1;
      uint16_t SPI1EIP2:1;
      uint16_t :1;
      uint16_t SPI1IP0:1;
      uint16_t SPI1IP1:1;
      uint16_t SPI1IP2:1;
      uint16_t :1;
      uint16_t U1RXIP0:1;
      uint16_t U1RXIP1:1;
      uint16_t U1RXIP2:1;
    };
  };
} IPC2BITS;
extern volatile IPC2BITS IPC2bits __attribute__((__sfr__));


extern volatile uint16_t IPC3 __attribute__((__sfr__));
__extension__ typedef struct tagIPC3BITS {
  union {
    struct {
      uint16_t U1TXIP:3;
      uint16_t :1;
      uint16_t AD1IP:3;
      uint16_t :1;
      uint16_t DMA1IP:3;
    };
    struct {
      uint16_t U1TXIP0:1;
      uint16_t U1TXIP1:1;
      uint16_t U1TXIP2:1;
      uint16_t :1;
      uint16_t AD1IP0:1;
      uint16_t AD1IP1:1;
      uint16_t AD1IP2:1;
      uint16_t :1;
      uint16_t DMA1IP0:1;
      uint16_t DMA1IP1:1;
      uint16_t DMA1IP2:1;
    };
  };
} IPC3BITS;
extern volatile IPC3BITS IPC3bits __attribute__((__sfr__));


extern volatile uint16_t IPC4 __attribute__((__sfr__));
__extension__ typedef struct tagIPC4BITS {
  union {
    struct {
      uint16_t SI2C1IP:3;
      uint16_t :1;
      uint16_t MI2C1IP:3;
      uint16_t :5;
      uint16_t CNIP:3;
    };
    struct {
      uint16_t SI2C1IP0:1;
      uint16_t SI2C1IP1:1;
      uint16_t SI2C1IP2:1;
      uint16_t :1;
      uint16_t MI2C1IP0:1;
      uint16_t MI2C1IP1:1;
      uint16_t MI2C1IP2:1;
      uint16_t :5;
      uint16_t CNIP0:1;
      uint16_t CNIP1:1;
      uint16_t CNIP2:1;
    };
  };
} IPC4BITS;
extern volatile IPC4BITS IPC4bits __attribute__((__sfr__));


extern volatile uint16_t IPC5 __attribute__((__sfr__));
__extension__ typedef struct tagIPC5BITS {
  union {
    struct {
      uint16_t INT1IP:3;
      uint16_t :1;
      uint16_t AD2IP:3;
      uint16_t :1;
      uint16_t IC7IP:3;
      uint16_t :1;
      uint16_t IC8IP:3;
    };
    struct {
      uint16_t INT1IP0:1;
      uint16_t INT1IP1:1;
      uint16_t INT1IP2:1;
      uint16_t :1;
      uint16_t AD2IP0:1;
      uint16_t AD2IP1:1;
      uint16_t AD2IP2:1;
      uint16_t :1;
      uint16_t IC7IP0:1;
      uint16_t IC7IP1:1;
      uint16_t IC7IP2:1;
      uint16_t :1;
      uint16_t IC8IP0:1;
      uint16_t IC8IP1:1;
      uint16_t IC8IP2:1;
    };
  };
} IPC5BITS;
extern volatile IPC5BITS IPC5bits __attribute__((__sfr__));


extern volatile uint16_t IPC6 __attribute__((__sfr__));
__extension__ typedef struct tagIPC6BITS {
  union {
    struct {
      uint16_t DMA2IP:3;
      uint16_t :1;
      uint16_t OC3IP:3;
      uint16_t :1;
      uint16_t OC4IP:3;
      uint16_t :1;
      uint16_t T4IP:3;
    };
    struct {
      uint16_t DMA2IP0:1;
      uint16_t DMA2IP1:1;
      uint16_t DMA2IP2:1;
      uint16_t :1;
      uint16_t OC3IP0:1;
      uint16_t OC3IP1:1;
      uint16_t OC3IP2:1;
      uint16_t :1;
      uint16_t OC4IP0:1;
      uint16_t OC4IP1:1;
      uint16_t OC4IP2:1;
      uint16_t :1;
      uint16_t T4IP0:1;
      uint16_t T4IP1:1;
      uint16_t T4IP2:1;
    };
  };
} IPC6BITS;
extern volatile IPC6BITS IPC6bits __attribute__((__sfr__));


extern volatile uint16_t IPC7 __attribute__((__sfr__));
__extension__ typedef struct tagIPC7BITS {
  union {
    struct {
      uint16_t T5IP:3;
      uint16_t :1;
      uint16_t INT2IP:3;
      uint16_t :1;
      uint16_t U2RXIP:3;
      uint16_t :1;
      uint16_t U2TXIP:3;
    };
    struct {
      uint16_t T5IP0:1;
      uint16_t T5IP1:1;
      uint16_t T5IP2:1;
      uint16_t :1;
      uint16_t INT2IP0:1;
      uint16_t INT2IP1:1;
      uint16_t INT2IP2:1;
      uint16_t :1;
      uint16_t U2RXIP0:1;
      uint16_t U2RXIP1:1;
      uint16_t U2RXIP2:1;
      uint16_t :1;
      uint16_t U2TXIP0:1;
      uint16_t U2TXIP1:1;
      uint16_t U2TXIP2:1;
    };
  };
} IPC7BITS;
extern volatile IPC7BITS IPC7bits __attribute__((__sfr__));


extern volatile uint16_t IPC8 __attribute__((__sfr__));
__extension__ typedef struct tagIPC8BITS {
  union {
    struct {
      uint16_t SPI2EIP:3;
      uint16_t :1;
      uint16_t SPI2IP:3;
      uint16_t :1;
      uint16_t C1RXIP:3;
      uint16_t :1;
      uint16_t C1IP:3;
    };
    struct {
      uint16_t SPI2EIP0:1;
      uint16_t SPI2EIP1:1;
      uint16_t SPI2EIP2:1;
      uint16_t :1;
      uint16_t SPI2IP0:1;
      uint16_t SPI2IP1:1;
      uint16_t SPI2IP2:1;
      uint16_t :1;
      uint16_t C1RXIP0:1;
      uint16_t C1RXIP1:1;
      uint16_t C1RXIP2:1;
      uint16_t :1;
      uint16_t C1IP0:1;
      uint16_t C1IP1:1;
      uint16_t C1IP2:1;
    };
  };
} IPC8BITS;
extern volatile IPC8BITS IPC8bits __attribute__((__sfr__));


extern volatile uint16_t IPC9 __attribute__((__sfr__));
__extension__ typedef struct tagIPC9BITS {
  union {
    struct {
      uint16_t DMA3IP:3;
      uint16_t :1;
      uint16_t IC3IP:3;
      uint16_t :1;
      uint16_t IC4IP:3;
      uint16_t :1;
      uint16_t IC5IP:3;
    };
    struct {
      uint16_t DMA3IP0:1;
      uint16_t DMA3IP1:1;
      uint16_t DMA3IP2:1;
      uint16_t :1;
      uint16_t IC3IP0:1;
      uint16_t IC3IP1:1;
      uint16_t IC3IP2:1;
      uint16_t :1;
      uint16_t IC4IP0:1;
      uint16_t IC4IP1:1;
      uint16_t IC4IP2:1;
      uint16_t :1;
      uint16_t IC5IP0:1;
      uint16_t IC5IP1:1;
      uint16_t IC5IP2:1;
    };
  };
} IPC9BITS;
extern volatile IPC9BITS IPC9bits __attribute__((__sfr__));


extern volatile uint16_t IPC10 __attribute__((__sfr__));
__extension__ typedef struct tagIPC10BITS {
  union {
    struct {
      uint16_t IC6IP:3;
      uint16_t :1;
      uint16_t OC5IP:3;
      uint16_t :1;
      uint16_t OC6IP:3;
      uint16_t :1;
      uint16_t OC7IP:3;
    };
    struct {
      uint16_t IC6IP0:1;
      uint16_t IC6IP1:1;
      uint16_t IC6IP2:1;
      uint16_t :1;
      uint16_t OC5IP0:1;
      uint16_t OC5IP1:1;
      uint16_t OC5IP2:1;
      uint16_t :1;
      uint16_t OC6IP0:1;
      uint16_t OC6IP1:1;
      uint16_t OC6IP2:1;
      uint16_t :1;
      uint16_t OC7IP0:1;
      uint16_t OC7IP1:1;
      uint16_t OC7IP2:1;
    };
  };
} IPC10BITS;
extern volatile IPC10BITS IPC10bits __attribute__((__sfr__));


extern volatile uint16_t IPC11 __attribute__((__sfr__));
__extension__ typedef struct tagIPC11BITS {
  union {
    struct {
      uint16_t OC8IP:3;
      uint16_t :5;
      uint16_t DMA4IP:3;
      uint16_t :1;
      uint16_t T6IP:3;
    };
    struct {
      uint16_t OC8IP0:1;
      uint16_t OC8IP1:1;
      uint16_t OC8IP2:1;
      uint16_t :5;
      uint16_t DMA4IP0:1;
      uint16_t DMA4IP1:1;
      uint16_t DMA4IP2:1;
      uint16_t :1;
      uint16_t T6IP0:1;
      uint16_t T6IP1:1;
      uint16_t T6IP2:1;
    };
  };
} IPC11BITS;
extern volatile IPC11BITS IPC11bits __attribute__((__sfr__));


extern volatile uint16_t IPC12 __attribute__((__sfr__));
__extension__ typedef struct tagIPC12BITS {
  union {
    struct {
      uint16_t T7IP:3;
      uint16_t :1;
      uint16_t SI2C2IP:3;
      uint16_t :1;
      uint16_t MI2C2IP:3;
      uint16_t :1;
      uint16_t T8IP:3;
    };
    struct {
      uint16_t T7IP0:1;
      uint16_t T7IP1:1;
      uint16_t T7IP2:1;
      uint16_t :1;
      uint16_t SI2C2IP0:1;
      uint16_t SI2C2IP1:1;
      uint16_t SI2C2IP2:1;
      uint16_t :1;
      uint16_t MI2C2IP0:1;
      uint16_t MI2C2IP1:1;
      uint16_t MI2C2IP2:1;
      uint16_t :1;
      uint16_t T8IP0:1;
      uint16_t T8IP1:1;
      uint16_t T8IP2:1;
    };
  };
} IPC12BITS;
extern volatile IPC12BITS IPC12bits __attribute__((__sfr__));


extern volatile uint16_t IPC13 __attribute__((__sfr__));
__extension__ typedef struct tagIPC13BITS {
  union {
    struct {
      uint16_t T9IP:3;
      uint16_t :1;
      uint16_t INT3IP:3;
      uint16_t :1;
      uint16_t INT4IP:3;
      uint16_t :1;
      uint16_t C2RXIP:3;
    };
    struct {
      uint16_t T9IP0:1;
      uint16_t T9IP1:1;
      uint16_t T9IP2:1;
      uint16_t :1;
      uint16_t INT3IP0:1;
      uint16_t INT3IP1:1;
      uint16_t INT3IP2:1;
      uint16_t :1;
      uint16_t INT4IP0:1;
      uint16_t INT4IP1:1;
      uint16_t INT4IP2:1;
      uint16_t :1;
      uint16_t C2RXIP0:1;
      uint16_t C2RXIP1:1;
      uint16_t C2RXIP2:1;
    };
  };
} IPC13BITS;
extern volatile IPC13BITS IPC13bits __attribute__((__sfr__));


extern volatile uint16_t IPC14 __attribute__((__sfr__));
__extension__ typedef struct tagIPC14BITS {
  union {
    struct {
      uint16_t C2IP:3;
      uint16_t :1;
      uint16_t PWMIP:3;
      uint16_t :1;
      uint16_t QEIIP:3;
    };
    struct {
      uint16_t C2IP0:1;
      uint16_t C2IP1:1;
      uint16_t C2IP2:1;
      uint16_t :1;
      uint16_t PWMIP0:1;
      uint16_t PWMIP1:1;
      uint16_t PWMIP2:1;
      uint16_t :1;
      uint16_t QEIIP0:1;
      uint16_t QEIIP1:1;
      uint16_t QEIIP2:1;
    };
  };
} IPC14BITS;
extern volatile IPC14BITS IPC14bits __attribute__((__sfr__));


extern volatile uint16_t IPC15 __attribute__((__sfr__));
__extension__ typedef struct tagIPC15BITS {
  union {
    struct {
      uint16_t :4;
      uint16_t DMA5IP:3;
      uint16_t :5;
      uint16_t FLTAIP:3;
    };
    struct {
      uint16_t :4;
      uint16_t DMA5IP0:1;
      uint16_t DMA5IP1:1;
      uint16_t DMA5IP2:1;
      uint16_t :5;
      uint16_t FLTAIP0:1;
      uint16_t FLTAIP1:1;
      uint16_t FLTAIP2:1;
    };
  };
} IPC15BITS;
extern volatile IPC15BITS IPC15bits __attribute__((__sfr__));


extern volatile uint16_t IPC16 __attribute__((__sfr__));
__extension__ typedef struct tagIPC16BITS {
  union {
    struct {
      uint16_t FLTBIP:3;
      uint16_t :1;
      uint16_t U1EIP:3;
      uint16_t :1;
      uint16_t U2EIP:3;
    };
    struct {
      uint16_t FLTBIP0:1;
      uint16_t FLTBIP1:1;
      uint16_t FLTBIP2:1;
      uint16_t :1;
      uint16_t U1EIP0:1;
      uint16_t U1EIP1:1;
      uint16_t U1EIP2:1;
      uint16_t :1;
      uint16_t U2EIP0:1;
      uint16_t U2EIP1:1;
      uint16_t U2EIP2:1;
    };
  };
} IPC16BITS;
extern volatile IPC16BITS IPC16bits __attribute__((__sfr__));


extern volatile uint16_t IPC17 __attribute__((__sfr__));
__extension__ typedef struct tagIPC17BITS {
  union {
    struct {
      uint16_t DMA6IP:3;
      uint16_t :1;
      uint16_t DMA7IP:3;
      uint16_t :1;
      uint16_t C1TXIP:3;
      uint16_t :1;
      uint16_t C2TXIP:3;
    };
    struct {
      uint16_t DMA6IP0:1;
      uint16_t DMA6IP1:1;
      uint16_t DMA6IP2:1;
      uint16_t :1;
      uint16_t DMA7IP0:1;
      uint16_t DMA7IP1:1;
      uint16_t DMA7IP2:1;
      uint16_t :1;
      uint16_t C1TXIP0:1;
      uint16_t C1TXIP1:1;
      uint16_t C1TXIP2:1;
      uint16_t :1;
      uint16_t C2TXIP0:1;
      uint16_t C2TXIP1:1;
      uint16_t C2TXIP2:1;
    };
  };
} IPC17BITS;
extern volatile IPC17BITS IPC17bits __attribute__((__sfr__));


extern volatile uint16_t INTTREG __attribute__((__sfr__));
__extension__ typedef struct tagINTTREGBITS {
  union {
    struct {
      uint16_t VECNUM:7;
      uint16_t :1;
      uint16_t ILR:4;
    };
    struct {
      uint16_t VECNUM0:1;
      uint16_t VECNUM1:1;
      uint16_t VECNUM2:1;
      uint16_t VECNUM3:1;
      uint16_t VECNUM4:1;
      uint16_t VECNUM5:1;
      uint16_t VECNUM6:1;
      uint16_t :1;
      uint16_t ILR0:1;
      uint16_t ILR1:1;
      uint16_t ILR2:1;
      uint16_t ILR3:1;
    };
  };
} INTTREGBITS;
extern volatile INTTREGBITS INTTREGbits __attribute__((__sfr__));


extern volatile uint16_t TMR1 __attribute__((__sfr__));

extern volatile uint16_t PR1 __attribute__((__sfr__));

extern volatile uint16_t T1CON __attribute__((__sfr__));
__extension__ typedef struct tagT1CONBITS {
  union {
    struct {
      uint16_t :1;
      uint16_t TCS:1;
      uint16_t TSYNC:1;
      uint16_t :1;
      uint16_t TCKPS:2;
      uint16_t TGATE:1;
      uint16_t :6;
      uint16_t TSIDL:1;
      uint16_t :1;
      uint16_t TON:1;
    };
    struct {
      uint16_t :4;
      uint16_t TCKPS0:1;
      uint16_t TCKPS1:1;
    };
  };
} T1CONBITS;
extern volatile T1CONBITS T1CONbits __attribute__((__sfr__));


extern volatile uint16_t TMR2 __attribute__((__sfr__));

extern volatile uint16_t TMR3HLD __attribute__((__sfr__));

extern volatile uint16_t TMR3 __attribute__((__sfr__));

extern volatile uint16_t PR2 __attribute__((__sfr__));

extern volatile uint16_t PR3 __attribute__((__sfr__));

extern volatile uint16_t T2CON __attribute__((__sfr__));
__extension__ typedef struct tagT2CONBITS {
  union {
    struct {
      uint16_t :1;
      uint16_t TCS:1;
      uint16_t :1;
      uint16_t T32:1;
      uint16_t TCKPS:2;
      uint16_t TGATE:1;
      uint16_t :6;
      uint16_t TSIDL:1;
      uint16_t :1;
      uint16_t TON:1;
    };
    struct {
      uint16_t :4;
      uint16_t TCKPS0:1;
      uint16_t TCKPS1:1;
    };
  };
} T2CONBITS;
extern volatile T2CONBITS T2CONbits __attribute__((__sfr__));


extern volatile uint16_t T3CON __attribute__((__sfr__));
__extension__ typedef struct tagT3CONBITS {
  union {
    struct {
      uint16_t :1;
      uint16_t TCS:1;
      uint16_t :2;
      uint16_t TCKPS:2;
      uint16_t TGATE:1;
      uint16_t :6;
      uint16_t TSIDL:1;
      uint16_t :1;
      uint16_t TON:1;
    };
    struct {
      uint16_t :4;
      uint16_t TCKPS0:1;
      uint16_t TCKPS1:1;
    };
  };
} T3CONBITS;
extern volatile T3CONBITS T3CONbits __attribute__((__sfr__));


extern volatile uint16_t TMR4 __attribute__((__sfr__));

extern volatile uint16_t TMR5HLD __attribute__((__sfr__));

extern volatile uint16_t TMR5 __attribute__((__sfr__));

extern volatile uint16_t PR4 __attribute__((__sfr__));

extern volatile uint16_t PR5 __attribute__((__sfr__));

extern volatile uint16_t T4CON __attribute__((__sfr__));
__extension__ typedef struct tagT4CONBITS {
  union {
    struct {
      uint16_t :1;
      uint16_t TCS:1;
      uint16_t :1;
      uint16_t T32:1;
      uint16_t TCKPS:2;
      uint16_t TGATE:1;
      uint16_t :6;
      uint16_t TSIDL:1;
      uint16_t :1;
      uint16_t TON:1;
    };
    struct {
      uint16_t :4;
      uint16_t TCKPS0:1;
      uint16_t TCKPS1:1;
    };
  };
} T4CONBITS;
extern volatile T4CONBITS T4CONbits __attribute__((__sfr__));


extern volatile uint16_t T5CON __attribute__((__sfr__));
__extension__ typedef struct tagT5CONBITS {
  union {
    struct {
      uint16_t :1;
      uint16_t TCS:1;
      uint16_t :2;
      uint16_t TCKPS:2;
      uint16_t TGATE:1;
      uint16_t :6;
      uint16_t TSIDL:1;
      uint16_t :1;
      uint16_t TON:1;
    };
    struct {
      uint16_t :4;
      uint16_t TCKPS0:1;
      uint16_t TCKPS1:1;
    };
  };
} T5CONBITS;
extern volatile T5CONBITS T5CONbits __attribute__((__sfr__));


extern volatile uint16_t TMR6 __attribute__((__sfr__));

extern volatile uint16_t TMR7HLD __attribute__((__sfr__));

extern volatile uint16_t TMR7 __attribute__((__sfr__));

extern volatile uint16_t PR6 __attribute__((__sfr__));

extern volatile uint16_t PR7 __attribute__((__sfr__));

extern volatile uint16_t T6CON __attribute__((__sfr__));
__extension__ typedef struct tagT6CONBITS {
  union {
    struct {
      uint16_t :1;
      uint16_t TCS:1;
      uint16_t :1;
      uint16_t T32:1;
      uint16_t TCKPS:2;
      uint16_t TGATE:1;
      uint16_t :6;
      uint16_t TSIDL:1;
      uint16_t :1;
      uint16_t TON:1;
    };
    struct {
      uint16_t :4;
      uint16_t TCKPS0:1;
      uint16_t TCKPS1:1;
    };
  };
} T6CONBITS;
extern volatile T6CONBITS T6CONbits __attribute__((__sfr__));


extern volatile uint16_t T7CON __attribute__((__sfr__));
__extension__ typedef struct tagT7CONBITS {
  union {
    struct {
      uint16_t :1;
      uint16_t TCS:1;
      uint16_t :2;
      uint16_t TCKPS:2;
      uint16_t TGATE:1;
      uint16_t :6;
      uint16_t TSIDL:1;
      uint16_t :1;
      uint16_t TON:1;
    };
    struct {
      uint16_t :4;
      uint16_t TCKPS0:1;
      uint16_t TCKPS1:1;
    };
  };
} T7CONBITS;
extern volatile T7CONBITS T7CONbits __attribute__((__sfr__));


extern volatile uint16_t TMR8 __attribute__((__sfr__));

extern volatile uint16_t TMR9HLD __attribute__((__sfr__));

extern volatile uint16_t TMR9 __attribute__((__sfr__));

extern volatile uint16_t PR8 __attribute__((__sfr__));

extern volatile uint16_t PR9 __attribute__((__sfr__));

extern volatile uint16_t T8CON __attribute__((__sfr__));
__extension__ typedef struct tagT8CONBITS {
  union {
    struct {
      uint16_t :1;
      uint16_t TCS:1;
      uint16_t :1;
      uint16_t T32:1;
      uint16_t TCKPS:2;
      uint16_t TGATE:1;
      uint16_t :6;
      uint16_t TSIDL:1;
      uint16_t :1;
      uint16_t TON:1;
    };
    struct {
      uint16_t :4;
      uint16_t TCKPS0:1;
      uint16_t TCKPS1:1;
    };
  };
} T8CONBITS;
extern volatile T8CONBITS T8CONbits __attribute__((__sfr__));


extern volatile uint16_t T9CON __attribute__((__sfr__));
__extension__ typedef struct tagT9CONBITS {
  union {
    struct {
      uint16_t :1;
      uint16_t TCS:1;
      uint16_t :2;
      uint16_t TCKPS:2;
      uint16_t TGATE:1;
      uint16_t :6;
      uint16_t TSIDL:1;
      uint16_t :1;
      uint16_t TON:1;
    };
    struct {
      uint16_t :4;
      uint16_t TCKPS0:1;
      uint16_t TCKPS1:1;
    };
  };
} T9CONBITS;
extern volatile T9CONBITS T9CONbits __attribute__((__sfr__));



typedef struct tagIC {
        uint16_t icxbuf;
        uint16_t icxcon;
} IC, *PIC;



extern volatile IC ACC1 __attribute__((__sfr__));

extern volatile IC ACC2 __attribute__((__sfr__));

extern volatile IC ACC3 __attribute__((__sfr__));

extern volatile IC ACC4 __attribute__((__sfr__));

extern volatile IC ACC5 __attribute__((__sfr__));

extern volatile IC ACC6 __attribute__((__sfr__));

extern volatile IC ACC7 __attribute__((__sfr__));

extern volatile IC ACC8 __attribute__((__sfr__));


extern volatile uint16_t IC1BUF __attribute__((__sfr__));

extern volatile uint16_t IC1CON __attribute__((__sfr__));
__extension__ typedef struct tagIC1CONBITS {
  union {
    struct {
      uint16_t ICM:3;
      uint16_t ICBNE:1;
      uint16_t ICOV:1;
      uint16_t ICI:2;
      uint16_t ICTMR:1;
      uint16_t :5;
      uint16_t ICSIDL:1;
    };
    struct {
      uint16_t ICM0:1;
      uint16_t ICM1:1;
      uint16_t ICM2:1;
      uint16_t :2;
      uint16_t ICI0:1;
      uint16_t ICI1:1;
    };
  };
} IC1CONBITS;
extern volatile IC1CONBITS IC1CONbits __attribute__((__sfr__));


extern volatile uint16_t IC2BUF __attribute__((__sfr__));

extern volatile uint16_t IC2CON __attribute__((__sfr__));
__extension__ typedef struct tagIC2CONBITS {
  union {
    struct {
      uint16_t ICM:3;
      uint16_t ICBNE:1;
      uint16_t ICOV:1;
      uint16_t ICI:2;
      uint16_t ICTMR:1;
      uint16_t :5;
      uint16_t ICSIDL:1;
    };
    struct {
      uint16_t ICM0:1;
      uint16_t ICM1:1;
      uint16_t ICM2:1;
      uint16_t :2;
      uint16_t ICI0:1;
      uint16_t ICI1:1;
    };
  };
} IC2CONBITS;
extern volatile IC2CONBITS IC2CONbits __attribute__((__sfr__));


extern volatile uint16_t IC3BUF __attribute__((__sfr__));

extern volatile uint16_t IC3CON __attribute__((__sfr__));
__extension__ typedef struct tagIC3CONBITS {
  union {
    struct {
      uint16_t ICM:3;
      uint16_t ICBNE:1;
      uint16_t ICOV:1;
      uint16_t ICI:2;
      uint16_t ICTMR:1;
      uint16_t :5;
      uint16_t ICSIDL:1;
    };
    struct {
      uint16_t ICM0:1;
      uint16_t ICM1:1;
      uint16_t ICM2:1;
      uint16_t :2;
      uint16_t ICI0:1;
      uint16_t ICI1:1;
    };
  };
} IC3CONBITS;
extern volatile IC3CONBITS IC3CONbits __attribute__((__sfr__));


extern volatile uint16_t IC4BUF __attribute__((__sfr__));

extern volatile uint16_t IC4CON __attribute__((__sfr__));
__extension__ typedef struct tagIC4CONBITS {
  union {
    struct {
      uint16_t ICM:3;
      uint16_t ICBNE:1;
      uint16_t ICOV:1;
      uint16_t ICI:2;
      uint16_t ICTMR:1;
      uint16_t :5;
      uint16_t ICSIDL:1;
    };
    struct {
      uint16_t ICM0:1;
      uint16_t ICM1:1;
      uint16_t ICM2:1;
      uint16_t :2;
      uint16_t ICI0:1;
      uint16_t ICI1:1;
    };
  };
} IC4CONBITS;
extern volatile IC4CONBITS IC4CONbits __attribute__((__sfr__));


extern volatile uint16_t IC5BUF __attribute__((__sfr__));

extern volatile uint16_t IC5CON __attribute__((__sfr__));
__extension__ typedef struct tagIC5CONBITS {
  union {
    struct {
      uint16_t ICM:3;
      uint16_t ICBNE:1;
      uint16_t ICOV:1;
      uint16_t ICI:2;
      uint16_t ICTMR:1;
      uint16_t :5;
      uint16_t ICSIDL:1;
    };
    struct {
      uint16_t ICM0:1;
      uint16_t ICM1:1;
      uint16_t ICM2:1;
      uint16_t :2;
      uint16_t ICI0:1;
      uint16_t ICI1:1;
    };
  };
} IC5CONBITS;
extern volatile IC5CONBITS IC5CONbits __attribute__((__sfr__));


extern volatile uint16_t IC6BUF __attribute__((__sfr__));

extern volatile uint16_t IC6CON __attribute__((__sfr__));
__extension__ typedef struct tagIC6CONBITS {
  union {
    struct {
      uint16_t ICM:3;
      uint16_t ICBNE:1;
      uint16_t ICOV:1;
      uint16_t ICI:2;
      uint16_t ICTMR:1;
      uint16_t :5;
      uint16_t ICSIDL:1;
    };
    struct {
      uint16_t ICM0:1;
      uint16_t ICM1:1;
      uint16_t ICM2:1;
      uint16_t :2;
      uint16_t ICI0:1;
      uint16_t ICI1:1;
    };
  };
} IC6CONBITS;
extern volatile IC6CONBITS IC6CONbits __attribute__((__sfr__));


extern volatile uint16_t IC7BUF __attribute__((__sfr__));

extern volatile uint16_t IC7CON __attribute__((__sfr__));
__extension__ typedef struct tagIC7CONBITS {
  union {
    struct {
      uint16_t ICM:3;
      uint16_t ICBNE:1;
      uint16_t ICOV:1;
      uint16_t ICI:2;
      uint16_t ICTMR:1;
      uint16_t :5;
      uint16_t ICSIDL:1;
    };
    struct {
      uint16_t ICM0:1;
      uint16_t ICM1:1;
      uint16_t ICM2:1;
      uint16_t :2;
      uint16_t ICI0:1;
      uint16_t ICI1:1;
    };
  };
} IC7CONBITS;
extern volatile IC7CONBITS IC7CONbits __attribute__((__sfr__));


extern volatile uint16_t IC8BUF __attribute__((__sfr__));

extern volatile uint16_t IC8CON __attribute__((__sfr__));
__extension__ typedef struct tagIC8CONBITS {
  union {
    struct {
      uint16_t ICM:3;
      uint16_t ICBNE:1;
      uint16_t ICOV:1;
      uint16_t ICI:2;
      uint16_t ICTMR:1;
      uint16_t :5;
      uint16_t ICSIDL:1;
    };
    struct {
      uint16_t ICM0:1;
      uint16_t ICM1:1;
      uint16_t ICM2:1;
      uint16_t :2;
      uint16_t ICI0:1;
      uint16_t ICI1:1;
    };
  };
} IC8CONBITS;
extern volatile IC8CONBITS IC8CONbits __attribute__((__sfr__));



typedef struct tagOC {
        uint16_t ocxrs;
        uint16_t ocxr;
        uint16_t ocxcon;
} OC, *POC;



extern volatile OC OC1 __attribute__((__sfr__));

extern volatile OC OC2 __attribute__((__sfr__));

extern volatile OC OC3 __attribute__((__sfr__));

extern volatile OC OC4 __attribute__((__sfr__));

extern volatile OC OC5 __attribute__((__sfr__));

extern volatile OC OC6 __attribute__((__sfr__));

extern volatile OC OC7 __attribute__((__sfr__));

extern volatile OC OC8 __attribute__((__sfr__));


extern volatile uint16_t OC1RS __attribute__((__sfr__));

extern volatile uint16_t OC1R __attribute__((__sfr__));

extern volatile uint16_t OC1CON __attribute__((__sfr__));
__extension__ typedef struct tagOC1CONBITS {
  union {
    struct {
      uint16_t OCM:3;
      uint16_t OCTSEL:1;
      uint16_t OCFLT:1;
      uint16_t :8;
      uint16_t OCSIDL:1;
    };
    struct {
      uint16_t OCM0:1;
      uint16_t OCM1:1;
      uint16_t OCM2:1;
    };
  };
} OC1CONBITS;
extern volatile OC1CONBITS OC1CONbits __attribute__((__sfr__));


extern volatile uint16_t OC2RS __attribute__((__sfr__));

extern volatile uint16_t OC2R __attribute__((__sfr__));

extern volatile uint16_t OC2CON __attribute__((__sfr__));
__extension__ typedef struct tagOC2CONBITS {
  union {
    struct {
      uint16_t OCM:3;
      uint16_t OCTSEL:1;
      uint16_t OCFLT:1;
      uint16_t :8;
      uint16_t OCSIDL:1;
    };
    struct {
      uint16_t OCM0:1;
      uint16_t OCM1:1;
      uint16_t OCM2:1;
    };
  };
} OC2CONBITS;
extern volatile OC2CONBITS OC2CONbits __attribute__((__sfr__));


extern volatile uint16_t OC3RS __attribute__((__sfr__));

extern volatile uint16_t OC3R __attribute__((__sfr__));

extern volatile uint16_t OC3CON __attribute__((__sfr__));
__extension__ typedef struct tagOC3CONBITS {
  union {
    struct {
      uint16_t OCM:3;
      uint16_t OCTSEL:1;
      uint16_t OCFLT:1;
      uint16_t :8;
      uint16_t OCSIDL:1;
    };
    struct {
      uint16_t OCM0:1;
      uint16_t OCM1:1;
      uint16_t OCM2:1;
    };
  };
} OC3CONBITS;
extern volatile OC3CONBITS OC3CONbits __attribute__((__sfr__));


extern volatile uint16_t OC4RS __attribute__((__sfr__));

extern volatile uint16_t OC4R __attribute__((__sfr__));

extern volatile uint16_t OC4CON __attribute__((__sfr__));
__extension__ typedef struct tagOC4CONBITS {
  union {
    struct {
      uint16_t OCM:3;
      uint16_t OCTSEL:1;
      uint16_t OCFLT:1;
      uint16_t :8;
      uint16_t OCSIDL:1;
    };
    struct {
      uint16_t OCM0:1;
      uint16_t OCM1:1;
      uint16_t OCM2:1;
    };
  };
} OC4CONBITS;
extern volatile OC4CONBITS OC4CONbits __attribute__((__sfr__));


extern volatile uint16_t OC5RS __attribute__((__sfr__));

extern volatile uint16_t OC5R __attribute__((__sfr__));

extern volatile uint16_t OC5CON __attribute__((__sfr__));
__extension__ typedef struct tagOC5CONBITS {
  union {
    struct {
      uint16_t OCM:3;
      uint16_t OCTSEL:1;
      uint16_t OCFLT:1;
      uint16_t :8;
      uint16_t OCSIDL:1;
    };
    struct {
      uint16_t OCM0:1;
      uint16_t OCM1:1;
      uint16_t OCM2:1;
    };
  };
} OC5CONBITS;
extern volatile OC5CONBITS OC5CONbits __attribute__((__sfr__));


extern volatile uint16_t OC6RS __attribute__((__sfr__));

extern volatile uint16_t OC6R __attribute__((__sfr__));

extern volatile uint16_t OC6CON __attribute__((__sfr__));
__extension__ typedef struct tagOC6CONBITS {
  union {
    struct {
      uint16_t OCM:3;
      uint16_t OCTSEL:1;
      uint16_t OCFLT:1;
      uint16_t :8;
      uint16_t OCSIDL:1;
    };
    struct {
      uint16_t OCM0:1;
      uint16_t OCM1:1;
      uint16_t OCM2:1;
    };
  };
} OC6CONBITS;
extern volatile OC6CONBITS OC6CONbits __attribute__((__sfr__));


extern volatile uint16_t OC7RS __attribute__((__sfr__));

extern volatile uint16_t OC7R __attribute__((__sfr__));

extern volatile uint16_t OC7CON __attribute__((__sfr__));
__extension__ typedef struct tagOC7CONBITS {
  union {
    struct {
      uint16_t OCM:3;
      uint16_t OCTSEL:1;
      uint16_t OCFLT:1;
      uint16_t :8;
      uint16_t OCSIDL:1;
    };
    struct {
      uint16_t OCM0:1;
      uint16_t OCM1:1;
      uint16_t OCM2:1;
    };
  };
} OC7CONBITS;
extern volatile OC7CONBITS OC7CONbits __attribute__((__sfr__));


extern volatile uint16_t OC8RS __attribute__((__sfr__));

extern volatile uint16_t OC8R __attribute__((__sfr__));

extern volatile uint16_t OC8CON __attribute__((__sfr__));
__extension__ typedef struct tagOC8CONBITS {
  union {
    struct {
      uint16_t OCM:3;
      uint16_t OCTSEL:1;
      uint16_t OCFLT:1;
      uint16_t :8;
      uint16_t OCSIDL:1;
    };
    struct {
      uint16_t OCM0:1;
      uint16_t OCM1:1;
      uint16_t OCM2:1;
    };
  };
} OC8CONBITS;
extern volatile OC8CONBITS OC8CONbits __attribute__((__sfr__));


extern volatile uint16_t P1TCON __attribute__((__sfr__));
__extension__ typedef struct tagP1TCONBITS {
  union {
    struct {
      uint16_t PTMOD:2;
      uint16_t PTCKPS:2;
      uint16_t PTOPS:4;
      uint16_t :5;
      uint16_t PTSIDL:1;
      uint16_t :1;
      uint16_t PTEN:1;
    };
    struct {
      uint16_t PTMOD0:1;
      uint16_t PTMOD1:1;
      uint16_t PTCKPS0:1;
      uint16_t PTCKPS1:1;
      uint16_t PTOPS0:1;
      uint16_t PTOPS1:1;
      uint16_t PTOPS2:1;
      uint16_t PTOPS3:1;
    };
  };
} P1TCONBITS;
extern volatile P1TCONBITS P1TCONbits __attribute__((__sfr__));


extern volatile uint16_t PTCON __attribute__((__sfr__));
__extension__ typedef struct tagPTCONBITS {
  union {
    struct {
      uint16_t PTMOD:2;
      uint16_t PTCKPS:2;
      uint16_t PTOPS:4;
      uint16_t :5;
      uint16_t PTSIDL:1;
      uint16_t :1;
      uint16_t PTEN:1;
    };
    struct {
      uint16_t PTMOD0:1;
      uint16_t PTMOD1:1;
      uint16_t PTCKPS0:1;
      uint16_t PTCKPS1:1;
      uint16_t PTOPS0:1;
      uint16_t PTOPS1:1;
      uint16_t PTOPS2:1;
      uint16_t PTOPS3:1;
    };
  };
} PTCONBITS;
extern volatile PTCONBITS PTCONbits __attribute__((__sfr__));


extern volatile uint16_t P1TMR __attribute__((__sfr__));
typedef struct tagP1TMRBITS {
  uint16_t PTMR:15;
  uint16_t PTDIR:1;
} P1TMRBITS;
extern volatile P1TMRBITS P1TMRbits __attribute__((__sfr__));


extern volatile uint16_t PTMR __attribute__((__sfr__));
typedef struct tagPTMRBITS {
  uint16_t PTMR:15;
  uint16_t PTDIR:1;
} PTMRBITS;
extern volatile PTMRBITS PTMRbits __attribute__((__sfr__));


extern volatile uint16_t P1TPER __attribute__((__sfr__));
typedef struct tagP1TPERBITS {
  uint16_t PTPER:15;
} P1TPERBITS;
extern volatile P1TPERBITS P1TPERbits __attribute__((__sfr__));


extern volatile uint16_t PTPER __attribute__((__sfr__));
typedef struct tagPTPERBITS {
  uint16_t PTPER:15;
} PTPERBITS;
extern volatile PTPERBITS PTPERbits __attribute__((__sfr__));


extern volatile uint16_t P1SECMP __attribute__((__sfr__));
typedef struct tagP1SECMPBITS {
  uint16_t SEVTCMP:15;
  uint16_t SEVTDIR:1;
} P1SECMPBITS;
extern volatile P1SECMPBITS P1SECMPbits __attribute__((__sfr__));


extern volatile uint16_t SEVTCMP __attribute__((__sfr__));
typedef struct tagSEVTCMPBITS {
  uint16_t SEVTCMP:15;
  uint16_t SEVTDIR:1;
} SEVTCMPBITS;
extern volatile SEVTCMPBITS SEVTCMPbits __attribute__((__sfr__));


extern volatile uint16_t PWM1CON1 __attribute__((__sfr__));
__extension__ typedef struct tagPWM1CON1BITS {
  union {
    struct {
      uint16_t PEN1L:1;
      uint16_t PEN2L:1;
      uint16_t PEN3L:1;
      uint16_t PEN4L:1;
      uint16_t PEN1H:1;
      uint16_t PEN2H:1;
      uint16_t PEN3H:1;
      uint16_t PEN4H:1;
      uint16_t PTMOD1:1;
      uint16_t PTMOD2:1;
      uint16_t PTMOD3:1;
      uint16_t PTMOD4:1;
    };
    struct {
      uint16_t :8;
      uint16_t PMOD1:1;
      uint16_t PMOD2:1;
      uint16_t PMOD3:1;
      uint16_t PMOD4:1;
    };
  };
} PWM1CON1BITS;
extern volatile PWM1CON1BITS PWM1CON1bits __attribute__((__sfr__));


extern volatile uint16_t PWMCON1 __attribute__((__sfr__));
__extension__ typedef struct tagPWMCON1BITS {
  union {
    struct {
      uint16_t PEN1L:1;
      uint16_t PEN2L:1;
      uint16_t PEN3L:1;
      uint16_t PEN4L:1;
      uint16_t PEN1H:1;
      uint16_t PEN2H:1;
      uint16_t PEN3H:1;
      uint16_t PEN4H:1;
      uint16_t PTMOD1:1;
      uint16_t PTMOD2:1;
      uint16_t PTMOD3:1;
      uint16_t PTMOD4:1;
    };
    struct {
      uint16_t :8;
      uint16_t PMOD1:1;
      uint16_t PMOD2:1;
      uint16_t PMOD3:1;
      uint16_t PMOD4:1;
    };
  };
} PWMCON1BITS;
extern volatile PWMCON1BITS PWMCON1bits __attribute__((__sfr__));


extern volatile uint16_t PWM1CON2 __attribute__((__sfr__));
__extension__ typedef struct tagPWM1CON2BITS {
  union {
    struct {
      uint16_t UDIS:1;
      uint16_t OSYNC:1;
      uint16_t IUE:1;
      uint16_t :5;
      uint16_t SEVOPS:4;
    };
    struct {
      uint16_t :8;
      uint16_t SEVOPS0:1;
      uint16_t SEVOPS1:1;
      uint16_t SEVOPS2:1;
      uint16_t SEVOPS3:1;
    };
  };
} PWM1CON2BITS;
extern volatile PWM1CON2BITS PWM1CON2bits __attribute__((__sfr__));


extern volatile uint16_t PWMCON2 __attribute__((__sfr__));
__extension__ typedef struct tagPWMCON2BITS {
  union {
    struct {
      uint16_t UDIS:1;
      uint16_t OSYNC:1;
      uint16_t IUE:1;
      uint16_t :5;
      uint16_t SEVOPS:4;
    };
    struct {
      uint16_t :8;
      uint16_t SEVOPS0:1;
      uint16_t SEVOPS1:1;
      uint16_t SEVOPS2:1;
      uint16_t SEVOPS3:1;
    };
  };
} PWMCON2BITS;
extern volatile PWMCON2BITS PWMCON2bits __attribute__((__sfr__));


extern volatile uint16_t DTCON1 __attribute__((__sfr__));
__extension__ typedef struct tagDTCON1BITS {
  union {
    struct {
      uint16_t DTA:6;
      uint16_t DTAPS:2;
      uint16_t DTB:6;
      uint16_t DTBPS:2;
    };
    struct {
      uint16_t DTA0:1;
      uint16_t DTA1:1;
      uint16_t DTA2:1;
      uint16_t DTA3:1;
      uint16_t DTA4:1;
      uint16_t DTA5:1;
      uint16_t DTAPS0:1;
      uint16_t DTAPS1:1;
      uint16_t DTB0:1;
      uint16_t DTB1:1;
      uint16_t DTB2:1;
      uint16_t DTB3:1;
      uint16_t DTB4:1;
      uint16_t DTB5:1;
      uint16_t DTBPS0:1;
      uint16_t DTBPS1:1;
    };
  };
} DTCON1BITS;
extern volatile DTCON1BITS DTCON1bits __attribute__((__sfr__));


extern volatile uint16_t P1DTCON1 __attribute__((__sfr__));
__extension__ typedef struct tagP1DTCON1BITS {
  union {
    struct {
      uint16_t DTA:6;
      uint16_t DTAPS:2;
      uint16_t DTB:6;
      uint16_t DTBPS:2;
    };
    struct {
      uint16_t DTA0:1;
      uint16_t DTA1:1;
      uint16_t DTA2:1;
      uint16_t DTA3:1;
      uint16_t DTA4:1;
      uint16_t DTA5:1;
      uint16_t DTAPS0:1;
      uint16_t DTAPS1:1;
      uint16_t DTB0:1;
      uint16_t DTB1:1;
      uint16_t DTB2:1;
      uint16_t DTB3:1;
      uint16_t DTB4:1;
      uint16_t DTB5:1;
      uint16_t DTBPS0:1;
      uint16_t DTBPS1:1;
    };
  };
} P1DTCON1BITS;
extern volatile P1DTCON1BITS P1DTCON1bits __attribute__((__sfr__));


extern volatile uint16_t DTCON2 __attribute__((__sfr__));
typedef struct tagDTCON2BITS {
  uint16_t DTS1I:1;
  uint16_t DTS1A:1;
  uint16_t DTS2I:1;
  uint16_t DTS2A:1;
  uint16_t DTS3I:1;
  uint16_t DTS3A:1;
  uint16_t DTS4I:1;
  uint16_t DTS4A:1;
} DTCON2BITS;
extern volatile DTCON2BITS DTCON2bits __attribute__((__sfr__));


extern volatile uint16_t P1DTCON2 __attribute__((__sfr__));
typedef struct tagP1DTCON2BITS {
  uint16_t DTS1I:1;
  uint16_t DTS1A:1;
  uint16_t DTS2I:1;
  uint16_t DTS2A:1;
  uint16_t DTS3I:1;
  uint16_t DTS3A:1;
  uint16_t DTS4I:1;
  uint16_t DTS4A:1;
} P1DTCON2BITS;
extern volatile P1DTCON2BITS P1DTCON2bits __attribute__((__sfr__));


extern volatile uint16_t FLTACON __attribute__((__sfr__));
typedef struct tagFLTACONBITS {
  uint16_t FAEN1:1;
  uint16_t FAEN2:1;
  uint16_t FAEN3:1;
  uint16_t FAEN4:1;
  uint16_t :3;
  uint16_t FLTAM:1;
  uint16_t FAOV1L:1;
  uint16_t FAOV1H:1;
  uint16_t FAOV2L:1;
  uint16_t FAOV2H:1;
  uint16_t FAOV3L:1;
  uint16_t FAOV3H:1;
  uint16_t FAOV4L:1;
  uint16_t FAOV4H:1;
} FLTACONBITS;
extern volatile FLTACONBITS FLTACONbits __attribute__((__sfr__));


extern volatile uint16_t P1FLTACON __attribute__((__sfr__));
typedef struct tagP1FLTACONBITS {
  uint16_t FAEN1:1;
  uint16_t FAEN2:1;
  uint16_t FAEN3:1;
  uint16_t FAEN4:1;
  uint16_t :3;
  uint16_t FLTAM:1;
  uint16_t FAOV1L:1;
  uint16_t FAOV1H:1;
  uint16_t FAOV2L:1;
  uint16_t FAOV2H:1;
  uint16_t FAOV3L:1;
  uint16_t FAOV3H:1;
  uint16_t FAOV4L:1;
  uint16_t FAOV4H:1;
} P1FLTACONBITS;
extern volatile P1FLTACONBITS P1FLTACONbits __attribute__((__sfr__));


extern volatile uint16_t FLTBCON __attribute__((__sfr__));
typedef struct tagFLTBCONBITS {
  uint16_t FBEN1:1;
  uint16_t FBEN2:1;
  uint16_t FBEN3:1;
  uint16_t FBEN4:1;
  uint16_t :3;
  uint16_t FLTBM:1;
  uint16_t FBOV1L:1;
  uint16_t FBOV1H:1;
  uint16_t FBOV2L:1;
  uint16_t FBOV2H:1;
  uint16_t FBOV3L:1;
  uint16_t FBOV3H:1;
  uint16_t FBOV4L:1;
  uint16_t FBOV4H:1;
} FLTBCONBITS;
extern volatile FLTBCONBITS FLTBCONbits __attribute__((__sfr__));


extern volatile uint16_t P1FLTBCON __attribute__((__sfr__));
typedef struct tagP1FLTBCONBITS {
  uint16_t FBEN1:1;
  uint16_t FBEN2:1;
  uint16_t FBEN3:1;
  uint16_t FBEN4:1;
  uint16_t :3;
  uint16_t FLTBM:1;
  uint16_t FBOV1L:1;
  uint16_t FBOV1H:1;
  uint16_t FBOV2L:1;
  uint16_t FBOV2H:1;
  uint16_t FBOV3L:1;
  uint16_t FBOV3H:1;
  uint16_t FBOV4L:1;
  uint16_t FBOV4H:1;
} P1FLTBCONBITS;
extern volatile P1FLTBCONBITS P1FLTBCONbits __attribute__((__sfr__));


extern volatile uint16_t OVDCON __attribute__((__sfr__));
typedef struct tagOVDCONBITS {
  uint16_t POUT1L:1;
  uint16_t POUT1H:1;
  uint16_t POUT2L:1;
  uint16_t POUT2H:1;
  uint16_t POUT3L:1;
  uint16_t POUT3H:1;
  uint16_t POUT4L:1;
  uint16_t POUT4H:1;
  uint16_t POVD1L:1;
  uint16_t POVD1H:1;
  uint16_t POVD2L:1;
  uint16_t POVD2H:1;
  uint16_t POVD3L:1;
  uint16_t POVD3H:1;
  uint16_t POVD4L:1;
  uint16_t POVD4H:1;
} OVDCONBITS;
extern volatile OVDCONBITS OVDCONbits __attribute__((__sfr__));


extern volatile uint16_t P1OVDCON __attribute__((__sfr__));
typedef struct tagP1OVDCONBITS {
  uint16_t POUT1L:1;
  uint16_t POUT1H:1;
  uint16_t POUT2L:1;
  uint16_t POUT2H:1;
  uint16_t POUT3L:1;
  uint16_t POUT3H:1;
  uint16_t POUT4L:1;
  uint16_t POUT4H:1;
  uint16_t POVD1L:1;
  uint16_t POVD1H:1;
  uint16_t POVD2L:1;
  uint16_t POVD2H:1;
  uint16_t POVD3L:1;
  uint16_t POVD3H:1;
  uint16_t POVD4L:1;
  uint16_t POVD4H:1;
} P1OVDCONBITS;
extern volatile P1OVDCONBITS P1OVDCONbits __attribute__((__sfr__));


extern volatile uint16_t P1DC1 __attribute__((__sfr__));

extern volatile uint16_t PDC1 __attribute__((__sfr__));

extern volatile uint16_t P1DC2 __attribute__((__sfr__));

extern volatile uint16_t PDC2 __attribute__((__sfr__));

extern volatile uint16_t P1DC3 __attribute__((__sfr__));

extern volatile uint16_t PDC3 __attribute__((__sfr__));

extern volatile uint16_t P1DC4 __attribute__((__sfr__));

extern volatile uint16_t PDC4 __attribute__((__sfr__));

extern volatile uint16_t QEI1CON __attribute__((__sfr__));
__extension__ typedef struct tagQEI1CONBITS {
  union {
    struct {
      uint16_t UPDN_SRC:1;
      uint16_t TQCS:1;
      uint16_t POSRES:1;
      uint16_t TQCKPS0:1;
      uint16_t TQCKPS1:1;
      uint16_t TQGATE:1;
      uint16_t PCDOUT:1;
      uint16_t SWPAB:1;
      uint16_t QEIM0:1;
      uint16_t QEIM1:1;
      uint16_t QEIM2:1;
      uint16_t UPDN:1;
      uint16_t INDX:1;
      uint16_t QEISIDL:1;
      uint16_t :1;
      uint16_t CNTERR:1;
    };
    struct {
      uint16_t :3;
      uint16_t TQCKPS:2;
      uint16_t :3;
      uint16_t QEIM:3;
    };
  };
} QEI1CONBITS;
extern volatile QEI1CONBITS QEI1CONbits __attribute__((__sfr__));


extern volatile uint16_t QEICON __attribute__((__sfr__));
__extension__ typedef struct tagQEICONBITS {
  union {
    struct {
      uint16_t UPDN_SRC:1;
      uint16_t TQCS:1;
      uint16_t POSRES:1;
      uint16_t TQCKPS0:1;
      uint16_t TQCKPS1:1;
      uint16_t TQGATE:1;
      uint16_t PCDOUT:1;
      uint16_t SWPAB:1;
      uint16_t QEIM0:1;
      uint16_t QEIM1:1;
      uint16_t QEIM2:1;
      uint16_t UPDN:1;
      uint16_t INDX:1;
      uint16_t QEISIDL:1;
      uint16_t :1;
      uint16_t CNTERR:1;
    };
    struct {
      uint16_t :3;
      uint16_t TQCKPS:2;
      uint16_t :3;
      uint16_t QEIM:3;
    };
  };
} QEICONBITS;
extern volatile QEICONBITS QEICONbits __attribute__((__sfr__));


extern volatile uint16_t DFLT1CON __attribute__((__sfr__));
__extension__ typedef struct tagDFLT1CONBITS {
  union {
    struct {
      uint16_t :4;
      uint16_t QECK0:1;
      uint16_t QECK1:1;
      uint16_t QECK2:1;
      uint16_t QEOUT:1;
      uint16_t CEID:1;
      uint16_t IMV0:1;
      uint16_t IMV1:1;
    };
    struct {
      uint16_t :4;
      uint16_t QECK:3;
      uint16_t :2;
      uint16_t IMV:2;
    };
  };
} DFLT1CONBITS;
extern volatile DFLT1CONBITS DFLT1CONbits __attribute__((__sfr__));


extern volatile uint16_t DFLTCON __attribute__((__sfr__));
__extension__ typedef struct tagDFLTCONBITS {
  union {
    struct {
      uint16_t :4;
      uint16_t QECK0:1;
      uint16_t QECK1:1;
      uint16_t QECK2:1;
      uint16_t QEOUT:1;
      uint16_t CEID:1;
      uint16_t IMV0:1;
      uint16_t IMV1:1;
    };
    struct {
      uint16_t :4;
      uint16_t QECK:3;
      uint16_t :2;
      uint16_t IMV:2;
    };
  };
} DFLTCONBITS;
extern volatile DFLTCONBITS DFLTCONbits __attribute__((__sfr__));


extern volatile uint16_t POS1CNT __attribute__((__sfr__));

extern volatile uint16_t POSCNT __attribute__((__sfr__));

extern volatile uint16_t MAX1CNT __attribute__((__sfr__));

extern volatile uint16_t MAXCNT __attribute__((__sfr__));

extern volatile uint16_t I2C1RCV __attribute__((__sfr__));

extern volatile uint16_t I2CRCV __attribute__((__sfr__));

extern volatile uint16_t I2C1TRN __attribute__((__sfr__));

extern volatile uint16_t I2CTRN __attribute__((__sfr__));

extern volatile uint16_t I2C1BRG __attribute__((__sfr__));

extern volatile uint16_t I2C1CON __attribute__((__sfr__));
typedef struct tagI2C1CONBITS {
  uint16_t SEN:1;
  uint16_t RSEN:1;
  uint16_t PEN:1;
  uint16_t RCEN:1;
  uint16_t ACKEN:1;
  uint16_t ACKDT:1;
  uint16_t STREN:1;
  uint16_t GCEN:1;
  uint16_t SMEN:1;
  uint16_t DISSLW:1;
  uint16_t A10M:1;
  uint16_t IPMIEN:1;
  uint16_t SCLREL:1;
  uint16_t I2CSIDL:1;
  uint16_t :1;
  uint16_t I2CEN:1;
} I2C1CONBITS;
extern volatile I2C1CONBITS I2C1CONbits __attribute__((__sfr__));


extern volatile uint16_t I2CCON __attribute__((__sfr__));
typedef struct tagI2CCONBITS {
  uint16_t SEN:1;
  uint16_t RSEN:1;
  uint16_t PEN:1;
  uint16_t RCEN:1;
  uint16_t ACKEN:1;
  uint16_t ACKDT:1;
  uint16_t STREN:1;
  uint16_t GCEN:1;
  uint16_t SMEN:1;
  uint16_t DISSLW:1;
  uint16_t A10M:1;
  uint16_t IPMIEN:1;
  uint16_t SCLREL:1;
  uint16_t I2CSIDL:1;
  uint16_t :1;
  uint16_t I2CEN:1;
} I2CCONBITS;
extern volatile I2CCONBITS I2CCONbits __attribute__((__sfr__));


extern volatile uint16_t I2C1STAT __attribute__((__sfr__));
typedef struct tagI2C1STATBITS {
  uint16_t TBF:1;
  uint16_t RBF:1;
  uint16_t R_W:1;
  uint16_t S:1;
  uint16_t P:1;
  uint16_t D_A:1;
  uint16_t I2COV:1;
  uint16_t IWCOL:1;
  uint16_t ADD10:1;
  uint16_t GCSTAT:1;
  uint16_t BCL:1;
  uint16_t :3;
  uint16_t TRSTAT:1;
  uint16_t ACKSTAT:1;
} I2C1STATBITS;
extern volatile I2C1STATBITS I2C1STATbits __attribute__((__sfr__));


extern volatile uint16_t I2CSTAT __attribute__((__sfr__));
typedef struct tagI2CSTATBITS {
  uint16_t TBF:1;
  uint16_t RBF:1;
  uint16_t R_W:1;
  uint16_t S:1;
  uint16_t P:1;
  uint16_t D_A:1;
  uint16_t I2COV:1;
  uint16_t IWCOL:1;
  uint16_t ADD10:1;
  uint16_t GCSTAT:1;
  uint16_t BCL:1;
  uint16_t :3;
  uint16_t TRSTAT:1;
  uint16_t ACKSTAT:1;
} I2CSTATBITS;
extern volatile I2CSTATBITS I2CSTATbits __attribute__((__sfr__));


extern volatile uint16_t I2C1ADD __attribute__((__sfr__));

extern volatile uint16_t I2CADD __attribute__((__sfr__));

extern volatile uint16_t I2C1MSK __attribute__((__sfr__));

extern volatile uint16_t I2C2RCV __attribute__((__sfr__));

extern volatile uint16_t I2C2TRN __attribute__((__sfr__));

extern volatile uint16_t I2C2BRG __attribute__((__sfr__));

extern volatile uint16_t I2C2CON __attribute__((__sfr__));
typedef struct tagI2C2CONBITS {
  uint16_t SEN:1;
  uint16_t RSEN:1;
  uint16_t PEN:1;
  uint16_t RCEN:1;
  uint16_t ACKEN:1;
  uint16_t ACKDT:1;
  uint16_t STREN:1;
  uint16_t GCEN:1;
  uint16_t SMEN:1;
  uint16_t DISSLW:1;
  uint16_t A10M:1;
  uint16_t IPMIEN:1;
  uint16_t SCLREL:1;
  uint16_t I2CSIDL:1;
  uint16_t :1;
  uint16_t I2CEN:1;
} I2C2CONBITS;
extern volatile I2C2CONBITS I2C2CONbits __attribute__((__sfr__));


extern volatile uint16_t I2C2STAT __attribute__((__sfr__));
typedef struct tagI2C2STATBITS {
  uint16_t TBF:1;
  uint16_t RBF:1;
  uint16_t R_W:1;
  uint16_t S:1;
  uint16_t P:1;
  uint16_t D_A:1;
  uint16_t I2COV:1;
  uint16_t IWCOL:1;
  uint16_t ADD10:1;
  uint16_t GCSTAT:1;
  uint16_t BCL:1;
  uint16_t :3;
  uint16_t TRSTAT:1;
  uint16_t ACKSTAT:1;
} I2C2STATBITS;
extern volatile I2C2STATBITS I2C2STATbits __attribute__((__sfr__));


extern volatile uint16_t I2C2ADD __attribute__((__sfr__));

extern volatile uint16_t I2C2MSK __attribute__((__sfr__));


typedef struct tagUART {
        uint16_t uxmode;
        uint16_t uxsta;
        uint16_t uxtxreg;
        uint16_t uxrxreg;
        uint16_t uxbrg;
} UART, *PUART;
# 2616 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern volatile UART UART1 __attribute__((__sfr__));

extern volatile UART UART2 __attribute__((__sfr__));


extern volatile uint16_t U1MODE __attribute__((__sfr__));
__extension__ typedef struct tagU1MODEBITS {
  union {
    struct {
      uint16_t STSEL:1;
      uint16_t PDSEL:2;
      uint16_t BRGH:1;
      uint16_t URXINV:1;
      uint16_t ABAUD:1;
      uint16_t LPBACK:1;
      uint16_t WAKE:1;
      uint16_t UEN:2;
      uint16_t :1;
      uint16_t RTSMD:1;
      uint16_t IREN:1;
      uint16_t USIDL:1;
      uint16_t :1;
      uint16_t UARTEN:1;
    };
    struct {
      uint16_t :1;
      uint16_t PDSEL0:1;
      uint16_t PDSEL1:1;
      uint16_t :5;
      uint16_t UEN0:1;
      uint16_t UEN1:1;
    };
  };
} U1MODEBITS;
extern volatile U1MODEBITS U1MODEbits __attribute__((__sfr__));


extern volatile uint16_t U1STA __attribute__((__sfr__));
__extension__ typedef struct tagU1STABITS {
  union {
    struct {
      uint16_t URXDA:1;
      uint16_t OERR:1;
      uint16_t FERR:1;
      uint16_t PERR:1;
      uint16_t RIDLE:1;
      uint16_t ADDEN:1;
      uint16_t URXISEL:2;
      uint16_t TRMT:1;
      uint16_t UTXBF:1;
      uint16_t UTXEN:1;
      uint16_t UTXBRK:1;
      uint16_t :1;
      uint16_t UTXISEL0:1;
      uint16_t UTXINV:1;
      uint16_t UTXISEL1:1;
    };
    struct {
      uint16_t :6;
      uint16_t URXISEL0:1;
      uint16_t URXISEL1:1;
    };
  };
} U1STABITS;
extern volatile U1STABITS U1STAbits __attribute__((__sfr__));


extern volatile uint16_t U1TXREG __attribute__((__sfr__));
typedef struct tagU1TXREGBITS {
  uint16_t UTXREG0:1;
  uint16_t UTXREG1:1;
  uint16_t UTXREG2:1;
  uint16_t UTXREG3:1;
  uint16_t UTXREG4:1;
  uint16_t UTXREG5:1;
  uint16_t UTXREG6:1;
  uint16_t UTXREG7:1;
  uint16_t UTXREG8:1;
} U1TXREGBITS;
extern volatile U1TXREGBITS U1TXREGbits __attribute__((__sfr__));


extern volatile uint16_t U1RXREG __attribute__((__sfr__));
typedef struct tagU1RXREGBITS {
  uint16_t URXREG0:1;
  uint16_t URXREG1:1;
  uint16_t URXREG2:1;
  uint16_t URXREG3:1;
  uint16_t URXREG4:1;
  uint16_t URXREG5:1;
  uint16_t URXREG6:1;
  uint16_t URXREG7:1;
  uint16_t URXREG8:1;
} U1RXREGBITS;
extern volatile U1RXREGBITS U1RXREGbits __attribute__((__sfr__));


extern volatile uint16_t U1BRG __attribute__((__sfr__));

extern volatile uint16_t U2MODE __attribute__((__sfr__));
__extension__ typedef struct tagU2MODEBITS {
  union {
    struct {
      uint16_t STSEL:1;
      uint16_t PDSEL:2;
      uint16_t BRGH:1;
      uint16_t URXINV:1;
      uint16_t ABAUD:1;
      uint16_t LPBACK:1;
      uint16_t WAKE:1;
      uint16_t UEN:2;
      uint16_t :1;
      uint16_t RTSMD:1;
      uint16_t IREN:1;
      uint16_t USIDL:1;
      uint16_t :1;
      uint16_t UARTEN:1;
    };
    struct {
      uint16_t :1;
      uint16_t PDSEL0:1;
      uint16_t PDSEL1:1;
      uint16_t :5;
      uint16_t UEN0:1;
      uint16_t UEN1:1;
    };
  };
} U2MODEBITS;
extern volatile U2MODEBITS U2MODEbits __attribute__((__sfr__));


extern volatile uint16_t U2STA __attribute__((__sfr__));
__extension__ typedef struct tagU2STABITS {
  union {
    struct {
      uint16_t URXDA:1;
      uint16_t OERR:1;
      uint16_t FERR:1;
      uint16_t PERR:1;
      uint16_t RIDLE:1;
      uint16_t ADDEN:1;
      uint16_t URXISEL:2;
      uint16_t TRMT:1;
      uint16_t UTXBF:1;
      uint16_t UTXEN:1;
      uint16_t UTXBRK:1;
      uint16_t :1;
      uint16_t UTXISEL0:1;
      uint16_t UTXINV:1;
      uint16_t UTXISEL1:1;
    };
    struct {
      uint16_t :6;
      uint16_t URXISEL0:1;
      uint16_t URXISEL1:1;
    };
  };
} U2STABITS;
extern volatile U2STABITS U2STAbits __attribute__((__sfr__));


extern volatile uint16_t U2TXREG __attribute__((__sfr__));
typedef struct tagU2TXREGBITS {
  uint16_t UTXREG0:1;
  uint16_t UTXREG1:1;
  uint16_t UTXREG2:1;
  uint16_t UTXREG3:1;
  uint16_t UTXREG4:1;
  uint16_t UTXREG5:1;
  uint16_t UTXREG6:1;
  uint16_t UTXREG7:1;
  uint16_t UTXREG8:1;
} U2TXREGBITS;
extern volatile U2TXREGBITS U2TXREGbits __attribute__((__sfr__));


extern volatile uint16_t U2RXREG __attribute__((__sfr__));
typedef struct tagU2RXREGBITS {
  uint16_t URXREG0:1;
  uint16_t URXREG1:1;
  uint16_t URXREG2:1;
  uint16_t URXREG3:1;
  uint16_t URXREG4:1;
  uint16_t URXREG5:1;
  uint16_t URXREG6:1;
  uint16_t URXREG7:1;
  uint16_t URXREG8:1;
} U2RXREGBITS;
extern volatile U2RXREGBITS U2RXREGbits __attribute__((__sfr__));


extern volatile uint16_t U2BRG __attribute__((__sfr__));


typedef struct tagSPI {
        uint16_t spixstat;
        uint16_t spixcon1;
        uint16_t spixcon2;
        uint16_t unused;
        uint16_t spixbuf;
} SPI, *PSPI;






extern volatile SPI SPI1 __attribute__((__sfr__));

extern volatile SPI SPI2 __attribute__((__sfr__));


extern volatile uint16_t SPI1STAT __attribute__((__sfr__));
typedef struct tagSPI1STATBITS {
  uint16_t SPIRBF:1;
  uint16_t SPITBF:1;
  uint16_t :4;
  uint16_t SPIROV:1;
  uint16_t :6;
  uint16_t SPISIDL:1;
  uint16_t :1;
  uint16_t SPIEN:1;
} SPI1STATBITS;
extern volatile SPI1STATBITS SPI1STATbits __attribute__((__sfr__));


extern volatile uint16_t SPI1CON1 __attribute__((__sfr__));
__extension__ typedef struct tagSPI1CON1BITS {
  union {
    struct {
      uint16_t PPRE:2;
      uint16_t SPRE:3;
      uint16_t MSTEN:1;
      uint16_t CKP:1;
      uint16_t SSEN:1;
      uint16_t CKE:1;
      uint16_t SMP:1;
      uint16_t MODE16:1;
      uint16_t DISSDO:1;
      uint16_t DISSCK:1;
    };
    struct {
      uint16_t PPRE0:1;
      uint16_t PPRE1:1;
      uint16_t SPRE0:1;
      uint16_t SPRE1:1;
      uint16_t SPRE2:1;
    };
  };
} SPI1CON1BITS;
extern volatile SPI1CON1BITS SPI1CON1bits __attribute__((__sfr__));


extern volatile uint16_t SPI1CON2 __attribute__((__sfr__));
__extension__ typedef struct tagSPI1CON2BITS {
  union {
    struct {
      uint16_t :1;
      uint16_t FRMDLY:1;
      uint16_t :11;
      uint16_t FRMPOL:1;
      uint16_t SPIFSD:1;
      uint16_t FRMEN:1;
    };
    struct {
      uint16_t :14;
      uint16_t FRMSYNC:1;
    };
  };
} SPI1CON2BITS;
extern volatile SPI1CON2BITS SPI1CON2bits __attribute__((__sfr__));


extern volatile uint16_t SPI1BUF __attribute__((__sfr__));

extern volatile uint16_t SPI2STAT __attribute__((__sfr__));
typedef struct tagSPI2STATBITS {
  uint16_t SPIRBF:1;
  uint16_t SPITBF:1;
  uint16_t :4;
  uint16_t SPIROV:1;
  uint16_t :6;
  uint16_t SPISIDL:1;
  uint16_t :1;
  uint16_t SPIEN:1;
} SPI2STATBITS;
extern volatile SPI2STATBITS SPI2STATbits __attribute__((__sfr__));


extern volatile uint16_t SPI2CON1 __attribute__((__sfr__));
__extension__ typedef struct tagSPI2CON1BITS {
  union {
    struct {
      uint16_t PPRE:2;
      uint16_t SPRE:3;
      uint16_t MSTEN:1;
      uint16_t CKP:1;
      uint16_t SSEN:1;
      uint16_t CKE:1;
      uint16_t SMP:1;
      uint16_t MODE16:1;
      uint16_t DISSDO:1;
      uint16_t DISSCK:1;
    };
    struct {
      uint16_t PPRE0:1;
      uint16_t PPRE1:1;
      uint16_t SPRE0:1;
      uint16_t SPRE1:1;
      uint16_t SPRE2:1;
    };
  };
} SPI2CON1BITS;
extern volatile SPI2CON1BITS SPI2CON1bits __attribute__((__sfr__));


extern volatile uint16_t SPI2CON2 __attribute__((__sfr__));
__extension__ typedef struct tagSPI2CON2BITS {
  union {
    struct {
      uint16_t :1;
      uint16_t FRMDLY:1;
      uint16_t :11;
      uint16_t FRMPOL:1;
      uint16_t SPIFSD:1;
      uint16_t FRMEN:1;
    };
    struct {
      uint16_t :14;
      uint16_t FRMSYNC:1;
    };
  };
} SPI2CON2BITS;
extern volatile SPI2CON2BITS SPI2CON2bits __attribute__((__sfr__));


extern volatile uint16_t SPI2BUF __attribute__((__sfr__));

extern volatile uint16_t TRISA __attribute__((__sfr__));
typedef struct tagTRISABITS {
  uint16_t TRISA0:1;
  uint16_t TRISA1:1;
  uint16_t TRISA2:1;
  uint16_t TRISA3:1;
  uint16_t TRISA4:1;
  uint16_t TRISA5:1;
  uint16_t TRISA6:1;
  uint16_t TRISA7:1;
  uint16_t :1;
  uint16_t TRISA9:1;
  uint16_t TRISA10:1;
  uint16_t :3;
  uint16_t TRISA14:1;
  uint16_t TRISA15:1;
} TRISABITS;
extern volatile TRISABITS TRISAbits __attribute__((__sfr__));


extern volatile uint16_t PORTA __attribute__((__sfr__));
typedef struct tagPORTABITS {
  uint16_t RA0:1;
  uint16_t RA1:1;
  uint16_t RA2:1;
  uint16_t RA3:1;
  uint16_t RA4:1;
  uint16_t RA5:1;
  uint16_t RA6:1;
  uint16_t RA7:1;
  uint16_t :1;
  uint16_t RA9:1;
  uint16_t RA10:1;
  uint16_t :3;
  uint16_t RA14:1;
  uint16_t RA15:1;
} PORTABITS;
extern volatile PORTABITS PORTAbits __attribute__((__sfr__));


extern volatile uint16_t LATA __attribute__((__sfr__));
typedef struct tagLATABITS {
  uint16_t LATA0:1;
  uint16_t LATA1:1;
  uint16_t LATA2:1;
  uint16_t LATA3:1;
  uint16_t LATA4:1;
  uint16_t LATA5:1;
  uint16_t LATA6:1;
  uint16_t LATA7:1;
  uint16_t :1;
  uint16_t LATA9:1;
  uint16_t LATA10:1;
  uint16_t :3;
  uint16_t LATA14:1;
  uint16_t LATA15:1;
} LATABITS;
extern volatile LATABITS LATAbits __attribute__((__sfr__));


extern volatile uint16_t TRISB __attribute__((__sfr__));
typedef struct tagTRISBBITS {
  uint16_t TRISB0:1;
  uint16_t TRISB1:1;
  uint16_t TRISB2:1;
  uint16_t TRISB3:1;
  uint16_t TRISB4:1;
  uint16_t TRISB5:1;
  uint16_t TRISB6:1;
  uint16_t TRISB7:1;
  uint16_t TRISB8:1;
  uint16_t TRISB9:1;
  uint16_t TRISB10:1;
  uint16_t TRISB11:1;
  uint16_t TRISB12:1;
  uint16_t TRISB13:1;
  uint16_t TRISB14:1;
  uint16_t TRISB15:1;
} TRISBBITS;
extern volatile TRISBBITS TRISBbits __attribute__((__sfr__));


extern volatile uint16_t PORTB __attribute__((__sfr__));
typedef struct tagPORTBBITS {
  uint16_t RB0:1;
  uint16_t RB1:1;
  uint16_t RB2:1;
  uint16_t RB3:1;
  uint16_t RB4:1;
  uint16_t RB5:1;
  uint16_t RB6:1;
  uint16_t RB7:1;
  uint16_t RB8:1;
  uint16_t RB9:1;
  uint16_t RB10:1;
  uint16_t RB11:1;
  uint16_t RB12:1;
  uint16_t RB13:1;
  uint16_t RB14:1;
  uint16_t RB15:1;
} PORTBBITS;
extern volatile PORTBBITS PORTBbits __attribute__((__sfr__));


extern volatile uint16_t LATB __attribute__((__sfr__));
typedef struct tagLATBBITS {
  uint16_t LATB0:1;
  uint16_t LATB1:1;
  uint16_t LATB2:1;
  uint16_t LATB3:1;
  uint16_t LATB4:1;
  uint16_t LATB5:1;
  uint16_t LATB6:1;
  uint16_t LATB7:1;
  uint16_t LATB8:1;
  uint16_t LATB9:1;
  uint16_t LATB10:1;
  uint16_t LATB11:1;
  uint16_t LATB12:1;
  uint16_t LATB13:1;
  uint16_t LATB14:1;
  uint16_t LATB15:1;
} LATBBITS;
extern volatile LATBBITS LATBbits __attribute__((__sfr__));


extern volatile uint16_t TRISC __attribute__((__sfr__));
typedef struct tagTRISCBITS {
  uint16_t :1;
  uint16_t TRISC1:1;
  uint16_t TRISC2:1;
  uint16_t TRISC3:1;
  uint16_t TRISC4:1;
  uint16_t :7;
  uint16_t TRISC12:1;
  uint16_t TRISC13:1;
  uint16_t TRISC14:1;
  uint16_t TRISC15:1;
} TRISCBITS;
extern volatile TRISCBITS TRISCbits __attribute__((__sfr__));


extern volatile uint16_t PORTC __attribute__((__sfr__));
typedef struct tagPORTCBITS {
  uint16_t :1;
  uint16_t RC1:1;
  uint16_t RC2:1;
  uint16_t RC3:1;
  uint16_t RC4:1;
  uint16_t :7;
  uint16_t RC12:1;
  uint16_t RC13:1;
  uint16_t RC14:1;
  uint16_t RC15:1;
} PORTCBITS;
extern volatile PORTCBITS PORTCbits __attribute__((__sfr__));


extern volatile uint16_t LATC __attribute__((__sfr__));
typedef struct tagLATCBITS {
  uint16_t :1;
  uint16_t LATC1:1;
  uint16_t LATC2:1;
  uint16_t LATC3:1;
  uint16_t LATC4:1;
  uint16_t :7;
  uint16_t LATC12:1;
  uint16_t LATC13:1;
  uint16_t LATC14:1;
  uint16_t LATC15:1;
} LATCBITS;
extern volatile LATCBITS LATCbits __attribute__((__sfr__));


extern volatile uint16_t TRISD __attribute__((__sfr__));
typedef struct tagTRISDBITS {
  uint16_t TRISD0:1;
  uint16_t TRISD1:1;
  uint16_t TRISD2:1;
  uint16_t TRISD3:1;
  uint16_t TRISD4:1;
  uint16_t TRISD5:1;
  uint16_t TRISD6:1;
  uint16_t TRISD7:1;
  uint16_t TRISD8:1;
  uint16_t TRISD9:1;
  uint16_t TRISD10:1;
  uint16_t TRISD11:1;
  uint16_t TRISD12:1;
  uint16_t TRISD13:1;
  uint16_t TRISD14:1;
  uint16_t TRISD15:1;
} TRISDBITS;
extern volatile TRISDBITS TRISDbits __attribute__((__sfr__));


extern volatile uint16_t PORTD __attribute__((__sfr__));
typedef struct tagPORTDBITS {
  uint16_t RD0:1;
  uint16_t RD1:1;
  uint16_t RD2:1;
  uint16_t RD3:1;
  uint16_t RD4:1;
  uint16_t RD5:1;
  uint16_t RD6:1;
  uint16_t RD7:1;
  uint16_t RD8:1;
  uint16_t RD9:1;
  uint16_t RD10:1;
  uint16_t RD11:1;
  uint16_t RD12:1;
  uint16_t RD13:1;
  uint16_t RD14:1;
  uint16_t RD15:1;
} PORTDBITS;
extern volatile PORTDBITS PORTDbits __attribute__((__sfr__));


extern volatile uint16_t LATD __attribute__((__sfr__));
typedef struct tagLATDBITS {
  uint16_t LATD0:1;
  uint16_t LATD1:1;
  uint16_t LATD2:1;
  uint16_t LATD3:1;
  uint16_t LATD4:1;
  uint16_t LATD5:1;
  uint16_t LATD6:1;
  uint16_t LATD7:1;
  uint16_t LATD8:1;
  uint16_t LATD9:1;
  uint16_t LATD10:1;
  uint16_t LATD11:1;
  uint16_t LATD12:1;
  uint16_t LATD13:1;
  uint16_t LATD14:1;
  uint16_t LATD15:1;
} LATDBITS;
extern volatile LATDBITS LATDbits __attribute__((__sfr__));


extern volatile uint16_t TRISE __attribute__((__sfr__));
typedef struct tagTRISEBITS {
  uint16_t TRISE0:1;
  uint16_t TRISE1:1;
  uint16_t TRISE2:1;
  uint16_t TRISE3:1;
  uint16_t TRISE4:1;
  uint16_t TRISE5:1;
  uint16_t TRISE6:1;
  uint16_t TRISE7:1;
  uint16_t TRISE8:1;
  uint16_t TRISE9:1;
} TRISEBITS;
extern volatile TRISEBITS TRISEbits __attribute__((__sfr__));


extern volatile uint16_t PORTE __attribute__((__sfr__));
typedef struct tagPORTEBITS {
  uint16_t RE0:1;
  uint16_t RE1:1;
  uint16_t RE2:1;
  uint16_t RE3:1;
  uint16_t RE4:1;
  uint16_t RE5:1;
  uint16_t RE6:1;
  uint16_t RE7:1;
  uint16_t RE8:1;
  uint16_t RE9:1;
} PORTEBITS;
extern volatile PORTEBITS PORTEbits __attribute__((__sfr__));


extern volatile uint16_t LATE __attribute__((__sfr__));
typedef struct tagLATEBITS {
  uint16_t LATE0:1;
  uint16_t LATE1:1;
  uint16_t LATE2:1;
  uint16_t LATE3:1;
  uint16_t LATE4:1;
  uint16_t LATE5:1;
  uint16_t LATE6:1;
  uint16_t LATE7:1;
  uint16_t LATE8:1;
  uint16_t LATE9:1;
} LATEBITS;
extern volatile LATEBITS LATEbits __attribute__((__sfr__));


extern volatile uint16_t TRISF __attribute__((__sfr__));
typedef struct tagTRISFBITS {
  uint16_t TRISF0:1;
  uint16_t TRISF1:1;
  uint16_t TRISF2:1;
  uint16_t TRISF3:1;
  uint16_t TRISF4:1;
  uint16_t TRISF5:1;
  uint16_t TRISF6:1;
  uint16_t TRISF7:1;
  uint16_t TRISF8:1;
  uint16_t :3;
  uint16_t TRISF12:1;
  uint16_t TRISF13:1;
} TRISFBITS;
extern volatile TRISFBITS TRISFbits __attribute__((__sfr__));


extern volatile uint16_t PORTF __attribute__((__sfr__));
typedef struct tagPORTFBITS {
  uint16_t RF0:1;
  uint16_t RF1:1;
  uint16_t RF2:1;
  uint16_t RF3:1;
  uint16_t RF4:1;
  uint16_t RF5:1;
  uint16_t RF6:1;
  uint16_t RF7:1;
  uint16_t RF8:1;
  uint16_t :3;
  uint16_t RF12:1;
  uint16_t RF13:1;
} PORTFBITS;
extern volatile PORTFBITS PORTFbits __attribute__((__sfr__));


extern volatile uint16_t LATF __attribute__((__sfr__));
typedef struct tagLATFBITS {
  uint16_t LATF0:1;
  uint16_t LATF1:1;
  uint16_t LATF2:1;
  uint16_t LATF3:1;
  uint16_t LATF4:1;
  uint16_t LATF5:1;
  uint16_t LATF6:1;
  uint16_t LATF7:1;
  uint16_t LATF8:1;
  uint16_t :3;
  uint16_t LATF12:1;
  uint16_t LATF13:1;
} LATFBITS;
extern volatile LATFBITS LATFbits __attribute__((__sfr__));


extern volatile uint16_t TRISG __attribute__((__sfr__));
typedef struct tagTRISGBITS {
  uint16_t TRISG0:1;
  uint16_t TRISG1:1;
  uint16_t TRISG2:1;
  uint16_t TRISG3:1;
  uint16_t :2;
  uint16_t TRISG6:1;
  uint16_t TRISG7:1;
  uint16_t TRISG8:1;
  uint16_t TRISG9:1;
  uint16_t :2;
  uint16_t TRISG12:1;
  uint16_t TRISG13:1;
  uint16_t TRISG14:1;
  uint16_t TRISG15:1;
} TRISGBITS;
extern volatile TRISGBITS TRISGbits __attribute__((__sfr__));


extern volatile uint16_t PORTG __attribute__((__sfr__));
typedef struct tagPORTGBITS {
  uint16_t RG0:1;
  uint16_t RG1:1;
  uint16_t RG2:1;
  uint16_t RG3:1;
  uint16_t :2;
  uint16_t RG6:1;
  uint16_t RG7:1;
  uint16_t RG8:1;
  uint16_t RG9:1;
  uint16_t :2;
  uint16_t RG12:1;
  uint16_t RG13:1;
  uint16_t RG14:1;
  uint16_t RG15:1;
} PORTGBITS;
extern volatile PORTGBITS PORTGbits __attribute__((__sfr__));


extern volatile uint16_t LATG __attribute__((__sfr__));
typedef struct tagLATGBITS {
  uint16_t LATG0:1;
  uint16_t LATG1:1;
  uint16_t LATG2:1;
  uint16_t LATG3:1;
  uint16_t :2;
  uint16_t LATG6:1;
  uint16_t LATG7:1;
  uint16_t LATG8:1;
  uint16_t LATG9:1;
  uint16_t :2;
  uint16_t LATG12:1;
  uint16_t LATG13:1;
  uint16_t LATG14:1;
  uint16_t LATG15:1;
} LATGBITS;
extern volatile LATGBITS LATGbits __attribute__((__sfr__));


extern volatile uint16_t ADC1BUF0 __attribute__((__sfr__));

extern volatile uint16_t ADCBUF0 __attribute__((__sfr__));

extern volatile uint16_t AD1CON1 __attribute__((__sfr__));
__extension__ typedef struct tagAD1CON1BITS {
  union {
    struct {
      uint16_t DONE:1;
      uint16_t SAMP:1;
      uint16_t ASAM:1;
      uint16_t SIMSAM:1;
      uint16_t :1;
      uint16_t SSRC:3;
      uint16_t FORM:2;
      uint16_t AD12B:1;
      uint16_t :1;
      uint16_t ADDMABM:1;
      uint16_t ADSIDL:1;
      uint16_t :1;
      uint16_t ADON:1;
    };
    struct {
      uint16_t :5;
      uint16_t SSRC0:1;
      uint16_t SSRC1:1;
      uint16_t SSRC2:1;
      uint16_t FORM0:1;
      uint16_t FORM1:1;
    };
  };
} AD1CON1BITS;
extern volatile AD1CON1BITS AD1CON1bits __attribute__((__sfr__));


extern volatile uint16_t AD1CON2 __attribute__((__sfr__));
__extension__ typedef struct tagAD1CON2BITS {
  union {
    struct {
      uint16_t ALTS:1;
      uint16_t BUFM:1;
      uint16_t SMPI:4;
      uint16_t :1;
      uint16_t BUFS:1;
      uint16_t CHPS:2;
      uint16_t CSCNA:1;
      uint16_t :2;
      uint16_t VCFG:3;
    };
    struct {
      uint16_t :2;
      uint16_t SMPI0:1;
      uint16_t SMPI1:1;
      uint16_t SMPI2:1;
      uint16_t SMPI3:1;
      uint16_t :2;
      uint16_t CHPS0:1;
      uint16_t CHPS1:1;
      uint16_t :3;
      uint16_t VCFG0:1;
      uint16_t VCFG1:1;
      uint16_t VCFG2:1;
    };
  };
} AD1CON2BITS;
extern volatile AD1CON2BITS AD1CON2bits __attribute__((__sfr__));


extern volatile uint16_t AD1CON3 __attribute__((__sfr__));
__extension__ typedef struct tagAD1CON3BITS {
  union {
    struct {
      uint16_t ADCS:8;
      uint16_t SAMC:5;
      uint16_t :2;
      uint16_t ADRC:1;
    };
    struct {
      uint16_t ADCS0:1;
      uint16_t ADCS1:1;
      uint16_t ADCS2:1;
      uint16_t ADCS3:1;
      uint16_t ADCS4:1;
      uint16_t ADCS5:1;
      uint16_t ADCS6:1;
      uint16_t ADCS7:1;
      uint16_t SAMC0:1;
      uint16_t SAMC1:1;
      uint16_t SAMC2:1;
      uint16_t SAMC3:1;
      uint16_t SAMC4:1;
    };
  };
} AD1CON3BITS;
extern volatile AD1CON3BITS AD1CON3bits __attribute__((__sfr__));


extern volatile uint16_t AD1CHS123 __attribute__((__sfr__));
__extension__ typedef struct tagAD1CHS123BITS {
  union {
    struct {
      uint16_t CH123SA:1;
      uint16_t CH123NA:2;
      uint16_t :5;
      uint16_t CH123SB:1;
      uint16_t CH123NB:2;
    };
    struct {
      uint16_t :1;
      uint16_t CH123NA0:1;
      uint16_t CH123NA1:1;
      uint16_t :6;
      uint16_t CH123NB0:1;
      uint16_t CH123NB1:1;
    };
  };
} AD1CHS123BITS;
extern volatile AD1CHS123BITS AD1CHS123bits __attribute__((__sfr__));


extern volatile uint16_t AD1CHS0 __attribute__((__sfr__));
__extension__ typedef struct tagAD1CHS0BITS {
  union {
    struct {
      uint16_t CH0SA:5;
      uint16_t :2;
      uint16_t CH0NA:1;
      uint16_t CH0SB:5;
      uint16_t :2;
      uint16_t CH0NB:1;
    };
    struct {
      uint16_t CH0SA0:1;
      uint16_t CH0SA1:1;
      uint16_t CH0SA2:1;
      uint16_t CH0SA3:1;
      uint16_t CH0SA4:1;
      uint16_t :3;
      uint16_t CH0SB0:1;
      uint16_t CH0SB1:1;
      uint16_t CH0SB2:1;
      uint16_t CH0SB3:1;
      uint16_t CH0SB4:1;
    };
  };
} AD1CHS0BITS;
extern volatile AD1CHS0BITS AD1CHS0bits __attribute__((__sfr__));


extern volatile uint16_t AD1PCFGH __attribute__((__sfr__));
typedef struct tagAD1PCFGHBITS {
  uint16_t PCFG16:1;
  uint16_t PCFG17:1;
  uint16_t PCFG18:1;
  uint16_t PCFG19:1;
  uint16_t PCFG20:1;
  uint16_t PCFG21:1;
  uint16_t PCFG22:1;
  uint16_t PCFG23:1;
} AD1PCFGHBITS;
extern volatile AD1PCFGHBITS AD1PCFGHbits __attribute__((__sfr__));


extern volatile uint16_t AD1PCFGL __attribute__((__sfr__));
typedef struct tagAD1PCFGLBITS {
  uint16_t PCFG0:1;
  uint16_t PCFG1:1;
  uint16_t PCFG2:1;
  uint16_t PCFG3:1;
  uint16_t PCFG4:1;
  uint16_t PCFG5:1;
  uint16_t PCFG6:1;
  uint16_t PCFG7:1;
  uint16_t PCFG8:1;
  uint16_t PCFG9:1;
  uint16_t PCFG10:1;
  uint16_t PCFG11:1;
  uint16_t PCFG12:1;
  uint16_t PCFG13:1;
  uint16_t PCFG14:1;
  uint16_t PCFG15:1;
} AD1PCFGLBITS;
extern volatile AD1PCFGLBITS AD1PCFGLbits __attribute__((__sfr__));


extern volatile uint16_t ADPCFG __attribute__((__sfr__));
typedef struct tagADPCFGBITS {
  uint16_t PCFG0:1;
  uint16_t PCFG1:1;
  uint16_t PCFG2:1;
  uint16_t PCFG3:1;
  uint16_t PCFG4:1;
  uint16_t PCFG5:1;
  uint16_t PCFG6:1;
  uint16_t PCFG7:1;
  uint16_t PCFG8:1;
  uint16_t PCFG9:1;
  uint16_t PCFG10:1;
  uint16_t PCFG11:1;
  uint16_t PCFG12:1;
  uint16_t PCFG13:1;
  uint16_t PCFG14:1;
  uint16_t PCFG15:1;
} ADPCFGBITS;
extern volatile ADPCFGBITS ADPCFGbits __attribute__((__sfr__));


extern volatile uint16_t AD1CSSH __attribute__((__sfr__));
typedef struct tagAD1CSSHBITS {
  uint16_t CSS16:1;
  uint16_t CSS17:1;
  uint16_t CSS18:1;
  uint16_t CSS19:1;
  uint16_t CSS20:1;
  uint16_t CSS21:1;
  uint16_t CSS22:1;
  uint16_t CSS23:1;
} AD1CSSHBITS;
extern volatile AD1CSSHBITS AD1CSSHbits __attribute__((__sfr__));


extern volatile uint16_t AD1CSSL __attribute__((__sfr__));
typedef struct tagAD1CSSLBITS {
  uint16_t CSS0:1;
  uint16_t CSS1:1;
  uint16_t CSS2:1;
  uint16_t CSS3:1;
  uint16_t CSS4:1;
  uint16_t CSS5:1;
  uint16_t CSS6:1;
  uint16_t CSS7:1;
  uint16_t CSS8:1;
  uint16_t CSS9:1;
  uint16_t CSS10:1;
  uint16_t CSS11:1;
  uint16_t CSS12:1;
  uint16_t CSS13:1;
  uint16_t CSS14:1;
  uint16_t CSS15:1;
} AD1CSSLBITS;
extern volatile AD1CSSLBITS AD1CSSLbits __attribute__((__sfr__));


extern volatile uint16_t AD1CON4 __attribute__((__sfr__));
__extension__ typedef struct tagAD1CON4BITS {
  union {
    struct {
      uint16_t DMABL:3;
    };
    struct {
      uint16_t DMABL0:1;
      uint16_t DMABL1:1;
      uint16_t DMABL2:1;
    };
  };
} AD1CON4BITS;
extern volatile AD1CON4BITS AD1CON4bits __attribute__((__sfr__));


extern volatile uint16_t ADC2BUF0 __attribute__((__sfr__));

extern volatile uint16_t AD2CON1 __attribute__((__sfr__));
__extension__ typedef struct tagAD2CON1BITS {
  union {
    struct {
      uint16_t DONE:1;
      uint16_t SAMP:1;
      uint16_t ASAM:1;
      uint16_t SIMSAM:1;
      uint16_t :1;
      uint16_t SSRC:3;
      uint16_t FORM:2;
      uint16_t AD12B:1;
      uint16_t :1;
      uint16_t ADDMABM:1;
      uint16_t ADSIDL:1;
      uint16_t :1;
      uint16_t ADON:1;
    };
    struct {
      uint16_t :5;
      uint16_t SSRC0:1;
      uint16_t SSRC1:1;
      uint16_t SSRC2:1;
      uint16_t FORM0:1;
      uint16_t FORM1:1;
    };
  };
} AD2CON1BITS;
extern volatile AD2CON1BITS AD2CON1bits __attribute__((__sfr__));


extern volatile uint16_t AD2CON2 __attribute__((__sfr__));
__extension__ typedef struct tagAD2CON2BITS {
  union {
    struct {
      uint16_t ALTS:1;
      uint16_t BUFM:1;
      uint16_t SMPI:4;
      uint16_t :1;
      uint16_t BUFS:1;
      uint16_t CHPS:2;
      uint16_t CSCNA:1;
      uint16_t :2;
      uint16_t VCFG:3;
    };
    struct {
      uint16_t :2;
      uint16_t SMPI0:1;
      uint16_t SMPI1:1;
      uint16_t SMPI2:1;
      uint16_t SMPI3:1;
      uint16_t :2;
      uint16_t CHPS0:1;
      uint16_t CHPS1:1;
      uint16_t :3;
      uint16_t VCFG0:1;
      uint16_t VCFG1:1;
      uint16_t VCFG2:1;
    };
  };
} AD2CON2BITS;
extern volatile AD2CON2BITS AD2CON2bits __attribute__((__sfr__));


extern volatile uint16_t AD2CON3 __attribute__((__sfr__));
__extension__ typedef struct tagAD2CON3BITS {
  union {
    struct {
      uint16_t ADCS:8;
      uint16_t SAMC:5;
      uint16_t :2;
      uint16_t ADRC:1;
    };
    struct {
      uint16_t ADCS0:1;
      uint16_t ADCS1:1;
      uint16_t ADCS2:1;
      uint16_t ADCS3:1;
      uint16_t ADCS4:1;
      uint16_t ADCS5:1;
      uint16_t ADCS6:1;
      uint16_t ADCS7:1;
      uint16_t SAMC0:1;
      uint16_t SAMC1:1;
      uint16_t SAMC2:1;
      uint16_t SAMC3:1;
      uint16_t SAMC4:1;
    };
  };
} AD2CON3BITS;
extern volatile AD2CON3BITS AD2CON3bits __attribute__((__sfr__));


extern volatile uint16_t AD2CHS123 __attribute__((__sfr__));
__extension__ typedef struct tagAD2CHS123BITS {
  union {
    struct {
      uint16_t CH123SA:1;
      uint16_t CH123NA:2;
      uint16_t :5;
      uint16_t CH123SB:1;
      uint16_t CH123NB:2;
    };
    struct {
      uint16_t :1;
      uint16_t CH123NA0:1;
      uint16_t CH123NA1:1;
      uint16_t :6;
      uint16_t CH123NB0:1;
      uint16_t CH123NB1:1;
    };
  };
} AD2CHS123BITS;
extern volatile AD2CHS123BITS AD2CHS123bits __attribute__((__sfr__));


extern volatile uint16_t AD2CHS0 __attribute__((__sfr__));
__extension__ typedef struct tagAD2CHS0BITS {
  union {
    struct {
      uint16_t CH0SA:4;
      uint16_t :3;
      uint16_t CH0NA:1;
      uint16_t CH0SB:4;
      uint16_t :3;
      uint16_t CH0NB:1;
    };
    struct {
      uint16_t CH0SA0:1;
      uint16_t CH0SA1:1;
      uint16_t CH0SA2:1;
      uint16_t CH0SA3:1;
      uint16_t CH0SA4:1;
      uint16_t :3;
      uint16_t CH0SB0:1;
      uint16_t CH0SB1:1;
      uint16_t CH0SB2:1;
      uint16_t CH0SB3:1;
      uint16_t CH0SB4:1;
    };
  };
} AD2CHS0BITS;
extern volatile AD2CHS0BITS AD2CHS0bits __attribute__((__sfr__));


extern volatile uint16_t AD2PCFGL __attribute__((__sfr__));
typedef struct tagAD2PCFGLBITS {
  uint16_t PCFG0:1;
  uint16_t PCFG1:1;
  uint16_t PCFG2:1;
  uint16_t PCFG3:1;
  uint16_t PCFG4:1;
  uint16_t PCFG5:1;
  uint16_t PCFG6:1;
  uint16_t PCFG7:1;
  uint16_t PCFG8:1;
  uint16_t PCFG9:1;
  uint16_t PCFG10:1;
  uint16_t PCFG11:1;
  uint16_t PCFG12:1;
  uint16_t PCFG13:1;
  uint16_t PCFG14:1;
  uint16_t PCFG15:1;
} AD2PCFGLBITS;
extern volatile AD2PCFGLBITS AD2PCFGLbits __attribute__((__sfr__));


extern volatile uint16_t AD2CSSL __attribute__((__sfr__));
typedef struct tagAD2CSSLBITS {
  uint16_t CSS0:1;
  uint16_t CSS1:1;
  uint16_t CSS2:1;
  uint16_t CSS3:1;
  uint16_t CSS4:1;
  uint16_t CSS5:1;
  uint16_t CSS6:1;
  uint16_t CSS7:1;
  uint16_t CSS8:1;
  uint16_t CSS9:1;
  uint16_t CSS10:1;
  uint16_t CSS11:1;
  uint16_t CSS12:1;
  uint16_t CSS13:1;
  uint16_t CSS14:1;
  uint16_t CSS15:1;
} AD2CSSLBITS;
extern volatile AD2CSSLBITS AD2CSSLbits __attribute__((__sfr__));


extern volatile uint16_t AD2CON4 __attribute__((__sfr__));
__extension__ typedef struct tagAD2CON4BITS {
  union {
    struct {
      uint16_t DMABL:3;
    };
    struct {
      uint16_t DMABL0:1;
      uint16_t DMABL1:1;
      uint16_t DMABL2:1;
    };
  };
} AD2CON4BITS;
extern volatile AD2CON4BITS AD2CON4bits __attribute__((__sfr__));


extern volatile uint16_t DMA0CON __attribute__((__sfr__));
__extension__ typedef struct tagDMA0CONBITS {
  union {
    struct {
      uint16_t MODE:2;
      uint16_t :2;
      uint16_t AMODE:2;
      uint16_t :5;
      uint16_t NULLW:1;
      uint16_t HALF:1;
      uint16_t DIR:1;
      uint16_t SIZE:1;
      uint16_t CHEN:1;
    };
    struct {
      uint16_t MODE0:1;
      uint16_t MODE1:1;
      uint16_t :2;
      uint16_t AMODE0:1;
      uint16_t AMODE1:1;
    };
  };
} DMA0CONBITS;
extern volatile DMA0CONBITS DMA0CONbits __attribute__((__sfr__));


extern volatile uint16_t DMA0REQ __attribute__((__sfr__));
__extension__ typedef struct tagDMA0REQBITS {
  union {
    struct {
      uint16_t IRQSEL:7;
      uint16_t :8;
      uint16_t FORCE:1;
    };
    struct {
      uint16_t IRQSEL0:1;
      uint16_t IRQSEL1:1;
      uint16_t IRQSEL2:1;
      uint16_t IRQSEL3:1;
      uint16_t IRQSEL4:1;
      uint16_t IRQSEL5:1;
      uint16_t IRQSEL6:1;
    };
  };
} DMA0REQBITS;
extern volatile DMA0REQBITS DMA0REQbits __attribute__((__sfr__));


extern volatile uint16_t DMA0STA __attribute__((__sfr__));

extern volatile uint16_t DMA0STB __attribute__((__sfr__));

extern volatile uint16_t DMA0PAD __attribute__((__sfr__));

extern volatile uint16_t DMA0CNT __attribute__((__sfr__));

extern volatile uint16_t DMA1CON __attribute__((__sfr__));
__extension__ typedef struct tagDMA1CONBITS {
  union {
    struct {
      uint16_t MODE:2;
      uint16_t :2;
      uint16_t AMODE:2;
      uint16_t :5;
      uint16_t NULLW:1;
      uint16_t HALF:1;
      uint16_t DIR:1;
      uint16_t SIZE:1;
      uint16_t CHEN:1;
    };
    struct {
      uint16_t MODE0:1;
      uint16_t MODE1:1;
      uint16_t :2;
      uint16_t AMODE0:1;
      uint16_t AMODE1:1;
    };
  };
} DMA1CONBITS;
extern volatile DMA1CONBITS DMA1CONbits __attribute__((__sfr__));


extern volatile uint16_t DMA1REQ __attribute__((__sfr__));
__extension__ typedef struct tagDMA1REQBITS {
  union {
    struct {
      uint16_t IRQSEL:7;
      uint16_t :8;
      uint16_t FORCE:1;
    };
    struct {
      uint16_t IRQSEL0:1;
      uint16_t IRQSEL1:1;
      uint16_t IRQSEL2:1;
      uint16_t IRQSEL3:1;
      uint16_t IRQSEL4:1;
      uint16_t IRQSEL5:1;
      uint16_t IRQSEL6:1;
    };
  };
} DMA1REQBITS;
extern volatile DMA1REQBITS DMA1REQbits __attribute__((__sfr__));


extern volatile uint16_t DMA1STA __attribute__((__sfr__));

extern volatile uint16_t DMA1STB __attribute__((__sfr__));

extern volatile uint16_t DMA1PAD __attribute__((__sfr__));

extern volatile uint16_t DMA1CNT __attribute__((__sfr__));

extern volatile uint16_t DMA2CON __attribute__((__sfr__));
__extension__ typedef struct tagDMA2CONBITS {
  union {
    struct {
      uint16_t MODE:2;
      uint16_t :2;
      uint16_t AMODE:2;
      uint16_t :5;
      uint16_t NULLW:1;
      uint16_t HALF:1;
      uint16_t DIR:1;
      uint16_t SIZE:1;
      uint16_t CHEN:1;
    };
    struct {
      uint16_t MODE0:1;
      uint16_t MODE1:1;
      uint16_t :2;
      uint16_t AMODE0:1;
      uint16_t AMODE1:1;
    };
  };
} DMA2CONBITS;
extern volatile DMA2CONBITS DMA2CONbits __attribute__((__sfr__));


extern volatile uint16_t DMA2REQ __attribute__((__sfr__));
__extension__ typedef struct tagDMA2REQBITS {
  union {
    struct {
      uint16_t IRQSEL:7;
      uint16_t :8;
      uint16_t FORCE:1;
    };
    struct {
      uint16_t IRQSEL0:1;
      uint16_t IRQSEL1:1;
      uint16_t IRQSEL2:1;
      uint16_t IRQSEL3:1;
      uint16_t IRQSEL4:1;
      uint16_t IRQSEL5:1;
      uint16_t IRQSEL6:1;
    };
  };
} DMA2REQBITS;
extern volatile DMA2REQBITS DMA2REQbits __attribute__((__sfr__));


extern volatile uint16_t DMA2STA __attribute__((__sfr__));

extern volatile uint16_t DMA2STB __attribute__((__sfr__));

extern volatile uint16_t DMA2PAD __attribute__((__sfr__));

extern volatile uint16_t DMA2CNT __attribute__((__sfr__));

extern volatile uint16_t DMA3CON __attribute__((__sfr__));
__extension__ typedef struct tagDMA3CONBITS {
  union {
    struct {
      uint16_t MODE:2;
      uint16_t :2;
      uint16_t AMODE:2;
      uint16_t :5;
      uint16_t NULLW:1;
      uint16_t HALF:1;
      uint16_t DIR:1;
      uint16_t SIZE:1;
      uint16_t CHEN:1;
    };
    struct {
      uint16_t MODE0:1;
      uint16_t MODE1:1;
      uint16_t :2;
      uint16_t AMODE0:1;
      uint16_t AMODE1:1;
    };
  };
} DMA3CONBITS;
extern volatile DMA3CONBITS DMA3CONbits __attribute__((__sfr__));


extern volatile uint16_t DMA3REQ __attribute__((__sfr__));
__extension__ typedef struct tagDMA3REQBITS {
  union {
    struct {
      uint16_t IRQSEL:7;
      uint16_t :8;
      uint16_t FORCE:1;
    };
    struct {
      uint16_t IRQSEL0:1;
      uint16_t IRQSEL1:1;
      uint16_t IRQSEL2:1;
      uint16_t IRQSEL3:1;
      uint16_t IRQSEL4:1;
      uint16_t IRQSEL5:1;
      uint16_t IRQSEL6:1;
    };
  };
} DMA3REQBITS;
extern volatile DMA3REQBITS DMA3REQbits __attribute__((__sfr__));


extern volatile uint16_t DMA3STA __attribute__((__sfr__));

extern volatile uint16_t DMA3STB __attribute__((__sfr__));

extern volatile uint16_t DMA3PAD __attribute__((__sfr__));

extern volatile uint16_t DMA3CNT __attribute__((__sfr__));

extern volatile uint16_t DMA4CON __attribute__((__sfr__));
__extension__ typedef struct tagDMA4CONBITS {
  union {
    struct {
      uint16_t MODE:2;
      uint16_t :2;
      uint16_t AMODE:2;
      uint16_t :5;
      uint16_t NULLW:1;
      uint16_t HALF:1;
      uint16_t DIR:1;
      uint16_t SIZE:1;
      uint16_t CHEN:1;
    };
    struct {
      uint16_t MODE0:1;
      uint16_t MODE1:1;
      uint16_t :2;
      uint16_t AMODE0:1;
      uint16_t AMODE1:1;
    };
  };
} DMA4CONBITS;
extern volatile DMA4CONBITS DMA4CONbits __attribute__((__sfr__));


extern volatile uint16_t DMA4REQ __attribute__((__sfr__));
__extension__ typedef struct tagDMA4REQBITS {
  union {
    struct {
      uint16_t IRQSEL:7;
      uint16_t :8;
      uint16_t FORCE:1;
    };
    struct {
      uint16_t IRQSEL0:1;
      uint16_t IRQSEL1:1;
      uint16_t IRQSEL2:1;
      uint16_t IRQSEL3:1;
      uint16_t IRQSEL4:1;
      uint16_t IRQSEL5:1;
      uint16_t IRQSEL6:1;
    };
  };
} DMA4REQBITS;
extern volatile DMA4REQBITS DMA4REQbits __attribute__((__sfr__));


extern volatile uint16_t DMA4STA __attribute__((__sfr__));

extern volatile uint16_t DMA4STB __attribute__((__sfr__));

extern volatile uint16_t DMA4PAD __attribute__((__sfr__));

extern volatile uint16_t DMA4CNT __attribute__((__sfr__));

extern volatile uint16_t DMA5CON __attribute__((__sfr__));
__extension__ typedef struct tagDMA5CONBITS {
  union {
    struct {
      uint16_t MODE:2;
      uint16_t :2;
      uint16_t AMODE:2;
      uint16_t :5;
      uint16_t NULLW:1;
      uint16_t HALF:1;
      uint16_t DIR:1;
      uint16_t SIZE:1;
      uint16_t CHEN:1;
    };
    struct {
      uint16_t MODE0:1;
      uint16_t MODE1:1;
      uint16_t :2;
      uint16_t AMODE0:1;
      uint16_t AMODE1:1;
    };
  };
} DMA5CONBITS;
extern volatile DMA5CONBITS DMA5CONbits __attribute__((__sfr__));


extern volatile uint16_t DMA5REQ __attribute__((__sfr__));
__extension__ typedef struct tagDMA5REQBITS {
  union {
    struct {
      uint16_t IRQSEL:7;
      uint16_t :8;
      uint16_t FORCE:1;
    };
    struct {
      uint16_t IRQSEL0:1;
      uint16_t IRQSEL1:1;
      uint16_t IRQSEL2:1;
      uint16_t IRQSEL3:1;
      uint16_t IRQSEL4:1;
      uint16_t IRQSEL5:1;
      uint16_t IRQSEL6:1;
    };
  };
} DMA5REQBITS;
extern volatile DMA5REQBITS DMA5REQbits __attribute__((__sfr__));


extern volatile uint16_t DMA5STA __attribute__((__sfr__));

extern volatile uint16_t DMA5STB __attribute__((__sfr__));

extern volatile uint16_t DMA5PAD __attribute__((__sfr__));

extern volatile uint16_t DMA5CNT __attribute__((__sfr__));

extern volatile uint16_t DMA6CON __attribute__((__sfr__));
__extension__ typedef struct tagDMA6CONBITS {
  union {
    struct {
      uint16_t MODE:2;
      uint16_t :2;
      uint16_t AMODE:2;
      uint16_t :5;
      uint16_t NULLW:1;
      uint16_t HALF:1;
      uint16_t DIR:1;
      uint16_t SIZE:1;
      uint16_t CHEN:1;
    };
    struct {
      uint16_t MODE0:1;
      uint16_t MODE1:1;
      uint16_t :2;
      uint16_t AMODE0:1;
      uint16_t AMODE1:1;
    };
  };
} DMA6CONBITS;
extern volatile DMA6CONBITS DMA6CONbits __attribute__((__sfr__));


extern volatile uint16_t DMA6REQ __attribute__((__sfr__));
__extension__ typedef struct tagDMA6REQBITS {
  union {
    struct {
      uint16_t IRQSEL:7;
      uint16_t :8;
      uint16_t FORCE:1;
    };
    struct {
      uint16_t IRQSEL0:1;
      uint16_t IRQSEL1:1;
      uint16_t IRQSEL2:1;
      uint16_t IRQSEL3:1;
      uint16_t IRQSEL4:1;
      uint16_t IRQSEL5:1;
      uint16_t IRQSEL6:1;
    };
  };
} DMA6REQBITS;
extern volatile DMA6REQBITS DMA6REQbits __attribute__((__sfr__));


extern volatile uint16_t DMA6STA __attribute__((__sfr__));

extern volatile uint16_t DMA6STB __attribute__((__sfr__));

extern volatile uint16_t DMA6PAD __attribute__((__sfr__));

extern volatile uint16_t DMA6CNT __attribute__((__sfr__));

extern volatile uint16_t DMA7CON __attribute__((__sfr__));
__extension__ typedef struct tagDMA7CONBITS {
  union {
    struct {
      uint16_t MODE:2;
      uint16_t :2;
      uint16_t AMODE:2;
      uint16_t :5;
      uint16_t NULLW:1;
      uint16_t HALF:1;
      uint16_t DIR:1;
      uint16_t SIZE:1;
      uint16_t CHEN:1;
    };
    struct {
      uint16_t MODE0:1;
      uint16_t MODE1:1;
      uint16_t :2;
      uint16_t AMODE0:1;
      uint16_t AMODE1:1;
    };
  };
} DMA7CONBITS;
extern volatile DMA7CONBITS DMA7CONbits __attribute__((__sfr__));


extern volatile uint16_t DMA7REQ __attribute__((__sfr__));
__extension__ typedef struct tagDMA7REQBITS {
  union {
    struct {
      uint16_t IRQSEL:7;
      uint16_t :8;
      uint16_t FORCE:1;
    };
    struct {
      uint16_t IRQSEL0:1;
      uint16_t IRQSEL1:1;
      uint16_t IRQSEL2:1;
      uint16_t IRQSEL3:1;
      uint16_t IRQSEL4:1;
      uint16_t IRQSEL5:1;
      uint16_t IRQSEL6:1;
    };
  };
} DMA7REQBITS;
extern volatile DMA7REQBITS DMA7REQbits __attribute__((__sfr__));


extern volatile uint16_t DMA7STA __attribute__((__sfr__));

extern volatile uint16_t DMA7STB __attribute__((__sfr__));

extern volatile uint16_t DMA7PAD __attribute__((__sfr__));

extern volatile uint16_t DMA7CNT __attribute__((__sfr__));

extern volatile uint16_t DMACS0 __attribute__((__sfr__));
__extension__ typedef struct tagDMACS0BITS {
  union {
    struct {
      uint16_t XWCOL0:1;
      uint16_t XWCOL1:1;
      uint16_t XWCOL2:1;
      uint16_t XWCOL3:1;
      uint16_t XWCOL4:1;
      uint16_t XWCOL5:1;
      uint16_t XWCOL6:1;
      uint16_t XWCOL7:1;
      uint16_t PWCOL0:1;
      uint16_t PWCOL1:1;
      uint16_t PWCOL2:1;
      uint16_t PWCOL3:1;
      uint16_t PWCOL4:1;
      uint16_t PWCOL5:1;
      uint16_t PWCOL6:1;
      uint16_t PWCOL7:1;
    };
    struct {
      uint16_t XWCOL:8;
      uint16_t PWCOL:8;
    };
  };
} DMACS0BITS;
extern volatile DMACS0BITS DMACS0bits __attribute__((__sfr__));


extern volatile uint16_t DMACS1 __attribute__((__sfr__));
__extension__ typedef struct tagDMACS1BITS {
  union {
    struct {
      uint16_t PPST0:1;
      uint16_t PPST1:1;
      uint16_t PPST2:1;
      uint16_t PPST3:1;
      uint16_t PPST4:1;
      uint16_t PPST5:1;
      uint16_t PPST6:1;
      uint16_t PPST7:1;
      uint16_t LSTCH:4;
    };
    struct {
      uint16_t PPST:8;
      uint16_t LSTCH0:1;
      uint16_t LSTCH1:1;
      uint16_t LSTCH2:1;
      uint16_t LSTCH3:1;
    };
  };
} DMACS1BITS;
extern volatile DMACS1BITS DMACS1bits __attribute__((__sfr__));


extern volatile uint16_t DSADR __attribute__((__sfr__));

extern volatile uint16_t C1CTRL1 __attribute__((__sfr__));
__extension__ typedef struct tagC1CTRL1BITS {
  union {
    struct {
      uint16_t WIN:1;
      uint16_t :2;
      uint16_t CANCAP:1;
      uint16_t :1;
      uint16_t OPMODE:3;
      uint16_t REQOP:3;
      uint16_t CANCKS:1;
      uint16_t ABAT:1;
      uint16_t CSIDL:1;
    };
    struct {
      uint16_t :5;
      uint16_t OPMODE0:1;
      uint16_t OPMODE1:1;
      uint16_t OPMODE2:1;
      uint16_t REQOP0:1;
      uint16_t REQOP1:1;
      uint16_t REQOP2:1;
    };
  };
} C1CTRL1BITS;
extern volatile C1CTRL1BITS C1CTRL1bits __attribute__((__sfr__));


extern volatile uint16_t C1CTRL2 __attribute__((__sfr__));
__extension__ typedef struct tagC1CTRL2BITS {
  union {
    struct {
      uint16_t DNCNT:5;
    };
    struct {
      uint16_t DNCNT0:1;
      uint16_t DNCNT1:1;
      uint16_t DNCNT2:1;
      uint16_t DNCNT3:1;
      uint16_t DNCNT4:1;
    };
  };
} C1CTRL2BITS;
extern volatile C1CTRL2BITS C1CTRL2bits __attribute__((__sfr__));


extern volatile uint16_t C1VEC __attribute__((__sfr__));
__extension__ typedef struct tagC1VECBITS {
  union {
    struct {
      uint16_t ICODE:7;
      uint16_t :1;
      uint16_t FILHIT:5;
    };
    struct {
      uint16_t ICODE0:1;
      uint16_t ICODE1:1;
      uint16_t ICODE2:1;
      uint16_t ICODE3:1;
      uint16_t ICODE4:1;
      uint16_t ICODE5:1;
      uint16_t ICODE6:1;
      uint16_t :1;
      uint16_t FILHIT0:1;
      uint16_t FILHIT1:1;
      uint16_t FILHIT2:1;
      uint16_t FILHIT3:1;
      uint16_t FILHIT4:1;
    };
  };
} C1VECBITS;
extern volatile C1VECBITS C1VECbits __attribute__((__sfr__));


extern volatile uint16_t C1FCTRL __attribute__((__sfr__));
__extension__ typedef struct tagC1FCTRLBITS {
  union {
    struct {
      uint16_t FSA:5;
      uint16_t :8;
      uint16_t DMABS:3;
    };
    struct {
      uint16_t FSA0:1;
      uint16_t FSA1:1;
      uint16_t FSA2:1;
      uint16_t FSA3:1;
      uint16_t FSA4:1;
      uint16_t :8;
      uint16_t DMABS0:1;
      uint16_t DMABS1:1;
      uint16_t DMABS2:1;
    };
  };
} C1FCTRLBITS;
extern volatile C1FCTRLBITS C1FCTRLbits __attribute__((__sfr__));


extern volatile uint16_t C1FIFO __attribute__((__sfr__));
__extension__ typedef struct tagC1FIFOBITS {
  union {
    struct {
      uint16_t FNRB:6;
      uint16_t :2;
      uint16_t FBP:6;
    };
    struct {
      uint16_t FNRB0:1;
      uint16_t FNRB1:1;
      uint16_t FNRB2:1;
      uint16_t FNRB3:1;
      uint16_t FNRB4:1;
      uint16_t FNRB5:1;
      uint16_t :2;
      uint16_t FBP0:1;
      uint16_t FBP1:1;
      uint16_t FBP2:1;
      uint16_t FBP3:1;
      uint16_t FBP4:1;
      uint16_t FBP5:1;
    };
  };
} C1FIFOBITS;
extern volatile C1FIFOBITS C1FIFObits __attribute__((__sfr__));


extern volatile uint16_t C1INTF __attribute__((__sfr__));
typedef struct tagC1INTFBITS {
  uint16_t TBIF:1;
  uint16_t RBIF:1;
  uint16_t RBOVIF:1;
  uint16_t FIFOIF:1;
  uint16_t :1;
  uint16_t ERRIF:1;
  uint16_t WAKIF:1;
  uint16_t IVRIF:1;
  uint16_t EWARN:1;
  uint16_t RXWAR:1;
  uint16_t TXWAR:1;
  uint16_t RXBP:1;
  uint16_t TXBP:1;
  uint16_t TXBO:1;
} C1INTFBITS;
extern volatile C1INTFBITS C1INTFbits __attribute__((__sfr__));


extern volatile uint16_t C1INTE __attribute__((__sfr__));
typedef struct tagC1INTEBITS {
  uint16_t TBIE:1;
  uint16_t RBIE:1;
  uint16_t RBOVIE:1;
  uint16_t FIFOIE:1;
  uint16_t :1;
  uint16_t ERRIE:1;
  uint16_t WAKIE:1;
  uint16_t IVRIE:1;
} C1INTEBITS;
extern volatile C1INTEBITS C1INTEbits __attribute__((__sfr__));


extern volatile uint16_t C1EC __attribute__((__sfr__));
__extension__ typedef struct tagC1ECBITS {
  union {
    struct {
      uint16_t RERRCNT:8;
      uint16_t TERRCNT:8;
    };
    struct {
      uint16_t RERRCNT0:1;
      uint16_t RERRCNT1:1;
      uint16_t RERRCNT2:1;
      uint16_t RERRCNT3:1;
      uint16_t RERRCNT4:1;
      uint16_t RERRCNT5:1;
      uint16_t RERRCNT6:1;
      uint16_t RERRCNT7:1;
      uint16_t TERRCNT0:1;
      uint16_t TERRCNT1:1;
      uint16_t TERRCNT2:1;
      uint16_t TERRCNT3:1;
      uint16_t TERRCNT4:1;
      uint16_t TERRCNT5:1;
      uint16_t TERRCNT6:1;
      uint16_t TERRCNT7:1;
    };
  };
} C1ECBITS;
extern volatile C1ECBITS C1ECbits __attribute__((__sfr__));


extern volatile uint8_t C1RERRCNT __attribute__((__sfr__));

extern volatile uint8_t C1TERRCNT __attribute__((__sfr__));

extern volatile uint16_t C1CFG1 __attribute__((__sfr__));
__extension__ typedef struct tagC1CFG1BITS {
  union {
    struct {
      uint16_t BRP:6;
      uint16_t SJW:2;
    };
    struct {
      uint16_t BRP0:1;
      uint16_t BRP1:1;
      uint16_t BRP2:1;
      uint16_t BRP3:1;
      uint16_t BRP4:1;
      uint16_t BRP5:1;
      uint16_t SJW0:1;
      uint16_t SJW1:1;
    };
  };
} C1CFG1BITS;
extern volatile C1CFG1BITS C1CFG1bits __attribute__((__sfr__));


extern volatile uint16_t C1CFG2 __attribute__((__sfr__));
__extension__ typedef struct tagC1CFG2BITS {
  union {
    struct {
      uint16_t PRSEG:3;
      uint16_t SEG1PH:3;
      uint16_t SAM:1;
      uint16_t SEG2PHTS:1;
      uint16_t SEG2PH:3;
      uint16_t :3;
      uint16_t WAKFIL:1;
    };
    struct {
      uint16_t PRSEG0:1;
      uint16_t PRSEG1:1;
      uint16_t PRSEG2:1;
      uint16_t SEG1PH0:1;
      uint16_t SEG1PH1:1;
      uint16_t SEG1PH2:1;
      uint16_t :2;
      uint16_t SEG2PH0:1;
      uint16_t SEG2PH1:1;
      uint16_t SEG2PH2:1;
    };
  };
} C1CFG2BITS;
extern volatile C1CFG2BITS C1CFG2bits __attribute__((__sfr__));


extern volatile uint16_t C1FEN1 __attribute__((__sfr__));
__extension__ typedef struct tagC1FEN1BITS {
  union {
    struct {
      uint16_t FLTEN0:1;
      uint16_t FLTEN1:1;
      uint16_t FLTEN2:1;
      uint16_t FLTEN3:1;
      uint16_t FLTEN4:1;
      uint16_t FLTEN5:1;
      uint16_t FLTEN6:1;
      uint16_t FLTEN7:1;
      uint16_t FLTEN8:1;
      uint16_t FLTEN9:1;
      uint16_t FLTEN10:1;
      uint16_t FLTEN11:1;
      uint16_t FLTEN12:1;
      uint16_t FLTEN13:1;
      uint16_t FLTEN14:1;
      uint16_t FLTEN15:1;
    };
    struct {
      uint16_t FLTEN:16;
    };
  };
} C1FEN1BITS;
extern volatile C1FEN1BITS C1FEN1bits __attribute__((__sfr__));


extern volatile uint16_t C1FMSKSEL1 __attribute__((__sfr__));
__extension__ typedef struct tagC1FMSKSEL1BITS {
  union {
    struct {
      uint16_t F0MSK:2;
      uint16_t F1MSK:2;
      uint16_t F2MSK:2;
      uint16_t F3MSK:2;
      uint16_t F4MSK:2;
      uint16_t F5MSK:2;
      uint16_t F6MSK:2;
      uint16_t F7MSK:2;
    };
    struct {
      uint16_t F0MSK0:1;
      uint16_t F0MSK1:1;
      uint16_t F1MSK0:1;
      uint16_t F1MSK1:1;
      uint16_t F2MSK0:1;
      uint16_t F2MSK1:1;
      uint16_t F3MSK0:1;
      uint16_t F3MSK1:1;
      uint16_t F4MSK0:1;
      uint16_t F4MSK1:1;
      uint16_t F5MSK0:1;
      uint16_t F5MSK1:1;
      uint16_t F6MSK0:1;
      uint16_t F6MSK1:1;
      uint16_t F7MSK0:1;
      uint16_t F7MSK1:1;
    };
  };
} C1FMSKSEL1BITS;
extern volatile C1FMSKSEL1BITS C1FMSKSEL1bits __attribute__((__sfr__));


extern volatile uint16_t C1FMSKSEL2 __attribute__((__sfr__));
__extension__ typedef struct tagC1FMSKSEL2BITS {
  union {
    struct {
      uint16_t F8MSK:2;
      uint16_t F9MSK:2;
      uint16_t F10MSK:2;
      uint16_t F11MSK:2;
      uint16_t F12MSK:2;
      uint16_t F13MSK:2;
      uint16_t F14MSK:2;
      uint16_t F15MSK:2;
    };
    struct {
      uint16_t F8MSK0:1;
      uint16_t F8MSK1:1;
      uint16_t F9MSK0:1;
      uint16_t F9MSK1:1;
      uint16_t F10MSK0:1;
      uint16_t F10MSK1:1;
      uint16_t F11MSK0:1;
      uint16_t F11MSK1:1;
      uint16_t F12MSK0:1;
      uint16_t F12MSK1:1;
      uint16_t F13MSK0:1;
      uint16_t F13MSK1:1;
      uint16_t F14MSK0:1;
      uint16_t F14MSK1:1;
      uint16_t F15MSK0:1;
      uint16_t F15MSK1:1;
    };
  };
} C1FMSKSEL2BITS;
extern volatile C1FMSKSEL2BITS C1FMSKSEL2bits __attribute__((__sfr__));


extern volatile uint16_t C1BUFPNT1 __attribute__((__sfr__));
__extension__ typedef struct tagC1BUFPNT1BITS {
  union {
    struct {
      uint16_t F0BP:4;
      uint16_t F1BP:4;
      uint16_t F2BP:4;
      uint16_t F3BP:4;
    };
    struct {
      uint16_t F0BP0:1;
      uint16_t F0BP1:1;
      uint16_t F0BP2:1;
      uint16_t F0BP3:1;
      uint16_t F1BP0:1;
      uint16_t F1BP1:1;
      uint16_t F1BP2:1;
      uint16_t F1BP3:1;
      uint16_t F2BP0:1;
      uint16_t F2BP1:1;
      uint16_t F2BP2:1;
      uint16_t F2BP3:1;
      uint16_t F3BP0:1;
      uint16_t F3BP1:1;
      uint16_t F3BP2:1;
      uint16_t F3BP3:1;
    };
  };
} C1BUFPNT1BITS;
extern volatile C1BUFPNT1BITS C1BUFPNT1bits __attribute__((__sfr__));


extern volatile uint16_t C1RXFUL1 __attribute__((__sfr__));
typedef struct tagC1RXFUL1BITS {
  uint16_t RXFUL0:1;
  uint16_t RXFUL1:1;
  uint16_t RXFUL2:1;
  uint16_t RXFUL3:1;
  uint16_t RXFUL4:1;
  uint16_t RXFUL5:1;
  uint16_t RXFUL6:1;
  uint16_t RXFUL7:1;
  uint16_t RXFUL8:1;
  uint16_t RXFUL9:1;
  uint16_t RXFUL10:1;
  uint16_t RXFUL11:1;
  uint16_t RXFUL12:1;
  uint16_t RXFUL13:1;
  uint16_t RXFUL14:1;
  uint16_t RXFUL15:1;
} C1RXFUL1BITS;
extern volatile C1RXFUL1BITS C1RXFUL1bits __attribute__((__sfr__));


extern volatile uint16_t C1BUFPNT2 __attribute__((__sfr__));
__extension__ typedef struct tagC1BUFPNT2BITS {
  union {
    struct {
      uint16_t F4BP:4;
      uint16_t F5BP:4;
      uint16_t F6BP:4;
      uint16_t F7BP:4;
    };
    struct {
      uint16_t F4BP0:1;
      uint16_t F4BP1:1;
      uint16_t F4BP2:1;
      uint16_t F4BP3:1;
      uint16_t F5BP0:1;
      uint16_t F5BP1:1;
      uint16_t F5BP2:1;
      uint16_t F5BP3:1;
      uint16_t F6BP0:1;
      uint16_t F6BP1:1;
      uint16_t F6BP2:1;
      uint16_t F6BP3:1;
      uint16_t F7BP0:1;
      uint16_t F7BP1:1;
      uint16_t F7BP2:1;
      uint16_t F7BP3:1;
    };
  };
} C1BUFPNT2BITS;
extern volatile C1BUFPNT2BITS C1BUFPNT2bits __attribute__((__sfr__));


extern volatile uint16_t C1RXFUL2 __attribute__((__sfr__));
typedef struct tagC1RXFUL2BITS {
  uint16_t RXFUL16:1;
  uint16_t RXFUL17:1;
  uint16_t RXFUL18:1;
  uint16_t RXFUL19:1;
  uint16_t RXFUL20:1;
  uint16_t RXFUL21:1;
  uint16_t RXFUL22:1;
  uint16_t RXFUL23:1;
  uint16_t RXFUL24:1;
  uint16_t RXFUL25:1;
  uint16_t RXFUL26:1;
  uint16_t RXFUL27:1;
  uint16_t RXFUL28:1;
  uint16_t RXFUL29:1;
  uint16_t RXFUL30:1;
  uint16_t RXFUL31:1;
} C1RXFUL2BITS;
extern volatile C1RXFUL2BITS C1RXFUL2bits __attribute__((__sfr__));


extern volatile uint16_t C1BUFPNT3 __attribute__((__sfr__));
typedef struct tagC1BUFPNT3BITS {
  uint16_t F8BP:4;
  uint16_t F9BP:4;
  uint16_t F10BP:4;
  uint16_t F11BP:4;
} C1BUFPNT3BITS;
extern volatile C1BUFPNT3BITS C1BUFPNT3bits __attribute__((__sfr__));


extern volatile uint16_t C1BUFPNT4 __attribute__((__sfr__));
typedef struct tagC1BUFPNT4BITS {
  uint16_t F12BP:4;
  uint16_t F13BP:4;
  uint16_t F14BP:4;
  uint16_t F15BP:4;
} C1BUFPNT4BITS;
extern volatile C1BUFPNT4BITS C1BUFPNT4bits __attribute__((__sfr__));


extern volatile uint16_t C1RXOVF1 __attribute__((__sfr__));
typedef struct tagC1RXOVF1BITS {
  uint16_t RXOVF0:1;
  uint16_t RXOVF1:1;
  uint16_t RXOVF2:1;
  uint16_t RXOVF3:1;
  uint16_t RXOVF4:1;
  uint16_t RXOVF5:1;
  uint16_t RXOVF6:1;
  uint16_t RXOVF7:1;
  uint16_t RXOVF8:1;
  uint16_t RXOVF9:1;
  uint16_t RXOVF10:1;
  uint16_t RXOVF11:1;
  uint16_t RXOVF12:1;
  uint16_t RXOVF13:1;
  uint16_t RXOVF14:1;
  uint16_t RXOVF15:1;
} C1RXOVF1BITS;
extern volatile C1RXOVF1BITS C1RXOVF1bits __attribute__((__sfr__));


extern volatile uint16_t C1RXOVF2 __attribute__((__sfr__));
typedef struct tagC1RXOVF2BITS {
  uint16_t RXOVF16:1;
  uint16_t RXOVF17:1;
  uint16_t RXOVF18:1;
  uint16_t RXOVF19:1;
  uint16_t RXOVF20:1;
  uint16_t RXOVF21:1;
  uint16_t RXOVF22:1;
  uint16_t RXOVF23:1;
  uint16_t RXOVF24:1;
  uint16_t RXOVF25:1;
  uint16_t RXOVF26:1;
  uint16_t RXOVF27:1;
  uint16_t RXOVF28:1;
  uint16_t RXOVF29:1;
  uint16_t RXOVF30:1;
  uint16_t RXOVF31:1;
} C1RXOVF2BITS;
extern volatile C1RXOVF2BITS C1RXOVF2bits __attribute__((__sfr__));


extern volatile uint16_t C1RXM0SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXM0SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t MIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXM0SIDBITS;
extern volatile C1RXM0SIDBITS C1RXM0SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1TR01CON __attribute__((__sfr__));
__extension__ typedef struct tagC1TR01CONBITS {
  union {
    struct {
      uint16_t TX0PRI:2;
      uint16_t RTREN0:1;
      uint16_t TXREQ0:1;
      uint16_t TXERR0:1;
      uint16_t TXLARB0:1;
      uint16_t TXABT0:1;
      uint16_t TXEN0:1;
      uint16_t TX1PRI:2;
      uint16_t RTREN1:1;
      uint16_t TXREQ1:1;
      uint16_t TXERR1:1;
      uint16_t TXLARB1:1;
      uint16_t TXABT1:1;
      uint16_t TXEN1:1;
    };
    struct {
      uint16_t TX0PRI0:1;
      uint16_t TX0PRI1:1;
      uint16_t :6;
      uint16_t TX1PRI0:1;
      uint16_t TX1PRI1:1;
    };
  };
} C1TR01CONBITS;
extern volatile C1TR01CONBITS C1TR01CONbits __attribute__((__sfr__));


extern volatile uint16_t C1RXM0EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXM0EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXM0EIDBITS;
extern volatile C1RXM0EIDBITS C1RXM0EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1TR23CON __attribute__((__sfr__));
__extension__ typedef struct tagC1TR23CONBITS {
  union {
    struct {
      uint16_t TX2PRI:2;
      uint16_t RTREN2:1;
      uint16_t TXREQ2:1;
      uint16_t TXERR2:1;
      uint16_t TXLARB2:1;
      uint16_t TXABT2:1;
      uint16_t TXEN2:1;
      uint16_t TX3PRI:2;
      uint16_t RTREN3:1;
      uint16_t TXREQ3:1;
      uint16_t TXERR3:1;
      uint16_t TXLARB3:1;
      uint16_t TXABT3:1;
      uint16_t TXEN3:1;
    };
    struct {
      uint16_t TX2PRI0:1;
      uint16_t TX2PRI1:1;
      uint16_t :6;
      uint16_t TX3PRI0:1;
      uint16_t TX3PRI1:1;
    };
  };
} C1TR23CONBITS;
extern volatile C1TR23CONBITS C1TR23CONbits __attribute__((__sfr__));


extern volatile uint16_t C1RXM1SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXM1SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t MIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXM1SIDBITS;
extern volatile C1RXM1SIDBITS C1RXM1SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1TR45CON __attribute__((__sfr__));
__extension__ typedef struct tagC1TR45CONBITS {
  union {
    struct {
      uint16_t TX4PRI:2;
      uint16_t RTREN4:1;
      uint16_t TXREQ4:1;
      uint16_t TXERR4:1;
      uint16_t TXLARB4:1;
      uint16_t TXABT4:1;
      uint16_t TXEN4:1;
      uint16_t TX5PRI:2;
      uint16_t RTREN5:1;
      uint16_t TXREQ5:1;
      uint16_t TXERR5:1;
      uint16_t TXLARB5:1;
      uint16_t TXABT5:1;
      uint16_t TXEN5:1;
    };
    struct {
      uint16_t TX4PRI0:1;
      uint16_t TX4PRI1:1;
      uint16_t :6;
      uint16_t TX5PRI0:1;
      uint16_t TX5PRI1:1;
    };
  };
} C1TR45CONBITS;
extern volatile C1TR45CONBITS C1TR45CONbits __attribute__((__sfr__));


extern volatile uint16_t C1RXM1EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXM1EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXM1EIDBITS;
extern volatile C1RXM1EIDBITS C1RXM1EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1TR67CON __attribute__((__sfr__));
__extension__ typedef struct tagC1TR67CONBITS {
  union {
    struct {
      uint16_t TX6PRI:2;
      uint16_t RTREN6:1;
      uint16_t TXREQ6:1;
      uint16_t TXERR6:1;
      uint16_t TXLARB6:1;
      uint16_t TXABT6:1;
      uint16_t TXEN6:1;
      uint16_t TX7PRI:2;
      uint16_t RTREN7:1;
      uint16_t TXREQ7:1;
      uint16_t TXERR7:1;
      uint16_t TXLARB7:1;
      uint16_t TXABT7:1;
      uint16_t TXEN7:1;
    };
    struct {
      uint16_t TX6PRI0:1;
      uint16_t TX6PRI1:1;
      uint16_t :6;
      uint16_t TX7PRI0:1;
      uint16_t TX7PRI1:1;
    };
  };
} C1TR67CONBITS;
extern volatile C1TR67CONBITS C1TR67CONbits __attribute__((__sfr__));


extern volatile uint16_t C1RXM2SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXM2SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t MIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXM2SIDBITS;
extern volatile C1RXM2SIDBITS C1RXM2SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXM2EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXM2EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXM2EIDBITS;
extern volatile C1RXM2EIDBITS C1RXM2EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXD __attribute__((__sfr__));

extern volatile uint16_t C1RXF0SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF0SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF0SIDBITS;
extern volatile C1RXF0SIDBITS C1RXF0SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF0EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF0EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF0EIDBITS;
extern volatile C1RXF0EIDBITS C1RXF0EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1TXD __attribute__((__sfr__));
typedef struct tagC1TXDBITS {
  uint16_t :1;
  uint16_t C1TXD:15;
} C1TXDBITS;
extern volatile C1TXDBITS C1TXDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF1SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF1SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF1SIDBITS;
extern volatile C1RXF1SIDBITS C1RXF1SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF1EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF1EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF1EIDBITS;
extern volatile C1RXF1EIDBITS C1RXF1EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF2SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF2SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF2SIDBITS;
extern volatile C1RXF2SIDBITS C1RXF2SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF2EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF2EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF2EIDBITS;
extern volatile C1RXF2EIDBITS C1RXF2EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF3SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF3SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF3SIDBITS;
extern volatile C1RXF3SIDBITS C1RXF3SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF3EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF3EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF3EIDBITS;
extern volatile C1RXF3EIDBITS C1RXF3EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF4SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF4SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF4SIDBITS;
extern volatile C1RXF4SIDBITS C1RXF4SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF4EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF4EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF4EIDBITS;
extern volatile C1RXF4EIDBITS C1RXF4EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF5SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF5SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF5SIDBITS;
extern volatile C1RXF5SIDBITS C1RXF5SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF5EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF5EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF5EIDBITS;
extern volatile C1RXF5EIDBITS C1RXF5EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF6SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF6SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF6SIDBITS;
extern volatile C1RXF6SIDBITS C1RXF6SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF6EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF6EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF6EIDBITS;
extern volatile C1RXF6EIDBITS C1RXF6EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF7SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF7SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF7SIDBITS;
extern volatile C1RXF7SIDBITS C1RXF7SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF7EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF7EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF7EIDBITS;
extern volatile C1RXF7EIDBITS C1RXF7EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF8SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF8SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF8SIDBITS;
extern volatile C1RXF8SIDBITS C1RXF8SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF8EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF8EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF8EIDBITS;
extern volatile C1RXF8EIDBITS C1RXF8EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF9SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF9SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF9SIDBITS;
extern volatile C1RXF9SIDBITS C1RXF9SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF9EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF9EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF9EIDBITS;
extern volatile C1RXF9EIDBITS C1RXF9EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF10SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF10SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF10SIDBITS;
extern volatile C1RXF10SIDBITS C1RXF10SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF10EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF10EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF10EIDBITS;
extern volatile C1RXF10EIDBITS C1RXF10EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF11SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF11SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF11SIDBITS;
extern volatile C1RXF11SIDBITS C1RXF11SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF11EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF11EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF11EIDBITS;
extern volatile C1RXF11EIDBITS C1RXF11EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF12SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF12SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF12SIDBITS;
extern volatile C1RXF12SIDBITS C1RXF12SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF12EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF12EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF12EIDBITS;
extern volatile C1RXF12EIDBITS C1RXF12EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF13SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF13SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF13SIDBITS;
extern volatile C1RXF13SIDBITS C1RXF13SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF13EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF13EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF13EIDBITS;
extern volatile C1RXF13EIDBITS C1RXF13EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF14SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF14SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF14SIDBITS;
extern volatile C1RXF14SIDBITS C1RXF14SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF14EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF14EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF14EIDBITS;
extern volatile C1RXF14EIDBITS C1RXF14EIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF15SID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF15SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C1RXF15SIDBITS;
extern volatile C1RXF15SIDBITS C1RXF15SIDbits __attribute__((__sfr__));


extern volatile uint16_t C1RXF15EID __attribute__((__sfr__));
__extension__ typedef struct tagC1RXF15EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C1RXF15EIDBITS;
extern volatile C1RXF15EIDBITS C1RXF15EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2CTRL1 __attribute__((__sfr__));
__extension__ typedef struct tagC2CTRL1BITS {
  union {
    struct {
      uint16_t WIN:1;
      uint16_t :2;
      uint16_t CANCAP:1;
      uint16_t :1;
      uint16_t OPMODE:3;
      uint16_t REQOP:3;
      uint16_t CANCKS:1;
      uint16_t ABAT:1;
      uint16_t CSIDL:1;
    };
    struct {
      uint16_t :5;
      uint16_t OPMODE0:1;
      uint16_t OPMODE1:1;
      uint16_t OPMODE2:1;
      uint16_t REQOP0:1;
      uint16_t REQOP1:1;
      uint16_t REQOP2:1;
      uint16_t :2;
      uint16_t CANSIDL:1;
    };
  };
} C2CTRL1BITS;
extern volatile C2CTRL1BITS C2CTRL1bits __attribute__((__sfr__));


extern volatile uint16_t C2CTRL2 __attribute__((__sfr__));
__extension__ typedef struct tagC2CTRL2BITS {
  union {
    struct {
      uint16_t DNCNT:5;
    };
    struct {
      uint16_t DNCNT0:1;
      uint16_t DNCNT1:1;
      uint16_t DNCNT2:1;
      uint16_t DNCNT3:1;
      uint16_t DNCNT4:1;
    };
  };
} C2CTRL2BITS;
extern volatile C2CTRL2BITS C2CTRL2bits __attribute__((__sfr__));


extern volatile uint16_t C2VEC __attribute__((__sfr__));
__extension__ typedef struct tagC2VECBITS {
  union {
    struct {
      uint16_t ICODE:7;
      uint16_t :1;
      uint16_t FILHIT:5;
    };
    struct {
      uint16_t ICODE0:1;
      uint16_t ICODE1:1;
      uint16_t ICODE2:1;
      uint16_t ICODE3:1;
      uint16_t ICODE4:1;
      uint16_t ICODE5:1;
      uint16_t ICODE6:1;
      uint16_t :1;
      uint16_t FILHIT0:1;
      uint16_t FILHIT1:1;
      uint16_t FILHIT2:1;
      uint16_t FILHIT3:1;
      uint16_t FILHIT4:1;
    };
  };
} C2VECBITS;
extern volatile C2VECBITS C2VECbits __attribute__((__sfr__));


extern volatile uint16_t C2FCTRL __attribute__((__sfr__));
__extension__ typedef struct tagC2FCTRLBITS {
  union {
    struct {
      uint16_t FSA:5;
      uint16_t :8;
      uint16_t DMABS:3;
    };
    struct {
      uint16_t FSA0:1;
      uint16_t FSA1:1;
      uint16_t FSA2:1;
      uint16_t FSA3:1;
      uint16_t FSA4:1;
      uint16_t :8;
      uint16_t DMABS0:1;
      uint16_t DMABS1:1;
      uint16_t DMABS2:1;
    };
  };
} C2FCTRLBITS;
extern volatile C2FCTRLBITS C2FCTRLbits __attribute__((__sfr__));


extern volatile uint16_t C2FIFO __attribute__((__sfr__));
__extension__ typedef struct tagC2FIFOBITS {
  union {
    struct {
      uint16_t FNRB:6;
      uint16_t :2;
      uint16_t FBP:6;
    };
    struct {
      uint16_t FNRB0:1;
      uint16_t FNRB1:1;
      uint16_t FNRB2:1;
      uint16_t FNRB3:1;
      uint16_t FNRB4:1;
      uint16_t FNRB5:1;
      uint16_t :2;
      uint16_t FBP0:1;
      uint16_t FBP1:1;
      uint16_t FBP2:1;
      uint16_t FBP3:1;
      uint16_t FBP4:1;
      uint16_t FBP5:1;
    };
  };
} C2FIFOBITS;
extern volatile C2FIFOBITS C2FIFObits __attribute__((__sfr__));


extern volatile uint16_t C2INTF __attribute__((__sfr__));
typedef struct tagC2INTFBITS {
  uint16_t TBIF:1;
  uint16_t RBIF:1;
  uint16_t RBOVIF:1;
  uint16_t FIFOIF:1;
  uint16_t :1;
  uint16_t ERRIF:1;
  uint16_t WAKIF:1;
  uint16_t IVRIF:1;
  uint16_t EWARN:1;
  uint16_t RXWARN:1;
  uint16_t TXWARN:1;
  uint16_t RXBP:1;
  uint16_t TXBP:1;
  uint16_t TXBO:1;
} C2INTFBITS;
extern volatile C2INTFBITS C2INTFbits __attribute__((__sfr__));


extern volatile uint16_t C2INTE __attribute__((__sfr__));
typedef struct tagC2INTEBITS {
  uint16_t TBIE:1;
  uint16_t RBIE:1;
  uint16_t RBOVIE:1;
  uint16_t FIFOIE:1;
  uint16_t :1;
  uint16_t ERRIE:1;
  uint16_t WAKIE:1;
  uint16_t IVRIE:1;
} C2INTEBITS;
extern volatile C2INTEBITS C2INTEbits __attribute__((__sfr__));


extern volatile uint16_t C2EC __attribute__((__sfr__));
__extension__ typedef struct tagC2ECBITS {
  union {
    struct {
      uint16_t RERRCNT:8;
      uint16_t TERRCNT:8;
    };
    struct {
      uint16_t RERRCNT0:1;
      uint16_t RERRCNT1:1;
      uint16_t RERRCNT2:1;
      uint16_t RERRCNT3:1;
      uint16_t RERRCNT4:1;
      uint16_t RERRCNT5:1;
      uint16_t RERRCNT6:1;
      uint16_t RERRCNT7:1;
      uint16_t TERRCNT0:1;
      uint16_t TERRCNT1:1;
      uint16_t TERRCNT2:1;
      uint16_t TERRCNT3:1;
      uint16_t TERRCNT4:1;
      uint16_t TERRCNT5:1;
      uint16_t TERRCNT6:1;
      uint16_t TERRCNT7:1;
    };
  };
} C2ECBITS;
extern volatile C2ECBITS C2ECbits __attribute__((__sfr__));


extern volatile uint8_t C2RERRCNT __attribute__((__sfr__));

extern volatile uint8_t C2TERRCNT __attribute__((__sfr__));

extern volatile uint16_t C2CFG1 __attribute__((__sfr__));
__extension__ typedef struct tagC2CFG1BITS {
  union {
    struct {
      uint16_t BRP:6;
      uint16_t SJW:2;
    };
    struct {
      uint16_t BRP0:1;
      uint16_t BRP1:1;
      uint16_t BRP2:1;
      uint16_t BRP3:1;
      uint16_t BRP4:1;
      uint16_t BRP5:1;
      uint16_t SJW0:1;
      uint16_t SJW1:1;
    };
  };
} C2CFG1BITS;
extern volatile C2CFG1BITS C2CFG1bits __attribute__((__sfr__));


extern volatile uint16_t C2CFG2 __attribute__((__sfr__));
__extension__ typedef struct tagC2CFG2BITS {
  union {
    struct {
      uint16_t PRSEG:3;
      uint16_t SEG1PH:3;
      uint16_t SAM:1;
      uint16_t SEG2PHTS:1;
      uint16_t SEG2PH:3;
      uint16_t :3;
      uint16_t WAKFIL:1;
    };
    struct {
      uint16_t PRSEG0:1;
      uint16_t PRSEG1:1;
      uint16_t PRSEG2:1;
      uint16_t SEG1PH0:1;
      uint16_t SEG1PH1:1;
      uint16_t SEG1PH2:1;
      uint16_t :2;
      uint16_t SEG2PH0:1;
      uint16_t SEG2PH1:1;
      uint16_t SEG2PH2:1;
    };
  };
} C2CFG2BITS;
extern volatile C2CFG2BITS C2CFG2bits __attribute__((__sfr__));


extern volatile uint16_t C2FEN1 __attribute__((__sfr__));
__extension__ typedef struct tagC2FEN1BITS {
  union {
    struct {
      uint16_t FLTEN0:1;
      uint16_t FLTEN1:1;
      uint16_t FLTEN2:1;
      uint16_t FLTEN3:1;
      uint16_t FLTEN4:1;
      uint16_t FLTEN5:1;
      uint16_t FLTEN6:1;
      uint16_t FLTEN7:1;
      uint16_t FLTEN8:1;
      uint16_t FLTEN9:1;
      uint16_t FLTEN10:1;
      uint16_t FLTEN11:1;
      uint16_t FLTEN12:1;
      uint16_t FLTEN13:1;
      uint16_t FLTEN14:1;
      uint16_t FLTEN15:1;
    };
    struct {
      uint16_t FLTEN:16;
    };
  };
} C2FEN1BITS;
extern volatile C2FEN1BITS C2FEN1bits __attribute__((__sfr__));


extern volatile uint16_t C2FMSKSEL1 __attribute__((__sfr__));
__extension__ typedef struct tagC2FMSKSEL1BITS {
  union {
    struct {
      uint16_t F0MSK:2;
      uint16_t F1MSK:2;
      uint16_t F2MSK:2;
      uint16_t F3MSK:2;
      uint16_t F4MSK:2;
      uint16_t F5MSK:2;
      uint16_t F6MSK:2;
      uint16_t F7MSK:2;
    };
    struct {
      uint16_t F0MSK0:1;
      uint16_t F0MSK1:1;
      uint16_t F1MSK0:1;
      uint16_t F1MSK1:1;
      uint16_t F2MSK0:1;
      uint16_t F2MSK1:1;
      uint16_t F3MSK0:1;
      uint16_t F3MSK1:1;
      uint16_t F4MSK0:1;
      uint16_t F4MSK1:1;
      uint16_t F5MSK0:1;
      uint16_t F5MSK1:1;
      uint16_t F6MSK0:1;
      uint16_t F6MSK1:1;
      uint16_t F7MSK0:1;
      uint16_t F7MSK1:1;
    };
  };
} C2FMSKSEL1BITS;
extern volatile C2FMSKSEL1BITS C2FMSKSEL1bits __attribute__((__sfr__));


extern volatile uint16_t C2FMSKSEL2 __attribute__((__sfr__));
__extension__ typedef struct tagC2FMSKSEL2BITS {
  union {
    struct {
      uint16_t F8MSK:2;
      uint16_t F9MSK:2;
      uint16_t F10MSK:2;
      uint16_t F11MSK:2;
      uint16_t F12MSK:2;
      uint16_t F13MSK:2;
      uint16_t F14MSK:2;
      uint16_t F15MSK:2;
    };
    struct {
      uint16_t F8MSK0:1;
      uint16_t F8MSK1:1;
      uint16_t F9MSK0:1;
      uint16_t F9MSK1:1;
      uint16_t F10MSK0:1;
      uint16_t F10MSK1:1;
      uint16_t F11MSK0:1;
      uint16_t F11MSK1:1;
      uint16_t F12MSK0:1;
      uint16_t F12MSK1:1;
      uint16_t F13MSK0:1;
      uint16_t F13MSK1:1;
      uint16_t F14MSK0:1;
      uint16_t F14MSK1:1;
      uint16_t F15MSK0:1;
      uint16_t F15MSK1:1;
    };
  };
} C2FMSKSEL2BITS;
extern volatile C2FMSKSEL2BITS C2FMSKSEL2bits __attribute__((__sfr__));


extern volatile uint16_t C2BUFPNT1 __attribute__((__sfr__));
__extension__ typedef struct tagC2BUFPNT1BITS {
  union {
    struct {
      uint16_t F0BP:4;
      uint16_t F1BP:4;
      uint16_t F2BP:4;
      uint16_t F3BP:4;
    };
    struct {
      uint16_t F0BP0:1;
      uint16_t F0BP1:1;
      uint16_t F0BP2:1;
      uint16_t F0BP3:1;
      uint16_t F1BP0:1;
      uint16_t F1BP1:1;
      uint16_t F1BP2:1;
      uint16_t F1BP3:1;
      uint16_t F2BP0:1;
      uint16_t F2BP1:1;
      uint16_t F2BP2:1;
      uint16_t F2BP3:1;
      uint16_t F3BP0:1;
      uint16_t F3BP1:1;
      uint16_t F3BP2:1;
      uint16_t F3BP3:1;
    };
  };
} C2BUFPNT1BITS;
extern volatile C2BUFPNT1BITS C2BUFPNT1bits __attribute__((__sfr__));


extern volatile uint16_t C2RXFUL1 __attribute__((__sfr__));
typedef struct tagC2RXFUL1BITS {
  uint16_t RXFUL0:1;
  uint16_t RXFUL1:1;
  uint16_t RXFUL2:1;
  uint16_t RXFUL3:1;
  uint16_t RXFUL4:1;
  uint16_t RXFUL5:1;
  uint16_t RXFUL6:1;
  uint16_t RXFUL7:1;
  uint16_t RXFUL8:1;
  uint16_t RXFUL9:1;
  uint16_t RXFUL10:1;
  uint16_t RXFUL11:1;
  uint16_t RXFUL12:1;
  uint16_t RXFUL13:1;
  uint16_t RXFUL14:1;
  uint16_t RXFUL15:1;
} C2RXFUL1BITS;
extern volatile C2RXFUL1BITS C2RXFUL1bits __attribute__((__sfr__));


extern volatile uint16_t C2BUFPNT2 __attribute__((__sfr__));
__extension__ typedef struct tagC2BUFPNT2BITS {
  union {
    struct {
      uint16_t F4BP:4;
      uint16_t F5BP:4;
      uint16_t F6BP:4;
      uint16_t F7BP:4;
    };
    struct {
      uint16_t F4BP0:1;
      uint16_t F4BP1:1;
      uint16_t F4BP2:1;
      uint16_t F4BP3:1;
      uint16_t F5BP0:1;
      uint16_t F5BP1:1;
      uint16_t F5BP2:1;
      uint16_t F5BP3:1;
      uint16_t F6BP0:1;
      uint16_t F6BP1:1;
      uint16_t F6BP2:1;
      uint16_t F6BP3:1;
      uint16_t F7BP0:1;
      uint16_t F7BP1:1;
      uint16_t F7BP2:1;
      uint16_t F7BP3:1;
    };
  };
} C2BUFPNT2BITS;
extern volatile C2BUFPNT2BITS C2BUFPNT2bits __attribute__((__sfr__));


extern volatile uint16_t C2RXFUL2 __attribute__((__sfr__));
typedef struct tagC2RXFUL2BITS {
  uint16_t RXFUL16:1;
  uint16_t RXFUL17:1;
  uint16_t RXFUL18:1;
  uint16_t RXFUL19:1;
  uint16_t RXFUL20:1;
  uint16_t RXFUL21:1;
  uint16_t RXFUL22:1;
  uint16_t RXFUL23:1;
  uint16_t RXFUL24:1;
  uint16_t RXFUL25:1;
  uint16_t RXFUL26:1;
  uint16_t RXFUL27:1;
  uint16_t RXFUL28:1;
  uint16_t RXFUL29:1;
  uint16_t RXFUL30:1;
  uint16_t RXFUL31:1;
} C2RXFUL2BITS;
extern volatile C2RXFUL2BITS C2RXFUL2bits __attribute__((__sfr__));


extern volatile uint16_t C2BUFPNT3 __attribute__((__sfr__));
__extension__ typedef struct tagC2BUFPNT3BITS {
  union {
    struct {
      uint16_t F8BP:4;
      uint16_t F9BP:4;
      uint16_t F10BP:4;
      uint16_t F11BP:4;
    };
    struct {
      uint16_t F8BP0:1;
      uint16_t F8BP1:1;
      uint16_t F8BP2:1;
      uint16_t F8BP3:1;
      uint16_t F9BP0:1;
      uint16_t F9BP1:1;
      uint16_t F9BP2:1;
      uint16_t F9BP3:1;
      uint16_t F10BP0:1;
      uint16_t F10BP1:1;
      uint16_t F10BP2:1;
      uint16_t F10BP3:1;
      uint16_t F11BP0:1;
      uint16_t F11BP1:1;
      uint16_t F11BP2:1;
      uint16_t F11BP3:1;
    };
  };
} C2BUFPNT3BITS;
extern volatile C2BUFPNT3BITS C2BUFPNT3bits __attribute__((__sfr__));


extern volatile uint16_t C2BUFPNT4 __attribute__((__sfr__));
__extension__ typedef struct tagC2BUFPNT4BITS {
  union {
    struct {
      uint16_t F12BP:4;
      uint16_t F13BP:4;
      uint16_t F14BP:4;
      uint16_t F15BP:4;
    };
    struct {
      uint16_t F12BP0:1;
      uint16_t F12BP1:1;
      uint16_t F12BP2:1;
      uint16_t F12BP3:1;
      uint16_t F13BP0:1;
      uint16_t F13BP1:1;
      uint16_t F13BP2:1;
      uint16_t F13BP3:1;
      uint16_t F14BP0:1;
      uint16_t F14BP1:1;
      uint16_t F14BP2:1;
      uint16_t F14BP3:1;
      uint16_t F15BP0:1;
      uint16_t F15BP1:1;
      uint16_t F15BP2:1;
      uint16_t F15BP3:1;
    };
  };
} C2BUFPNT4BITS;
extern volatile C2BUFPNT4BITS C2BUFPNT4bits __attribute__((__sfr__));


extern volatile uint16_t C2RXOVF1 __attribute__((__sfr__));
typedef struct tagC2RXOVF1BITS {
  uint16_t RXOVF0:1;
  uint16_t RXOVF1:1;
  uint16_t RXOVF2:1;
  uint16_t RXOVF3:1;
  uint16_t RXOVF4:1;
  uint16_t RXOVF5:1;
  uint16_t RXOVF6:1;
  uint16_t RXOVF7:1;
  uint16_t RXOVF8:1;
  uint16_t RXOVF9:1;
  uint16_t RXOVF10:1;
  uint16_t RXOVF11:1;
  uint16_t RXOVF12:1;
  uint16_t RXOVF13:1;
  uint16_t RXOVF14:1;
  uint16_t RXOVF15:1;
} C2RXOVF1BITS;
extern volatile C2RXOVF1BITS C2RXOVF1bits __attribute__((__sfr__));


extern volatile uint16_t C2RXOVF2 __attribute__((__sfr__));
typedef struct tagC2RXOVF2BITS {
  uint16_t RXOVF16:1;
  uint16_t RXOVF17:1;
  uint16_t RXOVF18:1;
  uint16_t RXOVF19:1;
  uint16_t RXOVF20:1;
  uint16_t RXOVF21:1;
  uint16_t RXOVF22:1;
  uint16_t RXOVF23:1;
  uint16_t RXOVF24:1;
  uint16_t RXOVF25:1;
  uint16_t RXOVF26:1;
  uint16_t RXOVF27:1;
  uint16_t RXOVF28:1;
  uint16_t RXOVF29:1;
  uint16_t RXOVF30:1;
  uint16_t RXOVF31:1;
} C2RXOVF2BITS;
extern volatile C2RXOVF2BITS C2RXOVF2bits __attribute__((__sfr__));


extern volatile uint16_t C2RXM0SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXM0SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t MIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C2RXM0SIDBITS;
extern volatile C2RXM0SIDBITS C2RXM0SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2TR01CON __attribute__((__sfr__));
__extension__ typedef struct tagC2TR01CONBITS {
  union {
    struct {
      uint16_t TX0PRI:2;
      uint16_t RTREN0:1;
      uint16_t TXREQ0:1;
      uint16_t TXERR0:1;
      uint16_t TXLARB0:1;
      uint16_t TXABT0:1;
      uint16_t TXEN0:1;
      uint16_t TX1PRI:2;
      uint16_t RTREN1:1;
      uint16_t TXREQ1:1;
      uint16_t TXERR1:1;
      uint16_t TXLARB1:1;
      uint16_t TXABT1:1;
      uint16_t TXEN1:1;
    };
    struct {
      uint16_t TX0PRI0:1;
      uint16_t TX0PRI1:1;
      uint16_t :6;
      uint16_t TX1PRI0:1;
      uint16_t TX1PRI1:1;
    };
  };
} C2TR01CONBITS;
extern volatile C2TR01CONBITS C2TR01CONbits __attribute__((__sfr__));


extern volatile uint16_t C2RXM0EID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXM0EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C2RXM0EIDBITS;
extern volatile C2RXM0EIDBITS C2RXM0EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2TR23CON __attribute__((__sfr__));
__extension__ typedef struct tagC2TR23CONBITS {
  union {
    struct {
      uint16_t TX2PRI:2;
      uint16_t RTREN2:1;
      uint16_t TXREQ2:1;
      uint16_t TXERR2:1;
      uint16_t TXLARB2:1;
      uint16_t TXABT2:1;
      uint16_t TXEN2:1;
      uint16_t TX3PRI:2;
      uint16_t RTREN3:1;
      uint16_t TXREQ3:1;
      uint16_t TXERR3:1;
      uint16_t TXLARB3:1;
      uint16_t TXABT3:1;
      uint16_t TXEN3:1;
    };
    struct {
      uint16_t TX2PRI0:1;
      uint16_t TX2PRI1:1;
      uint16_t :6;
      uint16_t TX3PRI0:1;
      uint16_t TX3PRI1:1;
    };
  };
} C2TR23CONBITS;
extern volatile C2TR23CONBITS C2TR23CONbits __attribute__((__sfr__));


extern volatile uint16_t C2RXM1SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXM1SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t MIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C2RXM1SIDBITS;
extern volatile C2RXM1SIDBITS C2RXM1SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2TR45CON __attribute__((__sfr__));
__extension__ typedef struct tagC2TR45CONBITS {
  union {
    struct {
      uint16_t TX4PRI:2;
      uint16_t RTREN4:1;
      uint16_t TXREQ4:1;
      uint16_t TXERR4:1;
      uint16_t TXLARB4:1;
      uint16_t TXABT4:1;
      uint16_t TXEN4:1;
      uint16_t TX5PRI:2;
      uint16_t RTREN5:1;
      uint16_t TXREQ5:1;
      uint16_t TXERR5:1;
      uint16_t TXLARB5:1;
      uint16_t TXABT5:1;
      uint16_t TXEN5:1;
    };
    struct {
      uint16_t TX4PRI0:1;
      uint16_t TX4PRI1:1;
      uint16_t :6;
      uint16_t TX5PRI0:1;
      uint16_t TX5PRI1:1;
    };
  };
} C2TR45CONBITS;
extern volatile C2TR45CONBITS C2TR45CONbits __attribute__((__sfr__));


extern volatile uint16_t C2RXM1EID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXM1EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C2RXM1EIDBITS;
extern volatile C2RXM1EIDBITS C2RXM1EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2TR67CON __attribute__((__sfr__));
__extension__ typedef struct tagC2TR67CONBITS {
  union {
    struct {
      uint16_t TX6PRI:2;
      uint16_t RTREN6:1;
      uint16_t TXREQ6:1;
      uint16_t TXERR6:1;
      uint16_t TXLARB6:1;
      uint16_t TXABT6:1;
      uint16_t TXEN6:1;
      uint16_t TX7PRI:2;
      uint16_t RTREN7:1;
      uint16_t TXREQ7:1;
      uint16_t TXERR7:1;
      uint16_t TXLARB7:1;
      uint16_t TXABT7:1;
      uint16_t TXEN7:1;
    };
    struct {
      uint16_t TX6PRI0:1;
      uint16_t TX6PRI1:1;
      uint16_t :6;
      uint16_t TX7PRI0:1;
      uint16_t TX7PRI1:1;
    };
  };
} C2TR67CONBITS;
extern volatile C2TR67CONBITS C2TR67CONbits __attribute__((__sfr__));


extern volatile uint16_t C2RXM2SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXM2SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t MIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t EID:2;
      uint16_t :3;
      uint16_t SID:11;
    };
  };
} C2RXM2SIDBITS;
extern volatile C2RXM2SIDBITS C2RXM2SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXM2EID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXM2EIDBITS {
  union {
    struct {
      uint16_t EID0:1;
      uint16_t EID1:1;
      uint16_t EID2:1;
      uint16_t EID3:1;
      uint16_t EID4:1;
      uint16_t EID5:1;
      uint16_t EID6:1;
      uint16_t EID7:1;
      uint16_t EID8:1;
      uint16_t EID9:1;
      uint16_t EID10:1;
      uint16_t EID11:1;
      uint16_t EID12:1;
      uint16_t EID13:1;
      uint16_t EID14:1;
      uint16_t EID15:1;
    };
    struct {
      uint16_t EID:16;
    };
  };
} C2RXM2EIDBITS;
extern volatile C2RXM2EIDBITS C2RXM2EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXD __attribute__((__sfr__));

extern volatile uint16_t C2RXF0SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF0SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF0SIDBITS;
extern volatile C2RXF0SIDBITS C2RXF0SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF0EID __attribute__((__sfr__));
typedef struct tagC2RXF0EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF0EIDBITS;
extern volatile C2RXF0EIDBITS C2RXF0EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2TXD __attribute__((__sfr__));

extern volatile uint16_t C2RXF1SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF1SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF1SIDBITS;
extern volatile C2RXF1SIDBITS C2RXF1SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF1EID __attribute__((__sfr__));
typedef struct tagC2RXF1EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF1EIDBITS;
extern volatile C2RXF1EIDBITS C2RXF1EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF2SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF2SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF2SIDBITS;
extern volatile C2RXF2SIDBITS C2RXF2SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF2EID __attribute__((__sfr__));
typedef struct tagC2RXF2EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF2EIDBITS;
extern volatile C2RXF2EIDBITS C2RXF2EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF3SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF3SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF3SIDBITS;
extern volatile C2RXF3SIDBITS C2RXF3SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF3EID __attribute__((__sfr__));
typedef struct tagC2RXF3EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF3EIDBITS;
extern volatile C2RXF3EIDBITS C2RXF3EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF4SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF4SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF4SIDBITS;
extern volatile C2RXF4SIDBITS C2RXF4SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF4EID __attribute__((__sfr__));
typedef struct tagC2RXF4EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF4EIDBITS;
extern volatile C2RXF4EIDBITS C2RXF4EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF5SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF5SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF5SIDBITS;
extern volatile C2RXF5SIDBITS C2RXF5SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF5EID __attribute__((__sfr__));
typedef struct tagC2RXF5EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF5EIDBITS;
extern volatile C2RXF5EIDBITS C2RXF5EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF6SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF6SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF6SIDBITS;
extern volatile C2RXF6SIDBITS C2RXF6SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF6EID __attribute__((__sfr__));
typedef struct tagC2RXF6EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF6EIDBITS;
extern volatile C2RXF6EIDBITS C2RXF6EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF7SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF7SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF7SIDBITS;
extern volatile C2RXF7SIDBITS C2RXF7SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF7EID __attribute__((__sfr__));
typedef struct tagC2RXF7EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF7EIDBITS;
extern volatile C2RXF7EIDBITS C2RXF7EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF8SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF8SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF8SIDBITS;
extern volatile C2RXF8SIDBITS C2RXF8SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF8EID __attribute__((__sfr__));
typedef struct tagC2RXF8EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF8EIDBITS;
extern volatile C2RXF8EIDBITS C2RXF8EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF9SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF9SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF9SIDBITS;
extern volatile C2RXF9SIDBITS C2RXF9SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF9EID __attribute__((__sfr__));
typedef struct tagC2RXF9EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF9EIDBITS;
extern volatile C2RXF9EIDBITS C2RXF9EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF10SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF10SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF10SIDBITS;
extern volatile C2RXF10SIDBITS C2RXF10SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF10EID __attribute__((__sfr__));
typedef struct tagC2RXF10EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF10EIDBITS;
extern volatile C2RXF10EIDBITS C2RXF10EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF11SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF11SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF11SIDBITS;
extern volatile C2RXF11SIDBITS C2RXF11SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF11EID __attribute__((__sfr__));
typedef struct tagC2RXF11EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF11EIDBITS;
extern volatile C2RXF11EIDBITS C2RXF11EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF12SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF12SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF12SIDBITS;
extern volatile C2RXF12SIDBITS C2RXF12SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF12EID __attribute__((__sfr__));
typedef struct tagC2RXF12EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF12EIDBITS;
extern volatile C2RXF12EIDBITS C2RXF12EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF13SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF13SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF13SIDBITS;
extern volatile C2RXF13SIDBITS C2RXF13SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF13EID __attribute__((__sfr__));
typedef struct tagC2RXF13EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF13EIDBITS;
extern volatile C2RXF13EIDBITS C2RXF13EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF14SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF14SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF14SIDBITS;
extern volatile C2RXF14SIDBITS C2RXF14SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF14EID __attribute__((__sfr__));
typedef struct tagC2RXF14EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF14EIDBITS;
extern volatile C2RXF14EIDBITS C2RXF14EIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF15SID __attribute__((__sfr__));
__extension__ typedef struct tagC2RXF15SIDBITS {
  union {
    struct {
      uint16_t EID16:1;
      uint16_t EID17:1;
      uint16_t :1;
      uint16_t EXIDE:1;
      uint16_t :1;
      uint16_t SID0:1;
      uint16_t SID1:1;
      uint16_t SID2:1;
      uint16_t SID3:1;
      uint16_t SID4:1;
      uint16_t SID5:1;
      uint16_t SID6:1;
      uint16_t SID7:1;
      uint16_t SID8:1;
      uint16_t SID9:1;
      uint16_t SID10:1;
    };
    struct {
      uint16_t :5;
      uint16_t SID:11;
    };
  };
} C2RXF15SIDBITS;
extern volatile C2RXF15SIDBITS C2RXF15SIDbits __attribute__((__sfr__));


extern volatile uint16_t C2RXF15EID __attribute__((__sfr__));
typedef struct tagC2RXF15EIDBITS {
  uint16_t EID0:1;
  uint16_t EID1:1;
  uint16_t EID2:1;
  uint16_t EID3:1;
  uint16_t EID4:1;
  uint16_t EID5:1;
  uint16_t EID6:1;
  uint16_t EID7:1;
  uint16_t EID8:1;
  uint16_t EID9:1;
  uint16_t EID10:1;
  uint16_t EID11:1;
  uint16_t EID12:1;
  uint16_t EID13:1;
  uint16_t EID14:1;
  uint16_t EID15:1;
} C2RXF15EIDBITS;
extern volatile C2RXF15EIDBITS C2RXF15EIDbits __attribute__((__sfr__));


extern volatile uint16_t ODCA __attribute__((__sfr__));
typedef struct tagODCABITS {
  uint16_t ODCA0:1;
  uint16_t ODCA1:1;
  uint16_t ODCA2:1;
  uint16_t ODCA3:1;
  uint16_t ODCA4:1;
  uint16_t ODCA5:1;
  uint16_t :8;
  uint16_t ODCA14:1;
  uint16_t ODCA15:1;
} ODCABITS;
extern volatile ODCABITS ODCAbits __attribute__((__sfr__));


extern volatile uint16_t ODCD __attribute__((__sfr__));
typedef struct tagODCDBITS {
  uint16_t ODCD0:1;
  uint16_t ODCD1:1;
  uint16_t ODCD2:1;
  uint16_t ODCD3:1;
  uint16_t ODCD4:1;
  uint16_t ODCD5:1;
  uint16_t ODCD6:1;
  uint16_t ODCD7:1;
  uint16_t ODCD8:1;
  uint16_t ODCD9:1;
  uint16_t ODCD10:1;
  uint16_t ODCD11:1;
  uint16_t ODCD12:1;
  uint16_t ODCD13:1;
  uint16_t ODCD14:1;
  uint16_t ODCD15:1;
} ODCDBITS;
extern volatile ODCDBITS ODCDbits __attribute__((__sfr__));


extern volatile uint16_t ODCF __attribute__((__sfr__));
typedef struct tagODCFBITS {
  uint16_t ODCF0:1;
  uint16_t ODCF1:1;
  uint16_t ODCF2:1;
  uint16_t ODCF3:1;
  uint16_t ODCF4:1;
  uint16_t ODCF5:1;
  uint16_t ODCF6:1;
  uint16_t ODCF7:1;
  uint16_t ODCF8:1;
  uint16_t :3;
  uint16_t ODCF12:1;
  uint16_t ODCF13:1;
} ODCFBITS;
extern volatile ODCFBITS ODCFbits __attribute__((__sfr__));


extern volatile uint16_t ODCG __attribute__((__sfr__));
typedef struct tagODCGBITS {
  uint16_t ODCG0:1;
  uint16_t ODCG1:1;
  uint16_t ODCG2:1;
  uint16_t ODCG3:1;
  uint16_t :2;
  uint16_t ODCG6:1;
  uint16_t ODCG7:1;
  uint16_t ODCG8:1;
  uint16_t ODCG9:1;
  uint16_t :2;
  uint16_t ODCG12:1;
  uint16_t ODCG13:1;
  uint16_t ODCG14:1;
  uint16_t ODCG15:1;
} ODCGBITS;
extern volatile ODCGBITS ODCGbits __attribute__((__sfr__));


extern volatile uint16_t RCON __attribute__((__sfr__));
typedef struct tagRCONBITS {
  uint16_t POR:1;
  uint16_t BOR:1;
  uint16_t IDLE:1;
  uint16_t SLEEP:1;
  uint16_t WDTO:1;
  uint16_t SWDTEN:1;
  uint16_t SWR:1;
  uint16_t EXTR:1;
  uint16_t VREGS:1;
  uint16_t :5;
  uint16_t IOPUWR:1;
  uint16_t TRAPR:1;
} RCONBITS;
extern volatile RCONBITS RCONbits __attribute__((__sfr__));


extern volatile uint16_t OSCCON __attribute__((__sfr__));
__extension__ typedef struct tagOSCCONBITS {
  union {
    struct {
      uint16_t OSWEN:1;
      uint16_t LPOSCEN:1;
      uint16_t :1;
      uint16_t CF:1;
      uint16_t :1;
      uint16_t LOCK:1;
      uint16_t :1;
      uint16_t CLKLOCK:1;
      uint16_t NOSC:3;
      uint16_t :1;
      uint16_t COSC:3;
    };
    struct {
      uint16_t :8;
      uint16_t NOSC0:1;
      uint16_t NOSC1:1;
      uint16_t NOSC2:1;
      uint16_t :1;
      uint16_t COSC0:1;
      uint16_t COSC1:1;
      uint16_t COSC2:1;
    };
  };
} OSCCONBITS;
extern volatile OSCCONBITS OSCCONbits __attribute__((__sfr__));


extern volatile uint8_t OSCCONL __attribute__((__sfr__));

extern volatile uint8_t OSCCONH __attribute__((__sfr__));

extern volatile uint16_t CLKDIV __attribute__((__sfr__));
__extension__ typedef struct tagCLKDIVBITS {
  union {
    struct {
      uint16_t PLLPRE:5;
      uint16_t :1;
      uint16_t PLLPOST:2;
      uint16_t FRCDIV:3;
      uint16_t DOZEN:1;
      uint16_t DOZE:3;
      uint16_t ROI:1;
    };
    struct {
      uint16_t PLLPRE0:1;
      uint16_t PLLPRE1:1;
      uint16_t PLLPRE2:1;
      uint16_t PLLPRE3:1;
      uint16_t PLLPRE4:1;
      uint16_t :1;
      uint16_t PLLPOST0:1;
      uint16_t PLLPOST1:1;
      uint16_t FRCDIV0:1;
      uint16_t FRCDIV1:1;
      uint16_t FRCDIV2:1;
      uint16_t :1;
      uint16_t DOZE0:1;
      uint16_t DOZE1:1;
      uint16_t DOZE2:1;
    };
  };
} CLKDIVBITS;
extern volatile CLKDIVBITS CLKDIVbits __attribute__((__sfr__));


extern volatile uint16_t PLLFBD __attribute__((__sfr__));
__extension__ typedef struct tagPLLFBDBITS {
  union {
    struct {
      uint16_t PLLDIV:9;
    };
    struct {
      uint16_t PLLDIV0:1;
      uint16_t PLLDIV1:1;
      uint16_t PLLDIV2:1;
      uint16_t PLLDIV3:1;
      uint16_t PLLDIV4:1;
      uint16_t PLLDIV5:1;
      uint16_t PLLDIV6:1;
      uint16_t PLLDIV7:1;
      uint16_t PLLDIV8:1;
    };
  };
} PLLFBDBITS;
extern volatile PLLFBDBITS PLLFBDbits __attribute__((__sfr__));


extern volatile uint16_t OSCTUN __attribute__((__sfr__));
__extension__ typedef struct tagOSCTUNBITS {
  union {
    struct {
      uint16_t TUN:6;
    };
    struct {
      uint16_t TUN0:1;
      uint16_t TUN1:1;
      uint16_t TUN2:1;
      uint16_t TUN3:1;
      uint16_t TUN4:1;
      uint16_t TUN5:1;
    };
  };
} OSCTUNBITS;
extern volatile OSCTUNBITS OSCTUNbits __attribute__((__sfr__));


extern volatile uint16_t BSRAM __attribute__((__sfr__));
typedef struct tagBSRAMBITS {
  uint16_t RL_BSR:1;
  uint16_t IR_BSR:1;
  uint16_t IW_BSR:1;
} BSRAMBITS;
extern volatile BSRAMBITS BSRAMbits __attribute__((__sfr__));


extern volatile uint16_t SSRAM __attribute__((__sfr__));
typedef struct tagSSRAMBITS {
  uint16_t RL_SSR:1;
  uint16_t IR_SSR:1;
  uint16_t IW_SSR:1;
} SSRAMBITS;
extern volatile SSRAMBITS SSRAMbits __attribute__((__sfr__));


extern volatile uint16_t NVMCON __attribute__((__sfr__));
__extension__ typedef struct tagNVMCONBITS {
  union {
    struct {
      uint16_t NVMOP:4;
      uint16_t :2;
      uint16_t ERASE:1;
      uint16_t :6;
      uint16_t WRERR:1;
      uint16_t WREN:1;
      uint16_t WR:1;
    };
    struct {
      uint16_t NVMOP0:1;
      uint16_t NVMOP1:1;
      uint16_t NVMOP2:1;
      uint16_t NVMOP3:1;
    };
  };
} NVMCONBITS;
extern volatile NVMCONBITS NVMCONbits __attribute__((__sfr__));


extern volatile uint16_t NVMKEY __attribute__((__sfr__));

extern volatile uint16_t PMD1 __attribute__((__sfr__));
typedef struct tagPMD1BITS {
  uint16_t AD1MD:1;
  uint16_t C1MD:1;
  uint16_t C2MD:1;
  uint16_t SPI1MD:1;
  uint16_t SPI2MD:1;
  uint16_t U1MD:1;
  uint16_t U2MD:1;
  uint16_t I2C1MD:1;
  uint16_t :1;
  uint16_t PWMMD:1;
  uint16_t QEIMD:1;
  uint16_t T1MD:1;
  uint16_t T2MD:1;
  uint16_t T3MD:1;
  uint16_t T4MD:1;
  uint16_t T5MD:1;
} PMD1BITS;
extern volatile PMD1BITS PMD1bits __attribute__((__sfr__));


extern volatile uint16_t PMD2 __attribute__((__sfr__));
typedef struct tagPMD2BITS {
  uint16_t OC1MD:1;
  uint16_t OC2MD:1;
  uint16_t OC3MD:1;
  uint16_t OC4MD:1;
  uint16_t OC5MD:1;
  uint16_t OC6MD:1;
  uint16_t OC7MD:1;
  uint16_t OC8MD:1;
  uint16_t IC1MD:1;
  uint16_t IC2MD:1;
  uint16_t IC3MD:1;
  uint16_t IC4MD:1;
  uint16_t IC5MD:1;
  uint16_t IC6MD:1;
  uint16_t IC7MD:1;
  uint16_t IC8MD:1;
} PMD2BITS;
extern volatile PMD2BITS PMD2bits __attribute__((__sfr__));


extern volatile uint16_t PMD3 __attribute__((__sfr__));
typedef struct tagPMD3BITS {
  uint16_t AD2MD:1;
  uint16_t I2C2MD:1;
  uint16_t :10;
  uint16_t T6MD:1;
  uint16_t T7MD:1;
  uint16_t T8MD:1;
  uint16_t T9MD:1;
} PMD3BITS;
extern volatile PMD3BITS PMD3bits __attribute__((__sfr__));
# 29157 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern void *_DMA_BASE __attribute__((far));
# 29166 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern __attribute__((space(prog))) __prog__ uint16_t _FBS;
# 29239 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern __attribute__((space(prog))) __prog__ uint16_t _FSS;
# 29312 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern __attribute__((space(prog))) __prog__ uint16_t _FGS;
# 29348 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern __attribute__((space(prog))) __prog__ uint16_t _FOSCSEL;
# 29390 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern __attribute__((space(prog))) __prog__ uint16_t _FOSC;
# 29433 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern __attribute__((space(prog))) __prog__ uint16_t _FWDT;
# 29512 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern __attribute__((space(prog))) __prog__ uint16_t _FPOR;
# 29568 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern __attribute__((space(prog))) __prog__ uint16_t _FICD;
# 29600 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern __attribute__((space(prog))) __prog__ uint16_t _FUID0;
# 29619 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern __attribute__((space(prog))) __prog__ uint16_t _FUID1;
# 29638 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern __attribute__((space(prog))) __prog__ uint16_t _FUID2;
# 29657 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\dsPIC33F\\h/p33FJ256MC710A.h" 3 4
extern __attribute__((space(prog))) __prog__ uint16_t _FUID3;
# 417 "C:/Users/hamilton/.mchp_packs/Microchip/dsPIC33F-GP-MC_DFP/1.3.64/xc16/bin/..\\support\\generic\\h/xc.h" 2 3 4
# 16 "../CommonCode/i2c.h" 2
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 1 3 4
# 12 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/subordinate_errors.h" 1 3 4
# 13 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 2 3 4
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stddef.h" 1 3 4
# 17 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stddef.h" 3 4
# 1 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 1 3 4
# 223 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/bits/alltypes.h" 3 4
typedef int ptrdiff_t;
# 18 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\include/stddef.h" 2 3 4
# 14 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 2 3 4
# 25 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
extern int __attach_input_file(const char *f);
void __close_input_file(void);
# 36 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
extern int __C30_UART;
# 46 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
extern void __delay32(unsigned long cycles);
# 84 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
extern __attribute__((space(prog))) int _PROGRAM_END;
# 97 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
extern void _dump_heap_info(void);
# 116 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
typedef unsigned long _prog_addressT;

extern _prog_addressT _memcpy_helper(_prog_addressT src, void *dst,
                                     unsigned int len, int flags);
# 129 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
extern void *_memcpy_df(__pack_upper_byte void *src,void *dst,unsigned int len);
# 148 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
_prog_addressT _memcpy_p2d16(void *dest, _prog_addressT src,
                             unsigned int len);
# 160 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
_prog_addressT _memcpy_p2d24(void *dest, _prog_addressT src,
                             unsigned int len);
# 173 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
_prog_addressT _strncpy_p2d16(char *dest, _prog_addressT src,
                              unsigned int len);
# 186 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
_prog_addressT _strncpy_p2d24(char *dest, _prog_addressT src,
                              unsigned int len);







void *_memcpy_packed(char *dest, const __pack_upper_byte void *src,
                     unsigned int len);



extern char *_strcpy_packed(char *dest, const __pack_upper_byte void *src);
extern char *_strncpy_packed(char *dest, const __pack_upper_byte void *src,
                             unsigned int len);






extern __eds__ void *_memcpy_eds_3(const __eds__ void *src, __eds__ void *dst,
                                   int len);
# 224 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
extern __eds__ char *_strcpy_eds(const __eds__ void *src, __eds__ void *dst);
extern __eds__ char *_strncpy_eds(const __eds__ void *src, __eds__ void *dst,
                                  int len);
# 235 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
extern __eds__ void *_memchr_eds(__eds__ void *s, int c, size_t n);
# 371 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
extern void _eedata_helper1 (_prog_addressT dst, int len);
extern void _eedata_helper2 (void);
extern void _eedata_helper3 (_prog_addressT dst, int dat);
extern void _eedata_helper4 (_prog_addressT dst, int *src);
extern void _eedata_helper5 (_prog_addressT dst, int len);
extern void _eedata_helper6 (void);
extern void _eedata_helper7 (_prog_addressT dst, int dat);
# 393 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
extern void _flash_helper1 (_prog_addressT dst, int code)
            __attribute__((deprecated("consider migrating to Microchip Code Configurator https://www.microchip.com/mcc")));
extern void _flash_helper2 (_prog_addressT dst, int *src, int len)
            __attribute__((deprecated("consider migrating to Microchip Code Configurator https://www.microchip.com/mcc")));
extern void _flash_helper3 (_prog_addressT dst, long *src, int len)
            __attribute__((deprecated("consider migrating to Microchip Code Configurator https://www.microchip.com/mcc")));
extern void _flash_helper4 (_prog_addressT dst, int dat)
            __attribute__((deprecated("consider migrating to Microchip Code Configurator https://www.microchip.com/mcc")));
extern void _flash_helper5 (_prog_addressT dst, long dat)
            __attribute__((deprecated("consider migrating to Microchip Code Configurator https://www.microchip.com/mcc")));
extern void _flash_helper6 (int code)
            __attribute__((deprecated("consider migrating to Microchip Code Configurator https://www.microchip.com/mcc")));
extern void _flash_helper7 (_prog_addressT dst, int len)
            __attribute__((deprecated("consider migrating to Microchip Code Configurator https://www.microchip.com/mcc")));
extern void _flash_helper8 (_prog_addressT dst, int *src, int len)
            __attribute__((deprecated("consider migrating to Microchip Code Configurator https://www.microchip.com/mcc")));
extern void _flash_helper9 (_prog_addressT dst, long *src, int len)
            __attribute__((deprecated("consider migrating to Microchip Code Configurator https://www.microchip.com/mcc")));
extern void _flash_helper10 (_prog_addressT dst, int dat1, int empty, int dat2)
            __attribute__((deprecated("consider migrating to Microchip Code Configurator https://www.microchip.com/mcc")));
extern void _flash_helper11 (_prog_addressT dst, long dat1, long dat2)
            __attribute__((deprecated("consider migrating to Microchip Code Configurator https://www.microchip.com/mcc")));
# 538 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
void _erase_flash(_prog_addressT dst);
# 554 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
void _write_flash16(_prog_addressT dst, int *src);
# 570 "c:\\program files\\microchip\\xc16\\v2.00\\bin\\bin\\../..\\support\\generic\\h/libpic30.h" 3 4
void _write_flash24(_prog_addressT dst, long *src);
# 17 "../CommonCode/i2c.h" 2





int i2c_readEEPROM(unsigned char* data, int len);
int i2c_writeEEPROM(unsigned char* data, int len);





int i2c_getHumTemp(float* rh, float* temp);





int i2c_getMPL115A2Coeff(float* a0, float* b1, float* b2, float* c12);

int i2c_getPressTemp(float a0, float b1, float b2, float c12,
                     float* pressure, float* temp);
# 47 "../CommonCode/i2c.h"
void i2c_init();
int i2c_start();
int i2c_restart();
int i2c_stop();
int i2c_idle();
int i2c_ack();
int i2c_nack();
int i2c_wait_ack();
int i2c_read(unsigned char* c);
int i2c_write(unsigned char c);
# 10 "ts_actions.c" 2
# 1 "../CommonCode/parser.h" 1



# 1 "../CommonCode/cmd_types.h" 1



typedef struct
{
    char* name;
    int (*func)(char *);
} CmdStruct;

extern const CmdStruct cmdsGet[];
extern const CmdStruct cmdsSet[];
extern const CmdStruct cmdsClr[];
extern const CmdStruct cmdsRoot[];
# 5 "../CommonCode/parser.h" 2

int prsNameMatch(char* s, char* ref);
char* prsSkip(char* s, char* ignore);
int prsIsInteger(char* txt);
int prsIsValidNameChar(char c);
int prsParse(char* line, const CmdStruct* cmds, int err_code);
# 11 "ts_actions.c" 2
# 1 "../CommonCode/cmd_types.h" 1
# 12 "ts_actions.c" 2

static char msg_buff[128];




int actGetCmd(char* s)
{
    return prsParse(s, cmdsGet, 2);
}

int actSetCmd(char* s)
{
    return prsParse(s, cmdsSet, 2);
}

int actClrCmd(char* s)
{
    return prsParse(s, cmdsClr, 2);
}

int actLedOutputCmd(char* s)
{
    long led_state;


    led_state = strtol(s, ((void*)0), 16);


    if ( (led_state < 0) || (led_state > 255) )
        return -1;


    npLedState = (unsigned char)led_state;

    return 0;
}

int actHelpCmd(char* s)
{
    u2PutString("NP ON - enable all navproc output\r\n");
    u2PutString("NP OFF - disable all navproc output\r\n");

    u2PutString("CAM ON - enable camera output\r\n");
    u2PutString("CAM OFF - disable camera output\r\n");

    u2PutString("ENV ON - enable environmental output\r\n");
    u2PutString("ENV OFF - disable environmental output\r\n");

    u2PutString("PTB ON - enable pan, tilt and button output\r\n");
    u2PutString("PTB OFF - disable pan, tilt and button output\r\n");

    u2PutString("ECHO ON - enable CLI echo\r\n");
    u2PutString("ECHO OFF - disable CLI echo\r\n");

    u2PutString("TS_DEBUG ON - enable topside debug output\r\n");
    u2PutString("TS_DEBUG OFF - disable topside debug output\r\n");

    u2PutString("LED_OUT - set lapbox LED states\r\n");

    u2PutString("HELP - display this menu\r\n");
    u2PutString("RESET - reset the controller\r\n");
    u2PutString("\r\n");
    u2PutString("GET HUM - get labbox humidity temperature\r\n");
    u2PutString("\r\n");
    u2PutString("SET STUB - stub for future set cmds\r\n");
    u2PutString("\r\n");
    u2PutString("CLR STUB - stub for future clear cmds\r\n");
    u2PutString("\r\n");

    return 0;
}

int actResetCmd(char* s)
{
    asm("reset");
    return 0;
}

int actNpOnCmd(char* s)
{

    camOutput = 1;
    envOutput = 1;
    ptbOutput = 1;

    return 0;
}

int actNpOffCmd(char* s)
{

    camOutput = 0;
    envOutput = 0;
    ptbOutput = 0;

    return 0;
}

int actCamOnCmd(char* s)
{
    camOutput = 1;
    return 0;
}

int actCamOffCmd(char* s)
{
    camOutput = 0;
    return 0;
}

int actEnvOnCmd(char* s)
{
    envOutput = 1;
    return 0;
}

int actEnvOffCmd(char* s)
{
    envOutput = 0;
    return 0;
}

int actPtbOnCmd(char* s)
{
    ptbOutput = 1;
    return 0;
}

int actPtbOffCmd(char* s)
{
    ptbOutput = 0;
    return 0;
}

int actEchoOnCmd(char* s)
{
    echoMode = 1;
    return 0;
}

int actEchoOffCmd(char* s)
{
    echoMode = 0;
    return 0;
}

int actTsDebugOnCmd(char* s)
{
    tsDebugOutput = 1;
    return 0;
}

int actTsDebugOffCmd(char* s)
{
    tsDebugOutput = 0;
    return 0;
}

int actHelloKittyCmd(char* s)
{
    u2PutString("MEOW\r\n");
    return 0;
}





int actGetHumCmd(char* s)
{
    float rh, temp;

    i2c_getHumTemp(&rh, &temp);

    sprintf(msg_buff, "HUM    : %.2f %%\r\n", (double)rh);
    u2PutString(msg_buff);
    sprintf(msg_buff, "TEMP   : %.2f C\r\n", (double)temp);
    u2PutString(msg_buff);

    return 0;
}





int actSetStubCmd(char* s)
{
    sprintf(msg_buff, "actSetStubCmd(%s)\r\n", s);
    u2PutString(msg_buff);

    return 0;
}





int actClrStubCmd(char* s)
{
    sprintf(msg_buff, "actClrStubCmd(%s)\r\n", s);
    u2PutString(msg_buff);

    return 0;
}
