/tags/sdcc-310-pre3/device/non-free/include/pic14/pic16f887.h

# · C++ Header · 1797 lines · 1415 code · 215 blank · 167 comment · 0 complexity · b443c4163797c3eaa6d71189c7835fea MD5 · raw file

Large files are truncated click here to view the full file

  1. //
  2. // Register Declarations for Microchip 16F887 Processor
  3. //
  4. //
  5. // This header file was automatically generated by:
  6. //
  7. // inc2h.pl V4850
  8. //
  9. // Copyright (c) 2002, Kevin L. Pauba, All Rights Reserved
  10. //
  11. // SDCC is licensed under the GNU Public license (GPL) v2. Note that
  12. // this license covers the code to the compiler and other executables,
  13. // but explicitly does not cover any code or objects generated by sdcc.
  14. // We have not yet decided on a license for the run time libraries, but
  15. // it will not put any requirements on code linked against it. See:
  16. //
  17. // http://www.gnu.org/copyleft/gpl/html
  18. //
  19. // See http://sdcc.sourceforge.net/ for the latest information on sdcc.
  20. //
  21. //
  22. #ifndef P16F887_H
  23. #define P16F887_H
  24. //
  25. // Register addresses.
  26. //
  27. #define INDF_ADDR 0x0000
  28. #define TMR0_ADDR 0x0001
  29. #define PCL_ADDR 0x0002
  30. #define STATUS_ADDR 0x0003
  31. #define FSR_ADDR 0x0004
  32. #define PORTA_ADDR 0x0005
  33. #define PORTB_ADDR 0x0006
  34. #define PORTC_ADDR 0x0007
  35. #define PORTD_ADDR 0x0008
  36. #define PORTE_ADDR 0x0009
  37. #define PCLATH_ADDR 0x000A
  38. #define INTCON_ADDR 0x000B
  39. #define PIR1_ADDR 0x000C
  40. #define PIR2_ADDR 0x000D
  41. #define TMR1L_ADDR 0x000E
  42. #define TMR1H_ADDR 0x000F
  43. #define T1CON_ADDR 0x0010
  44. #define TMR2_ADDR 0x0011
  45. #define T2CON_ADDR 0x0012
  46. #define SSPBUF_ADDR 0x0013
  47. #define SSPCON_ADDR 0x0014
  48. #define CCPR1L_ADDR 0x0015
  49. #define CCPR1H_ADDR 0x0016
  50. #define CCP1CON_ADDR 0x0017
  51. #define RCSTA_ADDR 0x0018
  52. #define TXREG_ADDR 0x0019
  53. #define RCREG_ADDR 0x001A
  54. #define CCPR2L_ADDR 0x001B
  55. #define CCPR2H_ADDR 0x001C
  56. #define CCP2CON_ADDR 0x001D
  57. #define ADRESH_ADDR 0x001E
  58. #define ADCON0_ADDR 0x001F
  59. #define OPTION_REG_ADDR 0x0081
  60. #define TRISA_ADDR 0x0085
  61. #define TRISB_ADDR 0x0086
  62. #define TRISC_ADDR 0x0087
  63. #define TRISD_ADDR 0x0088
  64. #define TRISE_ADDR 0x0089
  65. #define PIE1_ADDR 0x008C
  66. #define PIE2_ADDR 0x008D
  67. #define PCON_ADDR 0x008E
  68. #define OSCCON_ADDR 0x008F
  69. #define OSCTUNE_ADDR 0x0090
  70. #define SSPCON2_ADDR 0x0091
  71. #define PR2_ADDR 0x0092
  72. #define SSPADD_ADDR 0x0093
  73. #define SSPMSK_ADDR 0x0093
  74. #define MSK_ADDR 0x0093
  75. #define SSPSTAT_ADDR 0x0094
  76. #define WPUB_ADDR 0x0095
  77. #define IOCB_ADDR 0x0096
  78. #define VRCON_ADDR 0x0097
  79. #define TXSTA_ADDR 0x0098
  80. #define SPBRG_ADDR 0x0099
  81. #define SPBRGH_ADDR 0x009A
  82. #define PWM1CON_ADDR 0x009B
  83. #define ECCPAS_ADDR 0x009C
  84. #define PSTRCON_ADDR 0x009D
  85. #define ADRESL_ADDR 0x009E
  86. #define ADCON1_ADDR 0x009F
  87. #define WDTCON_ADDR 0x0105
  88. #define CM1CON0_ADDR 0x0107
  89. #define CM2CON0_ADDR 0x0108
  90. #define CM2CON1_ADDR 0x0109
  91. #define EEDATA_ADDR 0x010C
  92. #define EEDAT_ADDR 0x010C
  93. #define EEADR_ADDR 0x010D
  94. #define EEDATH_ADDR 0x010E
  95. #define EEADRH_ADDR 0x010F
  96. #define SRCON_ADDR 0x0185
  97. #define BAUDCTL_ADDR 0x0187
  98. #define ANSEL_ADDR 0x0188
  99. #define ANSELH_ADDR 0x0189
  100. #define EECON1_ADDR 0x018C
  101. #define EECON2_ADDR 0x018D
  102. //
  103. // Memory organization.
  104. //
  105. // LIST
  106. // P16F887.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
  107. // NOLIST
  108. // This header file defines configurations, registers, and other useful bits of
  109. // information for the PIC16F887 microcontroller. These names are taken to match
  110. // the data sheets as closely as possible.
  111. // Note that the processor must be selected before this file is
  112. // included. The processor may be selected the following ways:
  113. // 1. Command line switch:
  114. // C:\ MPASM MYFILE.ASM /PIC16F887
  115. // 2. LIST directive in the source file
  116. // LIST P=PIC16F887
  117. // 3. Processor Type entry in the MPASM full-screen interface
  118. //==========================================================================
  119. //
  120. // Revision History
  121. //
  122. //==========================================================================
  123. //
  124. //1.00 11/18/05 Original
  125. //
  126. //==========================================================================
  127. //
  128. // Verify Processor
  129. //
  130. //==========================================================================
  131. // IFNDEF __16F887
  132. // MESSG "Processor-header file mismatch. Verify selected processor."
  133. // ENDIF
  134. //==========================================================================
  135. //
  136. // Register Definitions
  137. //
  138. //==========================================================================
  139. #define W 0x0000
  140. #define F 0x0001
  141. //----- Register Files------------------------------------------------------
  142. extern __sfr __at (INDF_ADDR) INDF;
  143. extern __sfr __at (TMR0_ADDR) TMR0;
  144. extern __sfr __at (PCL_ADDR) PCL;
  145. extern __sfr __at (STATUS_ADDR) STATUS;
  146. extern __sfr __at (FSR_ADDR) FSR;
  147. extern __sfr __at (PORTA_ADDR) PORTA;
  148. extern __sfr __at (PORTB_ADDR) PORTB;
  149. extern __sfr __at (PORTC_ADDR) PORTC;
  150. extern __sfr __at (PORTD_ADDR) PORTD;
  151. extern __sfr __at (PORTE_ADDR) PORTE;
  152. extern __sfr __at (PCLATH_ADDR) PCLATH;
  153. extern __sfr __at (INTCON_ADDR) INTCON;
  154. extern __sfr __at (PIR1_ADDR) PIR1;
  155. extern __sfr __at (PIR2_ADDR) PIR2;
  156. extern __sfr __at (TMR1L_ADDR) TMR1L;
  157. extern __sfr __at (TMR1H_ADDR) TMR1H;
  158. extern __sfr __at (T1CON_ADDR) T1CON;
  159. extern __sfr __at (TMR2_ADDR) TMR2;
  160. extern __sfr __at (T2CON_ADDR) T2CON;
  161. extern __sfr __at (SSPBUF_ADDR) SSPBUF;
  162. extern __sfr __at (SSPCON_ADDR) SSPCON;
  163. extern __sfr __at (CCPR1L_ADDR) CCPR1L;
  164. extern __sfr __at (CCPR1H_ADDR) CCPR1H;
  165. extern __sfr __at (CCP1CON_ADDR) CCP1CON;
  166. extern __sfr __at (RCSTA_ADDR) RCSTA;
  167. extern __sfr __at (TXREG_ADDR) TXREG;
  168. extern __sfr __at (RCREG_ADDR) RCREG;
  169. extern __sfr __at (CCPR2L_ADDR) CCPR2L;
  170. extern __sfr __at (CCPR2H_ADDR) CCPR2H;
  171. extern __sfr __at (CCP2CON_ADDR) CCP2CON;
  172. extern __sfr __at (ADRESH_ADDR) ADRESH;
  173. extern __sfr __at (ADCON0_ADDR) ADCON0;
  174. extern __sfr __at (OPTION_REG_ADDR) OPTION_REG;
  175. extern __sfr __at (TRISA_ADDR) TRISA;
  176. extern __sfr __at (TRISB_ADDR) TRISB;
  177. extern __sfr __at (TRISC_ADDR) TRISC;
  178. extern __sfr __at (TRISD_ADDR) TRISD;
  179. extern __sfr __at (TRISE_ADDR) TRISE;
  180. extern __sfr __at (PIE1_ADDR) PIE1;
  181. extern __sfr __at (PIE2_ADDR) PIE2;
  182. extern __sfr __at (PCON_ADDR) PCON;
  183. extern __sfr __at (OSCCON_ADDR) OSCCON;
  184. extern __sfr __at (OSCTUNE_ADDR) OSCTUNE;
  185. extern __sfr __at (SSPCON2_ADDR) SSPCON2;
  186. extern __sfr __at (PR2_ADDR) PR2;
  187. extern __sfr __at (SSPADD_ADDR) SSPADD;
  188. extern __sfr __at (SSPMSK_ADDR) SSPMSK;
  189. extern __sfr __at (MSK_ADDR) MSK;
  190. extern __sfr __at (SSPSTAT_ADDR) SSPSTAT;
  191. extern __sfr __at (WPUB_ADDR) WPUB;
  192. extern __sfr __at (IOCB_ADDR) IOCB;
  193. extern __sfr __at (VRCON_ADDR) VRCON;
  194. extern __sfr __at (TXSTA_ADDR) TXSTA;
  195. extern __sfr __at (SPBRG_ADDR) SPBRG;
  196. extern __sfr __at (SPBRGH_ADDR) SPBRGH;
  197. extern __sfr __at (PWM1CON_ADDR) PWM1CON;
  198. extern __sfr __at (ECCPAS_ADDR) ECCPAS;
  199. extern __sfr __at (PSTRCON_ADDR) PSTRCON;
  200. extern __sfr __at (ADRESL_ADDR) ADRESL;
  201. extern __sfr __at (ADCON1_ADDR) ADCON1;
  202. extern __sfr __at (WDTCON_ADDR) WDTCON;
  203. extern __sfr __at (CM1CON0_ADDR) CM1CON0;
  204. extern __sfr __at (CM2CON0_ADDR) CM2CON0;
  205. extern __sfr __at (CM2CON1_ADDR) CM2CON1;
  206. extern __sfr __at (EEDATA_ADDR) EEDATA;
  207. extern __sfr __at (EEDAT_ADDR) EEDAT;
  208. extern __sfr __at (EEADR_ADDR) EEADR;
  209. extern __sfr __at (EEDATH_ADDR) EEDATH;
  210. extern __sfr __at (EEADRH_ADDR) EEADRH;
  211. extern __sfr __at (SRCON_ADDR) SRCON;
  212. extern __sfr __at (BAUDCTL_ADDR) BAUDCTL;
  213. extern __sfr __at (ANSEL_ADDR) ANSEL;
  214. extern __sfr __at (ANSELH_ADDR) ANSELH;
  215. extern __sfr __at (EECON1_ADDR) EECON1;
  216. extern __sfr __at (EECON2_ADDR) EECON2;
  217. //----- BANK 0 REGISTER DEFINITIONS ----------------------------------------
  218. //----- STATUS Bits --------------------------------------------------------
  219. //----- INTCON Bits --------------------------------------------------------
  220. //----- PIR1 Bits ----------------------------------------------------------
  221. //----- PIR2 Bits ----------------------------------------------------------
  222. //----- T1CON Bits ---------------------------------------------------------
  223. //----- T2CON Bits ---------------------------------------------------------
  224. //----- SSPCON Bits --------------------------------------------------------
  225. //----- CCP1CON Bits -------------------------------------------------------
  226. //----- RCSTA Bits ---------------------------------------------------------
  227. //----- CCP2CON Bits -------------------------------------------------------
  228. //----- ADCON0 Bits --------------------------------------------------------
  229. //----- BANK 1 REGISTER DEFINITIONS ----------------------------------------
  230. //----- OPTION_REG Bits -----------------------------------------------------
  231. //----- PIE1 Bits ----------------------------------------------------------
  232. //----- PIE2 Bits ----------------------------------------------------------
  233. //----- PCON Bits ----------------------------------------------------------
  234. //----- OSCCON Bits --------------------------------------------------------
  235. //----- OSCTUNE Bits -------------------------------------------------------
  236. //----- SSPCON2 Bits --------------------------------------------------------
  237. //----- SSPSTAT Bits -------------------------------------------------------
  238. //----- WPUB Bits ----------------------------------------------------------
  239. //----- IOCB Bits ----------------------------------------------------------
  240. //----- VRCON Bits ---------------------------------------------------------
  241. //----- TXSTA Bits ---------------------------------------------------------
  242. //----- SPBRG Bits -------------------------------------------------------
  243. //----- SPBRGH Bits -------------------------------------------------------
  244. //----- PWM1CON Bits -------------------------------------------------------
  245. //----- ECCPAS Bits --------------------------------------------------------
  246. //----- PSTRCON Bits --------------------------------------------------------
  247. //----- ADCON1 Bits --------------------------------------------------------
  248. //----- BANK 2 REGISTER DEFINITIONS ----------------------------------------
  249. //----- WDTCON Bits --------------------------------------------------------
  250. //----- CM1CON0 Bits -------------------------------------------------------
  251. //----- CM2CON0 Bits -------------------------------------------------------
  252. //----- CM2CON1 Bits -------------------------------------------------------
  253. //----- BANK 3 REGISTER DEFINITIONS ----------------------------------------
  254. //----- SRCON Bits ----------------------------------------------------------
  255. //----- BAUDCTL Bits -------------------------------------------------------
  256. //----- ANSEL Bits ---------------------------------------------------------
  257. //----- ANSELH Bits --------------------------------------------------------
  258. //----- EECON1 Bits --------------------------------------------------------
  259. //==========================================================================
  260. //
  261. // RAM Definition
  262. //
  263. //==========================================================================
  264. // __MAXRAM H'1FF'
  265. // __BADRAM H'18E'-H'18F'
  266. //==========================================================================
  267. //
  268. // Configuration Bits
  269. //
  270. //==========================================================================
  271. #define _CONFIG1 0x2007
  272. #define _CONFIG2 0x2008
  273. //----- Configuration Word1 ------------------------------------------------
  274. #define _DEBUG_ON 0x1FFF
  275. #define _DEBUG_OFF 0x3FFF
  276. #define _LVP_ON 0x3FFF
  277. #define _LVP_OFF 0x2FFF
  278. #define _FCMEN_ON 0x3FFF
  279. #define _FCMEN_OFF 0x37FF
  280. #define _IESO_ON 0x3FFF
  281. #define _IESO_OFF 0x3BFF
  282. #define _BOR_ON 0x3FFF
  283. #define _BOR_NSLEEP 0x3EFF
  284. #define _BOR_SBODEN 0x3DFF
  285. #define _BOR_OFF 0x3CFF
  286. #define _CPD_ON 0x3F7F
  287. #define _CPD_OFF 0x3FFF
  288. #define _CP_ON 0x3FBF
  289. #define _CP_OFF 0x3FFF
  290. #define _MCLRE_ON 0x3FFF
  291. #define _MCLRE_OFF 0x3FDF
  292. #define _PWRTE_ON 0x3FEF
  293. #define _PWRTE_OFF 0x3FFF
  294. #define _WDT_ON 0x3FFF
  295. #define _WDT_OFF 0x3FF7
  296. #define _LP_OSC 0x3FF8
  297. #define _XT_OSC 0x3FF9
  298. #define _HS_OSC 0x3FFA
  299. #define _EC_OSC 0x3FFB
  300. #define _INTRC_OSC_NOCLKOUT 0x3FFC
  301. #define _INTRC_OSC_CLKOUT 0x3FFD
  302. #define _EXTRC_OSC_NOCLKOUT 0x3FFE
  303. #define _EXTRC_OSC_CLKOUT 0x3FFF
  304. #define _INTOSCIO 0x3FFC
  305. #define _INTOSC 0x3FFD
  306. #define _EXTRCIO 0x3FFE
  307. #define _EXTRC 0x3FFF
  308. //----- Configuration Word2 ------------------------------------------------
  309. #define _WRT_OFF 0x3FFF // No prog memmory write protection
  310. #define _WRT_256 0x3DFF // First 256 prog memmory write protected
  311. #define _WRT_1FOURTH 0x3BFF // First quarter prog memmory write protected
  312. #define _WRT_HALF 0x39FF // First half memmory write protected
  313. #define _BOR21V 0x3EFF
  314. #define _BOR40V 0x3FFF
  315. // LIST
  316. // ----- ADCON0 bits --------------------
  317. typedef union {
  318. struct {
  319. unsigned char ADON:1;
  320. unsigned char GO:1;
  321. unsigned char CHS0:1;
  322. unsigned char CHS1:1;
  323. unsigned char CHS2:1;
  324. unsigned char CHS3:1;
  325. unsigned char ADCS0:1;
  326. unsigned char ADCS1:1;
  327. };
  328. struct {
  329. unsigned char :1;
  330. unsigned char NOT_DONE:1;
  331. unsigned char :1;
  332. unsigned char :1;
  333. unsigned char :1;
  334. unsigned char :1;
  335. unsigned char :1;
  336. unsigned char :1;
  337. };
  338. struct {
  339. unsigned char :1;
  340. unsigned char GO_DONE:1;
  341. unsigned char :1;
  342. unsigned char :1;
  343. unsigned char :1;
  344. unsigned char :1;
  345. unsigned char :1;
  346. unsigned char :1;
  347. };
  348. } __ADCON0bits_t;
  349. extern volatile __ADCON0bits_t __at(ADCON0_ADDR) ADCON0bits;
  350. // ----- ADCON1 bits --------------------
  351. typedef union {
  352. struct {
  353. unsigned char :1;
  354. unsigned char :1;
  355. unsigned char :1;
  356. unsigned char :1;
  357. unsigned char VCFG0:1;
  358. unsigned char VCFG1:1;
  359. unsigned char :1;
  360. unsigned char ADFM:1;
  361. };
  362. } __ADCON1bits_t;
  363. extern volatile __ADCON1bits_t __at(ADCON1_ADDR) ADCON1bits;
  364. // ----- ANSEL bits --------------------
  365. typedef union {
  366. struct {
  367. unsigned char ANS0:1;
  368. unsigned char ANS1:1;
  369. unsigned char ANS2:1;
  370. unsigned char ANS3:1;
  371. unsigned char ANS4:1;
  372. unsigned char ANS5:1;
  373. unsigned char ANS6:1;
  374. unsigned char ANS7:1;
  375. };
  376. } __ANSELbits_t;
  377. extern volatile __ANSELbits_t __at(ANSEL_ADDR) ANSELbits;
  378. // ----- ANSELH bits --------------------
  379. typedef union {
  380. struct {
  381. unsigned char ANS8:1;
  382. unsigned char ANS9:1;
  383. unsigned char ANS10:1;
  384. unsigned char ANS11:1;
  385. unsigned char ANS12:1;
  386. unsigned char ANS13:1;
  387. unsigned char :1;
  388. unsigned char :1;
  389. };
  390. } __ANSELHbits_t;
  391. extern volatile __ANSELHbits_t __at(ANSELH_ADDR) ANSELHbits;
  392. // ----- BAUDCTL bits --------------------
  393. typedef union {
  394. struct {
  395. unsigned char ABDEN:1;
  396. unsigned char WUE:1;
  397. unsigned char :1;
  398. unsigned char BRG16:1;
  399. unsigned char SCKP:1;
  400. unsigned char :1;
  401. unsigned char RCIDL:1;
  402. unsigned char ABDOVF:1;
  403. };
  404. } __BAUDCTLbits_t;
  405. extern volatile __BAUDCTLbits_t __at(BAUDCTL_ADDR) BAUDCTLbits;
  406. // ----- CCP1CON bits --------------------
  407. typedef union {
  408. struct {
  409. unsigned char CCP1M0:1;
  410. unsigned char CCP1M1:1;
  411. unsigned char CCP1M2:1;
  412. unsigned char CCP1M3:1;
  413. unsigned char DC1B0:1;
  414. unsigned char DC1B1:1;
  415. unsigned char P1M0:1;
  416. unsigned char P1M1:1;
  417. };
  418. struct {
  419. unsigned char :1;
  420. unsigned char :1;
  421. unsigned char :1;
  422. unsigned char :1;
  423. unsigned char CCP1Y:1;
  424. unsigned char CCP1X:1;
  425. unsigned char :1;
  426. unsigned char :1;
  427. };
  428. } __CCP1CONbits_t;
  429. extern volatile __CCP1CONbits_t __at(CCP1CON_ADDR) CCP1CONbits;
  430. // ----- CCP2CON bits --------------------
  431. typedef union {
  432. struct {
  433. unsigned char CCP2M0:1;
  434. unsigned char CCP2M1:1;
  435. unsigned char CCP2M2:1;
  436. unsigned char CCP2M3:1;
  437. unsigned char CCP2Y:1;
  438. unsigned char CCP2X:1;
  439. unsigned char :1;
  440. unsigned char :1;
  441. };
  442. struct {
  443. unsigned char :1;
  444. unsigned char :1;
  445. unsigned char :1;
  446. unsigned char :1;
  447. unsigned char DC2B0:1;
  448. unsigned char DC2B1:1;
  449. unsigned char :1;
  450. unsigned char :1;
  451. };
  452. } __CCP2CONbits_t;
  453. extern volatile __CCP2CONbits_t __at(CCP2CON_ADDR) CCP2CONbits;
  454. // ----- CM1CON0 bits --------------------
  455. typedef union {
  456. struct {
  457. unsigned char C1CH0:1;
  458. unsigned char C1CH1:1;
  459. unsigned char C1R:1;
  460. unsigned char :1;
  461. unsigned char C1POL:1;
  462. unsigned char C1OE:1;
  463. unsigned char C1OUT:1;
  464. unsigned char C1ON:1;
  465. };
  466. } __CM1CON0bits_t;
  467. extern volatile __CM1CON0bits_t __at(CM1CON0_ADDR) CM1CON0bits;
  468. // ----- CM2CON0 bits --------------------
  469. typedef union {
  470. struct {
  471. unsigned char C2CH0:1;
  472. unsigned char C2CH1:1;
  473. unsigned char C2R:1;
  474. unsigned char :1;
  475. unsigned char C2POL:1;
  476. unsigned char C2OE:1;
  477. unsigned char C2OUT:1;
  478. unsigned char C2ON:1;
  479. };
  480. } __CM2CON0bits_t;
  481. extern volatile __CM2CON0bits_t __at(CM2CON0_ADDR) CM2CON0bits;
  482. // ----- CM2CON1 bits --------------------
  483. typedef union {
  484. struct {
  485. unsigned char C2SYNC:1;
  486. unsigned char T1GSS:1;
  487. unsigned char :1;
  488. unsigned char :1;
  489. unsigned char C2RSEL:1;
  490. unsigned char C1RSEL:1;
  491. unsigned char MC2OUT:1;
  492. unsigned char MC1OUT:1;
  493. };
  494. } __CM2CON1bits_t;
  495. extern volatile __CM2CON1bits_t __at(CM2CON1_ADDR) CM2CON1bits;
  496. // ----- ECCPAS bits --------------------
  497. typedef union {
  498. struct {
  499. unsigned char PSSBD0:1;
  500. unsigned char PSSBD1:1;
  501. unsigned char PSSAC0:1;
  502. unsigned char PSSAC1:1;
  503. unsigned char ECCPAS0:1;
  504. unsigned char ECCPAS1:1;
  505. unsigned char ECCPAS2:1;
  506. unsigned char ECCPASE:1;
  507. };
  508. } __ECCPASbits_t;
  509. extern volatile __ECCPASbits_t __at(ECCPAS_ADDR) ECCPASbits;
  510. // ----- EECON1 bits --------------------
  511. typedef union {
  512. struct {
  513. unsigned char RD:1;
  514. unsigned char WR:1;
  515. unsigned char WREN:1;
  516. unsigned char WRERR:1;
  517. unsigned char :1;
  518. unsigned char :1;
  519. unsigned char :1;
  520. unsigned char EEPGD:1;
  521. };
  522. } __EECON1bits_t;
  523. extern volatile __EECON1bits_t __at(EECON1_ADDR) EECON1bits;
  524. // ----- INTCON bits --------------------
  525. typedef union {
  526. struct {
  527. unsigned char RBIF:1;
  528. unsigned char INTF:1;
  529. unsigned char T0IF:1;
  530. unsigned char RBIE:1;
  531. unsigned char INTE:1;
  532. unsigned char T0IE:1;
  533. unsigned char PEIE:1;
  534. unsigned char GIE:1;
  535. };
  536. struct {
  537. unsigned char :1;
  538. unsigned char :1;
  539. unsigned char TMR0IF:1;
  540. unsigned char :1;
  541. unsigned char :1;
  542. unsigned char TMR0IE:1;
  543. unsigned char :1;
  544. unsigned char :1;
  545. };
  546. } __INTCONbits_t;
  547. extern volatile __INTCONbits_t __at(INTCON_ADDR) INTCONbits;
  548. // ----- IOCB bits --------------------
  549. typedef union {
  550. struct {
  551. unsigned char IOCB0:1;
  552. unsigned char IOCB1:1;
  553. unsigned char IOCB2:1;
  554. unsigned char IOCB3:1;
  555. unsigned char IOCB4:1;
  556. unsigned char IOCB5:1;
  557. unsigned char IOCB6:1;
  558. unsigned char IOCB7:1;
  559. };
  560. } __IOCBbits_t;
  561. extern volatile __IOCBbits_t __at(IOCB_ADDR) IOCBbits;
  562. // ----- OPTION_REG bits --------------------
  563. typedef union {
  564. struct {
  565. unsigned char PS0:1;
  566. unsigned char PS1:1;
  567. unsigned char PS2:1;
  568. unsigned char PSA:1;
  569. unsigned char T0SE:1;
  570. unsigned char T0CS:1;
  571. unsigned char INTEDG:1;
  572. unsigned char NOT_RBPU:1;
  573. };
  574. } __OPTION_REGbits_t;
  575. extern volatile __OPTION_REGbits_t __at(OPTION_REG_ADDR) OPTION_REGbits;
  576. // ----- OSCCON bits --------------------
  577. typedef union {
  578. struct {
  579. unsigned char SCS:1;
  580. unsigned char LTS:1;
  581. unsigned char HTS:1;
  582. unsigned char OSTS:1;
  583. unsigned char IRCF0:1;
  584. unsigned char IRCF1:1;
  585. unsigned char IRCF2:1;
  586. unsigned char :1;
  587. };
  588. } __OSCCONbits_t;
  589. extern volatile __OSCCONbits_t __at(OSCCON_ADDR) OSCCONbits;
  590. // ----- OSCTUNE bits --------------------
  591. typedef union {
  592. struct {
  593. unsigned char TUN0:1;
  594. unsigned char TUN1:1;
  595. unsigned char TUN2:1;
  596. unsigned char TUN3:1;
  597. unsigned char TUN4:1;
  598. unsigned char :1;
  599. unsigned char :1;
  600. unsigned char :1;
  601. };
  602. } __OSCTUNEbits_t;
  603. extern volatile __OSCTUNEbits_t __at(OSCTUNE_ADDR) OSCTUNEbits;
  604. // ----- PCON bits --------------------
  605. typedef union {
  606. struct {
  607. unsigned char NOT_BO:1;
  608. unsigned char NOT_POR:1;
  609. unsigned char :1;
  610. unsigned char :1;
  611. unsigned char SBOREN:1;
  612. unsigned char ULPWUE:1;
  613. unsigned char :1;
  614. unsigned char :1;
  615. };
  616. struct {
  617. unsigned char NOT_BOR:1;
  618. unsigned char :1;
  619. unsigned char :1;
  620. unsigned char :1;
  621. unsigned char :1;
  622. unsigned char :1;
  623. unsigned char :1;
  624. unsigned char :1;
  625. };
  626. } __PCONbits_t;
  627. extern volatile __PCONbits_t __at(PCON_ADDR) PCONbits;
  628. // ----- PIE1 bits --------------------
  629. typedef union {
  630. struct {
  631. unsigned char TMR1IE:1;
  632. unsigned char TMR2IE:1;
  633. unsigned char CCP1IE:1;
  634. unsigned char SSPIE:1;
  635. unsigned char TXIE:1;
  636. unsigned char RCIE:1;
  637. unsigned char ADIE:1;
  638. unsigned char :1;
  639. };
  640. } __PIE1bits_t;
  641. extern volatile __PIE1bits_t __at(PIE1_ADDR) PIE1bits;
  642. // ----- PIE2 bits --------------------
  643. typedef union {
  644. struct {
  645. unsigned char CCP2IE:1;
  646. unsigned char :1;
  647. unsigned char ULPWUIE:1;
  648. unsigned char BCLIE:1;
  649. unsigned char EEIE:1;
  650. unsigned char C1IE:1;
  651. unsigned char C2IE:1;
  652. unsigned char OSFIE:1;
  653. };
  654. } __PIE2bits_t;
  655. extern volatile __PIE2bits_t __at(PIE2_ADDR) PIE2bits;
  656. // ----- PIR1 bits --------------------
  657. typedef union {
  658. struct {
  659. unsigned char TMR1IF:1;
  660. unsigned char TMR2IF:1;
  661. unsigned char CCP1IF:1;
  662. unsigned char SSPIF:1;
  663. unsigned char TXIF:1;
  664. unsigned char RCIF:1;
  665. unsigned char ADIF:1;
  666. unsigned char :1;
  667. };
  668. } __PIR1bits_t;
  669. extern volatile __PIR1bits_t __at(PIR1_ADDR) PIR1bits;
  670. // ----- PIR2 bits --------------------
  671. typedef union {
  672. struct {
  673. unsigned char CCP2IF:1;
  674. unsigned char :1;
  675. unsigned char ULPWUIF:1;
  676. unsigned char BCLIF:1;
  677. unsigned char EEIF:1;
  678. unsigned char C1IF:1;
  679. unsigned char C2IF:1;
  680. unsigned char OSFIF:1;
  681. };
  682. } __PIR2bits_t;
  683. extern volatile __PIR2bits_t __at(PIR2_ADDR) PIR2bits;
  684. // ----- PORTA bits --------------------
  685. typedef union {
  686. struct {
  687. unsigned char RA0:1;
  688. unsigned char RA1:1;
  689. unsigned char RA2:1;
  690. unsigned char RA3:1;
  691. unsigned char RA4:1;
  692. unsigned char RA5:1;
  693. unsigned char :1;
  694. unsigned char :1;
  695. };
  696. } __PORTAbits_t;
  697. extern volatile __PORTAbits_t __at(PORTA_ADDR) PORTAbits;
  698. // ----- PORTB bits --------------------
  699. typedef union {
  700. struct {
  701. unsigned char RB0:1;
  702. unsigned char RB1:1;
  703. unsigned char RB2:1;
  704. unsigned char RB3:1;
  705. unsigned char RB4:1;
  706. unsigned char RB5:1;
  707. unsigned char RB6:1;
  708. unsigned char RB7:1;
  709. };
  710. } __PORTBbits_t;
  711. extern volatile __PORTBbits_t __at(PORTB_ADDR) PORTBbits;
  712. // ----- PORTC bits --------------------
  713. typedef union {
  714. struct {
  715. unsigned char RC0:1;
  716. unsigned char RC1:1;
  717. unsigned char RC2:1;
  718. unsigned char RC3:1;
  719. unsigned char RC4:1;
  720. unsigned char RC5:1;
  721. unsigned char RC6:1;
  722. unsigned char RC7:1;
  723. };
  724. } __PORTCbits_t;
  725. extern volatile __PORTCbits_t __at(PORTC_ADDR) PORTCbits;
  726. // ----- PORTD bits --------------------
  727. typedef union {
  728. struct {
  729. unsigned char RD0:1;
  730. unsigned char RD1:1;
  731. unsigned char RD2:1;
  732. unsigned char RD3:1;
  733. unsigned char RD4:1;
  734. unsigned char RD5:1;
  735. unsigned char RD6:1;
  736. unsigned char RD7:1;
  737. };
  738. } __PORTDbits_t;
  739. extern volatile __PORTDbits_t __at(PORTD_ADDR) PORTDbits;
  740. // ----- PORTE bits --------------------
  741. typedef union {
  742. struct {
  743. unsigned char RE0:1;
  744. unsigned char RE1:1;
  745. unsigned char RE2:1;
  746. unsigned char :1;
  747. unsigned char :1;
  748. unsigned char :1;
  749. unsigned char :1;
  750. unsigned char :1;
  751. };
  752. } __PORTEbits_t;
  753. extern volatile __PORTEbits_t __at(PORTE_ADDR) PORTEbits;
  754. // ----- PSTRCON bits --------------------
  755. typedef union {
  756. struct {
  757. unsigned char STRA:1;
  758. unsigned char STRB:1;
  759. unsigned char STRC:1;
  760. unsigned char STRD:1;
  761. unsigned char STRSYNC:1;
  762. unsigned char :1;
  763. unsigned char :1;
  764. unsigned char :1;
  765. };
  766. } __PSTRCONbits_t;
  767. extern volatile __PSTRCONbits_t __at(PSTRCON_ADDR) PSTRCONbits;
  768. // ----- PWM1CON bits --------------------
  769. typedef union {
  770. struct {
  771. unsigned char PDC0:1;
  772. unsigned char PDC1:1;
  773. unsigned char PDC2:1;
  774. unsigned char PDC3:1;
  775. unsigned char PDC4:1;
  776. unsigned char PDC5:1;
  777. unsigned char PDC6:1;
  778. unsigned char PRSEN:1;
  779. };
  780. } __PWM1CONbits_t;
  781. extern volatile __PWM1CONbits_t __at(PWM1CON_ADDR) PWM1CONbits;
  782. // ----- RCSTA bits --------------------
  783. typedef union {
  784. struct {
  785. unsigned char RX9D:1;
  786. unsigned char OERR:1;
  787. unsigned char FERR:1;
  788. unsigned char ADDEN:1;
  789. unsigned char CREN:1;
  790. unsigned char SREN:1;
  791. unsigned char RX9:1;
  792. unsigned char SPEN:1;
  793. };
  794. struct {
  795. unsigned char RCD8:1;
  796. unsigned char :1;
  797. unsigned char :1;
  798. unsigned char :1;
  799. unsigned char :1;
  800. unsigned char :1;
  801. unsigned char RC9:1;
  802. unsigned char :1;
  803. };
  804. struct {
  805. unsigned char :1;
  806. unsigned char :1;
  807. unsigned char :1;
  808. unsigned char :1;
  809. unsigned char :1;
  810. unsigned char :1;
  811. unsigned char NOT_RC8:1;
  812. unsigned char :1;
  813. };
  814. struct {
  815. unsigned char :1;
  816. unsigned char :1;
  817. unsigned char :1;
  818. unsigned char :1;
  819. unsigned char :1;
  820. unsigned char :1;
  821. unsigned char RC8_9:1;
  822. unsigned char :1;
  823. };
  824. } __RCSTAbits_t;
  825. extern volatile __RCSTAbits_t __at(RCSTA_ADDR) RCSTAbits;
  826. // ----- SPBRG bits --------------------
  827. typedef union {
  828. struct {
  829. unsigned char BRG0:1;
  830. unsigned char BRG1:1;
  831. unsigned char BRG2:1;
  832. unsigned char BRG3:1;
  833. unsigned char BRG4:1;
  834. unsigned char BRG5:1;
  835. unsigned char BRG6:1;
  836. unsigned char BRG7:1;
  837. };
  838. } __SPBRGbits_t;
  839. extern volatile __SPBRGbits_t __at(SPBRG_ADDR) SPBRGbits;
  840. // ----- SPBRGH bits --------------------
  841. typedef union {
  842. struct {
  843. unsigned char BRG8:1;
  844. unsigned char BRG9:1;
  845. unsigned char BRG10:1;
  846. unsigned char BRG11:1;
  847. unsigned char BRG12:1;
  848. unsigned char BRG13:1;
  849. unsigned char BRG14:1;
  850. unsigned char BRG15:1;
  851. };
  852. } __SPBRGHbits_t;
  853. extern volatile __SPBRGHbits_t __at(SPBRGH_ADDR) SPBRGHbits;
  854. // ----- SRCON bits --------------------
  855. typedef union {
  856. struct {
  857. unsigned char FVREN:1;
  858. unsigned char :1;
  859. unsigned char PULSR:1;
  860. unsigned char PULSS:1;
  861. unsigned char C2REN:1;
  862. unsigned char C1SEN:1;
  863. unsigned char SR0:1;
  864. unsigned char SR1:1;
  865. };
  866. } __SRCONbits_t;
  867. extern volatile __SRCONbits_t __at(SRCON_ADDR) SRCONbits;
  868. // ----- SSPCON bits --------------------
  869. typedef union {
  870. struct {
  871. unsigned char SSPM0:1;
  872. unsigned char SSPM1:1;
  873. unsigned char SSPM2:1;
  874. unsigned char SSPM3:1;
  875. unsigned char CKP:1;
  876. unsigned char SSPEN:1;
  877. unsigned char SSPOV:1;
  878. unsigned char WCOL:1;
  879. };
  880. } __SSPCONbits_t;
  881. extern volatile __SSPCONbits_t __at(SSPCON_ADDR) SSPCONbits;
  882. // ----- SSPCON2 bits --------------------
  883. typedef union {
  884. struct {
  885. unsigned char SEN:1;
  886. unsigned char RSEN:1;
  887. unsigned char PEN:1;
  888. unsigned char RCEN:1;
  889. unsigned char ACKEN:1;
  890. unsigned char ACKDT:1;
  891. unsigned char ACKSTAT:1;
  892. unsigned char GCEN:1;
  893. };
  894. } __SSPCON2bits_t;
  895. extern volatile __SSPCON2bits_t __at(SSPCON2_ADDR) SSPCON2bits;
  896. // ----- SSPSTAT bits --------------------
  897. typedef union {
  898. struct {
  899. unsigned char BF:1;
  900. unsigned char UA:1;
  901. unsigned char R:1;
  902. unsigned char S:1;
  903. unsigned char P:1;
  904. unsigned char D:1;
  905. unsigned char CKE:1;
  906. unsigned char SMP:1;
  907. };
  908. struct {
  909. unsigned char :1;
  910. unsigned char :1;
  911. unsigned char I2C_READ:1;
  912. unsigned char I2C_START:1;
  913. unsigned char I2C_STOP:1;
  914. unsigned char I2C_DATA:1;
  915. unsigned char :1;
  916. unsigned char :1;
  917. };
  918. struct {
  919. unsigned char :1;
  920. unsigned char :1;
  921. unsigned char NOT_W:1;
  922. unsigned char :1;
  923. unsigned char :1;
  924. unsigned char NOT_A:1;
  925. unsigned char :1;
  926. unsigned char :1;
  927. };
  928. struct {
  929. unsigned char :1;
  930. unsigned char :1;
  931. unsigned char NOT_WRITE:1;
  932. unsigned char :1;
  933. unsigned char :1;
  934. unsigned char NOT_ADDRESS:1;
  935. unsigned char :1;
  936. unsigned char :1;
  937. };
  938. struct {
  939. unsigned char :1;
  940. unsigned char :1;
  941. unsigned char R_W:1;
  942. unsigned char :1;
  943. unsigned char :1;
  944. unsigned char D_A:1;
  945. unsigned char :1;
  946. unsigned char :1;
  947. };
  948. struct {
  949. unsigned char :1;
  950. unsigned char :1;
  951. unsigned char READ_WRITE:1;
  952. unsigned char :1;
  953. unsigned char :1;
  954. unsigned char DATA_ADDRESS:1;
  955. unsigned char :1;
  956. unsigned char :1;
  957. };
  958. } __SSPSTATbits_t;
  959. extern volatile __SSPSTATbits_t __at(SSPSTAT_ADDR) SSPSTATbits;
  960. // ----- STATUS bits --------------------
  961. typedef union {
  962. struct {
  963. unsigned char C:1;
  964. unsigned char DC:1;
  965. unsigned char Z:1;
  966. unsigned char NOT_PD:1;
  967. unsigned char NOT_TO:1;
  968. unsigned char RP0:1;
  969. unsigned char RP1:1;
  970. unsigned char IRP:1;
  971. };
  972. } __STATUSbits_t;
  973. extern volatile __STATUSbits_t __at(STATUS_ADDR) STATUSbits;
  974. // ----- T1CON bits --------------------
  975. typedef union {
  976. struct {
  977. unsigned char TMR1ON:1;
  978. unsigned char TMR1CS:1;
  979. unsigned char NOT_T1SYNC:1;
  980. unsigned char T1OSCEN:1;
  981. unsigned char T1CKPS0:1;
  982. unsigned char T1CKPS1:1;
  983. unsigned char TMR1GE:1;
  984. unsigned char T1GIV:1;
  985. };
  986. struct {
  987. unsigned char :1;
  988. unsigned char :1;
  989. unsigned char T1INSYNC:1;
  990. unsigned char :1;
  991. unsigned char :1;
  992. unsigned char :1;
  993. unsigned char :1;
  994. unsigned char :1;
  995. };
  996. struct {
  997. unsigned char :1;
  998. unsigned char :1;
  999. unsigned char T1SYNC:1;
  1000. unsigned char :1;
  1001. unsigned char :1;
  1002. unsigned char :1;
  1003. unsigned char :1;
  1004. unsigned char :1;
  1005. };
  1006. } __T1CONbits_t;
  1007. extern volatile __T1CONbits_t __at(T1CON_ADDR) T1CONbits;
  1008. // ----- T2CON bits --------------------
  1009. typedef union {
  1010. struct {
  1011. unsigned char T2CKPS0:1;
  1012. unsigned char T2CKPS1:1;
  1013. unsigned char TMR2ON:1;
  1014. unsigned char TOUTPS0:1;
  1015. unsigned char TOUTPS1:1;
  1016. unsigned char TOUTPS2:1;
  1017. unsigned char TOUTPS3:1;
  1018. unsigned char :1;
  1019. };
  1020. } __T2CONbits_t;
  1021. extern volatile __T2CONbits_t __at(T2CON_ADDR) T2CONbits;
  1022. // ----- TRISA bits --------------------
  1023. typedef union {
  1024. struct {
  1025. unsigned char TRISA0:1;
  1026. unsigned char TRISA1:1;
  1027. unsigned char TRISA2:1;
  1028. unsigned char TRISA3:1;
  1029. unsigned char TRISA4:1;
  1030. unsigned char TRISA5:1;
  1031. unsigned char :1;
  1032. unsigned char :1;
  1033. };
  1034. } __TRISAbits_t;
  1035. extern volatile __TRISAbits_t __at(TRISA_ADDR) TRISAbits;
  1036. // ----- TRISB bits --------------------
  1037. typedef union {
  1038. struct {
  1039. unsigned char TRISB0:1;
  1040. unsigned char TRISB1:1;
  1041. unsigned char TRISB2:1;
  1042. unsigned char TRISB3:1;
  1043. unsigned char TRISB4:1;
  1044. unsigned char TRISB5:1;
  1045. unsigned char TRISB6:1;
  1046. unsigned char TRISB7:1;
  1047. };
  1048. } __TRISBbits_t;
  1049. extern volatile __TRISBbits_t __at(TRISB_ADDR) TRISBbits;
  1050. // ----- TRISC bits --------------------
  1051. typedef union {
  1052. struct {
  1053. unsigned char TRISC0:1;
  1054. unsigned char TRISC1:1;
  1055. unsigned char TRISC2:1;
  1056. unsigned char TRISC3:1;
  1057. unsigned char TRISC4:1;
  1058. unsigned char TRISC5:1;
  1059. unsigned char TRISC6:1;
  1060. unsigned char TRISC7:1;
  1061. };
  1062. } __TRISCbits_t;
  1063. extern volatile __TRISCbits_t __at(TRISC_ADDR) TRISCbits;
  1064. // ----- TRISD bits --------------------
  1065. typedef union {
  1066. struct {
  1067. unsigned char TRISD0:1;
  1068. unsigned char TRISD1:1;
  1069. unsigned char TRISD2:1;
  1070. unsigned char TRISD3:1;
  1071. unsigned char TRISD4:1;
  1072. unsigned char TRISD5:1;
  1073. unsigned char TRISD6:1;
  1074. unsigned char TRISD7:1;
  1075. };
  1076. } __TRISDbits_t;
  1077. extern volatile __TRISDbits_t __at(TRISD_ADDR) TRISDbits;
  1078. // ----- TRISE bits --------------------
  1079. typedef union {
  1080. struct {
  1081. unsigned char TRISE0:1;
  1082. unsigned char TRISE1:1;
  1083. unsigned char TRISE2:1;
  1084. unsigned char :1;
  1085. unsigned char :1;
  1086. unsigned char :1;
  1087. unsigned char :1;
  1088. unsigned char :1;
  1089. };
  1090. } __TRISEbits_t;
  1091. extern volatile __TRISEbits_t __at(TRISE_ADDR) TRISEbits;
  1092. // ----- TXSTA bits --------------------
  1093. typedef union {
  1094. struct {
  1095. unsigned char TX9D:1;
  1096. unsigned char TRMT:1;
  1097. unsigned char BRGH:1;
  1098. unsigned char SENDB:1;
  1099. unsigned char SYNC:1;
  1100. unsigned char TXEN:1;
  1101. unsigned char TX9:1;
  1102. unsigned char CSRC:1;
  1103. };
  1104. struct {
  1105. unsigned char TXD8:1;
  1106. unsigned char :1;
  1107. unsigned char :1;
  1108. unsigned char :1;
  1109. unsigned char :1;
  1110. unsigned char :1;
  1111. unsigned char NOT_TX8:1;
  1112. unsigned char :1;
  1113. };
  1114. struct {
  1115. unsigned char :1;
  1116. unsigned char :1;
  1117. unsigned char :1;
  1118. unsigned char :1;
  1119. unsigned char :1;
  1120. unsigned char :1;
  1121. unsigned char TX8_9:1;
  1122. unsigned char :1;
  1123. };
  1124. } __TXSTAbits_t;
  1125. extern volatile __TXSTAbits_t __at(TXSTA_ADDR) TXSTAbits;
  1126. // ----- VRCON bits --------------------
  1127. typedef union {
  1128. struct {
  1129. unsigned char VR0:1;
  1130. unsigned char VR1:1;
  1131. unsigned char VR2:1;
  1132. unsigned char VR3:1;
  1133. unsigned char VRSS:1;
  1134. unsigned char VRR:1;
  1135. unsigned char VROE:1;
  1136. unsigned char VREN:1;
  1137. };
  1138. } __VRCONbits_t;
  1139. extern volatile __VRCONbits_t __at(VRCON_ADDR) VRCONbits;
  1140. // ----- WDTCON bits --------------------
  1141. typedef union {
  1142. struct {
  1143. unsigned char SWDTEN:1;
  1144. unsigned char WDTPS0:1;
  1145. unsigned char WDTPS1:1;
  1146. unsigned char WDTPS2:1;
  1147. unsigned char WDTPS3:1;
  1148. unsigned char :1;
  1149. unsigned char :1;
  1150. unsigned char :1;
  1151. };
  1152. } __WDTCONbits_t;
  1153. extern volatile __WDTCONbits_t __at(WDTCON_ADDR) WDTCONbits;
  1154. // ----- WPUB bits --------------------
  1155. typedef union {
  1156. struct {
  1157. unsigned char WPUB0:1;
  1158. unsigned char WPUB1:1;
  1159. unsigned char WPUB2:1;
  1160. unsigned char WPUB3:1;
  1161. unsigned char WPUB4:1;
  1162. unsigned char WPUB5:1;
  1163. unsigned char WPUB6:1;
  1164. unsigned char WPUB7:1;
  1165. };
  1166. } __WPUBbits_t;
  1167. extern volatile __WPUBbits_t __at(WPUB_ADDR) WPUBbits;
  1168. #ifndef NO_BIT_DEFINES
  1169. #define ADON ADCON0bits.ADON /* bit 0 */
  1170. #define GO ADCON0bits.GO /* bit 1 */
  1171. #define GO_DONE ADCON0bits.GO_DONE /* bit 1 */
  1172. #define NOT_DONE ADCON0bits.NOT_DONE /* bit 1 */
  1173. #define CHS0 ADCON0bits.CHS0 /* bit 2 */
  1174. #define CHS1 ADCON0bits.CHS1 /* bit 3 */
  1175. #define CHS2 ADCON0bits.CHS2 /* bit 4 */
  1176. #define CHS3 ADCON0bits.CHS3 /* bit 5 */
  1177. #define ADCS0 ADCON0bits.ADCS0 /* bit 6 */
  1178. #define ADCS1 ADCON0bits.ADCS1 /* bit 7 */
  1179. #define VCFG0 ADCON1bits.VCFG0 /* bit 4 */
  1180. #define VCFG1 ADCON1bits.VCFG1 /* bit 5 */
  1181. #define ADFM ADCON1bits.ADFM /* bit 7 */
  1182. #define ANS8 ANSELHbits.ANS8 /* bit 0 */
  1183. #define ANS9 ANSELHbits.ANS9 /* bit 1 */
  1184. #define ANS10 ANSELHbits.ANS10 /* bit 2 */
  1185. #define ANS11 ANSELHbits.ANS11 /* bit 3 */
  1186. #define ANS12 ANSELHbits.ANS12 /* bit 4 */
  1187. #define ANS13 ANSELHbits.ANS13 /* bit 5 */
  1188. #define ANS0 ANSELbits.ANS0 /* bit 0 */
  1189. #define ANS1 ANSELbits.ANS1 /* bit 1 */
  1190. #define ANS2 ANSELbits.ANS2 /* bit 2 */
  1191. #define ANS3 ANSELbits.ANS3 /* bit 3 */
  1192. #define ANS4 ANSELbits.ANS4 /* bit 4 */
  1193. #define ANS5 ANSELbits.ANS5 /* bit 5 */
  1194. #define ANS6 ANSELbits.ANS6 /* bit 6 */
  1195. #define ANS7 ANSELbits.ANS7 /* bit 7 */
  1196. #define ABDEN BAUDCTLbits.ABDEN /* bit 0 */
  1197. #define WUE BAUDCTLbits.WUE /* bit 1 */
  1198. #define BRG16 BAUDCTLbits.BRG16 /* bit 3 */
  1199. #define SCKP BAUDCTLbits.SCKP /* bit 4 */
  1200. #define RCIDL BAUDCTLbits.RCIDL /* bit 6 */
  1201. #define ABDOVF BAUDCTLbits.ABDOVF /* bit 7 */
  1202. #define CCP1M0 CCP1CONbits.CCP1M0 /* bit 0 */
  1203. #define CCP1M1 CCP1CONbits.CCP1M1 /* bit 1 */
  1204. #define CCP1M2 CCP1CONbits.CCP1M2 /* bit 2 */
  1205. #define CCP1M3 CCP1CONbits.CCP1M3 /* bit 3 */
  1206. #define CCP1Y CCP1CONbits.CCP1Y /* bit 4 */
  1207. #define DC1B0 CCP1CONbits.DC1B0 /* bit 4 */
  1208. #define CCP1X CCP1CONbits.CCP1X /* bit 5 */
  1209. #define DC1B1 CCP1CONbits.DC1B1 /* bit 5 */
  1210. #define P1M0 CCP1CONbits.P1M0 /* bit 6 */
  1211. #define P1M1 CCP1CONbits.P1M1 /* bit 7 */
  1212. #define CCP2M0 CCP2CONbits.CCP2M0 /* bit 0 */
  1213. #define CCP2M1 CCP2CONbits.CCP2M1 /* bit 1 */
  1214. #define CCP2M2 CCP2CONbits.CCP2M2 /* bit 2 */
  1215. #define CCP2M3 CCP2CONbits.CCP2M3 /* bit 3 */
  1216. #define CCP2Y CCP2CONbits.CCP2Y /* bit 4 */
  1217. #define DC2B0 CCP2CONbits.DC2B0 /* bit 4 */
  1218. #define CCP2X CCP2CONbits.CCP2X /* bit 5 */
  1219. #define DC2B1 CCP2CONbits.DC2B1 /* bit 5 */
  1220. #define C1CH0 CM1CON0bits.C1CH0 /* bit 0 */
  1221. #define C1CH1 CM1CON0bits.C1CH1 /* bit 1 */
  1222. #define C1R CM1CON0bits.C1R /* bit 2 */
  1223. #define C1POL CM1CON0bits.C1POL /* bit 4 */
  1224. #define C1OE CM1CON0bits.C1OE /* bit 5 */
  1225. #define C1OUT CM1CON0bits.C1OUT /* bit 6 */
  1226. #define C1ON CM1CON0bits.C1ON /* bit 7 */
  1227. #define C2CH0 CM2CON0bits.C2CH0 /* bit 0 */
  1228. #define C2CH1 CM2CON0bits.C2CH1 /* bit 1 */
  1229. #define C2R CM2CON0bits.C2R /* bit 2 */
  1230. #define C2POL CM2CON0bits.C2POL /* bit 4 */
  1231. #define C2OE CM2CON0bits.C2OE /* bit 5 */
  1232. #define C2OUT CM2CON0bits.C2OUT /* bit 6 */
  1233. #define C2ON CM2CON0bits.C2ON /* bit 7 */
  1234. #define C2SYNC CM2CON1bits.C2SYNC /* bit 0 */
  1235. #define T1GSS CM2CON1bits.T1GSS /* bit 1 */
  1236. #define C2RSEL CM2CON1bits.C2RSEL /* bit 4 */
  1237. #define C1RSEL CM2CON1bits.C1RSEL /* bit 5 */
  1238. #define MC2OUT CM2CON1bits.MC2OUT /* bit 6 */
  1239. #define MC1OUT CM2CON1bits.MC1OUT /* bit 7 */
  1240. #define PSSBD0 ECCPASbits.PSSBD0 /* bit 0 */
  1241. #define PSSBD1 ECCPASbits.PSSBD1 /* bit 1 */
  1242. #define PSSAC0 ECCPASbits.PSSAC0 /* bit 2 */
  1243. #define PSSAC1 ECCPASbits.PSSAC1 /* bit 3 */
  1244. #define ECCPAS0 ECCPASbits.ECCPAS0 /* bit 4 */
  1245. #define ECCPAS1 ECCPASbits.ECCPAS1 /* bit 5 */
  1246. #define ECCPAS2 ECCPASbits.ECCPAS2 /* bit 6 */
  1247. #define ECCPASE ECCPASbits.ECCPASE /* bit 7 */
  1248. #define RD EECON1bits.RD /* bit 0 */
  1249. #define WR EECON1bits.WR /* bit 1 */
  1250. #define WREN EECON1bits.WREN /* bit 2 */
  1251. #define WRERR EECON1bits.WRERR /* bit 3 */
  1252. #define EEPGD EECON1bits.EEPGD /* bit 7 */
  1253. #define RBIF INTCONbits.RBIF /* bit 0 */
  1254. #define INTF INTCONbits.INTF /* bit 1 */
  1255. #define T0IF INTCONbits.T0IF /* bit 2 */
  1256. #define TMR0IF INTCONbits.TMR0IF /* bit 2 */
  1257. #define RBIE INTCONbits.RBIE /* bit 3 */
  1258. #define INTE INTCONbits.INTE /* bit 4 */
  1259. #define T0IE INTCONbits.T0IE /* bit 5 */
  1260. #define TMR0IE INTCONbits.TMR0IE /* bit 5 */
  1261. #define PEIE INTCONbits.PEIE /* bit 6 */
  1262. #define GIE INTCONbits.GIE /* bit 7 */
  1263. #define IOCB0 IOCBbits.IOCB0 /* bit 0 */
  1264. #define IOCB1 IOCBbits.IOCB1 /* bit 1 */
  1265. #define IOCB2 IOCBbits.IOCB2 /* bit 2 */
  1266. #define IOCB3 IOCBbits.IOCB3 /* bit 3 */
  1267. #define IOCB4 IOCBbits.IOCB4 /* bit 4 */
  1268. #define IOCB5 IOCBbits.IOCB5 /* bit 5 */
  1269. #define IOCB6 IOCBbits.IOCB6 /* bit 6 */
  1270. #define IOCB7 IOCBbits.IOCB7 /* bit 7 */
  1271. #define PS0 OPTION_REGbits.PS0 /* bit 0 */
  1272. #define PS1 OPTION_REGbits.PS1 /* bit 1 */
  1273. #define PS2 OPTION_REGbits.PS2 /* bit 2 */
  1274. #define PSA OPTION_REGbits.PSA /* bit 3 */
  1275. #define T0SE OPTION_REGbits.T0SE /* bit 4 */
  1276. #define T0CS OPTION_REGbits.T0CS /* bit 5 */
  1277. #define INTEDG OPTION_REGbits.INTEDG /* bit 6 */
  1278. #define NOT_RBPU OPTION_REGbits.NOT_RBPU /* bit 7 */
  1279. #define SCS OSCCONbits.SCS /* bit 0 */
  1280. #define LTS OSCCONbits.LTS /* bit 1 */
  1281. #define HTS OSCCONbits.HTS /* bit 2 */
  1282. #define OSTS OSCCONbits.OSTS /* bit 3 */
  1283. #define IRCF0 OSCCONbits.IRCF0 /* bit 4 */
  1284. #define IRCF1 OSCCONbits.IRCF1 /* bit 5 */
  1285. #define IRCF2 OSCCONbits.IRCF2 /* bit 6 */
  1286. #define TUN0 OSCTUNEbits.TUN0 /* bit 0 */
  1287. #define TUN1 OSCTUNEbits.TUN1 /* bit 1 */
  1288. #define TUN2 OSCTUNEbits.TUN2 /* bit 2 */
  1289. #define TUN3 OSCTUNEbits.TUN3 /* bit 3 */
  1290. #define TUN4 OSCTUNEbits.TUN4 /* bit 4 */
  1291. #define NOT_BO PCONbits.NOT_BO /* bit 0 */
  1292. #define NOT_BOR PCONbits.NOT_BOR /* bit 0 */
  1293. #define NOT_POR PCONbits.NOT_POR /* bit 1 */
  1294. #define SBOREN PCONbits.SBOREN /* bit 4 */
  1295. #define ULPWUE PCONbits.ULPWUE /* bit 5 */
  1296. #define TMR1IE PIE1bits.TMR1IE /* bit 0 */
  1297. #define TMR2IE PIE1bits.TMR2IE /* bit 1 */
  1298. #define CCP1IE PIE1bits.CCP1IE /* bit 2 */
  1299. #define SSPIE PIE1bits.SSPIE /* bit 3 */
  1300. #define TXIE PIE1bits.TXIE /* bit 4 */
  1301. #define RCIE PIE1bits.RCIE /* bit 5 */
  1302. #define ADIE PIE1bits.ADIE /* bit 6 */
  1303. #define CCP2IE PIE2bits.CCP2IE /* bit 0 */
  1304. #define ULPWUIE PIE2bits.ULPWUIE /* bit 2 */
  1305. #define BCLIE PIE2bits.BCLIE /* bit 3 */
  1306. #define EEIE PIE2bits.EEIE /* bit 4 */
  1307. #define C1IE PIE2bits.C1IE /* bit 5 */
  1308. #define C2IE PIE2bits.C2IE /* bit 6 */
  1309. #define OSFIE PIE2bits.OSFIE /* bit 7 */
  1310. #define TMR1IF PIR1bits.TMR1IF /* bit 0 */
  1311. #define TMR2IF PIR1bits.TMR2IF /* bit 1 */
  1312. #define CCP1IF PIR1bits.CCP1IF /* bit 2 */
  1313. #define SSPIF PIR1bits.SSPIF /* bit 3 */
  1314. #define TXIF PIR1bits.TXIF /* bit 4 */
  1315. #define RCIF PIR1bits.RCIF /* bit 5 */
  1316. #define ADIF PIR1bits.ADIF /* bit 6 */
  1317. #define CCP2IF PIR2bits.CCP2IF /* bit 0 */
  1318. #define ULPWUIF PIR2bits.ULPWUIF /* bit 2 */
  1319. #define BCLIF PIR2bits.BCLIF /* bit 3 */
  1320. #define EEIF PIR2bits.EEIF /* bit 4 */
  1321. #define C1IF PIR2bits.C1IF /* bit 5 */
  1322. #define C2IF PIR2bits.C2IF /* bit 6 */
  1323. #define OSFIF PIR2bits.OSFIF /* bit 7 */
  1324. #define RA0 PORTAbits.RA0 /* bit 0 */
  1325. #define RA1 PORTAbits.RA1 /* bit 1 */
  1326. #define RA2 PORTAbits.RA2 /* bit 2 */
  1327. #define RA3 PORTAbits.RA3 /* bit 3 */
  1328. #define RA4 PORTAbits.RA4 /* bit 4 */
  1329. #define RA5 PORTAbits.RA5 /* bit 5 */
  1330. #define RB0 PORTBbits.RB0 /* bit 0 */
  1331. #define RB1 PORTBbits.RB1 /* bit 1 */
  1332. #define RB2 PORTBbits.RB2 /* bit 2 */
  1333. #define RB3 PORTBbits.RB3 /* bit 3 */
  1334. #define RB4 PORTBbits.RB4 /* bit 4 */
  1335. #define RB5 PORTBbits.RB5 /* bit 5 */
  1336. #define RB6 PORTBbits.RB6 /* bit 6 */
  1337. #define RB7 PORTBbits.RB7 /* bit 7 */
  1338. #define RC0 PORTCbits.RC0 /* bit 0 */
  1339. #define RC1 PORTCbits.RC1 /* bit 1 */
  1340. #define RC2 PORTCbits.RC2 /* bit 2 */
  1341. #define RC3 PORTCbits.RC3 /* bit 3 */
  1342. #define RC4 PORTCbits.RC4 /* bit 4 */
  1343. #define RC5 PORTCbits.RC5 /* bit 5 */
  1344. #define RC6 PORTCbits.RC6 /* bit 6 */
  1345. #define RC7 PORTCbits.RC7 /* bit 7 */
  1346. #define RD0 PORTDbits.RD0 /* bit 0 */
  1347. #define RD1 PORTDbits.RD1 /* bit 1 */
  1348. #define RD2 PORTDbits.RD2 /* bit 2 */
  1349. #define RD3 PORTDbits.RD3 /* bit 3 */
  1350. #define RD4 PORTDbits.RD4 /* bit 4 */
  1351. #define RD5 PORTDbits.RD5 /* bit 5 */
  1352. #define RD6 PORTDbits.RD6 /* bit 6 */
  1353. #define RD7 PORTDbits.RD7 /* bit 7 */
  1354. #define RE0 PORTEbits.RE0 /* bit 0 */
  1355. #define RE1 PORTEbits.RE1 /* bit 1 */
  1356. #define RE2 PORTEbits.RE2 /* bit 2 */
  1357. #define STRA PSTRCONbits.STRA /* bit 0 */
  1358. #define STRB PSTRCONbits.STRB /* bit 1 */
  1359. #define STRC PSTRCONbits.STRC /* bit 2 */
  1360. #define STRD PSTRCONbits.STRD /* bit 3 */
  1361. #define STRSYNC PSTRCONbits.STRSYNC /* bit 4 */
  1362. #define PDC0 PWM1CONbits.PDC0 /* bit 0 */
  1363. #define PDC1 PWM1CONbits.PDC1 /* bit 1 */
  1364. #define PDC2 PWM1CONbits.PDC2 /* bit 2 */
  1365. #define PDC3 PWM1CONbits.PDC3 /* bit 3 */
  1366. #define PDC4 PWM1CONbits.PDC4 /* bit 4 */
  1367. #define PDC5 PWM1CONbits.PDC5 /* bit 5 */
  1368. #define PDC6 PWM1CONbits.PDC6 /* bit 6 */
  1369. #define PRSEN PWM1CONbits.PRSEN /* bit 7 */
  1370. #define RCD8 RCSTAbits.RCD8 /* bit 0 */
  1371. #define RX9D RCSTAbits.RX9D /* bit 0 */
  1372. #define OERR RCSTAbits.OERR /* bit 1 */
  1373. #define FERR RCSTAbits.FERR /* bit…