2 * This declarations of the PIC18F44K22 MCU.
4 * This file is part of the GNU PIC library for SDCC, originally
5 * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016.
7 * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:23:29 UTC.
9 * SDCC is licensed under the GNU Public license (GPL) v2. Note that
10 * this license covers the code to the compiler and other executables,
11 * but explicitly does not cover any code or objects generated by sdcc.
13 * For pic device libraries and header files which are derived from
14 * Microchip header (.inc) and linker script (.lkr) files Microchip
15 * requires that "The header files should state that they are only to be
16 * used with authentic Microchip devices" which makes them incompatible
17 * with the GPL. Pic device libraries and header files are located at
18 * non-free/lib and non-free/include directories respectively.
19 * Sdcc should be run with the --use-non-free command line option in
20 * order to include non-free header files and libraries.
22 * See http://sdcc.sourceforge.net/ for the latest information on sdcc.
25 #ifndef __PIC18F44K22_H__
26 #define __PIC18F44K22_H__
28 //==============================================================================
30 //==============================================================================
32 // Register Definitions
34 //==============================================================================
37 //==============================================================================
40 extern __at(0x0F38) __sfr ANSELA
;
54 extern __at(0x0F38) volatile __ANSELAbits_t ANSELAbits
;
62 //==============================================================================
65 //==============================================================================
68 extern __at(0x0F39) __sfr ANSELB
;
91 extern __at(0x0F39) volatile __ANSELBbits_t ANSELBbits
;
100 //==============================================================================
103 //==============================================================================
106 extern __at(0x0F3A) __sfr ANSELC
;
120 extern __at(0x0F3A) volatile __ANSELCbits_t ANSELCbits
;
129 //==============================================================================
132 //==============================================================================
135 extern __at(0x0F3B) __sfr ANSELD
;
149 extern __at(0x0F3B) volatile __ANSELDbits_t ANSELDbits
;
160 //==============================================================================
163 //==============================================================================
166 extern __at(0x0F3C) __sfr ANSELE
;
189 extern __at(0x0F3C) volatile __ANSELEbits_t ANSELEbits
;
195 //==============================================================================
198 //==============================================================================
201 extern __at(0x0F3D) __sfr PMD2
;
215 extern __at(0x0F3D) volatile __PMD2bits_t PMD2bits
;
222 //==============================================================================
225 //==============================================================================
228 extern __at(0x0F3E) __sfr PMD1
;
238 unsigned MSSP1MD
: 1;
239 unsigned MSSP2MD
: 1;
242 extern __at(0x0F3E) volatile __PMD1bits_t PMD1bits
;
249 #define _MSSP1MD 0x40
250 #define _MSSP2MD 0x80
252 //==============================================================================
255 //==============================================================================
258 extern __at(0x0F3F) __sfr PMD0
;
268 unsigned UART1MD
: 1;
269 unsigned UART2MD
: 1;
272 extern __at(0x0F3F) volatile __PMD0bits_t PMD0bits
;
280 #define _UART1MD 0x40
281 #define _UART2MD 0x80
283 //==============================================================================
286 //==============================================================================
289 extern __at(0x0F40) __sfr DACCON1
;
312 extern __at(0x0F40) volatile __DACCON1bits_t DACCON1bits
;
320 //==============================================================================
323 //==============================================================================
326 extern __at(0x0F40) __sfr VREFCON2
;
349 extern __at(0x0F40) volatile __VREFCON2bits_t VREFCON2bits
;
351 #define _VREFCON2_DACR0 0x01
352 #define _VREFCON2_DACR1 0x02
353 #define _VREFCON2_DACR2 0x04
354 #define _VREFCON2_DACR3 0x08
355 #define _VREFCON2_DACR4 0x10
357 //==============================================================================
360 //==============================================================================
363 extern __at(0x0F41) __sfr DACCON0
;
371 unsigned DACPSS0
: 1;
372 unsigned DACPSS1
: 1;
387 extern __at(0x0F41) volatile __DACCON0bits_t DACCON0bits
;
390 #define _DACPSS0 0x04
391 #define _DACPSS1 0x08
396 //==============================================================================
399 //==============================================================================
402 extern __at(0x0F41) __sfr VREFCON1
;
410 unsigned DACPSS0
: 1;
411 unsigned DACPSS1
: 1;
426 extern __at(0x0F41) volatile __VREFCON1bits_t VREFCON1bits
;
428 #define _VREFCON1_DACNSS 0x01
429 #define _VREFCON1_DACPSS0 0x04
430 #define _VREFCON1_DACPSS1 0x08
431 #define _VREFCON1_DACOE 0x20
432 #define _VREFCON1_DACLPS 0x40
433 #define _VREFCON1_DACEN 0x80
435 //==============================================================================
438 //==============================================================================
441 extern __at(0x0F42) __sfr FVRCON
;
465 extern __at(0x0F42) volatile __FVRCONbits_t FVRCONbits
;
472 //==============================================================================
475 //==============================================================================
478 extern __at(0x0F42) __sfr VREFCON0
;
502 extern __at(0x0F42) volatile __VREFCON0bits_t VREFCON0bits
;
504 #define _VREFCON0_FVRS0 0x10
505 #define _VREFCON0_FVRS1 0x20
506 #define _VREFCON0_FVRST 0x40
507 #define _VREFCON0_FVREN 0x80
509 //==============================================================================
512 //==============================================================================
515 extern __at(0x0F43) __sfr CTMUICON
;
544 extern __at(0x0F43) volatile __CTMUICONbits_t CTMUICONbits
;
555 //==============================================================================
558 //==============================================================================
561 extern __at(0x0F43) __sfr CTMUICONH
;
590 extern __at(0x0F43) volatile __CTMUICONHbits_t CTMUICONHbits
;
592 #define _CTMUICONH_IRNG0 0x01
593 #define _CTMUICONH_IRNG1 0x02
594 #define _CTMUICONH_ITRIM0 0x04
595 #define _CTMUICONH_ITRIM1 0x08
596 #define _CTMUICONH_ITRIM2 0x10
597 #define _CTMUICONH_ITRIM3 0x20
598 #define _CTMUICONH_ITRIM4 0x40
599 #define _CTMUICONH_ITRIM5 0x80
601 //==============================================================================
604 //==============================================================================
607 extern __at(0x0F44) __sfr CTMUCON1
;
613 unsigned EDG1STAT
: 1;
614 unsigned EDG2STAT
: 1;
615 unsigned EDG1SEL0
: 1;
616 unsigned EDG1SEL1
: 1;
617 unsigned EDG1POL
: 1;
618 unsigned EDG2SEL0
: 1;
619 unsigned EDG2SEL1
: 1;
620 unsigned EDG2POL
: 1;
626 unsigned EDG1SEL
: 2;
633 unsigned EDG2SEL
: 2;
638 extern __at(0x0F44) volatile __CTMUCON1bits_t CTMUCON1bits
;
640 #define _EDG1STAT 0x01
641 #define _EDG2STAT 0x02
642 #define _EDG1SEL0 0x04
643 #define _EDG1SEL1 0x08
644 #define _EDG1POL 0x10
645 #define _EDG2SEL0 0x20
646 #define _EDG2SEL1 0x40
647 #define _EDG2POL 0x80
649 //==============================================================================
652 //==============================================================================
655 extern __at(0x0F44) __sfr CTMUCONL
;
661 unsigned EDG1STAT
: 1;
662 unsigned EDG2STAT
: 1;
663 unsigned EDG1SEL0
: 1;
664 unsigned EDG1SEL1
: 1;
665 unsigned EDG1POL
: 1;
666 unsigned EDG2SEL0
: 1;
667 unsigned EDG2SEL1
: 1;
668 unsigned EDG2POL
: 1;
674 unsigned EDG1SEL
: 2;
681 unsigned EDG2SEL
: 2;
686 extern __at(0x0F44) volatile __CTMUCONLbits_t CTMUCONLbits
;
688 #define _CTMUCONL_EDG1STAT 0x01
689 #define _CTMUCONL_EDG2STAT 0x02
690 #define _CTMUCONL_EDG1SEL0 0x04
691 #define _CTMUCONL_EDG1SEL1 0x08
692 #define _CTMUCONL_EDG1POL 0x10
693 #define _CTMUCONL_EDG2SEL0 0x20
694 #define _CTMUCONL_EDG2SEL1 0x40
695 #define _CTMUCONL_EDG2POL 0x80
697 //==============================================================================
700 //==============================================================================
703 extern __at(0x0F45) __sfr CTMUCON0
;
708 unsigned IDISSEN
: 1;
709 unsigned EDGSEQEN
: 1;
712 unsigned CTMUSIDL
: 1;
717 extern __at(0x0F45) volatile __CTMUCON0bits_t CTMUCON0bits
;
720 #define _IDISSEN 0x02
721 #define _EDGSEQEN 0x04
724 #define _CTMUSIDL 0x20
727 //==============================================================================
730 //==============================================================================
733 extern __at(0x0F45) __sfr CTMUCONH
;
738 unsigned IDISSEN
: 1;
739 unsigned EDGSEQEN
: 1;
742 unsigned CTMUSIDL
: 1;
747 extern __at(0x0F45) volatile __CTMUCONHbits_t CTMUCONHbits
;
749 #define _CTMUCONH_CTTRIG 0x01
750 #define _CTMUCONH_IDISSEN 0x02
751 #define _CTMUCONH_EDGSEQEN 0x04
752 #define _CTMUCONH_EDGEN 0x08
753 #define _CTMUCONH_TGEN 0x10
754 #define _CTMUCONH_CTMUSIDL 0x20
755 #define _CTMUCONH_CTMUEN 0x80
757 //==============================================================================
760 //==============================================================================
763 extern __at(0x0F46) __sfr SRCON1
;
777 extern __at(0x0F46) volatile __SRCON1bits_t SRCON1bits
;
788 //==============================================================================
791 //==============================================================================
794 extern __at(0x0F47) __sfr SRCON0
;
818 extern __at(0x0F47) volatile __SRCON0bits_t SRCON0bits
;
829 //==============================================================================
832 //==============================================================================
835 extern __at(0x0F48) __sfr CCPTMRS1
;
841 unsigned C4TSEL0
: 1;
842 unsigned C4TSEL1
: 1;
843 unsigned C5TSEL0
: 1;
844 unsigned C5TSEL1
: 1;
865 extern __at(0x0F48) volatile __CCPTMRS1bits_t CCPTMRS1bits
;
867 #define _C4TSEL0 0x01
868 #define _C4TSEL1 0x02
869 #define _C5TSEL0 0x04
870 #define _C5TSEL1 0x08
872 //==============================================================================
875 //==============================================================================
878 extern __at(0x0F49) __sfr CCPTMRS0
;
884 unsigned C1TSEL0
: 1;
885 unsigned C1TSEL1
: 1;
887 unsigned C2TSEL0
: 1;
888 unsigned C2TSEL1
: 1;
890 unsigned C3TSEL0
: 1;
891 unsigned C3TSEL1
: 1;
914 extern __at(0x0F49) volatile __CCPTMRS0bits_t CCPTMRS0bits
;
916 #define _C1TSEL0 0x01
917 #define _C1TSEL1 0x02
918 #define _C2TSEL0 0x08
919 #define _C2TSEL1 0x10
920 #define _C3TSEL0 0x40
921 #define _C3TSEL1 0x80
923 //==============================================================================
926 //==============================================================================
929 extern __at(0x0F4A) __sfr T6CON
;
935 unsigned T6CKPS0
: 1;
936 unsigned T6CKPS1
: 1;
938 unsigned T6OUTPS0
: 1;
939 unsigned T6OUTPS1
: 1;
940 unsigned T6OUTPS2
: 1;
941 unsigned T6OUTPS3
: 1;
954 unsigned T6OUTPS
: 4;
959 extern __at(0x0F4A) volatile __T6CONbits_t T6CONbits
;
961 #define _T6CKPS0 0x01
962 #define _T6CKPS1 0x02
964 #define _T6OUTPS0 0x08
965 #define _T6OUTPS1 0x10
966 #define _T6OUTPS2 0x20
967 #define _T6OUTPS3 0x40
969 //==============================================================================
971 extern __at(0x0F4B) __sfr PR6
;
972 extern __at(0x0F4C) __sfr TMR6
;
974 //==============================================================================
977 extern __at(0x0F4D) __sfr T5GCON
;
986 unsigned T5GGO_NOT_DONE
: 1;
1010 unsigned T5G_DONE
: 1;
1024 extern __at(0x0F4D) volatile __T5GCONbits_t T5GCONbits
;
1026 #define _T5GSS0 0x01
1027 #define _T5GSS1 0x02
1028 #define _T5GVAL 0x04
1029 #define _T5GGO_NOT_DONE 0x08
1031 #define _T5G_DONE 0x08
1032 #define _T5GSPM 0x10
1034 #define _T5GPOL 0x40
1035 #define _TMR5GE 0x80
1037 //==============================================================================
1040 //==============================================================================
1043 extern __at(0x0F4E) __sfr T5CON
;
1049 unsigned TMR5ON
: 1;
1050 unsigned T5RD16
: 1;
1051 unsigned NOT_T5SYNC
: 1;
1052 unsigned T5SOSCEN
: 1;
1053 unsigned T5CKPS0
: 1;
1054 unsigned T5CKPS1
: 1;
1055 unsigned TMR5CS0
: 1;
1056 unsigned TMR5CS1
: 1;
1063 unsigned T5SYNC
: 1;
1074 unsigned T5CKPS
: 2;
1081 unsigned TMR5CS
: 2;
1085 extern __at(0x0F4E) volatile __T5CONbits_t T5CONbits
;
1087 #define _TMR5ON 0x01
1088 #define _T5RD16 0x02
1089 #define _NOT_T5SYNC 0x04
1090 #define _T5SYNC 0x04
1091 #define _T5SOSCEN 0x08
1092 #define _T5CKPS0 0x10
1093 #define _T5CKPS1 0x20
1094 #define _TMR5CS0 0x40
1095 #define _TMR5CS1 0x80
1097 //==============================================================================
1099 extern __at(0x0F4F) __sfr TMR5
;
1100 extern __at(0x0F4F) __sfr TMR5L
;
1101 extern __at(0x0F50) __sfr TMR5H
;
1103 //==============================================================================
1106 extern __at(0x0F51) __sfr T4CON
;
1112 unsigned T4CKPS0
: 1;
1113 unsigned T4CKPS1
: 1;
1114 unsigned TMR4ON
: 1;
1115 unsigned T4OUTPS0
: 1;
1116 unsigned T4OUTPS1
: 1;
1117 unsigned T4OUTPS2
: 1;
1118 unsigned T4OUTPS3
: 1;
1124 unsigned T4CKPS
: 2;
1131 unsigned T4OUTPS
: 4;
1136 extern __at(0x0F51) volatile __T4CONbits_t T4CONbits
;
1138 #define _T4CKPS0 0x01
1139 #define _T4CKPS1 0x02
1140 #define _TMR4ON 0x04
1141 #define _T4OUTPS0 0x08
1142 #define _T4OUTPS1 0x10
1143 #define _T4OUTPS2 0x20
1144 #define _T4OUTPS3 0x40
1146 //==============================================================================
1148 extern __at(0x0F52) __sfr PR4
;
1149 extern __at(0x0F53) __sfr TMR4
;
1151 //==============================================================================
1154 extern __at(0x0F54) __sfr CCP5CON
;
1160 unsigned CCP5M0
: 1;
1161 unsigned CCP5M1
: 1;
1162 unsigned CCP5M2
: 1;
1163 unsigned CCP5M3
: 1;
1184 extern __at(0x0F54) volatile __CCP5CONbits_t CCP5CONbits
;
1186 #define _CCP5M0 0x01
1187 #define _CCP5M1 0x02
1188 #define _CCP5M2 0x04
1189 #define _CCP5M3 0x08
1193 //==============================================================================
1195 extern __at(0x0F55) __sfr CCPR5
;
1196 extern __at(0x0F55) __sfr CCPR5L
;
1197 extern __at(0x0F56) __sfr CCPR5H
;
1199 //==============================================================================
1202 extern __at(0x0F57) __sfr CCP4CON
;
1208 unsigned CCP4M0
: 1;
1209 unsigned CCP4M1
: 1;
1210 unsigned CCP4M2
: 1;
1211 unsigned CCP4M3
: 1;
1232 extern __at(0x0F57) volatile __CCP4CONbits_t CCP4CONbits
;
1234 #define _CCP4M0 0x01
1235 #define _CCP4M1 0x02
1236 #define _CCP4M2 0x04
1237 #define _CCP4M3 0x08
1241 //==============================================================================
1243 extern __at(0x0F58) __sfr CCPR4
;
1244 extern __at(0x0F58) __sfr CCPR4L
;
1245 extern __at(0x0F59) __sfr CCPR4H
;
1247 //==============================================================================
1250 extern __at(0x0F5A) __sfr PSTR3CON
;
1258 unsigned STR3SYNC
: 1;
1264 extern __at(0x0F5A) volatile __PSTR3CONbits_t PSTR3CONbits
;
1270 #define _STR3SYNC 0x10
1272 //==============================================================================
1275 //==============================================================================
1278 extern __at(0x0F5B) __sfr CCP3AS
;
1284 unsigned P3SSBD0
: 1;
1285 unsigned P3SSBD1
: 1;
1286 unsigned P3SSAC0
: 1;
1287 unsigned P3SSAC1
: 1;
1288 unsigned CCP3AS0
: 1;
1289 unsigned CCP3AS1
: 1;
1290 unsigned CCP3AS2
: 1;
1291 unsigned CCP3ASE
: 1;
1296 unsigned PSS3BD0
: 1;
1297 unsigned PSS3BD1
: 1;
1298 unsigned PSS3AC0
: 1;
1299 unsigned PSS3AC1
: 1;
1308 unsigned PSS3BD
: 2;
1314 unsigned P3SSBD
: 2;
1321 unsigned P3SSAC
: 2;
1328 unsigned PSS3AC
: 2;
1335 unsigned CCP3AS
: 3;
1340 extern __at(0x0F5B) volatile __CCP3ASbits_t CCP3ASbits
;
1342 #define _P3SSBD0 0x01
1343 #define _PSS3BD0 0x01
1344 #define _P3SSBD1 0x02
1345 #define _PSS3BD1 0x02
1346 #define _P3SSAC0 0x04
1347 #define _PSS3AC0 0x04
1348 #define _P3SSAC1 0x08
1349 #define _PSS3AC1 0x08
1350 #define _CCP3AS0 0x10
1351 #define _CCP3AS1 0x20
1352 #define _CCP3AS2 0x40
1353 #define _CCP3ASE 0x80
1355 //==============================================================================
1358 //==============================================================================
1361 extern __at(0x0F5B) __sfr ECCP3AS
;
1367 unsigned P3SSBD0
: 1;
1368 unsigned P3SSBD1
: 1;
1369 unsigned P3SSAC0
: 1;
1370 unsigned P3SSAC1
: 1;
1371 unsigned CCP3AS0
: 1;
1372 unsigned CCP3AS1
: 1;
1373 unsigned CCP3AS2
: 1;
1374 unsigned CCP3ASE
: 1;
1379 unsigned PSS3BD0
: 1;
1380 unsigned PSS3BD1
: 1;
1381 unsigned PSS3AC0
: 1;
1382 unsigned PSS3AC1
: 1;
1391 unsigned PSS3BD
: 2;
1397 unsigned P3SSBD
: 2;
1404 unsigned PSS3AC
: 2;
1411 unsigned P3SSAC
: 2;
1418 unsigned CCP3AS
: 3;
1423 extern __at(0x0F5B) volatile __ECCP3ASbits_t ECCP3ASbits
;
1425 #define _ECCP3AS_P3SSBD0 0x01
1426 #define _ECCP3AS_PSS3BD0 0x01
1427 #define _ECCP3AS_P3SSBD1 0x02
1428 #define _ECCP3AS_PSS3BD1 0x02
1429 #define _ECCP3AS_P3SSAC0 0x04
1430 #define _ECCP3AS_PSS3AC0 0x04
1431 #define _ECCP3AS_P3SSAC1 0x08
1432 #define _ECCP3AS_PSS3AC1 0x08
1433 #define _ECCP3AS_CCP3AS0 0x10
1434 #define _ECCP3AS_CCP3AS1 0x20
1435 #define _ECCP3AS_CCP3AS2 0x40
1436 #define _ECCP3AS_CCP3ASE 0x80
1438 //==============================================================================
1441 //==============================================================================
1444 extern __at(0x0F5C) __sfr PWM3CON
;
1457 unsigned P3RSEN
: 1;
1467 extern __at(0x0F5C) volatile __PWM3CONbits_t PWM3CONbits
;
1476 #define _P3RSEN 0x80
1478 //==============================================================================
1481 //==============================================================================
1484 extern __at(0x0F5D) __sfr CCP3CON
;
1490 unsigned CCP3M0
: 1;
1491 unsigned CCP3M1
: 1;
1492 unsigned CCP3M2
: 1;
1493 unsigned CCP3M3
: 1;
1520 extern __at(0x0F5D) volatile __CCP3CONbits_t CCP3CONbits
;
1522 #define _CCP3M0 0x01
1523 #define _CCP3M1 0x02
1524 #define _CCP3M2 0x04
1525 #define _CCP3M3 0x08
1531 //==============================================================================
1533 extern __at(0x0F5E) __sfr CCPR3
;
1534 extern __at(0x0F5E) __sfr CCPR3L
;
1535 extern __at(0x0F5F) __sfr CCPR3H
;
1537 //==============================================================================
1540 extern __at(0x0F60) __sfr SLRCON
;
1554 extern __at(0x0F60) volatile __SLRCONbits_t SLRCONbits
;
1562 //==============================================================================
1565 //==============================================================================
1568 extern __at(0x0F61) __sfr WPUB
;
1582 extern __at(0x0F61) volatile __WPUBbits_t WPUBbits
;
1593 //==============================================================================
1596 //==============================================================================
1599 extern __at(0x0F62) __sfr IOCB
;
1613 extern __at(0x0F62) volatile __IOCBbits_t IOCBbits
;
1620 //==============================================================================
1623 //==============================================================================
1626 extern __at(0x0F63) __sfr PSTR2CON
;
1634 unsigned STR2SYNC
: 1;
1640 extern __at(0x0F63) volatile __PSTR2CONbits_t PSTR2CONbits
;
1646 #define _STR2SYNC 0x10
1648 //==============================================================================
1651 //==============================================================================
1654 extern __at(0x0F64) __sfr CCP2AS
;
1660 unsigned P2SSBD0
: 1;
1661 unsigned P2SSBD1
: 1;
1662 unsigned P2SSAC0
: 1;
1663 unsigned P2SSAC1
: 1;
1664 unsigned CCP2AS0
: 1;
1665 unsigned CCP2AS1
: 1;
1666 unsigned CCP2AS2
: 1;
1667 unsigned CCP2ASE
: 1;
1672 unsigned PSS2BD0
: 1;
1673 unsigned PSS2BD1
: 1;
1674 unsigned PSS2AC0
: 1;
1675 unsigned PSS2AC1
: 1;
1684 unsigned P2SSBD
: 2;
1690 unsigned PSS2BD
: 2;
1697 unsigned PSS2AC
: 2;
1704 unsigned P2SSAC
: 2;
1711 unsigned CCP2AS
: 3;
1716 extern __at(0x0F64) volatile __CCP2ASbits_t CCP2ASbits
;
1718 #define _P2SSBD0 0x01
1719 #define _PSS2BD0 0x01
1720 #define _P2SSBD1 0x02
1721 #define _PSS2BD1 0x02
1722 #define _P2SSAC0 0x04
1723 #define _PSS2AC0 0x04
1724 #define _P2SSAC1 0x08
1725 #define _PSS2AC1 0x08
1726 #define _CCP2AS0 0x10
1727 #define _CCP2AS1 0x20
1728 #define _CCP2AS2 0x40
1729 #define _CCP2ASE 0x80
1731 //==============================================================================
1734 //==============================================================================
1737 extern __at(0x0F64) __sfr ECCP2AS
;
1743 unsigned P2SSBD0
: 1;
1744 unsigned P2SSBD1
: 1;
1745 unsigned P2SSAC0
: 1;
1746 unsigned P2SSAC1
: 1;
1747 unsigned CCP2AS0
: 1;
1748 unsigned CCP2AS1
: 1;
1749 unsigned CCP2AS2
: 1;
1750 unsigned CCP2ASE
: 1;
1755 unsigned PSS2BD0
: 1;
1756 unsigned PSS2BD1
: 1;
1757 unsigned PSS2AC0
: 1;
1758 unsigned PSS2AC1
: 1;
1767 unsigned PSS2BD
: 2;
1773 unsigned P2SSBD
: 2;
1780 unsigned PSS2AC
: 2;
1787 unsigned P2SSAC
: 2;
1794 unsigned CCP2AS
: 3;
1799 extern __at(0x0F64) volatile __ECCP2ASbits_t ECCP2ASbits
;
1801 #define _ECCP2AS_P2SSBD0 0x01
1802 #define _ECCP2AS_PSS2BD0 0x01
1803 #define _ECCP2AS_P2SSBD1 0x02
1804 #define _ECCP2AS_PSS2BD1 0x02
1805 #define _ECCP2AS_P2SSAC0 0x04
1806 #define _ECCP2AS_PSS2AC0 0x04
1807 #define _ECCP2AS_P2SSAC1 0x08
1808 #define _ECCP2AS_PSS2AC1 0x08
1809 #define _ECCP2AS_CCP2AS0 0x10
1810 #define _ECCP2AS_CCP2AS1 0x20
1811 #define _ECCP2AS_CCP2AS2 0x40
1812 #define _ECCP2AS_CCP2ASE 0x80
1814 //==============================================================================
1817 //==============================================================================
1820 extern __at(0x0F65) __sfr PWM2CON
;
1833 unsigned P2RSEN
: 1;
1843 extern __at(0x0F65) volatile __PWM2CONbits_t PWM2CONbits
;
1852 #define _P2RSEN 0x80
1854 //==============================================================================
1857 //==============================================================================
1860 extern __at(0x0F66) __sfr CCP2CON
;
1866 unsigned CCP2M0
: 1;
1867 unsigned CCP2M1
: 1;
1868 unsigned CCP2M2
: 1;
1869 unsigned CCP2M3
: 1;
1896 extern __at(0x0F66) volatile __CCP2CONbits_t CCP2CONbits
;
1898 #define _CCP2M0 0x01
1899 #define _CCP2M1 0x02
1900 #define _CCP2M2 0x04
1901 #define _CCP2M3 0x08
1907 //==============================================================================
1909 extern __at(0x0F67) __sfr CCPR2
;
1910 extern __at(0x0F67) __sfr CCPR2L
;
1911 extern __at(0x0F68) __sfr CCPR2H
;
1913 //==============================================================================
1916 extern __at(0x0F69) __sfr SSP2CON3
;
1927 unsigned ACKTIM
: 1;
1930 extern __at(0x0F69) volatile __SSP2CON3bits_t SSP2CON3bits
;
1932 #define _SSP2CON3_DHEN 0x01
1933 #define _SSP2CON3_AHEN 0x02
1934 #define _SSP2CON3_SBCDE 0x04
1935 #define _SSP2CON3_SDAHT 0x08
1936 #define _SSP2CON3_BOEN 0x10
1937 #define _SSP2CON3_SCIE 0x20
1938 #define _SSP2CON3_PCIE 0x40
1939 #define _SSP2CON3_ACKTIM 0x80
1941 //==============================================================================
1944 //==============================================================================
1947 extern __at(0x0F6A) __sfr SSP2MSK
;
1961 extern __at(0x0F6A) volatile __SSP2MSKbits_t SSP2MSKbits
;
1963 #define _SSP2MSK_MSK0 0x01
1964 #define _SSP2MSK_MSK1 0x02
1965 #define _SSP2MSK_MSK2 0x04
1966 #define _SSP2MSK_MSK3 0x08
1967 #define _SSP2MSK_MSK4 0x10
1968 #define _SSP2MSK_MSK5 0x20
1969 #define _SSP2MSK_MSK6 0x40
1970 #define _SSP2MSK_MSK7 0x80
1972 //==============================================================================
1975 //==============================================================================
1978 extern __at(0x0F6B) __sfr SSP2CON2
;
1988 unsigned ACKSTAT
: 1;
1992 extern __at(0x0F6B) volatile __SSP2CON2bits_t SSP2CON2bits
;
1994 #define _SSP2CON2_SEN 0x01
1995 #define _SSP2CON2_RSEN 0x02
1996 #define _SSP2CON2_PEN 0x04
1997 #define _SSP2CON2_RCEN 0x08
1998 #define _SSP2CON2_ACKEN 0x10
1999 #define _SSP2CON2_ACKDT 0x20
2000 #define _SSP2CON2_ACKSTAT 0x40
2001 #define _SSP2CON2_GCEN 0x80
2003 //==============================================================================
2006 //==============================================================================
2009 extern __at(0x0F6C) __sfr SSP2CON1
;
2032 extern __at(0x0F6C) volatile __SSP2CON1bits_t SSP2CON1bits
;
2034 #define _SSP2CON1_SSPM0 0x01
2035 #define _SSP2CON1_SSPM1 0x02
2036 #define _SSP2CON1_SSPM2 0x04
2037 #define _SSP2CON1_SSPM3 0x08
2038 #define _SSP2CON1_CKP 0x10
2039 #define _SSP2CON1_SSPEN 0x20
2040 #define _SSP2CON1_SSPOV 0x40
2041 #define _SSP2CON1_WCOL 0x80
2043 //==============================================================================
2046 //==============================================================================
2049 extern __at(0x0F6D) __sfr SSP2STAT
;
2057 unsigned R_NOT_W
: 1;
2060 unsigned D_NOT_A
: 1;
2105 unsigned NOT_WRITE
: 1;
2108 unsigned NOT_ADDRESS
: 1;
2114 extern __at(0x0F6D) volatile __SSP2STATbits_t SSP2STATbits
;
2116 #define _SSP2STAT_BF 0x01
2117 #define _SSP2STAT_UA 0x02
2118 #define _SSP2STAT_R_NOT_W 0x04
2119 #define _SSP2STAT_R 0x04
2120 #define _SSP2STAT_NOT_W 0x04
2121 #define _SSP2STAT_R_W 0x04
2122 #define _SSP2STAT_NOT_WRITE 0x04
2123 #define _SSP2STAT_S 0x08
2124 #define _SSP2STAT_P 0x10
2125 #define _SSP2STAT_D_NOT_A 0x20
2126 #define _SSP2STAT_D 0x20
2127 #define _SSP2STAT_NOT_A 0x20
2128 #define _SSP2STAT_D_A 0x20
2129 #define _SSP2STAT_NOT_ADDRESS 0x20
2130 #define _SSP2STAT_CKE 0x40
2131 #define _SSP2STAT_SMP 0x80
2133 //==============================================================================
2135 extern __at(0x0F6E) __sfr SSP2ADD
;
2136 extern __at(0x0F6F) __sfr SSP2BUF
;
2138 //==============================================================================
2141 extern __at(0x0F70) __sfr BAUD2CON
;
2154 unsigned ABDOVF
: 1;
2170 extern __at(0x0F70) volatile __BAUD2CONbits_t BAUD2CONbits
;
2172 #define _BAUD2CON_ABDEN 0x01
2173 #define _BAUD2CON_WUE 0x02
2174 #define _BAUD2CON_BRG16 0x08
2175 #define _BAUD2CON_CKTXP 0x10
2176 #define _BAUD2CON_SCKP 0x10
2177 #define _BAUD2CON_DTRXP 0x20
2178 #define _BAUD2CON_RCIDL 0x40
2179 #define _BAUD2CON_ABDOVF 0x80
2181 //==============================================================================
2184 //==============================================================================
2187 extern __at(0x0F70) __sfr BAUDCON2
;
2200 unsigned ABDOVF
: 1;
2216 extern __at(0x0F70) volatile __BAUDCON2bits_t BAUDCON2bits
;
2218 #define _BAUDCON2_ABDEN 0x01
2219 #define _BAUDCON2_WUE 0x02
2220 #define _BAUDCON2_BRG16 0x08
2221 #define _BAUDCON2_CKTXP 0x10
2222 #define _BAUDCON2_SCKP 0x10
2223 #define _BAUDCON2_DTRXP 0x20
2224 #define _BAUDCON2_RCIDL 0x40
2225 #define _BAUDCON2_ABDOVF 0x80
2227 //==============================================================================
2230 //==============================================================================
2233 extern __at(0x0F71) __sfr RC2STA
;
2266 unsigned ADDEN2
: 1;
2274 extern __at(0x0F71) volatile __RC2STAbits_t RC2STAbits
;
2276 #define _RC2STA_RX9D 0x01
2277 #define _RC2STA_RX9D2 0x01
2278 #define _RC2STA_OERR 0x02
2279 #define _RC2STA_OERR2 0x02
2280 #define _RC2STA_FERR 0x04
2281 #define _RC2STA_FERR2 0x04
2282 #define _RC2STA_ADDEN 0x08
2283 #define _RC2STA_ADEN 0x08
2284 #define _RC2STA_ADDEN2 0x08
2285 #define _RC2STA_CREN 0x10
2286 #define _RC2STA_CREN2 0x10
2287 #define _RC2STA_SREN 0x20
2288 #define _RC2STA_SREN2 0x20
2289 #define _RC2STA_RX9 0x40
2290 #define _RC2STA_RX92 0x40
2291 #define _RC2STA_SPEN 0x80
2292 #define _RC2STA_SPEN2 0x80
2294 //==============================================================================
2297 //==============================================================================
2300 extern __at(0x0F71) __sfr RCSTA2
;
2333 unsigned ADDEN2
: 1;
2341 extern __at(0x0F71) volatile __RCSTA2bits_t RCSTA2bits
;
2343 #define _RCSTA2_RX9D 0x01
2344 #define _RCSTA2_RX9D2 0x01
2345 #define _RCSTA2_OERR 0x02
2346 #define _RCSTA2_OERR2 0x02
2347 #define _RCSTA2_FERR 0x04
2348 #define _RCSTA2_FERR2 0x04
2349 #define _RCSTA2_ADDEN 0x08
2350 #define _RCSTA2_ADEN 0x08
2351 #define _RCSTA2_ADDEN2 0x08
2352 #define _RCSTA2_CREN 0x10
2353 #define _RCSTA2_CREN2 0x10
2354 #define _RCSTA2_SREN 0x20
2355 #define _RCSTA2_SREN2 0x20
2356 #define _RCSTA2_RX9 0x40
2357 #define _RCSTA2_RX92 0x40
2358 #define _RCSTA2_SPEN 0x80
2359 #define _RCSTA2_SPEN2 0x80
2361 //==============================================================================
2364 //==============================================================================
2367 extern __at(0x0F72) __sfr TX2STA
;
2388 unsigned SENDB2
: 1;
2396 extern __at(0x0F72) volatile __TX2STAbits_t TX2STAbits
;
2398 #define _TX2STA_TX9D 0x01
2399 #define _TX2STA_TX9D2 0x01
2400 #define _TX2STA_TRMT 0x02
2401 #define _TX2STA_TRMT2 0x02
2402 #define _TX2STA_BRGH 0x04
2403 #define _TX2STA_BRGH2 0x04
2404 #define _TX2STA_SENDB 0x08
2405 #define _TX2STA_SENDB2 0x08
2406 #define _TX2STA_SYNC 0x10
2407 #define _TX2STA_SYNC2 0x10
2408 #define _TX2STA_TXEN 0x20
2409 #define _TX2STA_TXEN2 0x20
2410 #define _TX2STA_TX9 0x40
2411 #define _TX2STA_TX92 0x40
2412 #define _TX2STA_CSRC 0x80
2413 #define _TX2STA_CSRC2 0x80
2415 //==============================================================================
2418 //==============================================================================
2421 extern __at(0x0F72) __sfr TXSTA2
;
2442 unsigned SENDB2
: 1;
2450 extern __at(0x0F72) volatile __TXSTA2bits_t TXSTA2bits
;
2452 #define _TXSTA2_TX9D 0x01
2453 #define _TXSTA2_TX9D2 0x01
2454 #define _TXSTA2_TRMT 0x02
2455 #define _TXSTA2_TRMT2 0x02
2456 #define _TXSTA2_BRGH 0x04
2457 #define _TXSTA2_BRGH2 0x04
2458 #define _TXSTA2_SENDB 0x08
2459 #define _TXSTA2_SENDB2 0x08
2460 #define _TXSTA2_SYNC 0x10
2461 #define _TXSTA2_SYNC2 0x10
2462 #define _TXSTA2_TXEN 0x20
2463 #define _TXSTA2_TXEN2 0x20
2464 #define _TXSTA2_TX9 0x40
2465 #define _TXSTA2_TX92 0x40
2466 #define _TXSTA2_CSRC 0x80
2467 #define _TXSTA2_CSRC2 0x80
2469 //==============================================================================
2471 extern __at(0x0F73) __sfr TX2REG
;
2472 extern __at(0x0F73) __sfr TXREG2
;
2473 extern __at(0x0F74) __sfr RC2REG
;
2474 extern __at(0x0F74) __sfr RCREG2
;
2475 extern __at(0x0F75) __sfr SP2BRG
;
2476 extern __at(0x0F75) __sfr SPBRG2
;
2477 extern __at(0x0F76) __sfr SP2BRGH
;
2478 extern __at(0x0F76) __sfr SPBRGH2
;
2480 //==============================================================================
2483 extern __at(0x0F77) __sfr CM12CON
;
2487 unsigned C2SYNC
: 1;
2488 unsigned C1SYNC
: 1;
2491 unsigned C2RSEL
: 1;
2492 unsigned C1RSEL
: 1;
2493 unsigned MC2OUT
: 1;
2494 unsigned MC1OUT
: 1;
2497 extern __at(0x0F77) volatile __CM12CONbits_t CM12CONbits
;
2499 #define _CM12CON_C2SYNC 0x01
2500 #define _CM12CON_C1SYNC 0x02
2501 #define _CM12CON_C2HYS 0x04
2502 #define _CM12CON_C1HYS 0x08
2503 #define _CM12CON_C2RSEL 0x10
2504 #define _CM12CON_C1RSEL 0x20
2505 #define _CM12CON_MC2OUT 0x40
2506 #define _CM12CON_MC1OUT 0x80
2508 //==============================================================================
2511 //==============================================================================
2514 extern __at(0x0F77) __sfr CM2CON1
;
2518 unsigned C2SYNC
: 1;
2519 unsigned C1SYNC
: 1;
2522 unsigned C2RSEL
: 1;
2523 unsigned C1RSEL
: 1;
2524 unsigned MC2OUT
: 1;
2525 unsigned MC1OUT
: 1;
2528 extern __at(0x0F77) volatile __CM2CON1bits_t CM2CON1bits
;
2530 #define _C2SYNC 0x01
2531 #define _C1SYNC 0x02
2534 #define _C2RSEL 0x10
2535 #define _C1RSEL 0x20
2536 #define _MC2OUT 0x40
2537 #define _MC1OUT 0x80
2539 //==============================================================================
2542 //==============================================================================
2545 extern __at(0x0F78) __sfr CM2CON
;
2568 extern __at(0x0F78) volatile __CM2CONbits_t CM2CONbits
;
2579 //==============================================================================
2582 //==============================================================================
2585 extern __at(0x0F78) __sfr CM2CON0
;
2608 extern __at(0x0F78) volatile __CM2CON0bits_t CM2CON0bits
;
2610 #define _CM2CON0_C2CH0 0x01
2611 #define _CM2CON0_C2CH1 0x02
2612 #define _CM2CON0_C2R 0x04
2613 #define _CM2CON0_C2SP 0x08
2614 #define _CM2CON0_C2POL 0x10
2615 #define _CM2CON0_C2OE 0x20
2616 #define _CM2CON0_C2OUT 0x40
2617 #define _CM2CON0_C2ON 0x80
2619 //==============================================================================
2622 //==============================================================================
2625 extern __at(0x0F79) __sfr CM1CON
;
2648 extern __at(0x0F79) volatile __CM1CONbits_t CM1CONbits
;
2659 //==============================================================================
2662 //==============================================================================
2665 extern __at(0x0F79) __sfr CM1CON0
;
2688 extern __at(0x0F79) volatile __CM1CON0bits_t CM1CON0bits
;
2690 #define _CM1CON0_C1CH0 0x01
2691 #define _CM1CON0_C1CH1 0x02
2692 #define _CM1CON0_C1R 0x04
2693 #define _CM1CON0_C1SP 0x08
2694 #define _CM1CON0_C1POL 0x10
2695 #define _CM1CON0_C1OE 0x20
2696 #define _CM1CON0_C1OUT 0x40
2697 #define _CM1CON0_C1ON 0x80
2699 //==============================================================================
2702 //==============================================================================
2705 extern __at(0x0F7A) __sfr PIE4
;
2709 unsigned CCP3IE
: 1;
2710 unsigned CCP4IE
: 1;
2711 unsigned CCP5IE
: 1;
2719 extern __at(0x0F7A) volatile __PIE4bits_t PIE4bits
;
2721 #define _CCP3IE 0x01
2722 #define _CCP4IE 0x02
2723 #define _CCP5IE 0x04
2725 //==============================================================================
2728 //==============================================================================
2731 extern __at(0x0F7B) __sfr PIR4
;
2735 unsigned CCP3IF
: 1;
2736 unsigned CCP4IF
: 1;
2737 unsigned CCP5IF
: 1;
2745 extern __at(0x0F7B) volatile __PIR4bits_t PIR4bits
;
2747 #define _CCP3IF 0x01
2748 #define _CCP4IF 0x02
2749 #define _CCP5IF 0x04
2751 //==============================================================================
2754 //==============================================================================
2757 extern __at(0x0F7C) __sfr IPR4
;
2761 unsigned CCP3IP
: 1;
2762 unsigned CCP4IP
: 1;
2763 unsigned CCP5IP
: 1;
2771 extern __at(0x0F7C) volatile __IPR4bits_t IPR4bits
;
2773 #define _CCP3IP 0x01
2774 #define _CCP4IP 0x02
2775 #define _CCP5IP 0x04
2777 //==============================================================================
2780 //==============================================================================
2783 extern __at(0x0F7D) __sfr PIE5
;
2787 unsigned TMR4IE
: 1;
2788 unsigned TMR5IE
: 1;
2789 unsigned TMR6IE
: 1;
2797 extern __at(0x0F7D) volatile __PIE5bits_t PIE5bits
;
2799 #define _TMR4IE 0x01
2800 #define _TMR5IE 0x02
2801 #define _TMR6IE 0x04
2803 //==============================================================================
2806 //==============================================================================
2809 extern __at(0x0F7E) __sfr PIR5
;
2813 unsigned TMR4IF
: 1;
2814 unsigned TMR5IF
: 1;
2815 unsigned TMR6IF
: 1;
2823 extern __at(0x0F7E) volatile __PIR5bits_t PIR5bits
;
2825 #define _TMR4IF 0x01
2826 #define _TMR5IF 0x02
2827 #define _TMR6IF 0x04
2829 //==============================================================================
2832 //==============================================================================
2835 extern __at(0x0F7F) __sfr IPR5
;
2839 unsigned TMR4IP
: 1;
2840 unsigned TMR5IP
: 1;
2841 unsigned TMR6IP
: 1;
2849 extern __at(0x0F7F) volatile __IPR5bits_t IPR5bits
;
2851 #define _TMR4IP 0x01
2852 #define _TMR5IP 0x02
2853 #define _TMR6IP 0x04
2855 //==============================================================================
2858 //==============================================================================
2861 extern __at(0x0F80) __sfr PORTA
;
2891 unsigned C12IN0M
: 1;
2892 unsigned C12IN1M
: 1;
2903 unsigned C12IN0N
: 1;
2904 unsigned C12IN1N
: 1;
2920 unsigned NOT_SS
: 1;
2941 unsigned DACOUT
: 1;
2944 unsigned HLVDIN
: 1;
2968 unsigned NOT_SS1
: 1;
2986 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits
;
2988 #define _PORTA_RA0 0x01
2989 #define _PORTA_AN0 0x01
2990 #define _PORTA_C12IN0M 0x01
2991 #define _PORTA_C12IN0N 0x01
2992 #define _PORTA_RA1 0x02
2993 #define _PORTA_AN1 0x02
2994 #define _PORTA_C12IN1M 0x02
2995 #define _PORTA_C12IN1N 0x02
2996 #define _PORTA_RA2 0x04
2997 #define _PORTA_AN2 0x04
2998 #define _PORTA_C2INP 0x04
2999 #define _PORTA_VREFM 0x04
3000 #define _PORTA_VREFN 0x04
3001 #define _PORTA_CVREF 0x04
3002 #define _PORTA_DACOUT 0x04
3003 #define _PORTA_RA3 0x08
3004 #define _PORTA_AN3 0x08
3005 #define _PORTA_C1INP 0x08
3006 #define _PORTA_VREFP 0x08
3007 #define _PORTA_RA4 0x10
3008 #define _PORTA_C1OUT 0x10
3009 #define _PORTA_T0CKI 0x10
3010 #define _PORTA_SRQ 0x10
3011 #define _PORTA_RA5 0x20
3012 #define _PORTA_AN4 0x20
3013 #define _PORTA_C2OUT 0x20
3014 #define _PORTA_SS 0x20
3015 #define _PORTA_NOT_SS 0x20
3016 #define _PORTA_LVDIN 0x20
3017 #define _PORTA_HLVDIN 0x20
3018 #define _PORTA_SS1 0x20
3019 #define _PORTA_NOT_SS1 0x20
3020 #define _PORTA_SRNQ 0x20
3021 #define _PORTA_RA6 0x40
3022 #define _PORTA_RA7 0x80
3024 //==============================================================================
3027 //==============================================================================
3030 extern __at(0x0F81) __sfr PORTB
;
3073 unsigned C12IN3M
: 1;
3075 unsigned C12IN2M
: 1;
3085 unsigned C12IN3N
: 1;
3087 unsigned C12IN2N
: 1;
3131 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits
;
3133 #define _PORTB_RB0 0x01
3134 #define _PORTB_INT0 0x01
3135 #define _PORTB_AN12 0x01
3136 #define _PORTB_FLT0 0x01
3137 #define _PORTB_SRI 0x01
3138 #define _PORTB_RB1 0x02
3139 #define _PORTB_INT1 0x02
3140 #define _PORTB_AN10 0x02
3141 #define _PORTB_C12IN3M 0x02
3142 #define _PORTB_C12IN3N 0x02
3143 #define _PORTB_RB2 0x04
3144 #define _PORTB_INT2 0x04
3145 #define _PORTB_AN8 0x04
3146 #define _PORTB_CTED1 0x04
3147 #define _PORTB_RB3 0x08
3148 #define _PORTB_CCP2 0x08
3149 #define _PORTB_AN9 0x08
3150 #define _PORTB_C12IN2M 0x08
3151 #define _PORTB_C12IN2N 0x08
3152 #define _PORTB_CTED2 0x08
3153 #define _PORTB_P2A 0x08
3154 #define _PORTB_RB4 0x10
3155 #define _PORTB_KBI0 0x10
3156 #define _PORTB_AN11 0x10
3157 #define _PORTB_T5G 0x10
3158 #define _PORTB_RB5 0x20
3159 #define _PORTB_KBI1 0x20
3160 #define _PORTB_AN13 0x20
3161 #define _PORTB_T1G 0x20
3162 #define _PORTB_CCP3 0x20
3163 #define _PORTB_T3CKI 0x20
3164 #define _PORTB_P3A 0x20
3165 #define _PORTB_RB6 0x40
3166 #define _PORTB_KBI2 0x40
3167 #define _PORTB_PGC 0x40
3168 #define _PORTB_RB7 0x80
3169 #define _PORTB_KBI3 0x80
3170 #define _PORTB_PGD 0x80
3172 //==============================================================================
3175 //==============================================================================
3178 extern __at(0x0F82) __sfr PORTC
;
3255 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits
;
3257 #define _PORTC_RC0 0x01
3258 #define _PORTC_T1OSO 0x01
3259 #define _PORTC_P2B 0x01
3260 #define _PORTC_T1CKI 0x01
3261 #define _PORTC_T3CKI 0x01
3262 #define _PORTC_T3G 0x01
3263 #define _PORTC_RC1 0x02
3264 #define _PORTC_T1OSI 0x02
3265 #define _PORTC_P2A 0x02
3266 #define _PORTC_CCP2 0x02
3267 #define _PORTC_RC2 0x04
3268 #define _PORTC_T5CKI 0x04
3269 #define _PORTC_P1A 0x04
3270 #define _PORTC_CCP1 0x04
3271 #define _PORTC_CTPLS 0x04
3272 #define _PORTC_AN14 0x04
3273 #define _PORTC_RC3 0x08
3274 #define _PORTC_SCK 0x08
3275 #define _PORTC_SCL 0x08
3276 #define _PORTC_SCK1 0x08
3277 #define _PORTC_SCL1 0x08
3278 #define _PORTC_AN15 0x08
3279 #define _PORTC_RC4 0x10
3280 #define _PORTC_SDI 0x10
3281 #define _PORTC_SDA 0x10
3282 #define _PORTC_SDI1 0x10
3283 #define _PORTC_SDA1 0x10
3284 #define _PORTC_AN16 0x10
3285 #define _PORTC_RC5 0x20
3286 #define _PORTC_SDO 0x20
3287 #define _PORTC_SDO1 0x20
3288 #define _PORTC_AN17 0x20
3289 #define _PORTC_RC6 0x40
3290 #define _PORTC_TX 0x40
3291 #define _PORTC_CK 0x40
3292 #define _PORTC_TX1 0x40
3293 #define _PORTC_CK1 0x40
3294 #define _PORTC_AN18 0x40
3295 #define _PORTC_RC7 0x80
3296 #define _PORTC_RX 0x80
3297 #define _PORTC_RX1 0x80
3298 #define _PORTC_DT1 0x80
3299 #define _PORTC_AN19 0x80
3301 //==============================================================================
3304 //==============================================================================
3307 extern __at(0x0F83) __sfr PORTD
;
3340 unsigned NOT_SS2
: 1;
3372 extern __at(0x0F83) volatile __PORTDbits_t PORTDbits
;
3374 #define _PORTD_RD0 0x01
3375 #define _PORTD_SCK2 0x01
3376 #define _PORTD_SCL2 0x01
3377 #define _PORTD_AN20 0x01
3378 #define _PORTD_RD1 0x02
3379 #define _PORTD_CCP4 0x02
3380 #define _PORTD_SDI2 0x02
3381 #define _PORTD_SDA2 0x02
3382 #define _PORTD_AN21 0x02
3383 #define _PORTD_RD2 0x04
3384 #define _PORTD_P2B 0x04
3385 #define _PORTD_AN22 0x04
3386 #define _PORTD_RD3 0x08
3387 #define _PORTD_P2C 0x08
3388 #define _PORTD_NOT_SS2 0x08
3389 #define _PORTD_SS2 0x08
3390 #define _PORTD_AN23 0x08
3391 #define _PORTD_RD4 0x10
3392 #define _PORTD_P2D 0x10
3393 #define _PORTD_SDO2 0x10
3394 #define _PORTD_AN24 0x10
3395 #define _PORTD_RD5 0x20
3396 #define _PORTD_P1B 0x20
3397 #define _PORTD_AN25 0x20
3398 #define _PORTD_RD6 0x40
3399 #define _PORTD_P1C 0x40
3400 #define _PORTD_TX2 0x40
3401 #define _PORTD_CK2 0x40
3402 #define _PORTD_AN26 0x40
3403 #define _PORTD_RD7 0x80
3404 #define _PORTD_P1D 0x80
3405 #define _PORTD_RX2 0x80
3406 #define _PORTD_DT2 0x80
3407 #define _PORTD_AN27 0x80
3409 //==============================================================================
3412 //==============================================================================
3415 extern __at(0x0F84) __sfr PORTE
;
3448 unsigned NOT_MCLR
: 1;
3474 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits
;
3476 #define _PORTE_RE0 0x01
3477 #define _PORTE_AN5 0x01
3478 #define _PORTE_P3A 0x01
3479 #define _PORTE_CCP3 0x01
3480 #define _PORTE_RE1 0x02
3481 #define _PORTE_AN6 0x02
3482 #define _PORTE_P3B 0x02
3483 #define _PORTE_RE2 0x04
3484 #define _PORTE_AN7 0x04
3485 #define _PORTE_CCP5 0x04
3486 #define _PORTE_RE3 0x08
3487 #define _PORTE_MCLR 0x08
3488 #define _PORTE_NOT_MCLR 0x08
3489 #define _PORTE_VPP 0x08
3491 //==============================================================================
3494 //==============================================================================
3497 extern __at(0x0F89) __sfr LATA
;
3511 extern __at(0x0F89) volatile __LATAbits_t LATAbits
;
3522 //==============================================================================
3525 //==============================================================================
3528 extern __at(0x0F8A) __sfr LATB
;
3542 extern __at(0x0F8A) volatile __LATBbits_t LATBbits
;
3553 //==============================================================================
3556 //==============================================================================
3559 extern __at(0x0F8B) __sfr LATC
;
3573 extern __at(0x0F8B) volatile __LATCbits_t LATCbits
;
3584 //==============================================================================
3587 //==============================================================================
3590 extern __at(0x0F8C) __sfr LATD
;
3604 extern __at(0x0F8C) volatile __LATDbits_t LATDbits
;
3615 //==============================================================================
3618 //==============================================================================
3621 extern __at(0x0F8D) __sfr LATE
;
3644 extern __at(0x0F8D) volatile __LATEbits_t LATEbits
;
3650 //==============================================================================
3653 //==============================================================================
3656 extern __at(0x0F92) __sfr DDRA
;
3662 unsigned TRISA0
: 1;
3663 unsigned TRISA1
: 1;
3664 unsigned TRISA2
: 1;
3665 unsigned TRISA3
: 1;
3666 unsigned TRISA4
: 1;
3667 unsigned TRISA5
: 1;
3668 unsigned TRISA6
: 1;
3669 unsigned TRISA7
: 1;
3685 extern __at(0x0F92) volatile __DDRAbits_t DDRAbits
;
3687 #define _TRISA0 0x01
3689 #define _TRISA1 0x02
3691 #define _TRISA2 0x04
3693 #define _TRISA3 0x08
3695 #define _TRISA4 0x10
3697 #define _TRISA5 0x20
3699 #define _TRISA6 0x40
3701 #define _TRISA7 0x80
3704 //==============================================================================
3707 //==============================================================================
3710 extern __at(0x0F92) __sfr TRISA
;
3716 unsigned TRISA0
: 1;
3717 unsigned TRISA1
: 1;
3718 unsigned TRISA2
: 1;
3719 unsigned TRISA3
: 1;
3720 unsigned TRISA4
: 1;
3721 unsigned TRISA5
: 1;
3722 unsigned TRISA6
: 1;
3723 unsigned TRISA7
: 1;
3739 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits
;
3741 #define _TRISA_TRISA0 0x01
3742 #define _TRISA_RA0 0x01
3743 #define _TRISA_TRISA1 0x02
3744 #define _TRISA_RA1 0x02
3745 #define _TRISA_TRISA2 0x04
3746 #define _TRISA_RA2 0x04
3747 #define _TRISA_TRISA3 0x08
3748 #define _TRISA_RA3 0x08
3749 #define _TRISA_TRISA4 0x10
3750 #define _TRISA_RA4 0x10
3751 #define _TRISA_TRISA5 0x20
3752 #define _TRISA_RA5 0x20
3753 #define _TRISA_TRISA6 0x40
3754 #define _TRISA_RA6 0x40
3755 #define _TRISA_TRISA7 0x80
3756 #define _TRISA_RA7 0x80
3758 //==============================================================================
3761 //==============================================================================
3764 extern __at(0x0F93) __sfr DDRB
;
3770 unsigned TRISB0
: 1;
3771 unsigned TRISB1
: 1;
3772 unsigned TRISB2
: 1;
3773 unsigned TRISB3
: 1;
3774 unsigned TRISB4
: 1;
3775 unsigned TRISB5
: 1;
3776 unsigned TRISB6
: 1;
3777 unsigned TRISB7
: 1;
3793 extern __at(0x0F93) volatile __DDRBbits_t DDRBbits
;
3795 #define _TRISB0 0x01
3797 #define _TRISB1 0x02
3799 #define _TRISB2 0x04
3801 #define _TRISB3 0x08
3803 #define _TRISB4 0x10
3805 #define _TRISB5 0x20
3807 #define _TRISB6 0x40
3809 #define _TRISB7 0x80
3812 //==============================================================================
3815 //==============================================================================
3818 extern __at(0x0F93) __sfr TRISB
;
3824 unsigned TRISB0
: 1;
3825 unsigned TRISB1
: 1;
3826 unsigned TRISB2
: 1;
3827 unsigned TRISB3
: 1;
3828 unsigned TRISB4
: 1;
3829 unsigned TRISB5
: 1;
3830 unsigned TRISB6
: 1;
3831 unsigned TRISB7
: 1;
3847 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits
;
3849 #define _TRISB_TRISB0 0x01
3850 #define _TRISB_RB0 0x01
3851 #define _TRISB_TRISB1 0x02
3852 #define _TRISB_RB1 0x02
3853 #define _TRISB_TRISB2 0x04
3854 #define _TRISB_RB2 0x04
3855 #define _TRISB_TRISB3 0x08
3856 #define _TRISB_RB3 0x08
3857 #define _TRISB_TRISB4 0x10
3858 #define _TRISB_RB4 0x10
3859 #define _TRISB_TRISB5 0x20
3860 #define _TRISB_RB5 0x20
3861 #define _TRISB_TRISB6 0x40
3862 #define _TRISB_RB6 0x40
3863 #define _TRISB_TRISB7 0x80
3864 #define _TRISB_RB7 0x80
3866 //==============================================================================
3869 //==============================================================================
3872 extern __at(0x0F94) __sfr DDRC
;
3878 unsigned TRISC0
: 1;
3879 unsigned TRISC1
: 1;
3880 unsigned TRISC2
: 1;
3881 unsigned TRISC3
: 1;
3882 unsigned TRISC4
: 1;
3883 unsigned TRISC5
: 1;
3884 unsigned TRISC6
: 1;
3885 unsigned TRISC7
: 1;
3901 extern __at(0x0F94) volatile __DDRCbits_t DDRCbits
;
3903 #define _TRISC0 0x01
3905 #define _TRISC1 0x02
3907 #define _TRISC2 0x04
3909 #define _TRISC3 0x08
3911 #define _TRISC4 0x10
3913 #define _TRISC5 0x20
3915 #define _TRISC6 0x40
3917 #define _TRISC7 0x80
3920 //==============================================================================
3923 //==============================================================================
3926 extern __at(0x0F94) __sfr TRISC
;
3932 unsigned TRISC0
: 1;
3933 unsigned TRISC1
: 1;
3934 unsigned TRISC2
: 1;
3935 unsigned TRISC3
: 1;
3936 unsigned TRISC4
: 1;
3937 unsigned TRISC5
: 1;
3938 unsigned TRISC6
: 1;
3939 unsigned TRISC7
: 1;
3955 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits
;
3957 #define _TRISC_TRISC0 0x01
3958 #define _TRISC_RC0 0x01
3959 #define _TRISC_TRISC1 0x02
3960 #define _TRISC_RC1 0x02
3961 #define _TRISC_TRISC2 0x04
3962 #define _TRISC_RC2 0x04
3963 #define _TRISC_TRISC3 0x08
3964 #define _TRISC_RC3 0x08
3965 #define _TRISC_TRISC4 0x10
3966 #define _TRISC_RC4 0x10
3967 #define _TRISC_TRISC5 0x20
3968 #define _TRISC_RC5 0x20
3969 #define _TRISC_TRISC6 0x40
3970 #define _TRISC_RC6 0x40
3971 #define _TRISC_TRISC7 0x80
3972 #define _TRISC_RC7 0x80
3974 //==============================================================================
3977 //==============================================================================
3980 extern __at(0x0F95) __sfr DDRD
;
3986 unsigned TRISD0
: 1;
3987 unsigned TRISD1
: 1;
3988 unsigned TRISD2
: 1;
3989 unsigned TRISD3
: 1;
3990 unsigned TRISD4
: 1;
3991 unsigned TRISD5
: 1;
3992 unsigned TRISD6
: 1;
3993 unsigned TRISD7
: 1;
4009 extern __at(0x0F95) volatile __DDRDbits_t DDRDbits
;
4011 #define _TRISD0 0x01
4013 #define _TRISD1 0x02
4015 #define _TRISD2 0x04
4017 #define _TRISD3 0x08
4019 #define _TRISD4 0x10
4021 #define _TRISD5 0x20
4023 #define _TRISD6 0x40
4025 #define _TRISD7 0x80
4028 //==============================================================================
4031 //==============================================================================
4034 extern __at(0x0F95) __sfr TRISD
;
4040 unsigned TRISD0
: 1;
4041 unsigned TRISD1
: 1;
4042 unsigned TRISD2
: 1;
4043 unsigned TRISD3
: 1;
4044 unsigned TRISD4
: 1;
4045 unsigned TRISD5
: 1;
4046 unsigned TRISD6
: 1;
4047 unsigned TRISD7
: 1;
4063 extern __at(0x0F95) volatile __TRISDbits_t TRISDbits
;
4065 #define _TRISD_TRISD0 0x01
4066 #define _TRISD_RD0 0x01
4067 #define _TRISD_TRISD1 0x02
4068 #define _TRISD_RD1 0x02
4069 #define _TRISD_TRISD2 0x04
4070 #define _TRISD_RD2 0x04
4071 #define _TRISD_TRISD3 0x08
4072 #define _TRISD_RD3 0x08
4073 #define _TRISD_TRISD4 0x10
4074 #define _TRISD_RD4 0x10
4075 #define _TRISD_TRISD5 0x20
4076 #define _TRISD_RD5 0x20
4077 #define _TRISD_TRISD6 0x40
4078 #define _TRISD_RD6 0x40
4079 #define _TRISD_TRISD7 0x80
4080 #define _TRISD_RD7 0x80
4082 //==============================================================================
4085 //==============================================================================
4088 extern __at(0x0F96) __sfr DDRE
;
4094 unsigned TRISE0
: 1;
4095 unsigned TRISE1
: 1;
4096 unsigned TRISE2
: 1;
4129 extern __at(0x0F96) volatile __DDREbits_t DDREbits
;
4131 #define _TRISE0 0x01
4133 #define _TRISE1 0x02
4135 #define _TRISE2 0x04
4139 //==============================================================================
4142 //==============================================================================
4145 extern __at(0x0F96) __sfr TRISE
;
4151 unsigned TRISE0
: 1;
4152 unsigned TRISE1
: 1;
4153 unsigned TRISE2
: 1;
4186 extern __at(0x0F96) volatile __TRISEbits_t TRISEbits
;
4188 #define _TRISE_TRISE0 0x01
4189 #define _TRISE_RE0 0x01
4190 #define _TRISE_TRISE1 0x02
4191 #define _TRISE_RE1 0x02
4192 #define _TRISE_TRISE2 0x04
4193 #define _TRISE_RE2 0x04
4194 #define _TRISE_WPUE3 0x80
4196 //==============================================================================
4199 //==============================================================================
4202 extern __at(0x0F9B) __sfr OSCTUNE
;
4215 unsigned INTSRC
: 1;
4225 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits
;
4234 #define _INTSRC 0x80
4236 //==============================================================================
4239 //==============================================================================
4242 extern __at(0x0F9C) __sfr HLVDCON
;
4248 unsigned HLVDL0
: 1;
4249 unsigned HLVDL1
: 1;
4250 unsigned HLVDL2
: 1;
4251 unsigned HLVDL3
: 1;
4252 unsigned HLVDEN
: 1;
4255 unsigned VDIRMAG
: 1;
4301 extern __at(0x0F9C) volatile __HLVDCONbits_t HLVDCONbits
;
4303 #define _HLVDL0 0x01
4306 #define _HLVDL1 0x02
4309 #define _HLVDL2 0x04
4312 #define _HLVDL3 0x08
4315 #define _HLVDEN 0x10
4321 #define _VDIRMAG 0x80
4323 //==============================================================================
4326 //==============================================================================
4329 extern __at(0x0F9C) __sfr LVDCON
;
4335 unsigned HLVDL0
: 1;
4336 unsigned HLVDL1
: 1;
4337 unsigned HLVDL2
: 1;
4338 unsigned HLVDL3
: 1;
4339 unsigned HLVDEN
: 1;
4342 unsigned VDIRMAG
: 1;
4388 extern __at(0x0F9C) volatile __LVDCONbits_t LVDCONbits
;
4390 #define _LVDCON_HLVDL0 0x01
4391 #define _LVDCON_LVDL0 0x01
4392 #define _LVDCON_LVV0 0x01
4393 #define _LVDCON_HLVDL1 0x02
4394 #define _LVDCON_LVDL1 0x02
4395 #define _LVDCON_LVV1 0x02
4396 #define _LVDCON_HLVDL2 0x04
4397 #define _LVDCON_LVDL2 0x04
4398 #define _LVDCON_LVV2 0x04
4399 #define _LVDCON_HLVDL3 0x08
4400 #define _LVDCON_LVDL3 0x08
4401 #define _LVDCON_LVV3 0x08
4402 #define _LVDCON_HLVDEN 0x10
4403 #define _LVDCON_LVDEN 0x10
4404 #define _LVDCON_IRVST 0x20
4405 #define _LVDCON_IVRST 0x20
4406 #define _LVDCON_BGST 0x20
4407 #define _LVDCON_BGVST 0x40
4408 #define _LVDCON_VDIRMAG 0x80
4410 //==============================================================================
4413 //==============================================================================
4416 extern __at(0x0F9D) __sfr PIE1
;
4422 unsigned TMR1IE
: 1;
4423 unsigned TMR2IE
: 1;
4424 unsigned CCP1IE
: 1;
4425 unsigned SSP1IE
: 1;
4445 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits
;
4447 #define _TMR1IE 0x01
4448 #define _TMR2IE 0x02
4449 #define _CCP1IE 0x04
4450 #define _SSP1IE 0x08
4458 //==============================================================================
4461 //==============================================================================
4464 extern __at(0x0F9E) __sfr PIR1
;
4470 unsigned TMR1IF
: 1;
4471 unsigned TMR2IF
: 1;
4472 unsigned CCP1IF
: 1;
4473 unsigned SSP1IF
: 1;
4493 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits
;
4495 #define _TMR1IF 0x01
4496 #define _TMR2IF 0x02
4497 #define _CCP1IF 0x04
4498 #define _SSP1IF 0x08
4506 //==============================================================================
4509 //==============================================================================
4512 extern __at(0x0F9F) __sfr IPR1
;
4518 unsigned TMR1IP
: 1;
4519 unsigned TMR2IP
: 1;
4520 unsigned CCP1IP
: 1;
4521 unsigned SSP1IP
: 1;
4541 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits
;
4543 #define _TMR1IP 0x01
4544 #define _TMR2IP 0x02
4545 #define _CCP1IP 0x04
4546 #define _SSP1IP 0x08
4554 //==============================================================================
4557 //==============================================================================
4560 extern __at(0x0FA0) __sfr PIE2
;
4566 unsigned CCP2IE
: 1;
4567 unsigned TMR3IE
: 1;
4568 unsigned HLVDIE
: 1;
4569 unsigned BCL1IE
: 1;
4573 unsigned OSCFIE
: 1;
4589 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits
;
4591 #define _CCP2IE 0x01
4592 #define _TMR3IE 0x02
4593 #define _HLVDIE 0x04
4595 #define _BCL1IE 0x08
4600 #define _OSCFIE 0x80
4602 //==============================================================================
4605 //==============================================================================
4608 extern __at(0x0FA1) __sfr PIR2
;
4614 unsigned CCP2IF
: 1;
4615 unsigned TMR3IF
: 1;
4616 unsigned HLVDIF
: 1;
4617 unsigned BCL1IF
: 1;
4621 unsigned OSCFIF
: 1;
4637 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits
;
4639 #define _CCP2IF 0x01
4640 #define _TMR3IF 0x02
4641 #define _HLVDIF 0x04
4643 #define _BCL1IF 0x08
4648 #define _OSCFIF 0x80
4650 //==============================================================================
4653 //==============================================================================
4656 extern __at(0x0FA2) __sfr IPR2
;
4662 unsigned CCP2IP
: 1;
4663 unsigned TMR3IP
: 1;
4664 unsigned HLVDIP
: 1;
4665 unsigned BCL1IP
: 1;
4669 unsigned OSCFIP
: 1;
4685 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits
;
4687 #define _CCP2IP 0x01
4688 #define _TMR3IP 0x02
4689 #define _HLVDIP 0x04
4691 #define _BCL1IP 0x08
4696 #define _OSCFIP 0x80
4698 //==============================================================================
4701 //==============================================================================
4704 extern __at(0x0FA3) __sfr PIE3
;
4708 unsigned TMR1GIE
: 1;
4709 unsigned TMR3GIE
: 1;
4710 unsigned TMR5GIE
: 1;
4711 unsigned CTMUIE
: 1;
4714 unsigned BCL2IE
: 1;
4715 unsigned SSP2IE
: 1;
4718 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits
;
4720 #define _TMR1GIE 0x01
4721 #define _TMR3GIE 0x02
4722 #define _TMR5GIE 0x04
4723 #define _CTMUIE 0x08
4726 #define _BCL2IE 0x40
4727 #define _SSP2IE 0x80
4729 //==============================================================================
4732 //==============================================================================
4735 extern __at(0x0FA4) __sfr PIR3
;
4739 unsigned TMR1GIF
: 1;
4740 unsigned TMR3GIF
: 1;
4741 unsigned TMR5GIF
: 1;
4742 unsigned CTMUIF
: 1;
4745 unsigned BCL2IF
: 1;
4746 unsigned SSP2IF
: 1;
4749 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits
;
4751 #define _TMR1GIF 0x01
4752 #define _TMR3GIF 0x02
4753 #define _TMR5GIF 0x04
4754 #define _CTMUIF 0x08
4757 #define _BCL2IF 0x40
4758 #define _SSP2IF 0x80
4760 //==============================================================================
4763 //==============================================================================
4766 extern __at(0x0FA5) __sfr IPR3
;
4770 unsigned TMR1GIP
: 1;
4771 unsigned TMR3GIP
: 1;
4772 unsigned TMR5GIP
: 1;
4773 unsigned CTMUIP
: 1;
4776 unsigned BCL2IP
: 1;
4777 unsigned SSP2IP
: 1;
4780 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits
;
4782 #define _TMR1GIP 0x01
4783 #define _TMR3GIP 0x02
4784 #define _TMR5GIP 0x04
4785 #define _CTMUIP 0x08
4788 #define _BCL2IP 0x40
4789 #define _SSP2IP 0x80
4791 //==============================================================================
4794 //==============================================================================
4797 extern __at(0x0FA6) __sfr EECON1
;
4811 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits
;
4821 //==============================================================================
4823 extern __at(0x0FA7) __sfr EECON2
;
4824 extern __at(0x0FA8) __sfr EEDATA
;
4826 //==============================================================================
4829 extern __at(0x0FA9) __sfr EEADR
;
4833 unsigned EEADR0
: 1;
4834 unsigned EEADR1
: 1;
4835 unsigned EEADR2
: 1;
4836 unsigned EEADR3
: 1;
4837 unsigned EEADR4
: 1;
4838 unsigned EEADR5
: 1;
4839 unsigned EEADR6
: 1;
4840 unsigned EEADR7
: 1;
4843 extern __at(0x0FA9) volatile __EEADRbits_t EEADRbits
;
4845 #define _EEADR0 0x01
4846 #define _EEADR1 0x02
4847 #define _EEADR2 0x04
4848 #define _EEADR3 0x08
4849 #define _EEADR4 0x10
4850 #define _EEADR5 0x20
4851 #define _EEADR6 0x40
4852 #define _EEADR7 0x80
4854 //==============================================================================
4857 //==============================================================================
4860 extern __at(0x0FAB) __sfr RC1STA
;
4893 unsigned ADDEN1
: 1;
4901 extern __at(0x0FAB) volatile __RC1STAbits_t RC1STAbits
;
4911 #define _ADDEN1 0x08
4921 //==============================================================================
4924 //==============================================================================
4927 extern __at(0x0FAB) __sfr RCSTA
;
4960 unsigned ADDEN1
: 1;
4968 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits
;
4970 #define _RCSTA_RX9D 0x01
4971 #define _RCSTA_RX9D1 0x01
4972 #define _RCSTA_OERR 0x02
4973 #define _RCSTA_OERR1 0x02
4974 #define _RCSTA_FERR 0x04
4975 #define _RCSTA_FERR1 0x04
4976 #define _RCSTA_ADDEN 0x08
4977 #define _RCSTA_ADEN 0x08
4978 #define _RCSTA_ADDEN1 0x08
4979 #define _RCSTA_CREN 0x10
4980 #define _RCSTA_CREN1 0x10
4981 #define _RCSTA_SREN 0x20
4982 #define _RCSTA_SREN1 0x20
4983 #define _RCSTA_RX9 0x40
4984 #define _RCSTA_RX91 0x40
4985 #define _RCSTA_SPEN 0x80
4986 #define _RCSTA_SPEN1 0x80
4988 //==============================================================================
4991 //==============================================================================
4994 extern __at(0x0FAB) __sfr RCSTA1
;
5027 unsigned ADDEN1
: 1;
5035 extern __at(0x0FAB) volatile __RCSTA1bits_t RCSTA1bits
;
5037 #define _RCSTA1_RX9D 0x01
5038 #define _RCSTA1_RX9D1 0x01
5039 #define _RCSTA1_OERR 0x02
5040 #define _RCSTA1_OERR1 0x02
5041 #define _RCSTA1_FERR 0x04
5042 #define _RCSTA1_FERR1 0x04
5043 #define _RCSTA1_ADDEN 0x08
5044 #define _RCSTA1_ADEN 0x08
5045 #define _RCSTA1_ADDEN1 0x08
5046 #define _RCSTA1_CREN 0x10
5047 #define _RCSTA1_CREN1 0x10
5048 #define _RCSTA1_SREN 0x20
5049 #define _RCSTA1_SREN1 0x20
5050 #define _RCSTA1_RX9 0x40
5051 #define _RCSTA1_RX91 0x40
5052 #define _RCSTA1_SPEN 0x80
5053 #define _RCSTA1_SPEN1 0x80
5055 //==============================================================================
5058 //==============================================================================
5061 extern __at(0x0FAC) __sfr TX1STA
;
5082 unsigned SENDB1
: 1;
5090 extern __at(0x0FAC) volatile __TX1STAbits_t TX1STAbits
;
5099 #define _SENDB1 0x08
5109 //==============================================================================
5112 //==============================================================================
5115 extern __at(0x0FAC) __sfr TXSTA
;
5136 unsigned SENDB1
: 1;
5144 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits
;
5146 #define _TXSTA_TX9D 0x01
5147 #define _TXSTA_TX9D1 0x01
5148 #define _TXSTA_TRMT 0x02
5149 #define _TXSTA_TRMT1 0x02
5150 #define _TXSTA_BRGH 0x04
5151 #define _TXSTA_BRGH1 0x04
5152 #define _TXSTA_SENDB 0x08
5153 #define _TXSTA_SENDB1 0x08
5154 #define _TXSTA_SYNC 0x10
5155 #define _TXSTA_SYNC1 0x10
5156 #define _TXSTA_TXEN 0x20
5157 #define _TXSTA_TXEN1 0x20
5158 #define _TXSTA_TX9 0x40
5159 #define _TXSTA_TX91 0x40
5160 #define _TXSTA_CSRC 0x80
5161 #define _TXSTA_CSRC1 0x80
5163 //==============================================================================
5166 //==============================================================================
5169 extern __at(0x0FAC) __sfr TXSTA1
;
5190 unsigned SENDB1
: 1;
5198 extern __at(0x0FAC) volatile __TXSTA1bits_t TXSTA1bits
;
5200 #define _TXSTA1_TX9D 0x01
5201 #define _TXSTA1_TX9D1 0x01
5202 #define _TXSTA1_TRMT 0x02
5203 #define _TXSTA1_TRMT1 0x02
5204 #define _TXSTA1_BRGH 0x04
5205 #define _TXSTA1_BRGH1 0x04
5206 #define _TXSTA1_SENDB 0x08
5207 #define _TXSTA1_SENDB1 0x08
5208 #define _TXSTA1_SYNC 0x10
5209 #define _TXSTA1_SYNC1 0x10
5210 #define _TXSTA1_TXEN 0x20
5211 #define _TXSTA1_TXEN1 0x20
5212 #define _TXSTA1_TX9 0x40
5213 #define _TXSTA1_TX91 0x40
5214 #define _TXSTA1_CSRC 0x80
5215 #define _TXSTA1_CSRC1 0x80
5217 //==============================================================================
5219 extern __at(0x0FAD) __sfr TX1REG
;
5220 extern __at(0x0FAD) __sfr TXREG
;
5221 extern __at(0x0FAD) __sfr TXREG1
;
5222 extern __at(0x0FAE) __sfr RC1REG
;
5223 extern __at(0x0FAE) __sfr RCREG
;
5224 extern __at(0x0FAE) __sfr RCREG1
;
5225 extern __at(0x0FAF) __sfr SP1BRG
;
5226 extern __at(0x0FAF) __sfr SPBRG
;
5227 extern __at(0x0FAF) __sfr SPBRG1
;
5228 extern __at(0x0FB0) __sfr SP1BRGH
;
5229 extern __at(0x0FB0) __sfr SPBRGH
;
5230 extern __at(0x0FB0) __sfr SPBRGH1
;
5232 //==============================================================================
5235 extern __at(0x0FB1) __sfr T3CON
;
5241 unsigned TMR3ON
: 1;
5242 unsigned T3RD16
: 1;
5243 unsigned NOT_T3SYNC
: 1;
5244 unsigned T3SOSCEN
: 1;
5245 unsigned T3CKPS0
: 1;
5246 unsigned T3CKPS1
: 1;
5247 unsigned TMR3CS0
: 1;
5248 unsigned TMR3CS1
: 1;
5256 unsigned T3OSCEN
: 1;
5266 unsigned T3CKPS
: 2;
5273 unsigned TMR3CS
: 2;
5277 extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits
;
5279 #define _TMR3ON 0x01
5280 #define _T3RD16 0x02
5281 #define _NOT_T3SYNC 0x04
5282 #define _T3SOSCEN 0x08
5283 #define _T3OSCEN 0x08
5284 #define _T3CKPS0 0x10
5285 #define _T3CKPS1 0x20
5286 #define _TMR3CS0 0x40
5287 #define _TMR3CS1 0x80
5289 //==============================================================================
5291 extern __at(0x0FB2) __sfr TMR3
;
5292 extern __at(0x0FB2) __sfr TMR3L
;
5293 extern __at(0x0FB3) __sfr TMR3H
;
5295 //==============================================================================
5298 extern __at(0x0FB4) __sfr T3GCON
;
5304 unsigned T3GSS0
: 1;
5305 unsigned T3GSS1
: 1;
5306 unsigned T3GVAL
: 1;
5307 unsigned T3GGO_NOT_DONE
: 1;
5308 unsigned T3GSPM
: 1;
5310 unsigned T3GPOL
: 1;
5311 unsigned TMR3GE
: 1;
5319 unsigned T3G_DONE
: 1;
5345 extern __at(0x0FB4) volatile __T3GCONbits_t T3GCONbits
;
5347 #define _T3GSS0 0x01
5348 #define _T3GSS1 0x02
5349 #define _T3GVAL 0x04
5350 #define _T3GGO_NOT_DONE 0x08
5351 #define _T3G_DONE 0x08
5353 #define _T3GSPM 0x10
5355 #define _T3GPOL 0x40
5356 #define _TMR3GE 0x80
5358 //==============================================================================
5361 //==============================================================================
5364 extern __at(0x0FB6) __sfr ECCP1AS
;
5370 unsigned P1SSBD0
: 1;
5371 unsigned P1SSBD1
: 1;
5372 unsigned P1SSAC0
: 1;
5373 unsigned P1SSAC1
: 1;
5374 unsigned CCP1AS0
: 1;
5375 unsigned CCP1AS1
: 1;
5376 unsigned CCP1AS2
: 1;
5377 unsigned CCP1ASE
: 1;
5382 unsigned PSS1BD0
: 1;
5383 unsigned PSS1BD1
: 1;
5384 unsigned PSS1AC0
: 1;
5385 unsigned PSS1AC1
: 1;
5386 unsigned ECCPAS0
: 1;
5387 unsigned ECCPAS1
: 1;
5388 unsigned ECCPAS2
: 1;
5389 unsigned ECCPASE
: 1;
5394 unsigned PSSBD0
: 1;
5395 unsigned PSSBD1
: 1;
5396 unsigned PSSAC0
: 1;
5397 unsigned PSSAC1
: 1;
5406 unsigned P1SSBD
: 2;
5418 unsigned PSS1BD
: 2;
5432 unsigned P1SSAC
: 2;
5439 unsigned PSS1AC
: 2;
5446 unsigned CCP1AS
: 3;
5453 unsigned ECCPAS
: 3;
5458 extern __at(0x0FB6) volatile __ECCP1ASbits_t ECCP1ASbits
;
5460 #define _P1SSBD0 0x01
5461 #define _PSS1BD0 0x01
5462 #define _PSSBD0 0x01
5463 #define _P1SSBD1 0x02
5464 #define _PSS1BD1 0x02
5465 #define _PSSBD1 0x02
5466 #define _P1SSAC0 0x04
5467 #define _PSS1AC0 0x04
5468 #define _PSSAC0 0x04
5469 #define _P1SSAC1 0x08
5470 #define _PSS1AC1 0x08
5471 #define _PSSAC1 0x08
5472 #define _CCP1AS0 0x10
5473 #define _ECCPAS0 0x10
5474 #define _CCP1AS1 0x20
5475 #define _ECCPAS1 0x20
5476 #define _CCP1AS2 0x40
5477 #define _ECCPAS2 0x40
5478 #define _CCP1ASE 0x80
5479 #define _ECCPASE 0x80
5481 //==============================================================================
5484 //==============================================================================
5487 extern __at(0x0FB6) __sfr ECCPAS
;
5493 unsigned P1SSBD0
: 1;
5494 unsigned P1SSBD1
: 1;
5495 unsigned P1SSAC0
: 1;
5496 unsigned P1SSAC1
: 1;
5497 unsigned CCP1AS0
: 1;
5498 unsigned CCP1AS1
: 1;
5499 unsigned CCP1AS2
: 1;
5500 unsigned CCP1ASE
: 1;
5505 unsigned PSS1BD0
: 1;
5506 unsigned PSS1BD1
: 1;
5507 unsigned PSS1AC0
: 1;
5508 unsigned PSS1AC1
: 1;
5509 unsigned ECCPAS0
: 1;
5510 unsigned ECCPAS1
: 1;
5511 unsigned ECCPAS2
: 1;
5512 unsigned ECCPASE
: 1;
5517 unsigned PSSBD0
: 1;
5518 unsigned PSSBD1
: 1;
5519 unsigned PSSAC0
: 1;
5520 unsigned PSSAC1
: 1;
5529 unsigned PSS1BD
: 2;
5541 unsigned P1SSBD
: 2;
5548 unsigned P1SSAC
: 2;
5555 unsigned PSS1AC
: 2;
5569 unsigned ECCPAS
: 3;
5576 unsigned CCP1AS
: 3;
5581 extern __at(0x0FB6) volatile __ECCPASbits_t ECCPASbits
;
5583 #define _ECCPAS_P1SSBD0 0x01
5584 #define _ECCPAS_PSS1BD0 0x01
5585 #define _ECCPAS_PSSBD0 0x01
5586 #define _ECCPAS_P1SSBD1 0x02
5587 #define _ECCPAS_PSS1BD1 0x02
5588 #define _ECCPAS_PSSBD1 0x02
5589 #define _ECCPAS_P1SSAC0 0x04
5590 #define _ECCPAS_PSS1AC0 0x04
5591 #define _ECCPAS_PSSAC0 0x04
5592 #define _ECCPAS_P1SSAC1 0x08
5593 #define _ECCPAS_PSS1AC1 0x08
5594 #define _ECCPAS_PSSAC1 0x08
5595 #define _ECCPAS_CCP1AS0 0x10
5596 #define _ECCPAS_ECCPAS0 0x10
5597 #define _ECCPAS_CCP1AS1 0x20
5598 #define _ECCPAS_ECCPAS1 0x20
5599 #define _ECCPAS_CCP1AS2 0x40
5600 #define _ECCPAS_ECCPAS2 0x40
5601 #define _ECCPAS_CCP1ASE 0x80
5602 #define _ECCPAS_ECCPASE 0x80
5604 //==============================================================================
5607 //==============================================================================
5610 extern __at(0x0FB7) __sfr PWM1CON
;
5623 unsigned P1RSEN
: 1;
5651 extern __at(0x0FB7) volatile __PWM1CONbits_t PWM1CONbits
;
5667 #define _P1RSEN 0x80
5670 //==============================================================================
5673 //==============================================================================
5676 extern __at(0x0FB7) __sfr PWMCON
;
5689 unsigned P1RSEN
: 1;
5717 extern __at(0x0FB7) volatile __PWMCONbits_t PWMCONbits
;
5719 #define _PWMCON_P1DC0 0x01
5720 #define _PWMCON_PDC0 0x01
5721 #define _PWMCON_P1DC1 0x02
5722 #define _PWMCON_PDC1 0x02
5723 #define _PWMCON_P1DC2 0x04
5724 #define _PWMCON_PDC2 0x04
5725 #define _PWMCON_P1DC3 0x08
5726 #define _PWMCON_PDC3 0x08
5727 #define _PWMCON_P1DC4 0x10
5728 #define _PWMCON_PDC4 0x10
5729 #define _PWMCON_P1DC5 0x20
5730 #define _PWMCON_PDC5 0x20
5731 #define _PWMCON_P1DC6 0x40
5732 #define _PWMCON_PDC6 0x40
5733 #define _PWMCON_P1RSEN 0x80
5734 #define _PWMCON_PRSEN 0x80
5736 //==============================================================================
5739 //==============================================================================
5742 extern __at(0x0FB8) __sfr BAUD1CON
;
5755 unsigned ABDOVF
: 1;
5771 extern __at(0x0FB8) volatile __BAUD1CONbits_t BAUD1CONbits
;
5780 #define _ABDOVF 0x80
5782 //==============================================================================
5785 //==============================================================================
5788 extern __at(0x0FB8) __sfr BAUDCON
;
5801 unsigned ABDOVF
: 1;
5817 extern __at(0x0FB8) volatile __BAUDCONbits_t BAUDCONbits
;
5819 #define _BAUDCON_ABDEN 0x01
5820 #define _BAUDCON_WUE 0x02
5821 #define _BAUDCON_BRG16 0x08
5822 #define _BAUDCON_CKTXP 0x10
5823 #define _BAUDCON_SCKP 0x10
5824 #define _BAUDCON_DTRXP 0x20
5825 #define _BAUDCON_RCIDL 0x40
5826 #define _BAUDCON_ABDOVF 0x80
5828 //==============================================================================
5831 //==============================================================================
5834 extern __at(0x0FB8) __sfr BAUDCON1
;
5847 unsigned ABDOVF
: 1;
5863 extern __at(0x0FB8) volatile __BAUDCON1bits_t BAUDCON1bits
;
5865 #define _BAUDCON1_ABDEN 0x01
5866 #define _BAUDCON1_WUE 0x02
5867 #define _BAUDCON1_BRG16 0x08
5868 #define _BAUDCON1_CKTXP 0x10
5869 #define _BAUDCON1_SCKP 0x10
5870 #define _BAUDCON1_DTRXP 0x20
5871 #define _BAUDCON1_RCIDL 0x40
5872 #define _BAUDCON1_ABDOVF 0x80
5874 //==============================================================================
5877 //==============================================================================
5880 extern __at(0x0FB8) __sfr BAUDCTL
;
5893 unsigned ABDOVF
: 1;
5909 extern __at(0x0FB8) volatile __BAUDCTLbits_t BAUDCTLbits
;
5911 #define _BAUDCTL_ABDEN 0x01
5912 #define _BAUDCTL_WUE 0x02
5913 #define _BAUDCTL_BRG16 0x08
5914 #define _BAUDCTL_CKTXP 0x10
5915 #define _BAUDCTL_SCKP 0x10
5916 #define _BAUDCTL_DTRXP 0x20
5917 #define _BAUDCTL_RCIDL 0x40
5918 #define _BAUDCTL_ABDOVF 0x80
5920 //==============================================================================
5923 //==============================================================================
5926 extern __at(0x0FB9) __sfr PSTR1CON
;
5934 unsigned STR1SYNC
: 1;
5940 extern __at(0x0FB9) volatile __PSTR1CONbits_t PSTR1CONbits
;
5946 #define _STR1SYNC 0x10
5948 //==============================================================================
5951 //==============================================================================
5954 extern __at(0x0FB9) __sfr PSTRCON
;
5962 unsigned STR1SYNC
: 1;
5968 extern __at(0x0FB9) volatile __PSTRCONbits_t PSTRCONbits
;
5970 #define _PSTRCON_STR1A 0x01
5971 #define _PSTRCON_STR1B 0x02
5972 #define _PSTRCON_STR1C 0x04
5973 #define _PSTRCON_STR1D 0x08
5974 #define _PSTRCON_STR1SYNC 0x10
5976 //==============================================================================
5979 //==============================================================================
5982 extern __at(0x0FBA) __sfr T2CON
;
5988 unsigned T2CKPS0
: 1;
5989 unsigned T2CKPS1
: 1;
5990 unsigned TMR2ON
: 1;
5991 unsigned T2OUTPS0
: 1;
5992 unsigned T2OUTPS1
: 1;
5993 unsigned T2OUTPS2
: 1;
5994 unsigned T2OUTPS3
: 1;
6000 unsigned T2CKPS
: 2;
6007 unsigned T2OUTPS
: 4;
6012 extern __at(0x0FBA) volatile __T2CONbits_t T2CONbits
;
6014 #define _T2CKPS0 0x01
6015 #define _T2CKPS1 0x02
6016 #define _TMR2ON 0x04
6017 #define _T2OUTPS0 0x08
6018 #define _T2OUTPS1 0x10
6019 #define _T2OUTPS2 0x20
6020 #define _T2OUTPS3 0x40
6022 //==============================================================================
6024 extern __at(0x0FBB) __sfr PR2
;
6025 extern __at(0x0FBC) __sfr TMR2
;
6027 //==============================================================================
6030 extern __at(0x0FBD) __sfr CCP1CON
;
6036 unsigned CCP1M0
: 1;
6037 unsigned CCP1M1
: 1;
6038 unsigned CCP1M2
: 1;
6039 unsigned CCP1M3
: 1;
6066 extern __at(0x0FBD) volatile __CCP1CONbits_t CCP1CONbits
;
6068 #define _CCP1M0 0x01
6069 #define _CCP1M1 0x02
6070 #define _CCP1M2 0x04
6071 #define _CCP1M3 0x08
6077 //==============================================================================
6079 extern __at(0x0FBE) __sfr CCPR1
;
6080 extern __at(0x0FBE) __sfr CCPR1L
;
6081 extern __at(0x0FBF) __sfr CCPR1H
;
6083 //==============================================================================
6086 extern __at(0x0FC0) __sfr ADCON2
;
6116 extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits
;
6126 //==============================================================================
6129 //==============================================================================
6132 extern __at(0x0FC1) __sfr ADCON1
;
6138 unsigned NVCFG0
: 1;
6139 unsigned NVCFG1
: 1;
6140 unsigned PVCFG0
: 1;
6141 unsigned PVCFG1
: 1;
6145 unsigned TRIGSEL
: 1;
6162 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits
;
6164 #define _NVCFG0 0x01
6165 #define _NVCFG1 0x02
6166 #define _PVCFG0 0x04
6167 #define _PVCFG1 0x08
6168 #define _TRIGSEL 0x80
6170 //==============================================================================
6173 //==============================================================================
6176 extern __at(0x0FC2) __sfr ADCON0
;
6183 unsigned GO_NOT_DONE
: 1;
6219 unsigned NOT_DONE
: 1;
6231 unsigned GO_DONE
: 1;
6248 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits
;
6251 #define _GO_NOT_DONE 0x02
6254 #define _NOT_DONE 0x02
6255 #define _GO_DONE 0x02
6262 //==============================================================================
6264 extern __at(0x0FC3) __sfr ADRES
;
6265 extern __at(0x0FC3) __sfr ADRESL
;
6266 extern __at(0x0FC4) __sfr ADRESH
;
6268 //==============================================================================
6271 extern __at(0x0FC5) __sfr SSP1CON2
;
6281 unsigned ACKSTAT
: 1;
6285 extern __at(0x0FC5) volatile __SSP1CON2bits_t SSP1CON2bits
;
6293 #define _ACKSTAT 0x40
6296 //==============================================================================
6299 //==============================================================================
6302 extern __at(0x0FC5) __sfr SSPCON2
;
6312 unsigned ACKSTAT
: 1;
6316 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits
;
6318 #define _SSPCON2_SEN 0x01
6319 #define _SSPCON2_RSEN 0x02
6320 #define _SSPCON2_PEN 0x04
6321 #define _SSPCON2_RCEN 0x08
6322 #define _SSPCON2_ACKEN 0x10
6323 #define _SSPCON2_ACKDT 0x20
6324 #define _SSPCON2_ACKSTAT 0x40
6325 #define _SSPCON2_GCEN 0x80
6327 //==============================================================================
6330 //==============================================================================
6333 extern __at(0x0FC6) __sfr SSP1CON1
;
6356 extern __at(0x0FC6) volatile __SSP1CON1bits_t SSP1CON1bits
;
6367 //==============================================================================
6370 //==============================================================================
6373 extern __at(0x0FC6) __sfr SSPCON1
;
6396 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits
;
6398 #define _SSPCON1_SSPM0 0x01
6399 #define _SSPCON1_SSPM1 0x02
6400 #define _SSPCON1_SSPM2 0x04
6401 #define _SSPCON1_SSPM3 0x08
6402 #define _SSPCON1_CKP 0x10
6403 #define _SSPCON1_SSPEN 0x20
6404 #define _SSPCON1_SSPOV 0x40
6405 #define _SSPCON1_WCOL 0x80
6407 //==============================================================================
6410 //==============================================================================
6413 extern __at(0x0FC7) __sfr SSP1STAT
;
6421 unsigned R_NOT_W
: 1;
6424 unsigned D_NOT_A
: 1;
6469 unsigned NOT_WRITE
: 1;
6472 unsigned NOT_ADDRESS
: 1;
6478 extern __at(0x0FC7) volatile __SSP1STATbits_t SSP1STATbits
;
6482 #define _R_NOT_W 0x04
6486 #define _NOT_WRITE 0x04
6489 #define _D_NOT_A 0x20
6493 #define _NOT_ADDRESS 0x20
6497 //==============================================================================
6500 //==============================================================================
6503 extern __at(0x0FC7) __sfr SSPSTAT
;
6511 unsigned R_NOT_W
: 1;
6514 unsigned D_NOT_A
: 1;
6559 unsigned NOT_WRITE
: 1;
6562 unsigned NOT_ADDRESS
: 1;
6568 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits
;
6570 #define _SSPSTAT_BF 0x01
6571 #define _SSPSTAT_UA 0x02
6572 #define _SSPSTAT_R_NOT_W 0x04
6573 #define _SSPSTAT_R 0x04
6574 #define _SSPSTAT_NOT_W 0x04
6575 #define _SSPSTAT_R_W 0x04
6576 #define _SSPSTAT_NOT_WRITE 0x04
6577 #define _SSPSTAT_S 0x08
6578 #define _SSPSTAT_P 0x10
6579 #define _SSPSTAT_D_NOT_A 0x20
6580 #define _SSPSTAT_D 0x20
6581 #define _SSPSTAT_NOT_A 0x20
6582 #define _SSPSTAT_D_A 0x20
6583 #define _SSPSTAT_NOT_ADDRESS 0x20
6584 #define _SSPSTAT_CKE 0x40
6585 #define _SSPSTAT_SMP 0x80
6587 //==============================================================================
6589 extern __at(0x0FC8) __sfr SSP1ADD
;
6590 extern __at(0x0FC8) __sfr SSPADD
;
6591 extern __at(0x0FC9) __sfr SSP1BUF
;
6592 extern __at(0x0FC9) __sfr SSPBUF
;
6594 //==============================================================================
6597 extern __at(0x0FCA) __sfr SSP1MSK
;
6611 extern __at(0x0FCA) volatile __SSP1MSKbits_t SSP1MSKbits
;
6622 //==============================================================================
6625 //==============================================================================
6628 extern __at(0x0FCA) __sfr SSPMSK
;
6642 extern __at(0x0FCA) volatile __SSPMSKbits_t SSPMSKbits
;
6644 #define _SSPMSK_MSK0 0x01
6645 #define _SSPMSK_MSK1 0x02
6646 #define _SSPMSK_MSK2 0x04
6647 #define _SSPMSK_MSK3 0x08
6648 #define _SSPMSK_MSK4 0x10
6649 #define _SSPMSK_MSK5 0x20
6650 #define _SSPMSK_MSK6 0x40
6651 #define _SSPMSK_MSK7 0x80
6653 //==============================================================================
6656 //==============================================================================
6659 extern __at(0x0FCB) __sfr SSP1CON3
;
6670 unsigned ACKTIM
: 1;
6673 extern __at(0x0FCB) volatile __SSP1CON3bits_t SSP1CON3bits
;
6682 #define _ACKTIM 0x80
6684 //==============================================================================
6687 //==============================================================================
6690 extern __at(0x0FCB) __sfr SSPCON3
;
6701 unsigned ACKTIM
: 1;
6704 extern __at(0x0FCB) volatile __SSPCON3bits_t SSPCON3bits
;
6706 #define _SSPCON3_DHEN 0x01
6707 #define _SSPCON3_AHEN 0x02
6708 #define _SSPCON3_SBCDE 0x04
6709 #define _SSPCON3_SDAHT 0x08
6710 #define _SSPCON3_BOEN 0x10
6711 #define _SSPCON3_SCIE 0x20
6712 #define _SSPCON3_PCIE 0x40
6713 #define _SSPCON3_ACKTIM 0x80
6715 //==============================================================================
6718 //==============================================================================
6721 extern __at(0x0FCC) __sfr T1GCON
;
6727 unsigned T1GSS0
: 1;
6728 unsigned T1GSS1
: 1;
6729 unsigned T1GVAL
: 1;
6730 unsigned T1GGO_NOT_DONE
: 1;
6731 unsigned T1GSPM
: 1;
6733 unsigned T1GPOL
: 1;
6734 unsigned TMR1GE
: 1;
6742 unsigned T1G_DONE
: 1;
6768 extern __at(0x0FCC) volatile __T1GCONbits_t T1GCONbits
;
6770 #define _T1GSS0 0x01
6771 #define _T1GSS1 0x02
6772 #define _T1GVAL 0x04
6773 #define _T1GGO_NOT_DONE 0x08
6774 #define _T1G_DONE 0x08
6776 #define _T1GSPM 0x10
6778 #define _T1GPOL 0x40
6779 #define _TMR1GE 0x80
6781 //==============================================================================
6784 //==============================================================================
6787 extern __at(0x0FCD) __sfr T1CON
;
6793 unsigned TMR1ON
: 1;
6794 unsigned T1RD16
: 1;
6795 unsigned NOT_T1SYNC
: 1;
6796 unsigned T1SOSCEN
: 1;
6797 unsigned T1CKPS0
: 1;
6798 unsigned T1CKPS1
: 1;
6799 unsigned TMR1CS0
: 1;
6800 unsigned TMR1CS1
: 1;
6807 unsigned T1SYNC
: 1;
6808 unsigned T1OSCEN
: 1;
6818 unsigned T1CKPS
: 2;
6825 unsigned TMR1CS
: 2;
6829 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits
;
6831 #define _TMR1ON 0x01
6832 #define _T1RD16 0x02
6834 #define _NOT_T1SYNC 0x04
6835 #define _T1SYNC 0x04
6836 #define _T1SOSCEN 0x08
6837 #define _T1OSCEN 0x08
6838 #define _T1CKPS0 0x10
6839 #define _T1CKPS1 0x20
6840 #define _TMR1CS0 0x40
6841 #define _TMR1CS1 0x80
6843 //==============================================================================
6845 extern __at(0x0FCE) __sfr TMR1
;
6846 extern __at(0x0FCE) __sfr TMR1L
;
6847 extern __at(0x0FCF) __sfr TMR1H
;
6849 //==============================================================================
6852 extern __at(0x0FD0) __sfr RCON
;
6858 unsigned NOT_BOR
: 1;
6859 unsigned NOT_POR
: 1;
6860 unsigned NOT_PD
: 1;
6861 unsigned NOT_TO
: 1;
6862 unsigned NOT_RI
: 1;
6864 unsigned SBOREN
: 1;
6881 extern __at(0x0FD0) volatile __RCONbits_t RCONbits
;
6883 #define _NOT_BOR 0x01
6885 #define _NOT_POR 0x02
6887 #define _NOT_PD 0x04
6889 #define _NOT_TO 0x08
6891 #define _NOT_RI 0x10
6893 #define _SBOREN 0x40
6896 //==============================================================================
6899 //==============================================================================
6902 extern __at(0x0FD1) __sfr WDTCON
;
6908 unsigned SWDTEN
: 1;
6931 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits
;
6933 #define _SWDTEN 0x01
6936 //==============================================================================
6939 //==============================================================================
6942 extern __at(0x0FD2) __sfr OSCCON2
;
6946 unsigned LFIOFS
: 1;
6947 unsigned MFIOFS
: 1;
6949 unsigned SOSCGO
: 1;
6950 unsigned MFIOSEL
: 1;
6952 unsigned SOSCRUN
: 1;
6953 unsigned PLLRDY
: 1;
6956 extern __at(0x0FD2) volatile __OSCCON2bits_t OSCCON2bits
;
6958 #define _LFIOFS 0x01
6959 #define _MFIOFS 0x02
6961 #define _SOSCGO 0x08
6962 #define _MFIOSEL 0x10
6963 #define _SOSCRUN 0x40
6964 #define _PLLRDY 0x80
6966 //==============================================================================
6969 //==============================================================================
6972 extern __at(0x0FD3) __sfr OSCCON
;
6980 unsigned HFIOFS
: 1;
7014 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits
;
7018 #define _HFIOFS 0x04
7026 //==============================================================================
7029 //==============================================================================
7032 extern __at(0x0FD5) __sfr T0CON
;
7044 unsigned T08BIT
: 1;
7045 unsigned TMR0ON
: 1;
7055 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits
;
7063 #define _T08BIT 0x40
7064 #define _TMR0ON 0x80
7066 //==============================================================================
7068 extern __at(0x0FD6) __sfr TMR0
;
7069 extern __at(0x0FD6) __sfr TMR0L
;
7070 extern __at(0x0FD7) __sfr TMR0H
;
7072 //==============================================================================
7075 extern __at(0x0FD8) __sfr STATUS
;
7089 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits
;
7097 //==============================================================================
7099 extern __at(0x0FD9) __sfr FSR2L
;
7100 extern __at(0x0FDA) __sfr FSR2H
;
7101 extern __at(0x0FDB) __sfr PLUSW2
;
7102 extern __at(0x0FDC) __sfr PREINC2
;
7103 extern __at(0x0FDD) __sfr POSTDEC2
;
7104 extern __at(0x0FDE) __sfr POSTINC2
;
7105 extern __at(0x0FDF) __sfr INDF2
;
7106 extern __at(0x0FE0) __sfr BSR
;
7107 extern __at(0x0FE1) __sfr FSR1L
;
7108 extern __at(0x0FE2) __sfr FSR1H
;
7109 extern __at(0x0FE3) __sfr PLUSW1
;
7110 extern __at(0x0FE4) __sfr PREINC1
;
7111 extern __at(0x0FE5) __sfr POSTDEC1
;
7112 extern __at(0x0FE6) __sfr POSTINC1
;
7113 extern __at(0x0FE7) __sfr INDF1
;
7114 extern __at(0x0FE8) __sfr WREG
;
7115 extern __at(0x0FE9) __sfr FSR0L
;
7116 extern __at(0x0FEA) __sfr FSR0H
;
7117 extern __at(0x0FEB) __sfr PLUSW0
;
7118 extern __at(0x0FEC) __sfr PREINC0
;
7119 extern __at(0x0FED) __sfr POSTDEC0
;
7120 extern __at(0x0FEE) __sfr POSTINC0
;
7121 extern __at(0x0FEF) __sfr INDF0
;
7123 //==============================================================================
7126 extern __at(0x0FF0) __sfr INTCON3
;
7132 unsigned INT1IF
: 1;
7133 unsigned INT2IF
: 1;
7135 unsigned INT1IE
: 1;
7136 unsigned INT2IE
: 1;
7138 unsigned INT1IP
: 1;
7139 unsigned INT2IP
: 1;
7155 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits
;
7157 #define _INT1IF 0x01
7159 #define _INT2IF 0x02
7161 #define _INT1IE 0x08
7163 #define _INT2IE 0x10
7165 #define _INT1IP 0x40
7167 #define _INT2IP 0x80
7170 //==============================================================================
7173 //==============================================================================
7176 extern __at(0x0FF1) __sfr INTCON2
;
7184 unsigned TMR0IP
: 1;
7186 unsigned INTEDG2
: 1;
7187 unsigned INTEDG1
: 1;
7188 unsigned INTEDG0
: 1;
7189 unsigned NOT_RBPU
: 1;
7205 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits
;
7208 #define _TMR0IP 0x04
7209 #define _INTEDG2 0x10
7210 #define _INTEDG1 0x20
7211 #define _INTEDG0 0x40
7212 #define _NOT_RBPU 0x80
7215 //==============================================================================
7218 //==============================================================================
7221 extern __at(0x0FF2) __sfr INTCON
;
7228 unsigned INT0IF
: 1;
7229 unsigned TMR0IF
: 1;
7231 unsigned INT0IE
: 1;
7232 unsigned TMR0IE
: 1;
7233 unsigned PEIE_GIEL
: 1;
7234 unsigned GIE_GIEH
: 1;
7262 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits
;
7265 #define _INT0IF 0x02
7267 #define _TMR0IF 0x04
7270 #define _INT0IE 0x10
7272 #define _TMR0IE 0x20
7274 #define _PEIE_GIEL 0x40
7277 #define _GIE_GIEH 0x80
7281 //==============================================================================
7283 extern __at(0x0FF3) __sfr PROD
;
7284 extern __at(0x0FF3) __sfr PRODL
;
7285 extern __at(0x0FF4) __sfr PRODH
;
7286 extern __at(0x0FF5) __sfr TABLAT
;
7287 extern __at(0x0FF6) __sfr TBLPTR
;
7288 extern __at(0x0FF6) __sfr TBLPTRL
;
7289 extern __at(0x0FF7) __sfr TBLPTRH
;
7290 extern __at(0x0FF8) __sfr TBLPTRU
;
7291 extern __at(0x0FF9) __sfr PC
;
7292 extern __at(0x0FF9) __sfr PCL
;
7293 extern __at(0x0FFA) __sfr PCLATH
;
7294 extern __at(0x0FFB) __sfr PCLATU
;
7296 //==============================================================================
7299 extern __at(0x0FFC) __sfr STKPTR
;
7305 unsigned STKPTR0
: 1;
7306 unsigned STKPTR1
: 1;
7307 unsigned STKPTR2
: 1;
7308 unsigned STKPTR3
: 1;
7309 unsigned STKPTR4
: 1;
7311 unsigned STKUNF
: 1;
7312 unsigned STKFUL
: 1;
7324 unsigned STKOVF
: 1;
7329 unsigned STKPTR
: 5;
7340 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits
;
7342 #define _STKPTR0 0x01
7344 #define _STKPTR1 0x02
7346 #define _STKPTR2 0x04
7348 #define _STKPTR3 0x08
7350 #define _STKPTR4 0x10
7352 #define _STKUNF 0x40
7353 #define _STKFUL 0x80
7354 #define _STKOVF 0x80
7356 //==============================================================================
7358 extern __at(0x0FFD) __sfr TOS
;
7359 extern __at(0x0FFD) __sfr TOSL
;
7360 extern __at(0x0FFE) __sfr TOSH
;
7361 extern __at(0x0FFF) __sfr TOSU
;
7363 //==============================================================================
7365 // Configuration Bits
7367 //==============================================================================
7369 #define __CONFIG1H 0x300001
7370 #define __CONFIG2L 0x300002
7371 #define __CONFIG2H 0x300003
7372 #define __CONFIG3H 0x300005
7373 #define __CONFIG4L 0x300006
7374 #define __CONFIG5L 0x300008
7375 #define __CONFIG5H 0x300009
7376 #define __CONFIG6L 0x30000A
7377 #define __CONFIG6H 0x30000B
7378 #define __CONFIG7L 0x30000C
7379 #define __CONFIG7H 0x30000D
7381 //----------------------------- CONFIG1H Options -------------------------------
7383 #define _FOSC_LP_1H 0xF0 // LP oscillator.
7384 #define _FOSC_XT_1H 0xF1 // XT oscillator.
7385 #define _FOSC_HSHP_1H 0xF2 // HS oscillator (high power > 16 MHz).
7386 #define _FOSC_HSMP_1H 0xF3 // HS oscillator (medium power 4-16 MHz).
7387 #define _FOSC_ECHP_1H 0xF4 // EC oscillator, CLKOUT function on OSC2 (high power, >16 MHz).
7388 #define _FOSC_ECHPIO6_1H 0xF5 // EC oscillator (high power, >16 MHz).
7389 #define _FOSC_RC_1H 0xF6 // External RC oscillator, CLKOUT function on OSC2.
7390 #define _FOSC_RCIO6_1H 0xF7 // External RC oscillator.
7391 #define _FOSC_INTIO67_1H 0xF8 // Internal oscillator block.
7392 #define _FOSC_INTIO7_1H 0xF9 // Internal oscillator block, CLKOUT function on OSC2.
7393 #define _FOSC_ECMP_1H 0xFA // EC oscillator, CLKOUT function on OSC2 (medium power, 500 kHz-16 MHz).
7394 #define _FOSC_ECMPIO6_1H 0xFB // EC oscillator (medium power, 500 kHz-16 MHz).
7395 #define _FOSC_ECLP_1H 0xFC // EC oscillator, CLKOUT function on OSC2 (low power, <500 kHz).
7396 #define _FOSC_ECLPIO6_1H 0xFD // EC oscillator (low power, <500 kHz).
7397 #define _PLLCFG_OFF_1H 0xEF // Oscillator used directly.
7398 #define _PLLCFG_ON_1H 0xFF // Oscillator multiplied by 4.
7399 #define _PRICLKEN_OFF_1H 0xDF // Primary clock can be disabled by software.
7400 #define _PRICLKEN_ON_1H 0xFF // Primary clock is always enabled.
7401 #define _FCMEN_OFF_1H 0xBF // Fail-Safe Clock Monitor disabled.
7402 #define _FCMEN_ON_1H 0xFF // Fail-Safe Clock Monitor enabled.
7403 #define _IESO_OFF_1H 0x7F // Oscillator Switchover mode disabled.
7404 #define _IESO_ON_1H 0xFF // Oscillator Switchover mode enabled.
7406 //----------------------------- CONFIG2L Options -------------------------------
7408 #define _PWRTEN_ON_2L 0xFE // Power up timer enabled.
7409 #define _PWRTEN_OFF_2L 0xFF // Power up timer disabled.
7410 #define _BOREN_OFF_2L 0xF9 // Brown-out Reset disabled in hardware and software.
7411 #define _BOREN_ON_2L 0xFB // Brown-out Reset enabled and controlled by software (SBOREN is enabled).
7412 #define _BOREN_NOSLP_2L 0xFD // Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled).
7413 #define _BOREN_SBORDIS_2L 0xFF // Brown-out Reset enabled in hardware only (SBOREN is disabled).
7414 #define _BORV_285_2L 0xE7 // VBOR set to 2.85 V nominal.
7415 #define _BORV_250_2L 0xEF // VBOR set to 2.50 V nominal.
7416 #define _BORV_220_2L 0xF7 // VBOR set to 2.20 V nominal.
7417 #define _BORV_190_2L 0xFF // VBOR set to 1.90 V nominal.
7419 //----------------------------- CONFIG2H Options -------------------------------
7421 #define _WDTEN_OFF_2H 0xFC // Watch dog timer is always disabled. SWDTEN has no effect.
7422 #define _WDTEN_NOSLP_2H 0xFD // WDT is disabled in sleep, otherwise enabled. SWDTEN bit has no effect.
7423 #define _WDTEN_SWON_2H 0xFE // WDT is controlled by SWDTEN bit of the WDTCON register.
7424 #define _WDTEN_ON_2H 0xFF // WDT is always enabled. SWDTEN bit has no effect.
7425 #define _WDTPS_1_2H 0xC3 // 1:1.
7426 #define _WDTPS_2_2H 0xC7 // 1:2.
7427 #define _WDTPS_4_2H 0xCB // 1:4.
7428 #define _WDTPS_8_2H 0xCF // 1:8.
7429 #define _WDTPS_16_2H 0xD3 // 1:16.
7430 #define _WDTPS_32_2H 0xD7 // 1:32.
7431 #define _WDTPS_64_2H 0xDB // 1:64.
7432 #define _WDTPS_128_2H 0xDF // 1:128.
7433 #define _WDTPS_256_2H 0xE3 // 1:256.
7434 #define _WDTPS_512_2H 0xE7 // 1:512.
7435 #define _WDTPS_1024_2H 0xEB // 1:1024.
7436 #define _WDTPS_2048_2H 0xEF // 1:2048.
7437 #define _WDTPS_4096_2H 0xF3 // 1:4096.
7438 #define _WDTPS_8192_2H 0xF7 // 1:8192.
7439 #define _WDTPS_16384_2H 0xFB // 1:16384.
7440 #define _WDTPS_32768_2H 0xFF // 1:32768.
7442 //----------------------------- CONFIG3H Options -------------------------------
7444 #define _CCP2MX_PORTB3_3H 0xFE // CCP2 input/output is multiplexed with RB3.
7445 #define _CCP2MX_PORTC1_3H 0xFF // CCP2 input/output is multiplexed with RC1.
7446 #define _PBADEN_OFF_3H 0xFD // PORTB<5:0> pins are configured as digital I/O on Reset.
7447 #define _PBADEN_ON_3H 0xFF // PORTB<5:0> pins are configured as analog input channels on Reset.
7448 #define _CCP3MX_PORTE0_3H 0xFB // P3A/CCP3 input/output is mulitplexed with RE0.
7449 #define _CCP3MX_PORTB5_3H 0xFF // P3A/CCP3 input/output is multiplexed with RB5.
7450 #define _HFOFST_OFF_3H 0xF7 // HFINTOSC output and ready status are delayed by the oscillator stable status.
7451 #define _HFOFST_ON_3H 0xFF // HFINTOSC output and ready status are not delayed by the oscillator stable status.
7452 #define _T3CMX_PORTB5_3H 0xEF // T3CKI is on RB5.
7453 #define _T3CMX_PORTC0_3H 0xFF // T3CKI is on RC0.
7454 #define _P2BMX_PORTC0_3H 0xDF // P2B is on RC0.
7455 #define _P2BMX_PORTD2_3H 0xFF // P2B is on RD2.
7456 #define _MCLRE_INTMCLR_3H 0x7F // RE3 input pin enabled; MCLR disabled.
7457 #define _MCLRE_EXTMCLR_3H 0xFF // MCLR pin enabled, RE3 input pin disabled.
7459 //----------------------------- CONFIG4L Options -------------------------------
7461 #define _STVREN_OFF_4L 0xFE // Stack full/underflow will not cause Reset.
7462 #define _STVREN_ON_4L 0xFF // Stack full/underflow will cause Reset.
7463 #define _LVP_OFF_4L 0xFB // Single-Supply ICSP disabled.
7464 #define _LVP_ON_4L 0xFF // Single-Supply ICSP enabled if MCLRE is also 1.
7465 #define _XINST_OFF_4L 0xBF // Instruction set extension and Indexed Addressing mode disabled (Legacy mode).
7466 #define _XINST_ON_4L 0xFF // Instruction set extension and Indexed Addressing mode enabled.
7467 #define _DEBUG_ON_4L 0x7F // Enabled.
7468 #define _DEBUG_OFF_4L 0xFF // Disabled.
7470 //----------------------------- CONFIG5L Options -------------------------------
7472 #define _CP0_ON_5L 0xFE // Block 0 (000800-001FFFh) code-protected.
7473 #define _CP0_OFF_5L 0xFF // Block 0 (000800-001FFFh) not code-protected.
7474 #define _CP1_ON_5L 0xFD // Block 1 (002000-003FFFh) code-protected.
7475 #define _CP1_OFF_5L 0xFF // Block 1 (002000-003FFFh) not code-protected.
7477 //----------------------------- CONFIG5H Options -------------------------------
7479 #define _CPB_ON_5H 0xBF // Boot block (000000-0007FFh) code-protected.
7480 #define _CPB_OFF_5H 0xFF // Boot block (000000-0007FFh) not code-protected.
7481 #define _CPD_ON_5H 0x7F // Data EEPROM code-protected.
7482 #define _CPD_OFF_5H 0xFF // Data EEPROM not code-protected.
7484 //----------------------------- CONFIG6L Options -------------------------------
7486 #define _WRT0_ON_6L 0xFE // Block 0 (000800-001FFFh) write-protected.
7487 #define _WRT0_OFF_6L 0xFF // Block 0 (000800-001FFFh) not write-protected.
7488 #define _WRT1_ON_6L 0xFD // Block 1 (002000-003FFFh) write-protected.
7489 #define _WRT1_OFF_6L 0xFF // Block 1 (002000-003FFFh) not write-protected.
7491 //----------------------------- CONFIG6H Options -------------------------------
7493 #define _WRTC_ON_6H 0xDF // Configuration registers (300000-3000FFh) write-protected.
7494 #define _WRTC_OFF_6H 0xFF // Configuration registers (300000-3000FFh) not write-protected.
7495 #define _WRTB_ON_6H 0xBF // Boot Block (000000-0007FFh) write-protected.
7496 #define _WRTB_OFF_6H 0xFF // Boot Block (000000-0007FFh) not write-protected.
7497 #define _WRTD_ON_6H 0x7F // Data EEPROM write-protected.
7498 #define _WRTD_OFF_6H 0xFF // Data EEPROM not write-protected.
7500 //----------------------------- CONFIG7L Options -------------------------------
7502 #define _EBTR0_ON_7L 0xFE // Block 0 (000800-001FFFh) protected from table reads executed in other blocks.
7503 #define _EBTR0_OFF_7L 0xFF // Block 0 (000800-001FFFh) not protected from table reads executed in other blocks.
7504 #define _EBTR1_ON_7L 0xFD // Block 1 (002000-003FFFh) protected from table reads executed in other blocks.
7505 #define _EBTR1_OFF_7L 0xFF // Block 1 (002000-003FFFh) not protected from table reads executed in other blocks.
7507 //----------------------------- CONFIG7H Options -------------------------------
7509 #define _EBTRB_ON_7H 0xBF // Boot Block (000000-0007FFh) protected from table reads executed in other blocks.
7510 #define _EBTRB_OFF_7H 0xFF // Boot Block (000000-0007FFh) not protected from table reads executed in other blocks.
7512 //==============================================================================
7514 #define __DEVID1 0x3FFFFE
7515 #define __DEVID2 0x3FFFFF
7517 #define __IDLOC0 0x200000
7518 #define __IDLOC1 0x200001
7519 #define __IDLOC2 0x200002
7520 #define __IDLOC3 0x200003
7521 #define __IDLOC4 0x200004
7522 #define __IDLOC5 0x200005
7523 #define __IDLOC6 0x200006
7524 #define __IDLOC7 0x200007
7526 #endif // #ifndef __PIC18F44K22_H__