1 /* 2 * This declarations of the PIC16F1707 MCU. 3 * 4 * This file is part of the GNU PIC library for SDCC, originally 5 * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016. 6 * 7 * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:23:11 UTC. 8 * 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. 12 * 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. 21 * 22 * See http://sdcc.sourceforge.net/ for the latest information on sdcc. 23 */ 24 25 #ifndef __PIC16F1707_H__ 26 #define __PIC16F1707_H__ 27 28 //============================================================================== 29 // 30 // Register Addresses 31 // 32 //============================================================================== 33 34 #ifndef NO_ADDR_DEFINES 35 36 #define INDF0_ADDR 0x0000 37 #define INDF1_ADDR 0x0001 38 #define PCL_ADDR 0x0002 39 #define STATUS_ADDR 0x0003 40 #define FSR0_ADDR 0x0004 41 #define FSR0L_ADDR 0x0004 42 #define FSR0H_ADDR 0x0005 43 #define FSR1_ADDR 0x0006 44 #define FSR1L_ADDR 0x0006 45 #define FSR1H_ADDR 0x0007 46 #define BSR_ADDR 0x0008 47 #define WREG_ADDR 0x0009 48 #define PCLATH_ADDR 0x000A 49 #define INTCON_ADDR 0x000B 50 #define PORTA_ADDR 0x000C 51 #define PORTB_ADDR 0x000D 52 #define PORTC_ADDR 0x000E 53 #define PIR1_ADDR 0x0011 54 #define PIR2_ADDR 0x0012 55 #define PIR3_ADDR 0x0013 56 #define TMR0_ADDR 0x0015 57 #define TMR1_ADDR 0x0016 58 #define TMR1L_ADDR 0x0016 59 #define TMR1H_ADDR 0x0017 60 #define T1CON_ADDR 0x0018 61 #define T1GCON_ADDR 0x0019 62 #define TMR2_ADDR 0x001A 63 #define PR2_ADDR 0x001B 64 #define T2CON_ADDR 0x001C 65 #define TRISA_ADDR 0x008C 66 #define TRISB_ADDR 0x008D 67 #define TRISC_ADDR 0x008E 68 #define PIE1_ADDR 0x0091 69 #define PIE2_ADDR 0x0092 70 #define PIE3_ADDR 0x0093 71 #define OPTION_REG_ADDR 0x0095 72 #define PCON_ADDR 0x0096 73 #define WDTCON_ADDR 0x0097 74 #define OSCTUNE_ADDR 0x0098 75 #define OSCCON_ADDR 0x0099 76 #define OSCSTAT_ADDR 0x009A 77 #define ADRES_ADDR 0x009B 78 #define ADRESL_ADDR 0x009B 79 #define ADRESH_ADDR 0x009C 80 #define ADCON0_ADDR 0x009D 81 #define ADCON1_ADDR 0x009E 82 #define ADCON2_ADDR 0x009F 83 #define LATA_ADDR 0x010C 84 #define LATB_ADDR 0x010D 85 #define LATC_ADDR 0x010E 86 #define BORCON_ADDR 0x0116 87 #define FVRCON_ADDR 0x0117 88 #define ZCD1CON_ADDR 0x011C 89 #define ANSELA_ADDR 0x018C 90 #define ANSELB_ADDR 0x018D 91 #define ANSELC_ADDR 0x018E 92 #define PMADR_ADDR 0x0191 93 #define PMADRL_ADDR 0x0191 94 #define PMADRH_ADDR 0x0192 95 #define PMDAT_ADDR 0x0193 96 #define PMDATL_ADDR 0x0193 97 #define PMDATH_ADDR 0x0194 98 #define PMCON1_ADDR 0x0195 99 #define PMCON2_ADDR 0x0196 100 #define VREGCON_ADDR 0x0197 101 #define WPUA_ADDR 0x020C 102 #define WPUB_ADDR 0x020D 103 #define WPUC_ADDR 0x020E 104 #define SSP1BUF_ADDR 0x0211 105 #define SSPBUF_ADDR 0x0211 106 #define SSP1ADD_ADDR 0x0212 107 #define SSPADD_ADDR 0x0212 108 #define SSP1MSK_ADDR 0x0213 109 #define SSPMSK_ADDR 0x0213 110 #define SSP1STAT_ADDR 0x0214 111 #define SSPSTAT_ADDR 0x0214 112 #define SSP1CON_ADDR 0x0215 113 #define SSP1CON1_ADDR 0x0215 114 #define SSPCON_ADDR 0x0215 115 #define SSPCON1_ADDR 0x0215 116 #define SSP1CON2_ADDR 0x0216 117 #define SSPCON2_ADDR 0x0216 118 #define SSP1CON3_ADDR 0x0217 119 #define SSPCON3_ADDR 0x0217 120 #define ODCONA_ADDR 0x028C 121 #define ODCONB_ADDR 0x028D 122 #define ODCONC_ADDR 0x028E 123 #define CCPR1_ADDR 0x0291 124 #define CCPR1L_ADDR 0x0291 125 #define CCPR1H_ADDR 0x0292 126 #define CCP1CON_ADDR 0x0293 127 #define ECCP1CON_ADDR 0x0293 128 #define CCPR2_ADDR 0x0298 129 #define CCPR2L_ADDR 0x0298 130 #define CCPR2H_ADDR 0x0299 131 #define CCP2CON_ADDR 0x029A 132 #define ECCP2CON_ADDR 0x029A 133 #define SLRCONA_ADDR 0x030C 134 #define SLRCONB_ADDR 0x030D 135 #define SLRCONC_ADDR 0x030E 136 #define INLVLA_ADDR 0x038C 137 #define INLVLB_ADDR 0x038D 138 #define INLVLC_ADDR 0x038E 139 #define IOCAP_ADDR 0x0391 140 #define IOCAN_ADDR 0x0392 141 #define IOCAF_ADDR 0x0393 142 #define IOCBP_ADDR 0x0394 143 #define IOCBN_ADDR 0x0395 144 #define IOCBF_ADDR 0x0396 145 #define IOCCP_ADDR 0x0397 146 #define IOCCN_ADDR 0x0398 147 #define IOCCF_ADDR 0x0399 148 #define OPA1CON_ADDR 0x0511 149 #define OPA2CON_ADDR 0x0515 150 #define PPSLOCK_ADDR 0x0E0F 151 #define INTPPS_ADDR 0x0E10 152 #define T0CKIPPS_ADDR 0x0E11 153 #define T1CKIPPS_ADDR 0x0E12 154 #define T1GPPS_ADDR 0x0E13 155 #define CCP1PPS_ADDR 0x0E14 156 #define CCP2PPS_ADDR 0x0E15 157 #define SSPCLKPPS_ADDR 0x0E20 158 #define SSPDATPPS_ADDR 0x0E21 159 #define SSPSSPPS_ADDR 0x0E22 160 #define RA0PPS_ADDR 0x0E90 161 #define RA1PPS_ADDR 0x0E91 162 #define RA2PPS_ADDR 0x0E92 163 #define RA4PPS_ADDR 0x0E94 164 #define RA5PPS_ADDR 0x0E95 165 #define RB4PPS_ADDR 0x0E9C 166 #define RB5PPS_ADDR 0x0E9D 167 #define RB6PPS_ADDR 0x0E9E 168 #define RB7PPS_ADDR 0x0E9F 169 #define RC0PPS_ADDR 0x0EA0 170 #define RC1PPS_ADDR 0x0EA1 171 #define RC2PPS_ADDR 0x0EA2 172 #define RC3PPS_ADDR 0x0EA3 173 #define RC4PPS_ADDR 0x0EA4 174 #define RC5PPS_ADDR 0x0EA5 175 #define RC6PPS_ADDR 0x0EA6 176 #define RC7PPS_ADDR 0x0EA7 177 #define ICDBK0H_ADDR 0x0F9E 178 #define STATUS_SHAD_ADDR 0x0FE4 179 #define WREG_SHAD_ADDR 0x0FE5 180 #define BSR_SHAD_ADDR 0x0FE6 181 #define PCLATH_SHAD_ADDR 0x0FE7 182 #define FSR0L_SHAD_ADDR 0x0FE8 183 #define FSR0H_SHAD_ADDR 0x0FE9 184 #define FSR1L_SHAD_ADDR 0x0FEA 185 #define FSR1H_SHAD_ADDR 0x0FEB 186 #define STKPTR_ADDR 0x0FED 187 #define TOSL_ADDR 0x0FEE 188 #define TOSH_ADDR 0x0FEF 189 190 #endif // #ifndef NO_ADDR_DEFINES 191 192 //============================================================================== 193 // 194 // Register Definitions 195 // 196 //============================================================================== 197 198 extern __at(0x0000) __sfr INDF0; 199 extern __at(0x0001) __sfr INDF1; 200 extern __at(0x0002) __sfr PCL; 201 202 //============================================================================== 203 // STATUS Bits 204 205 extern __at(0x0003) __sfr STATUS; 206 207 typedef struct 208 { 209 unsigned C : 1; 210 unsigned DC : 1; 211 unsigned Z : 1; 212 unsigned NOT_PD : 1; 213 unsigned NOT_TO : 1; 214 unsigned : 1; 215 unsigned : 1; 216 unsigned : 1; 217 } __STATUSbits_t; 218 219 extern __at(0x0003) volatile __STATUSbits_t STATUSbits; 220 221 #define _C 0x01 222 #define _DC 0x02 223 #define _Z 0x04 224 #define _NOT_PD 0x08 225 #define _NOT_TO 0x10 226 227 //============================================================================== 228 229 extern __at(0x0004) __sfr FSR0; 230 extern __at(0x0004) __sfr FSR0L; 231 extern __at(0x0005) __sfr FSR0H; 232 extern __at(0x0006) __sfr FSR1; 233 extern __at(0x0006) __sfr FSR1L; 234 extern __at(0x0007) __sfr FSR1H; 235 236 //============================================================================== 237 // BSR Bits 238 239 extern __at(0x0008) __sfr BSR; 240 241 typedef union 242 { 243 struct 244 { 245 unsigned BSR0 : 1; 246 unsigned BSR1 : 1; 247 unsigned BSR2 : 1; 248 unsigned BSR3 : 1; 249 unsigned BSR4 : 1; 250 unsigned : 1; 251 unsigned : 1; 252 unsigned : 1; 253 }; 254 255 struct 256 { 257 unsigned BSR : 5; 258 unsigned : 3; 259 }; 260 } __BSRbits_t; 261 262 extern __at(0x0008) volatile __BSRbits_t BSRbits; 263 264 #define _BSR0 0x01 265 #define _BSR1 0x02 266 #define _BSR2 0x04 267 #define _BSR3 0x08 268 #define _BSR4 0x10 269 270 //============================================================================== 271 272 extern __at(0x0009) __sfr WREG; 273 extern __at(0x000A) __sfr PCLATH; 274 275 //============================================================================== 276 // INTCON Bits 277 278 extern __at(0x000B) __sfr INTCON; 279 280 typedef union 281 { 282 struct 283 { 284 unsigned IOCIF : 1; 285 unsigned INTF : 1; 286 unsigned TMR0IF : 1; 287 unsigned IOCIE : 1; 288 unsigned INTE : 1; 289 unsigned TMR0IE : 1; 290 unsigned PEIE : 1; 291 unsigned GIE : 1; 292 }; 293 294 struct 295 { 296 unsigned : 1; 297 unsigned : 1; 298 unsigned T0IF : 1; 299 unsigned : 1; 300 unsigned : 1; 301 unsigned T0IE : 1; 302 unsigned : 1; 303 unsigned : 1; 304 }; 305 } __INTCONbits_t; 306 307 extern __at(0x000B) volatile __INTCONbits_t INTCONbits; 308 309 #define _IOCIF 0x01 310 #define _INTF 0x02 311 #define _TMR0IF 0x04 312 #define _T0IF 0x04 313 #define _IOCIE 0x08 314 #define _INTE 0x10 315 #define _TMR0IE 0x20 316 #define _T0IE 0x20 317 #define _PEIE 0x40 318 #define _GIE 0x80 319 320 //============================================================================== 321 322 323 //============================================================================== 324 // PORTA Bits 325 326 extern __at(0x000C) __sfr PORTA; 327 328 typedef union 329 { 330 struct 331 { 332 unsigned RA0 : 1; 333 unsigned RA1 : 1; 334 unsigned RA2 : 1; 335 unsigned RA3 : 1; 336 unsigned RA4 : 1; 337 unsigned RA5 : 1; 338 unsigned : 1; 339 unsigned : 1; 340 }; 341 342 struct 343 { 344 unsigned RA : 6; 345 unsigned : 2; 346 }; 347 } __PORTAbits_t; 348 349 extern __at(0x000C) volatile __PORTAbits_t PORTAbits; 350 351 #define _RA0 0x01 352 #define _RA1 0x02 353 #define _RA2 0x04 354 #define _RA3 0x08 355 #define _RA4 0x10 356 #define _RA5 0x20 357 358 //============================================================================== 359 360 361 //============================================================================== 362 // PORTB Bits 363 364 extern __at(0x000D) __sfr PORTB; 365 366 typedef struct 367 { 368 unsigned : 1; 369 unsigned : 1; 370 unsigned : 1; 371 unsigned : 1; 372 unsigned RB4 : 1; 373 unsigned RB5 : 1; 374 unsigned RB6 : 1; 375 unsigned RB7 : 1; 376 } __PORTBbits_t; 377 378 extern __at(0x000D) volatile __PORTBbits_t PORTBbits; 379 380 #define _RB4 0x10 381 #define _RB5 0x20 382 #define _RB6 0x40 383 #define _RB7 0x80 384 385 //============================================================================== 386 387 388 //============================================================================== 389 // PORTC Bits 390 391 extern __at(0x000E) __sfr PORTC; 392 393 typedef struct 394 { 395 unsigned RC0 : 1; 396 unsigned RC1 : 1; 397 unsigned RC2 : 1; 398 unsigned RC3 : 1; 399 unsigned RC4 : 1; 400 unsigned RC5 : 1; 401 unsigned RC6 : 1; 402 unsigned RC7 : 1; 403 } __PORTCbits_t; 404 405 extern __at(0x000E) volatile __PORTCbits_t PORTCbits; 406 407 #define _RC0 0x01 408 #define _RC1 0x02 409 #define _RC2 0x04 410 #define _RC3 0x08 411 #define _RC4 0x10 412 #define _RC5 0x20 413 #define _RC6 0x40 414 #define _RC7 0x80 415 416 //============================================================================== 417 418 419 //============================================================================== 420 // PIR1 Bits 421 422 extern __at(0x0011) __sfr PIR1; 423 424 typedef union 425 { 426 struct 427 { 428 unsigned TMR1IF : 1; 429 unsigned TMR2IF : 1; 430 unsigned CCP1IF : 1; 431 unsigned SSP1IF : 1; 432 unsigned : 1; 433 unsigned : 1; 434 unsigned ADIF : 1; 435 unsigned TMR1GIF : 1; 436 }; 437 438 struct 439 { 440 unsigned : 1; 441 unsigned : 1; 442 unsigned CCPIF : 1; 443 unsigned : 1; 444 unsigned : 1; 445 unsigned : 1; 446 unsigned : 1; 447 unsigned : 1; 448 }; 449 } __PIR1bits_t; 450 451 extern __at(0x0011) volatile __PIR1bits_t PIR1bits; 452 453 #define _TMR1IF 0x01 454 #define _TMR2IF 0x02 455 #define _CCP1IF 0x04 456 #define _CCPIF 0x04 457 #define _SSP1IF 0x08 458 #define _ADIF 0x40 459 #define _TMR1GIF 0x80 460 461 //============================================================================== 462 463 464 //============================================================================== 465 // PIR2 Bits 466 467 extern __at(0x0012) __sfr PIR2; 468 469 typedef struct 470 { 471 unsigned CCP2IF : 1; 472 unsigned : 1; 473 unsigned : 1; 474 unsigned BCL1IF : 1; 475 unsigned : 1; 476 unsigned : 1; 477 unsigned : 1; 478 unsigned : 1; 479 } __PIR2bits_t; 480 481 extern __at(0x0012) volatile __PIR2bits_t PIR2bits; 482 483 #define _CCP2IF 0x01 484 #define _BCL1IF 0x08 485 486 //============================================================================== 487 488 489 //============================================================================== 490 // PIR3 Bits 491 492 extern __at(0x0013) __sfr PIR3; 493 494 typedef struct 495 { 496 unsigned : 1; 497 unsigned : 1; 498 unsigned : 1; 499 unsigned : 1; 500 unsigned ZCDIF : 1; 501 unsigned : 1; 502 unsigned : 1; 503 unsigned : 1; 504 } __PIR3bits_t; 505 506 extern __at(0x0013) volatile __PIR3bits_t PIR3bits; 507 508 #define _ZCDIF 0x10 509 510 //============================================================================== 511 512 extern __at(0x0015) __sfr TMR0; 513 extern __at(0x0016) __sfr TMR1; 514 extern __at(0x0016) __sfr TMR1L; 515 extern __at(0x0017) __sfr TMR1H; 516 517 //============================================================================== 518 // T1CON Bits 519 520 extern __at(0x0018) __sfr T1CON; 521 522 typedef union 523 { 524 struct 525 { 526 unsigned TMR1ON : 1; 527 unsigned : 1; 528 unsigned NOT_T1SYNC : 1; 529 unsigned T1OSCEN : 1; 530 unsigned T1CKPS0 : 1; 531 unsigned T1CKPS1 : 1; 532 unsigned TMR1CS0 : 1; 533 unsigned TMR1CS1 : 1; 534 }; 535 536 struct 537 { 538 unsigned : 4; 539 unsigned T1CKPS : 2; 540 unsigned : 2; 541 }; 542 543 struct 544 { 545 unsigned : 6; 546 unsigned TMR1CS : 2; 547 }; 548 } __T1CONbits_t; 549 550 extern __at(0x0018) volatile __T1CONbits_t T1CONbits; 551 552 #define _TMR1ON 0x01 553 #define _NOT_T1SYNC 0x04 554 #define _T1OSCEN 0x08 555 #define _T1CKPS0 0x10 556 #define _T1CKPS1 0x20 557 #define _TMR1CS0 0x40 558 #define _TMR1CS1 0x80 559 560 //============================================================================== 561 562 563 //============================================================================== 564 // T1GCON Bits 565 566 extern __at(0x0019) __sfr T1GCON; 567 568 typedef union 569 { 570 struct 571 { 572 unsigned T1GSS0 : 1; 573 unsigned T1GSS1 : 1; 574 unsigned T1GVAL : 1; 575 unsigned T1GGO_NOT_DONE : 1; 576 unsigned T1GSPM : 1; 577 unsigned T1GTM : 1; 578 unsigned T1GPOL : 1; 579 unsigned TMR1GE : 1; 580 }; 581 582 struct 583 { 584 unsigned T1GSS : 2; 585 unsigned : 6; 586 }; 587 } __T1GCONbits_t; 588 589 extern __at(0x0019) volatile __T1GCONbits_t T1GCONbits; 590 591 #define _T1GSS0 0x01 592 #define _T1GSS1 0x02 593 #define _T1GVAL 0x04 594 #define _T1GGO_NOT_DONE 0x08 595 #define _T1GSPM 0x10 596 #define _T1GTM 0x20 597 #define _T1GPOL 0x40 598 #define _TMR1GE 0x80 599 600 //============================================================================== 601 602 extern __at(0x001A) __sfr TMR2; 603 extern __at(0x001B) __sfr PR2; 604 605 //============================================================================== 606 // T2CON Bits 607 608 extern __at(0x001C) __sfr T2CON; 609 610 typedef union 611 { 612 struct 613 { 614 unsigned T2CKPS0 : 1; 615 unsigned T2CKPS1 : 1; 616 unsigned TMR2ON : 1; 617 unsigned T2OUTPS0 : 1; 618 unsigned T2OUTPS1 : 1; 619 unsigned T2OUTPS2 : 1; 620 unsigned T2OUTPS3 : 1; 621 unsigned : 1; 622 }; 623 624 struct 625 { 626 unsigned T2CKPS : 2; 627 unsigned : 6; 628 }; 629 630 struct 631 { 632 unsigned : 3; 633 unsigned T2OUTPS : 4; 634 unsigned : 1; 635 }; 636 } __T2CONbits_t; 637 638 extern __at(0x001C) volatile __T2CONbits_t T2CONbits; 639 640 #define _T2CKPS0 0x01 641 #define _T2CKPS1 0x02 642 #define _TMR2ON 0x04 643 #define _T2OUTPS0 0x08 644 #define _T2OUTPS1 0x10 645 #define _T2OUTPS2 0x20 646 #define _T2OUTPS3 0x40 647 648 //============================================================================== 649 650 651 //============================================================================== 652 // TRISA Bits 653 654 extern __at(0x008C) __sfr TRISA; 655 656 typedef struct 657 { 658 unsigned TRISA0 : 1; 659 unsigned TRISA1 : 1; 660 unsigned TRISA2 : 1; 661 unsigned : 1; 662 unsigned TRISA4 : 1; 663 unsigned TRISA5 : 1; 664 unsigned : 1; 665 unsigned : 1; 666 } __TRISAbits_t; 667 668 extern __at(0x008C) volatile __TRISAbits_t TRISAbits; 669 670 #define _TRISA0 0x01 671 #define _TRISA1 0x02 672 #define _TRISA2 0x04 673 #define _TRISA4 0x10 674 #define _TRISA5 0x20 675 676 //============================================================================== 677 678 679 //============================================================================== 680 // TRISB Bits 681 682 extern __at(0x008D) __sfr TRISB; 683 684 typedef struct 685 { 686 unsigned : 1; 687 unsigned : 1; 688 unsigned : 1; 689 unsigned : 1; 690 unsigned TRISB4 : 1; 691 unsigned TRISB5 : 1; 692 unsigned TRISB6 : 1; 693 unsigned TRISB7 : 1; 694 } __TRISBbits_t; 695 696 extern __at(0x008D) volatile __TRISBbits_t TRISBbits; 697 698 #define _TRISB4 0x10 699 #define _TRISB5 0x20 700 #define _TRISB6 0x40 701 #define _TRISB7 0x80 702 703 //============================================================================== 704 705 706 //============================================================================== 707 // TRISC Bits 708 709 extern __at(0x008E) __sfr TRISC; 710 711 typedef struct 712 { 713 unsigned TRISC0 : 1; 714 unsigned TRISC1 : 1; 715 unsigned TRISC2 : 1; 716 unsigned TRISC3 : 1; 717 unsigned TRISC4 : 1; 718 unsigned TRISC5 : 1; 719 unsigned TRISC6 : 1; 720 unsigned TRISC7 : 1; 721 } __TRISCbits_t; 722 723 extern __at(0x008E) volatile __TRISCbits_t TRISCbits; 724 725 #define _TRISC0 0x01 726 #define _TRISC1 0x02 727 #define _TRISC2 0x04 728 #define _TRISC3 0x08 729 #define _TRISC4 0x10 730 #define _TRISC5 0x20 731 #define _TRISC6 0x40 732 #define _TRISC7 0x80 733 734 //============================================================================== 735 736 737 //============================================================================== 738 // PIE1 Bits 739 740 extern __at(0x0091) __sfr PIE1; 741 742 typedef union 743 { 744 struct 745 { 746 unsigned TMR1IE : 1; 747 unsigned TMR2IE : 1; 748 unsigned CCP1IE : 1; 749 unsigned SSP1IE : 1; 750 unsigned : 1; 751 unsigned : 1; 752 unsigned ADIE : 1; 753 unsigned TMR1GIE : 1; 754 }; 755 756 struct 757 { 758 unsigned : 1; 759 unsigned : 1; 760 unsigned CCPIE : 1; 761 unsigned : 1; 762 unsigned : 1; 763 unsigned : 1; 764 unsigned : 1; 765 unsigned : 1; 766 }; 767 } __PIE1bits_t; 768 769 extern __at(0x0091) volatile __PIE1bits_t PIE1bits; 770 771 #define _TMR1IE 0x01 772 #define _TMR2IE 0x02 773 #define _CCP1IE 0x04 774 #define _CCPIE 0x04 775 #define _SSP1IE 0x08 776 #define _ADIE 0x40 777 #define _TMR1GIE 0x80 778 779 //============================================================================== 780 781 782 //============================================================================== 783 // PIE2 Bits 784 785 extern __at(0x0092) __sfr PIE2; 786 787 typedef struct 788 { 789 unsigned CCP2IE : 1; 790 unsigned : 1; 791 unsigned : 1; 792 unsigned BCL1IE : 1; 793 unsigned : 1; 794 unsigned : 1; 795 unsigned : 1; 796 unsigned : 1; 797 } __PIE2bits_t; 798 799 extern __at(0x0092) volatile __PIE2bits_t PIE2bits; 800 801 #define _CCP2IE 0x01 802 #define _BCL1IE 0x08 803 804 //============================================================================== 805 806 807 //============================================================================== 808 // PIE3 Bits 809 810 extern __at(0x0093) __sfr PIE3; 811 812 typedef struct 813 { 814 unsigned : 1; 815 unsigned : 1; 816 unsigned : 1; 817 unsigned : 1; 818 unsigned ZCDIE : 1; 819 unsigned : 1; 820 unsigned : 1; 821 unsigned : 1; 822 } __PIE3bits_t; 823 824 extern __at(0x0093) volatile __PIE3bits_t PIE3bits; 825 826 #define _ZCDIE 0x10 827 828 //============================================================================== 829 830 831 //============================================================================== 832 // OPTION_REG Bits 833 834 extern __at(0x0095) __sfr OPTION_REG; 835 836 typedef union 837 { 838 struct 839 { 840 unsigned PS0 : 1; 841 unsigned PS1 : 1; 842 unsigned PS2 : 1; 843 unsigned PSA : 1; 844 unsigned TMR0SE : 1; 845 unsigned TMR0CS : 1; 846 unsigned INTEDG : 1; 847 unsigned NOT_WPUEN : 1; 848 }; 849 850 struct 851 { 852 unsigned : 1; 853 unsigned : 1; 854 unsigned : 1; 855 unsigned : 1; 856 unsigned T0SE : 1; 857 unsigned T0CS : 1; 858 unsigned : 1; 859 unsigned : 1; 860 }; 861 862 struct 863 { 864 unsigned PS : 3; 865 unsigned : 5; 866 }; 867 } __OPTION_REGbits_t; 868 869 extern __at(0x0095) volatile __OPTION_REGbits_t OPTION_REGbits; 870 871 #define _PS0 0x01 872 #define _PS1 0x02 873 #define _PS2 0x04 874 #define _PSA 0x08 875 #define _TMR0SE 0x10 876 #define _T0SE 0x10 877 #define _TMR0CS 0x20 878 #define _T0CS 0x20 879 #define _INTEDG 0x40 880 #define _NOT_WPUEN 0x80 881 882 //============================================================================== 883 884 885 //============================================================================== 886 // PCON Bits 887 888 extern __at(0x0096) __sfr PCON; 889 890 typedef struct 891 { 892 unsigned NOT_BOR : 1; 893 unsigned NOT_POR : 1; 894 unsigned NOT_RI : 1; 895 unsigned NOT_RMCLR : 1; 896 unsigned NOT_RWDT : 1; 897 unsigned : 1; 898 unsigned STKUNF : 1; 899 unsigned STKOVF : 1; 900 } __PCONbits_t; 901 902 extern __at(0x0096) volatile __PCONbits_t PCONbits; 903 904 #define _NOT_BOR 0x01 905 #define _NOT_POR 0x02 906 #define _NOT_RI 0x04 907 #define _NOT_RMCLR 0x08 908 #define _NOT_RWDT 0x10 909 #define _STKUNF 0x40 910 #define _STKOVF 0x80 911 912 //============================================================================== 913 914 915 //============================================================================== 916 // WDTCON Bits 917 918 extern __at(0x0097) __sfr WDTCON; 919 920 typedef union 921 { 922 struct 923 { 924 unsigned SWDTEN : 1; 925 unsigned WDTPS0 : 1; 926 unsigned WDTPS1 : 1; 927 unsigned WDTPS2 : 1; 928 unsigned WDTPS3 : 1; 929 unsigned WDTPS4 : 1; 930 unsigned : 1; 931 unsigned : 1; 932 }; 933 934 struct 935 { 936 unsigned : 1; 937 unsigned WDTPS : 5; 938 unsigned : 2; 939 }; 940 } __WDTCONbits_t; 941 942 extern __at(0x0097) volatile __WDTCONbits_t WDTCONbits; 943 944 #define _SWDTEN 0x01 945 #define _WDTPS0 0x02 946 #define _WDTPS1 0x04 947 #define _WDTPS2 0x08 948 #define _WDTPS3 0x10 949 #define _WDTPS4 0x20 950 951 //============================================================================== 952 953 954 //============================================================================== 955 // OSCTUNE Bits 956 957 extern __at(0x0098) __sfr OSCTUNE; 958 959 typedef union 960 { 961 struct 962 { 963 unsigned TUN0 : 1; 964 unsigned TUN1 : 1; 965 unsigned TUN2 : 1; 966 unsigned TUN3 : 1; 967 unsigned TUN4 : 1; 968 unsigned TUN5 : 1; 969 unsigned : 1; 970 unsigned : 1; 971 }; 972 973 struct 974 { 975 unsigned TUN : 6; 976 unsigned : 2; 977 }; 978 } __OSCTUNEbits_t; 979 980 extern __at(0x0098) volatile __OSCTUNEbits_t OSCTUNEbits; 981 982 #define _TUN0 0x01 983 #define _TUN1 0x02 984 #define _TUN2 0x04 985 #define _TUN3 0x08 986 #define _TUN4 0x10 987 #define _TUN5 0x20 988 989 //============================================================================== 990 991 992 //============================================================================== 993 // OSCCON Bits 994 995 extern __at(0x0099) __sfr OSCCON; 996 997 typedef union 998 { 999 struct 1000 { 1001 unsigned SCS0 : 1; 1002 unsigned SCS1 : 1; 1003 unsigned : 1; 1004 unsigned IRCF0 : 1; 1005 unsigned IRCF1 : 1; 1006 unsigned IRCF2 : 1; 1007 unsigned IRCF3 : 1; 1008 unsigned SPLLEN : 1; 1009 }; 1010 1011 struct 1012 { 1013 unsigned SCS : 2; 1014 unsigned : 6; 1015 }; 1016 1017 struct 1018 { 1019 unsigned : 3; 1020 unsigned IRCF : 4; 1021 unsigned : 1; 1022 }; 1023 } __OSCCONbits_t; 1024 1025 extern __at(0x0099) volatile __OSCCONbits_t OSCCONbits; 1026 1027 #define _SCS0 0x01 1028 #define _SCS1 0x02 1029 #define _IRCF0 0x08 1030 #define _IRCF1 0x10 1031 #define _IRCF2 0x20 1032 #define _IRCF3 0x40 1033 #define _SPLLEN 0x80 1034 1035 //============================================================================== 1036 1037 1038 //============================================================================== 1039 // OSCSTAT Bits 1040 1041 extern __at(0x009A) __sfr OSCSTAT; 1042 1043 typedef struct 1044 { 1045 unsigned HFIOFS : 1; 1046 unsigned LFIOFR : 1; 1047 unsigned MFIOFR : 1; 1048 unsigned HFIOFL : 1; 1049 unsigned HFIOFR : 1; 1050 unsigned OSTS : 1; 1051 unsigned PLLR : 1; 1052 unsigned SOSCR : 1; 1053 } __OSCSTATbits_t; 1054 1055 extern __at(0x009A) volatile __OSCSTATbits_t OSCSTATbits; 1056 1057 #define _HFIOFS 0x01 1058 #define _LFIOFR 0x02 1059 #define _MFIOFR 0x04 1060 #define _HFIOFL 0x08 1061 #define _HFIOFR 0x10 1062 #define _OSTS 0x20 1063 #define _PLLR 0x40 1064 #define _SOSCR 0x80 1065 1066 //============================================================================== 1067 1068 extern __at(0x009B) __sfr ADRES; 1069 extern __at(0x009B) __sfr ADRESL; 1070 extern __at(0x009C) __sfr ADRESH; 1071 1072 //============================================================================== 1073 // ADCON0 Bits 1074 1075 extern __at(0x009D) __sfr ADCON0; 1076 1077 typedef union 1078 { 1079 struct 1080 { 1081 unsigned ADON : 1; 1082 unsigned GO_NOT_DONE : 1; 1083 unsigned CHS0 : 1; 1084 unsigned CHS1 : 1; 1085 unsigned CHS2 : 1; 1086 unsigned CHS3 : 1; 1087 unsigned CHS4 : 1; 1088 unsigned : 1; 1089 }; 1090 1091 struct 1092 { 1093 unsigned : 1; 1094 unsigned ADGO : 1; 1095 unsigned : 1; 1096 unsigned : 1; 1097 unsigned : 1; 1098 unsigned : 1; 1099 unsigned : 1; 1100 unsigned : 1; 1101 }; 1102 1103 struct 1104 { 1105 unsigned : 1; 1106 unsigned GO : 1; 1107 unsigned : 1; 1108 unsigned : 1; 1109 unsigned : 1; 1110 unsigned : 1; 1111 unsigned : 1; 1112 unsigned : 1; 1113 }; 1114 1115 struct 1116 { 1117 unsigned : 2; 1118 unsigned CHS : 5; 1119 unsigned : 1; 1120 }; 1121 } __ADCON0bits_t; 1122 1123 extern __at(0x009D) volatile __ADCON0bits_t ADCON0bits; 1124 1125 #define _ADON 0x01 1126 #define _GO_NOT_DONE 0x02 1127 #define _ADGO 0x02 1128 #define _GO 0x02 1129 #define _CHS0 0x04 1130 #define _CHS1 0x08 1131 #define _CHS2 0x10 1132 #define _CHS3 0x20 1133 #define _CHS4 0x40 1134 1135 //============================================================================== 1136 1137 1138 //============================================================================== 1139 // ADCON1 Bits 1140 1141 extern __at(0x009E) __sfr ADCON1; 1142 1143 typedef union 1144 { 1145 struct 1146 { 1147 unsigned ADPREF0 : 1; 1148 unsigned ADPREF1 : 1; 1149 unsigned ADNREF : 1; 1150 unsigned : 1; 1151 unsigned : 1; 1152 unsigned : 1; 1153 unsigned : 1; 1154 unsigned ADFM : 1; 1155 }; 1156 1157 struct 1158 { 1159 unsigned ADPREF : 2; 1160 unsigned : 6; 1161 }; 1162 } __ADCON1bits_t; 1163 1164 extern __at(0x009E) volatile __ADCON1bits_t ADCON1bits; 1165 1166 #define _ADPREF0 0x01 1167 #define _ADPREF1 0x02 1168 #define _ADNREF 0x04 1169 #define _ADFM 0x80 1170 1171 //============================================================================== 1172 1173 1174 //============================================================================== 1175 // ADCON2 Bits 1176 1177 extern __at(0x009F) __sfr ADCON2; 1178 1179 typedef union 1180 { 1181 struct 1182 { 1183 unsigned : 1; 1184 unsigned : 1; 1185 unsigned : 1; 1186 unsigned : 1; 1187 unsigned TRIGSEL0 : 1; 1188 unsigned TRIGSEL1 : 1; 1189 unsigned TRIGSEL2 : 1; 1190 unsigned TRIGSEL3 : 1; 1191 }; 1192 1193 struct 1194 { 1195 unsigned : 4; 1196 unsigned TRIGSEL : 4; 1197 }; 1198 } __ADCON2bits_t; 1199 1200 extern __at(0x009F) volatile __ADCON2bits_t ADCON2bits; 1201 1202 #define _TRIGSEL0 0x10 1203 #define _TRIGSEL1 0x20 1204 #define _TRIGSEL2 0x40 1205 #define _TRIGSEL3 0x80 1206 1207 //============================================================================== 1208 1209 1210 //============================================================================== 1211 // LATA Bits 1212 1213 extern __at(0x010C) __sfr LATA; 1214 1215 typedef struct 1216 { 1217 unsigned LATA0 : 1; 1218 unsigned LATA1 : 1; 1219 unsigned LATA2 : 1; 1220 unsigned : 1; 1221 unsigned LATA4 : 1; 1222 unsigned LATA5 : 1; 1223 unsigned : 1; 1224 unsigned : 1; 1225 } __LATAbits_t; 1226 1227 extern __at(0x010C) volatile __LATAbits_t LATAbits; 1228 1229 #define _LATA0 0x01 1230 #define _LATA1 0x02 1231 #define _LATA2 0x04 1232 #define _LATA4 0x10 1233 #define _LATA5 0x20 1234 1235 //============================================================================== 1236 1237 1238 //============================================================================== 1239 // LATB Bits 1240 1241 extern __at(0x010D) __sfr LATB; 1242 1243 typedef struct 1244 { 1245 unsigned : 1; 1246 unsigned : 1; 1247 unsigned : 1; 1248 unsigned : 1; 1249 unsigned LATB4 : 1; 1250 unsigned LATB5 : 1; 1251 unsigned LATB6 : 1; 1252 unsigned LATB7 : 1; 1253 } __LATBbits_t; 1254 1255 extern __at(0x010D) volatile __LATBbits_t LATBbits; 1256 1257 #define _LATB4 0x10 1258 #define _LATB5 0x20 1259 #define _LATB6 0x40 1260 #define _LATB7 0x80 1261 1262 //============================================================================== 1263 1264 1265 //============================================================================== 1266 // LATC Bits 1267 1268 extern __at(0x010E) __sfr LATC; 1269 1270 typedef struct 1271 { 1272 unsigned LATC0 : 1; 1273 unsigned LATC1 : 1; 1274 unsigned LATC2 : 1; 1275 unsigned LATC3 : 1; 1276 unsigned LATC4 : 1; 1277 unsigned LATC5 : 1; 1278 unsigned LATC6 : 1; 1279 unsigned LATC7 : 1; 1280 } __LATCbits_t; 1281 1282 extern __at(0x010E) volatile __LATCbits_t LATCbits; 1283 1284 #define _LATC0 0x01 1285 #define _LATC1 0x02 1286 #define _LATC2 0x04 1287 #define _LATC3 0x08 1288 #define _LATC4 0x10 1289 #define _LATC5 0x20 1290 #define _LATC6 0x40 1291 #define _LATC7 0x80 1292 1293 //============================================================================== 1294 1295 1296 //============================================================================== 1297 // BORCON Bits 1298 1299 extern __at(0x0116) __sfr BORCON; 1300 1301 typedef struct 1302 { 1303 unsigned BORRDY : 1; 1304 unsigned : 1; 1305 unsigned : 1; 1306 unsigned : 1; 1307 unsigned : 1; 1308 unsigned : 1; 1309 unsigned BORFS : 1; 1310 unsigned SBOREN : 1; 1311 } __BORCONbits_t; 1312 1313 extern __at(0x0116) volatile __BORCONbits_t BORCONbits; 1314 1315 #define _BORRDY 0x01 1316 #define _BORFS 0x40 1317 #define _SBOREN 0x80 1318 1319 //============================================================================== 1320 1321 1322 //============================================================================== 1323 // FVRCON Bits 1324 1325 extern __at(0x0117) __sfr FVRCON; 1326 1327 typedef union 1328 { 1329 struct 1330 { 1331 unsigned ADFVR0 : 1; 1332 unsigned ADFVR1 : 1; 1333 unsigned CDAFVR0 : 1; 1334 unsigned CDAFVR1 : 1; 1335 unsigned TSRNG : 1; 1336 unsigned TSEN : 1; 1337 unsigned FVRRDY : 1; 1338 unsigned FVREN : 1; 1339 }; 1340 1341 struct 1342 { 1343 unsigned ADFVR : 2; 1344 unsigned : 6; 1345 }; 1346 1347 struct 1348 { 1349 unsigned : 2; 1350 unsigned CDAFVR : 2; 1351 unsigned : 4; 1352 }; 1353 } __FVRCONbits_t; 1354 1355 extern __at(0x0117) volatile __FVRCONbits_t FVRCONbits; 1356 1357 #define _ADFVR0 0x01 1358 #define _ADFVR1 0x02 1359 #define _CDAFVR0 0x04 1360 #define _CDAFVR1 0x08 1361 #define _TSRNG 0x10 1362 #define _TSEN 0x20 1363 #define _FVRRDY 0x40 1364 #define _FVREN 0x80 1365 1366 //============================================================================== 1367 1368 1369 //============================================================================== 1370 // ZCD1CON Bits 1371 1372 extern __at(0x011C) __sfr ZCD1CON; 1373 1374 typedef struct 1375 { 1376 unsigned ZCD1INTN : 1; 1377 unsigned ZCD1INTP : 1; 1378 unsigned : 1; 1379 unsigned : 1; 1380 unsigned ZCD1POL : 1; 1381 unsigned ZCD1OUT : 1; 1382 unsigned : 1; 1383 unsigned ZCD1EN : 1; 1384 } __ZCD1CONbits_t; 1385 1386 extern __at(0x011C) volatile __ZCD1CONbits_t ZCD1CONbits; 1387 1388 #define _ZCD1INTN 0x01 1389 #define _ZCD1INTP 0x02 1390 #define _ZCD1POL 0x10 1391 #define _ZCD1OUT 0x20 1392 #define _ZCD1EN 0x80 1393 1394 //============================================================================== 1395 1396 1397 //============================================================================== 1398 // ANSELA Bits 1399 1400 extern __at(0x018C) __sfr ANSELA; 1401 1402 typedef struct 1403 { 1404 unsigned ANSA0 : 1; 1405 unsigned ANSA1 : 1; 1406 unsigned ANSA2 : 1; 1407 unsigned : 1; 1408 unsigned ANSA4 : 1; 1409 unsigned : 1; 1410 unsigned : 1; 1411 unsigned : 1; 1412 } __ANSELAbits_t; 1413 1414 extern __at(0x018C) volatile __ANSELAbits_t ANSELAbits; 1415 1416 #define _ANSA0 0x01 1417 #define _ANSA1 0x02 1418 #define _ANSA2 0x04 1419 #define _ANSA4 0x10 1420 1421 //============================================================================== 1422 1423 1424 //============================================================================== 1425 // ANSELB Bits 1426 1427 extern __at(0x018D) __sfr ANSELB; 1428 1429 typedef struct 1430 { 1431 unsigned : 1; 1432 unsigned : 1; 1433 unsigned : 1; 1434 unsigned : 1; 1435 unsigned ANSB4 : 1; 1436 unsigned ANSB5 : 1; 1437 unsigned : 1; 1438 unsigned : 1; 1439 } __ANSELBbits_t; 1440 1441 extern __at(0x018D) volatile __ANSELBbits_t ANSELBbits; 1442 1443 #define _ANSB4 0x10 1444 #define _ANSB5 0x20 1445 1446 //============================================================================== 1447 1448 1449 //============================================================================== 1450 // ANSELC Bits 1451 1452 extern __at(0x018E) __sfr ANSELC; 1453 1454 typedef struct 1455 { 1456 unsigned ANSC0 : 1; 1457 unsigned ANSC1 : 1; 1458 unsigned ANSC2 : 1; 1459 unsigned ANSC3 : 1; 1460 unsigned : 1; 1461 unsigned : 1; 1462 unsigned ANSC6 : 1; 1463 unsigned ANSC7 : 1; 1464 } __ANSELCbits_t; 1465 1466 extern __at(0x018E) volatile __ANSELCbits_t ANSELCbits; 1467 1468 #define _ANSC0 0x01 1469 #define _ANSC1 0x02 1470 #define _ANSC2 0x04 1471 #define _ANSC3 0x08 1472 #define _ANSC6 0x40 1473 #define _ANSC7 0x80 1474 1475 //============================================================================== 1476 1477 extern __at(0x0191) __sfr PMADR; 1478 extern __at(0x0191) __sfr PMADRL; 1479 extern __at(0x0192) __sfr PMADRH; 1480 extern __at(0x0193) __sfr PMDAT; 1481 extern __at(0x0193) __sfr PMDATL; 1482 extern __at(0x0194) __sfr PMDATH; 1483 1484 //============================================================================== 1485 // PMCON1 Bits 1486 1487 extern __at(0x0195) __sfr PMCON1; 1488 1489 typedef struct 1490 { 1491 unsigned RD : 1; 1492 unsigned WR : 1; 1493 unsigned WREN : 1; 1494 unsigned WRERR : 1; 1495 unsigned FREE : 1; 1496 unsigned LWLO : 1; 1497 unsigned CFGS : 1; 1498 unsigned : 1; 1499 } __PMCON1bits_t; 1500 1501 extern __at(0x0195) volatile __PMCON1bits_t PMCON1bits; 1502 1503 #define _RD 0x01 1504 #define _WR 0x02 1505 #define _WREN 0x04 1506 #define _WRERR 0x08 1507 #define _FREE 0x10 1508 #define _LWLO 0x20 1509 #define _CFGS 0x40 1510 1511 //============================================================================== 1512 1513 extern __at(0x0196) __sfr PMCON2; 1514 1515 //============================================================================== 1516 // VREGCON Bits 1517 1518 extern __at(0x0197) __sfr VREGCON; 1519 1520 typedef struct 1521 { 1522 unsigned Reserved : 1; 1523 unsigned VREGPM : 1; 1524 unsigned : 1; 1525 unsigned : 1; 1526 unsigned : 1; 1527 unsigned : 1; 1528 unsigned : 1; 1529 unsigned : 1; 1530 } __VREGCONbits_t; 1531 1532 extern __at(0x0197) volatile __VREGCONbits_t VREGCONbits; 1533 1534 #define _Reserved 0x01 1535 #define _VREGPM 0x02 1536 1537 //============================================================================== 1538 1539 1540 //============================================================================== 1541 // WPUA Bits 1542 1543 extern __at(0x020C) __sfr WPUA; 1544 1545 typedef union 1546 { 1547 struct 1548 { 1549 unsigned WPUA0 : 1; 1550 unsigned WPUA1 : 1; 1551 unsigned WPUA2 : 1; 1552 unsigned WPUA3 : 1; 1553 unsigned WPUA4 : 1; 1554 unsigned WPUA5 : 1; 1555 unsigned : 1; 1556 unsigned : 1; 1557 }; 1558 1559 struct 1560 { 1561 unsigned WPUA : 6; 1562 unsigned : 2; 1563 }; 1564 } __WPUAbits_t; 1565 1566 extern __at(0x020C) volatile __WPUAbits_t WPUAbits; 1567 1568 #define _WPUA0 0x01 1569 #define _WPUA1 0x02 1570 #define _WPUA2 0x04 1571 #define _WPUA3 0x08 1572 #define _WPUA4 0x10 1573 #define _WPUA5 0x20 1574 1575 //============================================================================== 1576 1577 1578 //============================================================================== 1579 // WPUB Bits 1580 1581 extern __at(0x020D) __sfr WPUB; 1582 1583 typedef struct 1584 { 1585 unsigned : 1; 1586 unsigned : 1; 1587 unsigned : 1; 1588 unsigned : 1; 1589 unsigned WPUB4 : 1; 1590 unsigned WPUB5 : 1; 1591 unsigned WPUB6 : 1; 1592 unsigned WPUB7 : 1; 1593 } __WPUBbits_t; 1594 1595 extern __at(0x020D) volatile __WPUBbits_t WPUBbits; 1596 1597 #define _WPUB4 0x10 1598 #define _WPUB5 0x20 1599 #define _WPUB6 0x40 1600 #define _WPUB7 0x80 1601 1602 //============================================================================== 1603 1604 1605 //============================================================================== 1606 // WPUC Bits 1607 1608 extern __at(0x020E) __sfr WPUC; 1609 1610 typedef struct 1611 { 1612 unsigned WPUC0 : 1; 1613 unsigned WPUC1 : 1; 1614 unsigned WPUC2 : 1; 1615 unsigned WPUC3 : 1; 1616 unsigned WPUC4 : 1; 1617 unsigned WPUC5 : 1; 1618 unsigned WPUC6 : 1; 1619 unsigned WPUC7 : 1; 1620 } __WPUCbits_t; 1621 1622 extern __at(0x020E) volatile __WPUCbits_t WPUCbits; 1623 1624 #define _WPUC0 0x01 1625 #define _WPUC1 0x02 1626 #define _WPUC2 0x04 1627 #define _WPUC3 0x08 1628 #define _WPUC4 0x10 1629 #define _WPUC5 0x20 1630 #define _WPUC6 0x40 1631 #define _WPUC7 0x80 1632 1633 //============================================================================== 1634 1635 1636 //============================================================================== 1637 // SSP1BUF Bits 1638 1639 extern __at(0x0211) __sfr SSP1BUF; 1640 1641 typedef union 1642 { 1643 struct 1644 { 1645 unsigned SSP1BUF0 : 1; 1646 unsigned SSP1BUF1 : 1; 1647 unsigned SSP1BUF2 : 1; 1648 unsigned SSP1BUF3 : 1; 1649 unsigned SSP1BUF4 : 1; 1650 unsigned SSP1BUF5 : 1; 1651 unsigned SSP1BUF6 : 1; 1652 unsigned SSP1BUF7 : 1; 1653 }; 1654 1655 struct 1656 { 1657 unsigned BUF0 : 1; 1658 unsigned BUF1 : 1; 1659 unsigned BUF2 : 1; 1660 unsigned BUF3 : 1; 1661 unsigned BUF4 : 1; 1662 unsigned BUF5 : 1; 1663 unsigned BUF6 : 1; 1664 unsigned BUF7 : 1; 1665 }; 1666 } __SSP1BUFbits_t; 1667 1668 extern __at(0x0211) volatile __SSP1BUFbits_t SSP1BUFbits; 1669 1670 #define _SSP1BUF0 0x01 1671 #define _BUF0 0x01 1672 #define _SSP1BUF1 0x02 1673 #define _BUF1 0x02 1674 #define _SSP1BUF2 0x04 1675 #define _BUF2 0x04 1676 #define _SSP1BUF3 0x08 1677 #define _BUF3 0x08 1678 #define _SSP1BUF4 0x10 1679 #define _BUF4 0x10 1680 #define _SSP1BUF5 0x20 1681 #define _BUF5 0x20 1682 #define _SSP1BUF6 0x40 1683 #define _BUF6 0x40 1684 #define _SSP1BUF7 0x80 1685 #define _BUF7 0x80 1686 1687 //============================================================================== 1688 1689 1690 //============================================================================== 1691 // SSPBUF Bits 1692 1693 extern __at(0x0211) __sfr SSPBUF; 1694 1695 typedef union 1696 { 1697 struct 1698 { 1699 unsigned SSP1BUF0 : 1; 1700 unsigned SSP1BUF1 : 1; 1701 unsigned SSP1BUF2 : 1; 1702 unsigned SSP1BUF3 : 1; 1703 unsigned SSP1BUF4 : 1; 1704 unsigned SSP1BUF5 : 1; 1705 unsigned SSP1BUF6 : 1; 1706 unsigned SSP1BUF7 : 1; 1707 }; 1708 1709 struct 1710 { 1711 unsigned BUF0 : 1; 1712 unsigned BUF1 : 1; 1713 unsigned BUF2 : 1; 1714 unsigned BUF3 : 1; 1715 unsigned BUF4 : 1; 1716 unsigned BUF5 : 1; 1717 unsigned BUF6 : 1; 1718 unsigned BUF7 : 1; 1719 }; 1720 } __SSPBUFbits_t; 1721 1722 extern __at(0x0211) volatile __SSPBUFbits_t SSPBUFbits; 1723 1724 #define _SSPBUF_SSP1BUF0 0x01 1725 #define _SSPBUF_BUF0 0x01 1726 #define _SSPBUF_SSP1BUF1 0x02 1727 #define _SSPBUF_BUF1 0x02 1728 #define _SSPBUF_SSP1BUF2 0x04 1729 #define _SSPBUF_BUF2 0x04 1730 #define _SSPBUF_SSP1BUF3 0x08 1731 #define _SSPBUF_BUF3 0x08 1732 #define _SSPBUF_SSP1BUF4 0x10 1733 #define _SSPBUF_BUF4 0x10 1734 #define _SSPBUF_SSP1BUF5 0x20 1735 #define _SSPBUF_BUF5 0x20 1736 #define _SSPBUF_SSP1BUF6 0x40 1737 #define _SSPBUF_BUF6 0x40 1738 #define _SSPBUF_SSP1BUF7 0x80 1739 #define _SSPBUF_BUF7 0x80 1740 1741 //============================================================================== 1742 1743 1744 //============================================================================== 1745 // SSP1ADD Bits 1746 1747 extern __at(0x0212) __sfr SSP1ADD; 1748 1749 typedef union 1750 { 1751 struct 1752 { 1753 unsigned SSP1ADD0 : 1; 1754 unsigned SSP1ADD1 : 1; 1755 unsigned SSP1ADD2 : 1; 1756 unsigned SSP1ADD3 : 1; 1757 unsigned SSP1ADD4 : 1; 1758 unsigned SSP1ADD5 : 1; 1759 unsigned SSP1ADD6 : 1; 1760 unsigned SSP1ADD7 : 1; 1761 }; 1762 1763 struct 1764 { 1765 unsigned ADD0 : 1; 1766 unsigned ADD1 : 1; 1767 unsigned ADD2 : 1; 1768 unsigned ADD3 : 1; 1769 unsigned ADD4 : 1; 1770 unsigned ADD5 : 1; 1771 unsigned ADD6 : 1; 1772 unsigned ADD7 : 1; 1773 }; 1774 } __SSP1ADDbits_t; 1775 1776 extern __at(0x0212) volatile __SSP1ADDbits_t SSP1ADDbits; 1777 1778 #define _SSP1ADD0 0x01 1779 #define _ADD0 0x01 1780 #define _SSP1ADD1 0x02 1781 #define _ADD1 0x02 1782 #define _SSP1ADD2 0x04 1783 #define _ADD2 0x04 1784 #define _SSP1ADD3 0x08 1785 #define _ADD3 0x08 1786 #define _SSP1ADD4 0x10 1787 #define _ADD4 0x10 1788 #define _SSP1ADD5 0x20 1789 #define _ADD5 0x20 1790 #define _SSP1ADD6 0x40 1791 #define _ADD6 0x40 1792 #define _SSP1ADD7 0x80 1793 #define _ADD7 0x80 1794 1795 //============================================================================== 1796 1797 1798 //============================================================================== 1799 // SSPADD Bits 1800 1801 extern __at(0x0212) __sfr SSPADD; 1802 1803 typedef union 1804 { 1805 struct 1806 { 1807 unsigned SSP1ADD0 : 1; 1808 unsigned SSP1ADD1 : 1; 1809 unsigned SSP1ADD2 : 1; 1810 unsigned SSP1ADD3 : 1; 1811 unsigned SSP1ADD4 : 1; 1812 unsigned SSP1ADD5 : 1; 1813 unsigned SSP1ADD6 : 1; 1814 unsigned SSP1ADD7 : 1; 1815 }; 1816 1817 struct 1818 { 1819 unsigned ADD0 : 1; 1820 unsigned ADD1 : 1; 1821 unsigned ADD2 : 1; 1822 unsigned ADD3 : 1; 1823 unsigned ADD4 : 1; 1824 unsigned ADD5 : 1; 1825 unsigned ADD6 : 1; 1826 unsigned ADD7 : 1; 1827 }; 1828 } __SSPADDbits_t; 1829 1830 extern __at(0x0212) volatile __SSPADDbits_t SSPADDbits; 1831 1832 #define _SSPADD_SSP1ADD0 0x01 1833 #define _SSPADD_ADD0 0x01 1834 #define _SSPADD_SSP1ADD1 0x02 1835 #define _SSPADD_ADD1 0x02 1836 #define _SSPADD_SSP1ADD2 0x04 1837 #define _SSPADD_ADD2 0x04 1838 #define _SSPADD_SSP1ADD3 0x08 1839 #define _SSPADD_ADD3 0x08 1840 #define _SSPADD_SSP1ADD4 0x10 1841 #define _SSPADD_ADD4 0x10 1842 #define _SSPADD_SSP1ADD5 0x20 1843 #define _SSPADD_ADD5 0x20 1844 #define _SSPADD_SSP1ADD6 0x40 1845 #define _SSPADD_ADD6 0x40 1846 #define _SSPADD_SSP1ADD7 0x80 1847 #define _SSPADD_ADD7 0x80 1848 1849 //============================================================================== 1850 1851 1852 //============================================================================== 1853 // SSP1MSK Bits 1854 1855 extern __at(0x0213) __sfr SSP1MSK; 1856 1857 typedef union 1858 { 1859 struct 1860 { 1861 unsigned SSP1MSK0 : 1; 1862 unsigned SSP1MSK1 : 1; 1863 unsigned SSP1MSK2 : 1; 1864 unsigned SSP1MSK3 : 1; 1865 unsigned SSP1MSK4 : 1; 1866 unsigned SSP1MSK5 : 1; 1867 unsigned SSP1MSK6 : 1; 1868 unsigned SSP1MSK7 : 1; 1869 }; 1870 1871 struct 1872 { 1873 unsigned MSK0 : 1; 1874 unsigned MSK1 : 1; 1875 unsigned MSK2 : 1; 1876 unsigned MSK3 : 1; 1877 unsigned MSK4 : 1; 1878 unsigned MSK5 : 1; 1879 unsigned MSK6 : 1; 1880 unsigned MSK7 : 1; 1881 }; 1882 } __SSP1MSKbits_t; 1883 1884 extern __at(0x0213) volatile __SSP1MSKbits_t SSP1MSKbits; 1885 1886 #define _SSP1MSK0 0x01 1887 #define _MSK0 0x01 1888 #define _SSP1MSK1 0x02 1889 #define _MSK1 0x02 1890 #define _SSP1MSK2 0x04 1891 #define _MSK2 0x04 1892 #define _SSP1MSK3 0x08 1893 #define _MSK3 0x08 1894 #define _SSP1MSK4 0x10 1895 #define _MSK4 0x10 1896 #define _SSP1MSK5 0x20 1897 #define _MSK5 0x20 1898 #define _SSP1MSK6 0x40 1899 #define _MSK6 0x40 1900 #define _SSP1MSK7 0x80 1901 #define _MSK7 0x80 1902 1903 //============================================================================== 1904 1905 1906 //============================================================================== 1907 // SSPMSK Bits 1908 1909 extern __at(0x0213) __sfr SSPMSK; 1910 1911 typedef union 1912 { 1913 struct 1914 { 1915 unsigned SSP1MSK0 : 1; 1916 unsigned SSP1MSK1 : 1; 1917 unsigned SSP1MSK2 : 1; 1918 unsigned SSP1MSK3 : 1; 1919 unsigned SSP1MSK4 : 1; 1920 unsigned SSP1MSK5 : 1; 1921 unsigned SSP1MSK6 : 1; 1922 unsigned SSP1MSK7 : 1; 1923 }; 1924 1925 struct 1926 { 1927 unsigned MSK0 : 1; 1928 unsigned MSK1 : 1; 1929 unsigned MSK2 : 1; 1930 unsigned MSK3 : 1; 1931 unsigned MSK4 : 1; 1932 unsigned MSK5 : 1; 1933 unsigned MSK6 : 1; 1934 unsigned MSK7 : 1; 1935 }; 1936 } __SSPMSKbits_t; 1937 1938 extern __at(0x0213) volatile __SSPMSKbits_t SSPMSKbits; 1939 1940 #define _SSPMSK_SSP1MSK0 0x01 1941 #define _SSPMSK_MSK0 0x01 1942 #define _SSPMSK_SSP1MSK1 0x02 1943 #define _SSPMSK_MSK1 0x02 1944 #define _SSPMSK_SSP1MSK2 0x04 1945 #define _SSPMSK_MSK2 0x04 1946 #define _SSPMSK_SSP1MSK3 0x08 1947 #define _SSPMSK_MSK3 0x08 1948 #define _SSPMSK_SSP1MSK4 0x10 1949 #define _SSPMSK_MSK4 0x10 1950 #define _SSPMSK_SSP1MSK5 0x20 1951 #define _SSPMSK_MSK5 0x20 1952 #define _SSPMSK_SSP1MSK6 0x40 1953 #define _SSPMSK_MSK6 0x40 1954 #define _SSPMSK_SSP1MSK7 0x80 1955 #define _SSPMSK_MSK7 0x80 1956 1957 //============================================================================== 1958 1959 1960 //============================================================================== 1961 // SSP1STAT Bits 1962 1963 extern __at(0x0214) __sfr SSP1STAT; 1964 1965 typedef struct 1966 { 1967 unsigned BF : 1; 1968 unsigned UA : 1; 1969 unsigned R_NOT_W : 1; 1970 unsigned S : 1; 1971 unsigned P : 1; 1972 unsigned D_NOT_A : 1; 1973 unsigned CKE : 1; 1974 unsigned SMP : 1; 1975 } __SSP1STATbits_t; 1976 1977 extern __at(0x0214) volatile __SSP1STATbits_t SSP1STATbits; 1978 1979 #define _BF 0x01 1980 #define _UA 0x02 1981 #define _R_NOT_W 0x04 1982 #define _S 0x08 1983 #define _P 0x10 1984 #define _D_NOT_A 0x20 1985 #define _CKE 0x40 1986 #define _SMP 0x80 1987 1988 //============================================================================== 1989 1990 1991 //============================================================================== 1992 // SSPSTAT Bits 1993 1994 extern __at(0x0214) __sfr SSPSTAT; 1995 1996 typedef struct 1997 { 1998 unsigned BF : 1; 1999 unsigned UA : 1; 2000 unsigned R_NOT_W : 1; 2001 unsigned S : 1; 2002 unsigned P : 1; 2003 unsigned D_NOT_A : 1; 2004 unsigned CKE : 1; 2005 unsigned SMP : 1; 2006 } __SSPSTATbits_t; 2007 2008 extern __at(0x0214) volatile __SSPSTATbits_t SSPSTATbits; 2009 2010 #define _SSPSTAT_BF 0x01 2011 #define _SSPSTAT_UA 0x02 2012 #define _SSPSTAT_R_NOT_W 0x04 2013 #define _SSPSTAT_S 0x08 2014 #define _SSPSTAT_P 0x10 2015 #define _SSPSTAT_D_NOT_A 0x20 2016 #define _SSPSTAT_CKE 0x40 2017 #define _SSPSTAT_SMP 0x80 2018 2019 //============================================================================== 2020 2021 2022 //============================================================================== 2023 // SSP1CON Bits 2024 2025 extern __at(0x0215) __sfr SSP1CON; 2026 2027 typedef union 2028 { 2029 struct 2030 { 2031 unsigned SSPM0 : 1; 2032 unsigned SSPM1 : 1; 2033 unsigned SSPM2 : 1; 2034 unsigned SSPM3 : 1; 2035 unsigned CKP : 1; 2036 unsigned SSPEN : 1; 2037 unsigned SSPOV : 1; 2038 unsigned WCOL : 1; 2039 }; 2040 2041 struct 2042 { 2043 unsigned SSPM : 4; 2044 unsigned : 4; 2045 }; 2046 } __SSP1CONbits_t; 2047 2048 extern __at(0x0215) volatile __SSP1CONbits_t SSP1CONbits; 2049 2050 #define _SSPM0 0x01 2051 #define _SSPM1 0x02 2052 #define _SSPM2 0x04 2053 #define _SSPM3 0x08 2054 #define _CKP 0x10 2055 #define _SSPEN 0x20 2056 #define _SSPOV 0x40 2057 #define _WCOL 0x80 2058 2059 //============================================================================== 2060 2061 2062 //============================================================================== 2063 // SSP1CON1 Bits 2064 2065 extern __at(0x0215) __sfr SSP1CON1; 2066 2067 typedef union 2068 { 2069 struct 2070 { 2071 unsigned SSPM0 : 1; 2072 unsigned SSPM1 : 1; 2073 unsigned SSPM2 : 1; 2074 unsigned SSPM3 : 1; 2075 unsigned CKP : 1; 2076 unsigned SSPEN : 1; 2077 unsigned SSPOV : 1; 2078 unsigned WCOL : 1; 2079 }; 2080 2081 struct 2082 { 2083 unsigned SSPM : 4; 2084 unsigned : 4; 2085 }; 2086 } __SSP1CON1bits_t; 2087 2088 extern __at(0x0215) volatile __SSP1CON1bits_t SSP1CON1bits; 2089 2090 #define _SSP1CON1_SSPM0 0x01 2091 #define _SSP1CON1_SSPM1 0x02 2092 #define _SSP1CON1_SSPM2 0x04 2093 #define _SSP1CON1_SSPM3 0x08 2094 #define _SSP1CON1_CKP 0x10 2095 #define _SSP1CON1_SSPEN 0x20 2096 #define _SSP1CON1_SSPOV 0x40 2097 #define _SSP1CON1_WCOL 0x80 2098 2099 //============================================================================== 2100 2101 2102 //============================================================================== 2103 // SSPCON Bits 2104 2105 extern __at(0x0215) __sfr SSPCON; 2106 2107 typedef union 2108 { 2109 struct 2110 { 2111 unsigned SSPM0 : 1; 2112 unsigned SSPM1 : 1; 2113 unsigned SSPM2 : 1; 2114 unsigned SSPM3 : 1; 2115 unsigned CKP : 1; 2116 unsigned SSPEN : 1; 2117 unsigned SSPOV : 1; 2118 unsigned WCOL : 1; 2119 }; 2120 2121 struct 2122 { 2123 unsigned SSPM : 4; 2124 unsigned : 4; 2125 }; 2126 } __SSPCONbits_t; 2127 2128 extern __at(0x0215) volatile __SSPCONbits_t SSPCONbits; 2129 2130 #define _SSPCON_SSPM0 0x01 2131 #define _SSPCON_SSPM1 0x02 2132 #define _SSPCON_SSPM2 0x04 2133 #define _SSPCON_SSPM3 0x08 2134 #define _SSPCON_CKP 0x10 2135 #define _SSPCON_SSPEN 0x20 2136 #define _SSPCON_SSPOV 0x40 2137 #define _SSPCON_WCOL 0x80 2138 2139 //============================================================================== 2140 2141 2142 //============================================================================== 2143 // SSPCON1 Bits 2144 2145 extern __at(0x0215) __sfr SSPCON1; 2146 2147 typedef union 2148 { 2149 struct 2150 { 2151 unsigned SSPM0 : 1; 2152 unsigned SSPM1 : 1; 2153 unsigned SSPM2 : 1; 2154 unsigned SSPM3 : 1; 2155 unsigned CKP : 1; 2156 unsigned SSPEN : 1; 2157 unsigned SSPOV : 1; 2158 unsigned WCOL : 1; 2159 }; 2160 2161 struct 2162 { 2163 unsigned SSPM : 4; 2164 unsigned : 4; 2165 }; 2166 } __SSPCON1bits_t; 2167 2168 extern __at(0x0215) volatile __SSPCON1bits_t SSPCON1bits; 2169 2170 #define _SSPCON1_SSPM0 0x01 2171 #define _SSPCON1_SSPM1 0x02 2172 #define _SSPCON1_SSPM2 0x04 2173 #define _SSPCON1_SSPM3 0x08 2174 #define _SSPCON1_CKP 0x10 2175 #define _SSPCON1_SSPEN 0x20 2176 #define _SSPCON1_SSPOV 0x40 2177 #define _SSPCON1_WCOL 0x80 2178 2179 //============================================================================== 2180 2181 2182 //============================================================================== 2183 // SSP1CON2 Bits 2184 2185 extern __at(0x0216) __sfr SSP1CON2; 2186 2187 typedef struct 2188 { 2189 unsigned SEN : 1; 2190 unsigned RSEN : 1; 2191 unsigned PEN : 1; 2192 unsigned RCEN : 1; 2193 unsigned ACKEN : 1; 2194 unsigned ACKDT : 1; 2195 unsigned ACKSTAT : 1; 2196 unsigned GCEN : 1; 2197 } __SSP1CON2bits_t; 2198 2199 extern __at(0x0216) volatile __SSP1CON2bits_t SSP1CON2bits; 2200 2201 #define _SEN 0x01 2202 #define _RSEN 0x02 2203 #define _PEN 0x04 2204 #define _RCEN 0x08 2205 #define _ACKEN 0x10 2206 #define _ACKDT 0x20 2207 #define _ACKSTAT 0x40 2208 #define _GCEN 0x80 2209 2210 //============================================================================== 2211 2212 2213 //============================================================================== 2214 // SSPCON2 Bits 2215 2216 extern __at(0x0216) __sfr SSPCON2; 2217 2218 typedef struct 2219 { 2220 unsigned SEN : 1; 2221 unsigned RSEN : 1; 2222 unsigned PEN : 1; 2223 unsigned RCEN : 1; 2224 unsigned ACKEN : 1; 2225 unsigned ACKDT : 1; 2226 unsigned ACKSTAT : 1; 2227 unsigned GCEN : 1; 2228 } __SSPCON2bits_t; 2229 2230 extern __at(0x0216) volatile __SSPCON2bits_t SSPCON2bits; 2231 2232 #define _SSPCON2_SEN 0x01 2233 #define _SSPCON2_RSEN 0x02 2234 #define _SSPCON2_PEN 0x04 2235 #define _SSPCON2_RCEN 0x08 2236 #define _SSPCON2_ACKEN 0x10 2237 #define _SSPCON2_ACKDT 0x20 2238 #define _SSPCON2_ACKSTAT 0x40 2239 #define _SSPCON2_GCEN 0x80 2240 2241 //============================================================================== 2242 2243 2244 //============================================================================== 2245 // SSP1CON3 Bits 2246 2247 extern __at(0x0217) __sfr SSP1CON3; 2248 2249 typedef struct 2250 { 2251 unsigned DHEN : 1; 2252 unsigned AHEN : 1; 2253 unsigned SBCDE : 1; 2254 unsigned SDAHT : 1; 2255 unsigned BOEN : 1; 2256 unsigned SCIE : 1; 2257 unsigned PCIE : 1; 2258 unsigned ACKTIM : 1; 2259 } __SSP1CON3bits_t; 2260 2261 extern __at(0x0217) volatile __SSP1CON3bits_t SSP1CON3bits; 2262 2263 #define _DHEN 0x01 2264 #define _AHEN 0x02 2265 #define _SBCDE 0x04 2266 #define _SDAHT 0x08 2267 #define _BOEN 0x10 2268 #define _SCIE 0x20 2269 #define _PCIE 0x40 2270 #define _ACKTIM 0x80 2271 2272 //============================================================================== 2273 2274 2275 //============================================================================== 2276 // SSPCON3 Bits 2277 2278 extern __at(0x0217) __sfr SSPCON3; 2279 2280 typedef struct 2281 { 2282 unsigned DHEN : 1; 2283 unsigned AHEN : 1; 2284 unsigned SBCDE : 1; 2285 unsigned SDAHT : 1; 2286 unsigned BOEN : 1; 2287 unsigned SCIE : 1; 2288 unsigned PCIE : 1; 2289 unsigned ACKTIM : 1; 2290 } __SSPCON3bits_t; 2291 2292 extern __at(0x0217) volatile __SSPCON3bits_t SSPCON3bits; 2293 2294 #define _SSPCON3_DHEN 0x01 2295 #define _SSPCON3_AHEN 0x02 2296 #define _SSPCON3_SBCDE 0x04 2297 #define _SSPCON3_SDAHT 0x08 2298 #define _SSPCON3_BOEN 0x10 2299 #define _SSPCON3_SCIE 0x20 2300 #define _SSPCON3_PCIE 0x40 2301 #define _SSPCON3_ACKTIM 0x80 2302 2303 //============================================================================== 2304 2305 2306 //============================================================================== 2307 // ODCONA Bits 2308 2309 extern __at(0x028C) __sfr ODCONA; 2310 2311 typedef struct 2312 { 2313 unsigned ODA0 : 1; 2314 unsigned ODA1 : 1; 2315 unsigned ODA2 : 1; 2316 unsigned : 1; 2317 unsigned ODA4 : 1; 2318 unsigned ODA5 : 1; 2319 unsigned : 1; 2320 unsigned : 1; 2321 } __ODCONAbits_t; 2322 2323 extern __at(0x028C) volatile __ODCONAbits_t ODCONAbits; 2324 2325 #define _ODA0 0x01 2326 #define _ODA1 0x02 2327 #define _ODA2 0x04 2328 #define _ODA4 0x10 2329 #define _ODA5 0x20 2330 2331 //============================================================================== 2332 2333 2334 //============================================================================== 2335 // ODCONB Bits 2336 2337 extern __at(0x028D) __sfr ODCONB; 2338 2339 typedef struct 2340 { 2341 unsigned : 1; 2342 unsigned : 1; 2343 unsigned : 1; 2344 unsigned : 1; 2345 unsigned ODB4 : 1; 2346 unsigned ODB5 : 1; 2347 unsigned ODB6 : 1; 2348 unsigned ODB7 : 1; 2349 } __ODCONBbits_t; 2350 2351 extern __at(0x028D) volatile __ODCONBbits_t ODCONBbits; 2352 2353 #define _ODB4 0x10 2354 #define _ODB5 0x20 2355 #define _ODB6 0x40 2356 #define _ODB7 0x80 2357 2358 //============================================================================== 2359 2360 2361 //============================================================================== 2362 // ODCONC Bits 2363 2364 extern __at(0x028E) __sfr ODCONC; 2365 2366 typedef struct 2367 { 2368 unsigned ODC0 : 1; 2369 unsigned ODC1 : 1; 2370 unsigned ODC2 : 1; 2371 unsigned ODC3 : 1; 2372 unsigned ODC4 : 1; 2373 unsigned ODC5 : 1; 2374 unsigned ODC6 : 1; 2375 unsigned ODC7 : 1; 2376 } __ODCONCbits_t; 2377 2378 extern __at(0x028E) volatile __ODCONCbits_t ODCONCbits; 2379 2380 #define _ODC0 0x01 2381 #define _ODC1 0x02 2382 #define _ODC2 0x04 2383 #define _ODC3 0x08 2384 #define _ODC4 0x10 2385 #define _ODC5 0x20 2386 #define _ODC6 0x40 2387 #define _ODC7 0x80 2388 2389 //============================================================================== 2390 2391 extern __at(0x0291) __sfr CCPR1; 2392 extern __at(0x0291) __sfr CCPR1L; 2393 extern __at(0x0292) __sfr CCPR1H; 2394 2395 //============================================================================== 2396 // CCP1CON Bits 2397 2398 extern __at(0x0293) __sfr CCP1CON; 2399 2400 typedef union 2401 { 2402 struct 2403 { 2404 unsigned CCP1M0 : 1; 2405 unsigned CCP1M1 : 1; 2406 unsigned CCP1M2 : 1; 2407 unsigned CCP1M3 : 1; 2408 unsigned DC1B0 : 1; 2409 unsigned DC1B1 : 1; 2410 unsigned : 1; 2411 unsigned : 1; 2412 }; 2413 2414 struct 2415 { 2416 unsigned : 1; 2417 unsigned : 1; 2418 unsigned : 1; 2419 unsigned : 1; 2420 unsigned CCP1Y : 1; 2421 unsigned CCP1X : 1; 2422 unsigned : 1; 2423 unsigned : 1; 2424 }; 2425 2426 struct 2427 { 2428 unsigned CCP1M : 4; 2429 unsigned : 4; 2430 }; 2431 2432 struct 2433 { 2434 unsigned : 4; 2435 unsigned DC1B : 2; 2436 unsigned : 2; 2437 }; 2438 } __CCP1CONbits_t; 2439 2440 extern __at(0x0293) volatile __CCP1CONbits_t CCP1CONbits; 2441 2442 #define _CCP1M0 0x01 2443 #define _CCP1M1 0x02 2444 #define _CCP1M2 0x04 2445 #define _CCP1M3 0x08 2446 #define _DC1B0 0x10 2447 #define _CCP1Y 0x10 2448 #define _DC1B1 0x20 2449 #define _CCP1X 0x20 2450 2451 //============================================================================== 2452 2453 2454 //============================================================================== 2455 // ECCP1CON Bits 2456 2457 extern __at(0x0293) __sfr ECCP1CON; 2458 2459 typedef union 2460 { 2461 struct 2462 { 2463 unsigned CCP1M0 : 1; 2464 unsigned CCP1M1 : 1; 2465 unsigned CCP1M2 : 1; 2466 unsigned CCP1M3 : 1; 2467 unsigned DC1B0 : 1; 2468 unsigned DC1B1 : 1; 2469 unsigned : 1; 2470 unsigned : 1; 2471 }; 2472 2473 struct 2474 { 2475 unsigned : 1; 2476 unsigned : 1; 2477 unsigned : 1; 2478 unsigned : 1; 2479 unsigned CCP1Y : 1; 2480 unsigned CCP1X : 1; 2481 unsigned : 1; 2482 unsigned : 1; 2483 }; 2484 2485 struct 2486 { 2487 unsigned CCP1M : 4; 2488 unsigned : 4; 2489 }; 2490 2491 struct 2492 { 2493 unsigned : 4; 2494 unsigned DC1B : 2; 2495 unsigned : 2; 2496 }; 2497 } __ECCP1CONbits_t; 2498 2499 extern __at(0x0293) volatile __ECCP1CONbits_t ECCP1CONbits; 2500 2501 #define _ECCP1CON_CCP1M0 0x01 2502 #define _ECCP1CON_CCP1M1 0x02 2503 #define _ECCP1CON_CCP1M2 0x04 2504 #define _ECCP1CON_CCP1M3 0x08 2505 #define _ECCP1CON_DC1B0 0x10 2506 #define _ECCP1CON_CCP1Y 0x10 2507 #define _ECCP1CON_DC1B1 0x20 2508 #define _ECCP1CON_CCP1X 0x20 2509 2510 //============================================================================== 2511 2512 extern __at(0x0298) __sfr CCPR2; 2513 extern __at(0x0298) __sfr CCPR2L; 2514 extern __at(0x0299) __sfr CCPR2H; 2515 2516 //============================================================================== 2517 // CCP2CON Bits 2518 2519 extern __at(0x029A) __sfr CCP2CON; 2520 2521 typedef union 2522 { 2523 struct 2524 { 2525 unsigned CCP2M0 : 1; 2526 unsigned CCP2M1 : 1; 2527 unsigned CCP2M2 : 1; 2528 unsigned CCP2M3 : 1; 2529 unsigned DC2B0 : 1; 2530 unsigned DC2B1 : 1; 2531 unsigned : 1; 2532 unsigned : 1; 2533 }; 2534 2535 struct 2536 { 2537 unsigned : 1; 2538 unsigned : 1; 2539 unsigned : 1; 2540 unsigned : 1; 2541 unsigned CCP2Y : 1; 2542 unsigned CCP2X : 1; 2543 unsigned : 1; 2544 unsigned : 1; 2545 }; 2546 2547 struct 2548 { 2549 unsigned CCP2M : 4; 2550 unsigned : 4; 2551 }; 2552 2553 struct 2554 { 2555 unsigned : 4; 2556 unsigned DC2B : 2; 2557 unsigned : 2; 2558 }; 2559 } __CCP2CONbits_t; 2560 2561 extern __at(0x029A) volatile __CCP2CONbits_t CCP2CONbits; 2562 2563 #define _CCP2M0 0x01 2564 #define _CCP2M1 0x02 2565 #define _CCP2M2 0x04 2566 #define _CCP2M3 0x08 2567 #define _DC2B0 0x10 2568 #define _CCP2Y 0x10 2569 #define _DC2B1 0x20 2570 #define _CCP2X 0x20 2571 2572 //============================================================================== 2573 2574 2575 //============================================================================== 2576 // ECCP2CON Bits 2577 2578 extern __at(0x029A) __sfr ECCP2CON; 2579 2580 typedef union 2581 { 2582 struct 2583 { 2584 unsigned CCP2M0 : 1; 2585 unsigned CCP2M1 : 1; 2586 unsigned CCP2M2 : 1; 2587 unsigned CCP2M3 : 1; 2588 unsigned DC2B0 : 1; 2589 unsigned DC2B1 : 1; 2590 unsigned : 1; 2591 unsigned : 1; 2592 }; 2593 2594 struct 2595 { 2596 unsigned : 1; 2597 unsigned : 1; 2598 unsigned : 1; 2599 unsigned : 1; 2600 unsigned CCP2Y : 1; 2601 unsigned CCP2X : 1; 2602 unsigned : 1; 2603 unsigned : 1; 2604 }; 2605 2606 struct 2607 { 2608 unsigned CCP2M : 4; 2609 unsigned : 4; 2610 }; 2611 2612 struct 2613 { 2614 unsigned : 4; 2615 unsigned DC2B : 2; 2616 unsigned : 2; 2617 }; 2618 } __ECCP2CONbits_t; 2619 2620 extern __at(0x029A) volatile __ECCP2CONbits_t ECCP2CONbits; 2621 2622 #define _ECCP2CON_CCP2M0 0x01 2623 #define _ECCP2CON_CCP2M1 0x02 2624 #define _ECCP2CON_CCP2M2 0x04 2625 #define _ECCP2CON_CCP2M3 0x08 2626 #define _ECCP2CON_DC2B0 0x10 2627 #define _ECCP2CON_CCP2Y 0x10 2628 #define _ECCP2CON_DC2B1 0x20 2629 #define _ECCP2CON_CCP2X 0x20 2630 2631 //============================================================================== 2632 2633 2634 //============================================================================== 2635 // SLRCONA Bits 2636 2637 extern __at(0x030C) __sfr SLRCONA; 2638 2639 typedef struct 2640 { 2641 unsigned SLRA0 : 1; 2642 unsigned SLRA1 : 1; 2643 unsigned SLRA2 : 1; 2644 unsigned : 1; 2645 unsigned SLRA4 : 1; 2646 unsigned SLRA5 : 1; 2647 unsigned : 1; 2648 unsigned : 1; 2649 } __SLRCONAbits_t; 2650 2651 extern __at(0x030C) volatile __SLRCONAbits_t SLRCONAbits; 2652 2653 #define _SLRA0 0x01 2654 #define _SLRA1 0x02 2655 #define _SLRA2 0x04 2656 #define _SLRA4 0x10 2657 #define _SLRA5 0x20 2658 2659 //============================================================================== 2660 2661 2662 //============================================================================== 2663 // SLRCONB Bits 2664 2665 extern __at(0x030D) __sfr SLRCONB; 2666 2667 typedef struct 2668 { 2669 unsigned : 1; 2670 unsigned : 1; 2671 unsigned : 1; 2672 unsigned : 1; 2673 unsigned SLRB4 : 1; 2674 unsigned SLRB5 : 1; 2675 unsigned SLRB6 : 1; 2676 unsigned SLRB7 : 1; 2677 } __SLRCONBbits_t; 2678 2679 extern __at(0x030D) volatile __SLRCONBbits_t SLRCONBbits; 2680 2681 #define _SLRB4 0x10 2682 #define _SLRB5 0x20 2683 #define _SLRB6 0x40 2684 #define _SLRB7 0x80 2685 2686 //============================================================================== 2687 2688 2689 //============================================================================== 2690 // SLRCONC Bits 2691 2692 extern __at(0x030E) __sfr SLRCONC; 2693 2694 typedef struct 2695 { 2696 unsigned SLRC0 : 1; 2697 unsigned SLRC1 : 1; 2698 unsigned SLRC2 : 1; 2699 unsigned SLRC3 : 1; 2700 unsigned SLRC4 : 1; 2701 unsigned SLRC5 : 1; 2702 unsigned SLRC6 : 1; 2703 unsigned SLRC7 : 1; 2704 } __SLRCONCbits_t; 2705 2706 extern __at(0x030E) volatile __SLRCONCbits_t SLRCONCbits; 2707 2708 #define _SLRC0 0x01 2709 #define _SLRC1 0x02 2710 #define _SLRC2 0x04 2711 #define _SLRC3 0x08 2712 #define _SLRC4 0x10 2713 #define _SLRC5 0x20 2714 #define _SLRC6 0x40 2715 #define _SLRC7 0x80 2716 2717 //============================================================================== 2718 2719 2720 //============================================================================== 2721 // INLVLA Bits 2722 2723 extern __at(0x038C) __sfr INLVLA; 2724 2725 typedef union 2726 { 2727 struct 2728 { 2729 unsigned INLVLA0 : 1; 2730 unsigned INLVLA1 : 1; 2731 unsigned INLVLA2 : 1; 2732 unsigned INLVLA3 : 1; 2733 unsigned INLVLA4 : 1; 2734 unsigned INLVLA5 : 1; 2735 unsigned : 1; 2736 unsigned : 1; 2737 }; 2738 2739 struct 2740 { 2741 unsigned INLVLA : 6; 2742 unsigned : 2; 2743 }; 2744 } __INLVLAbits_t; 2745 2746 extern __at(0x038C) volatile __INLVLAbits_t INLVLAbits; 2747 2748 #define _INLVLA0 0x01 2749 #define _INLVLA1 0x02 2750 #define _INLVLA2 0x04 2751 #define _INLVLA3 0x08 2752 #define _INLVLA4 0x10 2753 #define _INLVLA5 0x20 2754 2755 //============================================================================== 2756 2757 2758 //============================================================================== 2759 // INLVLB Bits 2760 2761 extern __at(0x038D) __sfr INLVLB; 2762 2763 typedef struct 2764 { 2765 unsigned : 1; 2766 unsigned : 1; 2767 unsigned : 1; 2768 unsigned : 1; 2769 unsigned INLVLB4 : 1; 2770 unsigned INLVLB5 : 1; 2771 unsigned INLVLB6 : 1; 2772 unsigned INLVLB7 : 1; 2773 } __INLVLBbits_t; 2774 2775 extern __at(0x038D) volatile __INLVLBbits_t INLVLBbits; 2776 2777 #define _INLVLB4 0x10 2778 #define _INLVLB5 0x20 2779 #define _INLVLB6 0x40 2780 #define _INLVLB7 0x80 2781 2782 //============================================================================== 2783 2784 2785 //============================================================================== 2786 // INLVLC Bits 2787 2788 extern __at(0x038E) __sfr INLVLC; 2789 2790 typedef struct 2791 { 2792 unsigned INLVLC0 : 1; 2793 unsigned INLVLC1 : 1; 2794 unsigned INLVLC2 : 1; 2795 unsigned INLVLC3 : 1; 2796 unsigned INLVLC4 : 1; 2797 unsigned INLVLC5 : 1; 2798 unsigned INLVLC6 : 1; 2799 unsigned INLVLC7 : 1; 2800 } __INLVLCbits_t; 2801 2802 extern __at(0x038E) volatile __INLVLCbits_t INLVLCbits; 2803 2804 #define _INLVLC0 0x01 2805 #define _INLVLC1 0x02 2806 #define _INLVLC2 0x04 2807 #define _INLVLC3 0x08 2808 #define _INLVLC4 0x10 2809 #define _INLVLC5 0x20 2810 #define _INLVLC6 0x40 2811 #define _INLVLC7 0x80 2812 2813 //============================================================================== 2814 2815 2816 //============================================================================== 2817 // IOCAP Bits 2818 2819 extern __at(0x0391) __sfr IOCAP; 2820 2821 typedef union 2822 { 2823 struct 2824 { 2825 unsigned IOCAP0 : 1; 2826 unsigned IOCAP1 : 1; 2827 unsigned IOCAP2 : 1; 2828 unsigned IOCAP3 : 1; 2829 unsigned IOCAP4 : 1; 2830 unsigned IOCAP5 : 1; 2831 unsigned : 1; 2832 unsigned : 1; 2833 }; 2834 2835 struct 2836 { 2837 unsigned IOCAP : 6; 2838 unsigned : 2; 2839 }; 2840 } __IOCAPbits_t; 2841 2842 extern __at(0x0391) volatile __IOCAPbits_t IOCAPbits; 2843 2844 #define _IOCAP0 0x01 2845 #define _IOCAP1 0x02 2846 #define _IOCAP2 0x04 2847 #define _IOCAP3 0x08 2848 #define _IOCAP4 0x10 2849 #define _IOCAP5 0x20 2850 2851 //============================================================================== 2852 2853 2854 //============================================================================== 2855 // IOCAN Bits 2856 2857 extern __at(0x0392) __sfr IOCAN; 2858 2859 typedef union 2860 { 2861 struct 2862 { 2863 unsigned IOCAN0 : 1; 2864 unsigned IOCAN1 : 1; 2865 unsigned IOCAN2 : 1; 2866 unsigned IOCAN3 : 1; 2867 unsigned IOCAN4 : 1; 2868 unsigned IOCAN5 : 1; 2869 unsigned : 1; 2870 unsigned : 1; 2871 }; 2872 2873 struct 2874 { 2875 unsigned IOCAN : 6; 2876 unsigned : 2; 2877 }; 2878 } __IOCANbits_t; 2879 2880 extern __at(0x0392) volatile __IOCANbits_t IOCANbits; 2881 2882 #define _IOCAN0 0x01 2883 #define _IOCAN1 0x02 2884 #define _IOCAN2 0x04 2885 #define _IOCAN3 0x08 2886 #define _IOCAN4 0x10 2887 #define _IOCAN5 0x20 2888 2889 //============================================================================== 2890 2891 2892 //============================================================================== 2893 // IOCAF Bits 2894 2895 extern __at(0x0393) __sfr IOCAF; 2896 2897 typedef union 2898 { 2899 struct 2900 { 2901 unsigned IOCAF0 : 1; 2902 unsigned IOCAF1 : 1; 2903 unsigned IOCAF2 : 1; 2904 unsigned IOCAF3 : 1; 2905 unsigned IOCAF4 : 1; 2906 unsigned IOCAF5 : 1; 2907 unsigned : 1; 2908 unsigned : 1; 2909 }; 2910 2911 struct 2912 { 2913 unsigned IOCAF : 6; 2914 unsigned : 2; 2915 }; 2916 } __IOCAFbits_t; 2917 2918 extern __at(0x0393) volatile __IOCAFbits_t IOCAFbits; 2919 2920 #define _IOCAF0 0x01 2921 #define _IOCAF1 0x02 2922 #define _IOCAF2 0x04 2923 #define _IOCAF3 0x08 2924 #define _IOCAF4 0x10 2925 #define _IOCAF5 0x20 2926 2927 //============================================================================== 2928 2929 2930 //============================================================================== 2931 // IOCBP Bits 2932 2933 extern __at(0x0394) __sfr IOCBP; 2934 2935 typedef struct 2936 { 2937 unsigned : 1; 2938 unsigned : 1; 2939 unsigned : 1; 2940 unsigned : 1; 2941 unsigned IOCBP4 : 1; 2942 unsigned IOCBP5 : 1; 2943 unsigned IOCBP6 : 1; 2944 unsigned IOCBP7 : 1; 2945 } __IOCBPbits_t; 2946 2947 extern __at(0x0394) volatile __IOCBPbits_t IOCBPbits; 2948 2949 #define _IOCBP4 0x10 2950 #define _IOCBP5 0x20 2951 #define _IOCBP6 0x40 2952 #define _IOCBP7 0x80 2953 2954 //============================================================================== 2955 2956 2957 //============================================================================== 2958 // IOCBN Bits 2959 2960 extern __at(0x0395) __sfr IOCBN; 2961 2962 typedef struct 2963 { 2964 unsigned : 1; 2965 unsigned : 1; 2966 unsigned : 1; 2967 unsigned : 1; 2968 unsigned IOCBN4 : 1; 2969 unsigned IOCBN5 : 1; 2970 unsigned IOCBN6 : 1; 2971 unsigned IOCBN7 : 1; 2972 } __IOCBNbits_t; 2973 2974 extern __at(0x0395) volatile __IOCBNbits_t IOCBNbits; 2975 2976 #define _IOCBN4 0x10 2977 #define _IOCBN5 0x20 2978 #define _IOCBN6 0x40 2979 #define _IOCBN7 0x80 2980 2981 //============================================================================== 2982 2983 2984 //============================================================================== 2985 // IOCBF Bits 2986 2987 extern __at(0x0396) __sfr IOCBF; 2988 2989 typedef struct 2990 { 2991 unsigned : 1; 2992 unsigned : 1; 2993 unsigned : 1; 2994 unsigned : 1; 2995 unsigned IOCBF4 : 1; 2996 unsigned IOCBF5 : 1; 2997 unsigned IOCBF6 : 1; 2998 unsigned IOCBF7 : 1; 2999 } __IOCBFbits_t; 3000 3001 extern __at(0x0396) volatile __IOCBFbits_t IOCBFbits; 3002 3003 #define _IOCBF4 0x10 3004 #define _IOCBF5 0x20 3005 #define _IOCBF6 0x40 3006 #define _IOCBF7 0x80 3007 3008 //============================================================================== 3009 3010 3011 //============================================================================== 3012 // IOCCP Bits 3013 3014 extern __at(0x0397) __sfr IOCCP; 3015 3016 typedef struct 3017 { 3018 unsigned IOCCP0 : 1; 3019 unsigned IOCCP1 : 1; 3020 unsigned IOCCP2 : 1; 3021 unsigned IOCCP3 : 1; 3022 unsigned IOCCP4 : 1; 3023 unsigned IOCCP5 : 1; 3024 unsigned IOCCP6 : 1; 3025 unsigned IOCCP7 : 1; 3026 } __IOCCPbits_t; 3027 3028 extern __at(0x0397) volatile __IOCCPbits_t IOCCPbits; 3029 3030 #define _IOCCP0 0x01 3031 #define _IOCCP1 0x02 3032 #define _IOCCP2 0x04 3033 #define _IOCCP3 0x08 3034 #define _IOCCP4 0x10 3035 #define _IOCCP5 0x20 3036 #define _IOCCP6 0x40 3037 #define _IOCCP7 0x80 3038 3039 //============================================================================== 3040 3041 3042 //============================================================================== 3043 // IOCCN Bits 3044 3045 extern __at(0x0398) __sfr IOCCN; 3046 3047 typedef struct 3048 { 3049 unsigned IOCCN0 : 1; 3050 unsigned IOCCN1 : 1; 3051 unsigned IOCCN2 : 1; 3052 unsigned IOCCN3 : 1; 3053 unsigned IOCCN4 : 1; 3054 unsigned IOCCN5 : 1; 3055 unsigned IOCCN6 : 1; 3056 unsigned IOCCN7 : 1; 3057 } __IOCCNbits_t; 3058 3059 extern __at(0x0398) volatile __IOCCNbits_t IOCCNbits; 3060 3061 #define _IOCCN0 0x01 3062 #define _IOCCN1 0x02 3063 #define _IOCCN2 0x04 3064 #define _IOCCN3 0x08 3065 #define _IOCCN4 0x10 3066 #define _IOCCN5 0x20 3067 #define _IOCCN6 0x40 3068 #define _IOCCN7 0x80 3069 3070 //============================================================================== 3071 3072 3073 //============================================================================== 3074 // IOCCF Bits 3075 3076 extern __at(0x0399) __sfr IOCCF; 3077 3078 typedef struct 3079 { 3080 unsigned IOCCF0 : 1; 3081 unsigned IOCCF1 : 1; 3082 unsigned IOCCF2 : 1; 3083 unsigned IOCCF3 : 1; 3084 unsigned IOCCF4 : 1; 3085 unsigned IOCCF5 : 1; 3086 unsigned IOCCF6 : 1; 3087 unsigned IOCCF7 : 1; 3088 } __IOCCFbits_t; 3089 3090 extern __at(0x0399) volatile __IOCCFbits_t IOCCFbits; 3091 3092 #define _IOCCF0 0x01 3093 #define _IOCCF1 0x02 3094 #define _IOCCF2 0x04 3095 #define _IOCCF3 0x08 3096 #define _IOCCF4 0x10 3097 #define _IOCCF5 0x20 3098 #define _IOCCF6 0x40 3099 #define _IOCCF7 0x80 3100 3101 //============================================================================== 3102 3103 3104 //============================================================================== 3105 // OPA1CON Bits 3106 3107 extern __at(0x0511) __sfr OPA1CON; 3108 3109 typedef union 3110 { 3111 struct 3112 { 3113 unsigned OPA1PCH0 : 1; 3114 unsigned OPA1PCH1 : 1; 3115 unsigned : 1; 3116 unsigned : 1; 3117 unsigned OPA1UG : 1; 3118 unsigned : 1; 3119 unsigned OPA1SP : 1; 3120 unsigned OPA1EN : 1; 3121 }; 3122 3123 struct 3124 { 3125 unsigned OPA1PCH : 2; 3126 unsigned : 6; 3127 }; 3128 } __OPA1CONbits_t; 3129 3130 extern __at(0x0511) volatile __OPA1CONbits_t OPA1CONbits; 3131 3132 #define _OPA1PCH0 0x01 3133 #define _OPA1PCH1 0x02 3134 #define _OPA1UG 0x10 3135 #define _OPA1SP 0x40 3136 #define _OPA1EN 0x80 3137 3138 //============================================================================== 3139 3140 3141 //============================================================================== 3142 // OPA2CON Bits 3143 3144 extern __at(0x0515) __sfr OPA2CON; 3145 3146 typedef union 3147 { 3148 struct 3149 { 3150 unsigned OPA2PCH0 : 1; 3151 unsigned OPA2PCH1 : 1; 3152 unsigned : 1; 3153 unsigned : 1; 3154 unsigned OPA2UG : 1; 3155 unsigned : 1; 3156 unsigned OPA2SP : 1; 3157 unsigned OPA2EN : 1; 3158 }; 3159 3160 struct 3161 { 3162 unsigned OPA2PCH : 2; 3163 unsigned : 6; 3164 }; 3165 } __OPA2CONbits_t; 3166 3167 extern __at(0x0515) volatile __OPA2CONbits_t OPA2CONbits; 3168 3169 #define _OPA2PCH0 0x01 3170 #define _OPA2PCH1 0x02 3171 #define _OPA2UG 0x10 3172 #define _OPA2SP 0x40 3173 #define _OPA2EN 0x80 3174 3175 //============================================================================== 3176 3177 3178 //============================================================================== 3179 // PPSLOCK Bits 3180 3181 extern __at(0x0E0F) __sfr PPSLOCK; 3182 3183 typedef struct 3184 { 3185 unsigned PPSLOCKED : 1; 3186 unsigned : 1; 3187 unsigned : 1; 3188 unsigned : 1; 3189 unsigned : 1; 3190 unsigned : 1; 3191 unsigned : 1; 3192 unsigned : 1; 3193 } __PPSLOCKbits_t; 3194 3195 extern __at(0x0E0F) volatile __PPSLOCKbits_t PPSLOCKbits; 3196 3197 #define _PPSLOCKED 0x01 3198 3199 //============================================================================== 3200 3201 extern __at(0x0E10) __sfr INTPPS; 3202 extern __at(0x0E11) __sfr T0CKIPPS; 3203 extern __at(0x0E12) __sfr T1CKIPPS; 3204 extern __at(0x0E13) __sfr T1GPPS; 3205 extern __at(0x0E14) __sfr CCP1PPS; 3206 extern __at(0x0E15) __sfr CCP2PPS; 3207 extern __at(0x0E20) __sfr SSPCLKPPS; 3208 extern __at(0x0E21) __sfr SSPDATPPS; 3209 extern __at(0x0E22) __sfr SSPSSPPS; 3210 extern __at(0x0E90) __sfr RA0PPS; 3211 extern __at(0x0E91) __sfr RA1PPS; 3212 extern __at(0x0E92) __sfr RA2PPS; 3213 extern __at(0x0E94) __sfr RA4PPS; 3214 extern __at(0x0E95) __sfr RA5PPS; 3215 extern __at(0x0E9C) __sfr RB4PPS; 3216 extern __at(0x0E9D) __sfr RB5PPS; 3217 extern __at(0x0E9E) __sfr RB6PPS; 3218 extern __at(0x0E9F) __sfr RB7PPS; 3219 extern __at(0x0EA0) __sfr RC0PPS; 3220 extern __at(0x0EA1) __sfr RC1PPS; 3221 extern __at(0x0EA2) __sfr RC2PPS; 3222 extern __at(0x0EA3) __sfr RC3PPS; 3223 extern __at(0x0EA4) __sfr RC4PPS; 3224 extern __at(0x0EA5) __sfr RC5PPS; 3225 extern __at(0x0EA6) __sfr RC6PPS; 3226 extern __at(0x0EA7) __sfr RC7PPS; 3227 3228 //============================================================================== 3229 // ICDBK0H Bits 3230 3231 extern __at(0x0F9E) __sfr ICDBK0H; 3232 3233 typedef struct 3234 { 3235 unsigned BKA8 : 1; 3236 unsigned BKA9 : 1; 3237 unsigned BKA10 : 1; 3238 unsigned BKA11 : 1; 3239 unsigned BKA12 : 1; 3240 unsigned BKA13 : 1; 3241 unsigned BKA14 : 1; 3242 unsigned : 1; 3243 } __ICDBK0Hbits_t; 3244 3245 extern __at(0x0F9E) volatile __ICDBK0Hbits_t ICDBK0Hbits; 3246 3247 #define _BKA8 0x01 3248 #define _BKA9 0x02 3249 #define _BKA10 0x04 3250 #define _BKA11 0x08 3251 #define _BKA12 0x10 3252 #define _BKA13 0x20 3253 #define _BKA14 0x40 3254 3255 //============================================================================== 3256 3257 3258 //============================================================================== 3259 // STATUS_SHAD Bits 3260 3261 extern __at(0x0FE4) __sfr STATUS_SHAD; 3262 3263 typedef struct 3264 { 3265 unsigned C_SHAD : 1; 3266 unsigned DC_SHAD : 1; 3267 unsigned Z_SHAD : 1; 3268 unsigned : 1; 3269 unsigned : 1; 3270 unsigned : 1; 3271 unsigned : 1; 3272 unsigned : 1; 3273 } __STATUS_SHADbits_t; 3274 3275 extern __at(0x0FE4) volatile __STATUS_SHADbits_t STATUS_SHADbits; 3276 3277 #define _C_SHAD 0x01 3278 #define _DC_SHAD 0x02 3279 #define _Z_SHAD 0x04 3280 3281 //============================================================================== 3282 3283 extern __at(0x0FE5) __sfr WREG_SHAD; 3284 extern __at(0x0FE6) __sfr BSR_SHAD; 3285 extern __at(0x0FE7) __sfr PCLATH_SHAD; 3286 extern __at(0x0FE8) __sfr FSR0L_SHAD; 3287 extern __at(0x0FE9) __sfr FSR0H_SHAD; 3288 extern __at(0x0FEA) __sfr FSR1L_SHAD; 3289 extern __at(0x0FEB) __sfr FSR1H_SHAD; 3290 extern __at(0x0FED) __sfr STKPTR; 3291 extern __at(0x0FEE) __sfr TOSL; 3292 extern __at(0x0FEF) __sfr TOSH; 3293 3294 //============================================================================== 3295 // 3296 // Configuration Bits 3297 // 3298 //============================================================================== 3299 3300 #define _CONFIG1 0x8007 3301 #define _CONFIG2 0x8008 3302 3303 //----------------------------- CONFIG1 Options ------------------------------- 3304 3305 #define _FOSC_INTOSC 0x3FFC // Internal HFINTOSC. I/O function on RA4 and RA5. 3306 #define _FOSC_ECL 0x3FFD // External oscillator, low power. I/O function on RA4. 3307 #define _FOSC_ECM 0x3FFE // External oscillator, medium power. I/O function on RA4. 3308 #define _FOSC_ECH 0x3FFF // External oscillator, high power. I/O function on RA4. 3309 #define _WDTE_OFF 0x3FE7 // WDT disabled. 3310 #define _WDTE_SWDTEN 0x3FEF // WDT controlled by the SWDTEN bit in the WDTCON register. 3311 #define _WDTE_NSLEEP 0x3FF7 // WDT enabled while running and disabled in Sleep. 3312 #define _WDTE_ON 0x3FFF // WDT enabled. 3313 #define _PWRTE_ON 0x3FDF // PWRT enabled. 3314 #define _PWRTE_OFF 0x3FFF // PWRT disabled. 3315 #define _MCLRE_OFF 0x3FBF // MCLR/VPP pin function is digital input. 3316 #define _MCLRE_ON 0x3FFF // MCLR/VPP pin function is MCLR. 3317 #define _CP_ON 0x3F7F // Program memory code protection is enabled. 3318 #define _CP_OFF 0x3FFF // Program memory code protection is disabled. 3319 #define _BOREN_OFF 0x39FF // Brown-out Reset disabled. 3320 #define _BOREN_SBODEN 0x3BFF // Brown-out Reset controlled by the SBOREN bit in the BORCON register. 3321 #define _BOREN_NSLEEP 0x3DFF // Brown-out Reset enabled while running and disabled in Sleep. 3322 #define _BOREN_ON 0x3FFF // Brown-out Reset enabled. 3323 #define _CLKOUTEN_ON 0x37FF // CLKOUT function is enabled on the CLKOUT pin. 3324 #define _CLKOUTEN_OFF 0x3FFF // CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin. 3325 3326 //----------------------------- CONFIG2 Options ------------------------------- 3327 3328 #define _WRT_ALL 0x3FFC // 000h to 1FFFh write protected, no addresses may be modified by EECON control. 3329 #define _WRT_HALF 0x3FFD // 000h to FFFh write protected, 1000h to 1FFFh may be modified by EECON control. 3330 #define _WRT_BOOT 0x3FFE // 000h to 1FFh write protected, 200h to 1FFFh may be modified by EECON control. 3331 #define _WRT_OFF 0x3FFF // Write protection off. 3332 #define _PPS1WAY_OFF 0x3FFB // The PPSLOCK bit can be set and cleared repeatedly by software. 3333 #define _PPS1WAY_ON 0x3FFF // The PPSLOCK bit cannot be cleared once it is set by software. 3334 #define _ZCDDIS_OFF 0x3F7F // Zero-cross detect circuit is enabled at POR. 3335 #define _ZCDDIS_ON 0x3FFF // Zero-cross detect circuit is disabled at POR. 3336 #define _PLLEN_OFF 0x3EFF // 4x PLL is enabled when software sets the SPLLEN bit. 3337 #define _PLLEN_ON 0x3FFF // 4x PLL is always enabled. 3338 #define _STVREN_OFF 0x3DFF // Stack Overflow or Underflow will not cause a Reset. 3339 #define _STVREN_ON 0x3FFF // Stack Overflow or Underflow will cause a Reset. 3340 #define _BORV_HI 0x3BFF // Brown-out Reset Voltage (Vbor), high trip point selected. 3341 #define _BORV_LO 0x3FFF // Brown-out Reset Voltage (Vbor), low trip point selected. 3342 #define _LPBOR_ON 0x37FF // Low-Power BOR is enabled. 3343 #define _LPBOR_OFF 0x3FFF // Low-Power BOR is disabled. 3344 #define _DEBUG_ON 0x2FFF // In-Circuit Debugger enabled, ICSPCLK and ICSPDAT are dedicated to the debugger. 3345 #define _DEBUG_OFF 0x3FFF // In-Circuit Debugger disabled, ICSPCLK and ICSPDAT are general purpose I/O pins. 3346 #define _LVP_OFF 0x1FFF // High-voltage on MCLR/VPP must be used for programming. 3347 #define _LVP_ON 0x3FFF // Low-voltage programming enabled. 3348 3349 //============================================================================== 3350 3351 #define _DEVID1 0x8006 3352 3353 #define _IDLOC0 0x8000 3354 #define _IDLOC1 0x8001 3355 #define _IDLOC2 0x8002 3356 #define _IDLOC3 0x8003 3357 3358 //============================================================================== 3359 3360 #ifndef NO_BIT_DEFINES 3361 3362 #define ADON ADCON0bits.ADON // bit 0 3363 #define GO_NOT_DONE ADCON0bits.GO_NOT_DONE // bit 1, shadows bit in ADCON0bits 3364 #define ADGO ADCON0bits.ADGO // bit 1, shadows bit in ADCON0bits 3365 #define GO ADCON0bits.GO // bit 1, shadows bit in ADCON0bits 3366 #define CHS0 ADCON0bits.CHS0 // bit 2 3367 #define CHS1 ADCON0bits.CHS1 // bit 3 3368 #define CHS2 ADCON0bits.CHS2 // bit 4 3369 #define CHS3 ADCON0bits.CHS3 // bit 5 3370 #define CHS4 ADCON0bits.CHS4 // bit 6 3371 3372 #define ADPREF0 ADCON1bits.ADPREF0 // bit 0 3373 #define ADPREF1 ADCON1bits.ADPREF1 // bit 1 3374 #define ADNREF ADCON1bits.ADNREF // bit 2 3375 #define ADFM ADCON1bits.ADFM // bit 7 3376 3377 #define TRIGSEL0 ADCON2bits.TRIGSEL0 // bit 4 3378 #define TRIGSEL1 ADCON2bits.TRIGSEL1 // bit 5 3379 #define TRIGSEL2 ADCON2bits.TRIGSEL2 // bit 6 3380 #define TRIGSEL3 ADCON2bits.TRIGSEL3 // bit 7 3381 3382 #define ANSA0 ANSELAbits.ANSA0 // bit 0 3383 #define ANSA1 ANSELAbits.ANSA1 // bit 1 3384 #define ANSA2 ANSELAbits.ANSA2 // bit 2 3385 #define ANSA4 ANSELAbits.ANSA4 // bit 4 3386 3387 #define ANSB4 ANSELBbits.ANSB4 // bit 4 3388 #define ANSB5 ANSELBbits.ANSB5 // bit 5 3389 3390 #define ANSC0 ANSELCbits.ANSC0 // bit 0 3391 #define ANSC1 ANSELCbits.ANSC1 // bit 1 3392 #define ANSC2 ANSELCbits.ANSC2 // bit 2 3393 #define ANSC3 ANSELCbits.ANSC3 // bit 3 3394 #define ANSC6 ANSELCbits.ANSC6 // bit 6 3395 #define ANSC7 ANSELCbits.ANSC7 // bit 7 3396 3397 #define BORRDY BORCONbits.BORRDY // bit 0 3398 #define BORFS BORCONbits.BORFS // bit 6 3399 #define SBOREN BORCONbits.SBOREN // bit 7 3400 3401 #define BSR0 BSRbits.BSR0 // bit 0 3402 #define BSR1 BSRbits.BSR1 // bit 1 3403 #define BSR2 BSRbits.BSR2 // bit 2 3404 #define BSR3 BSRbits.BSR3 // bit 3 3405 #define BSR4 BSRbits.BSR4 // bit 4 3406 3407 #define CCP1M0 CCP1CONbits.CCP1M0 // bit 0 3408 #define CCP1M1 CCP1CONbits.CCP1M1 // bit 1 3409 #define CCP1M2 CCP1CONbits.CCP1M2 // bit 2 3410 #define CCP1M3 CCP1CONbits.CCP1M3 // bit 3 3411 #define DC1B0 CCP1CONbits.DC1B0 // bit 4, shadows bit in CCP1CONbits 3412 #define CCP1Y CCP1CONbits.CCP1Y // bit 4, shadows bit in CCP1CONbits 3413 #define DC1B1 CCP1CONbits.DC1B1 // bit 5, shadows bit in CCP1CONbits 3414 #define CCP1X CCP1CONbits.CCP1X // bit 5, shadows bit in CCP1CONbits 3415 3416 #define CCP2M0 CCP2CONbits.CCP2M0 // bit 0 3417 #define CCP2M1 CCP2CONbits.CCP2M1 // bit 1 3418 #define CCP2M2 CCP2CONbits.CCP2M2 // bit 2 3419 #define CCP2M3 CCP2CONbits.CCP2M3 // bit 3 3420 #define DC2B0 CCP2CONbits.DC2B0 // bit 4, shadows bit in CCP2CONbits 3421 #define CCP2Y CCP2CONbits.CCP2Y // bit 4, shadows bit in CCP2CONbits 3422 #define DC2B1 CCP2CONbits.DC2B1 // bit 5, shadows bit in CCP2CONbits 3423 #define CCP2X CCP2CONbits.CCP2X // bit 5, shadows bit in CCP2CONbits 3424 3425 #define ADFVR0 FVRCONbits.ADFVR0 // bit 0 3426 #define ADFVR1 FVRCONbits.ADFVR1 // bit 1 3427 #define CDAFVR0 FVRCONbits.CDAFVR0 // bit 2 3428 #define CDAFVR1 FVRCONbits.CDAFVR1 // bit 3 3429 #define TSRNG FVRCONbits.TSRNG // bit 4 3430 #define TSEN FVRCONbits.TSEN // bit 5 3431 #define FVRRDY FVRCONbits.FVRRDY // bit 6 3432 #define FVREN FVRCONbits.FVREN // bit 7 3433 3434 #define BKA8 ICDBK0Hbits.BKA8 // bit 0 3435 #define BKA9 ICDBK0Hbits.BKA9 // bit 1 3436 #define BKA10 ICDBK0Hbits.BKA10 // bit 2 3437 #define BKA11 ICDBK0Hbits.BKA11 // bit 3 3438 #define BKA12 ICDBK0Hbits.BKA12 // bit 4 3439 #define BKA13 ICDBK0Hbits.BKA13 // bit 5 3440 #define BKA14 ICDBK0Hbits.BKA14 // bit 6 3441 3442 #define INLVLA0 INLVLAbits.INLVLA0 // bit 0 3443 #define INLVLA1 INLVLAbits.INLVLA1 // bit 1 3444 #define INLVLA2 INLVLAbits.INLVLA2 // bit 2 3445 #define INLVLA3 INLVLAbits.INLVLA3 // bit 3 3446 #define INLVLA4 INLVLAbits.INLVLA4 // bit 4 3447 #define INLVLA5 INLVLAbits.INLVLA5 // bit 5 3448 3449 #define INLVLB4 INLVLBbits.INLVLB4 // bit 4 3450 #define INLVLB5 INLVLBbits.INLVLB5 // bit 5 3451 #define INLVLB6 INLVLBbits.INLVLB6 // bit 6 3452 #define INLVLB7 INLVLBbits.INLVLB7 // bit 7 3453 3454 #define INLVLC0 INLVLCbits.INLVLC0 // bit 0 3455 #define INLVLC1 INLVLCbits.INLVLC1 // bit 1 3456 #define INLVLC2 INLVLCbits.INLVLC2 // bit 2 3457 #define INLVLC3 INLVLCbits.INLVLC3 // bit 3 3458 #define INLVLC4 INLVLCbits.INLVLC4 // bit 4 3459 #define INLVLC5 INLVLCbits.INLVLC5 // bit 5 3460 #define INLVLC6 INLVLCbits.INLVLC6 // bit 6 3461 #define INLVLC7 INLVLCbits.INLVLC7 // bit 7 3462 3463 #define IOCIF INTCONbits.IOCIF // bit 0 3464 #define INTF INTCONbits.INTF // bit 1 3465 #define TMR0IF INTCONbits.TMR0IF // bit 2, shadows bit in INTCONbits 3466 #define T0IF INTCONbits.T0IF // bit 2, shadows bit in INTCONbits 3467 #define IOCIE INTCONbits.IOCIE // bit 3 3468 #define INTE INTCONbits.INTE // bit 4 3469 #define TMR0IE INTCONbits.TMR0IE // bit 5, shadows bit in INTCONbits 3470 #define T0IE INTCONbits.T0IE // bit 5, shadows bit in INTCONbits 3471 #define PEIE INTCONbits.PEIE // bit 6 3472 #define GIE INTCONbits.GIE // bit 7 3473 3474 #define IOCAF0 IOCAFbits.IOCAF0 // bit 0 3475 #define IOCAF1 IOCAFbits.IOCAF1 // bit 1 3476 #define IOCAF2 IOCAFbits.IOCAF2 // bit 2 3477 #define IOCAF3 IOCAFbits.IOCAF3 // bit 3 3478 #define IOCAF4 IOCAFbits.IOCAF4 // bit 4 3479 #define IOCAF5 IOCAFbits.IOCAF5 // bit 5 3480 3481 #define IOCAN0 IOCANbits.IOCAN0 // bit 0 3482 #define IOCAN1 IOCANbits.IOCAN1 // bit 1 3483 #define IOCAN2 IOCANbits.IOCAN2 // bit 2 3484 #define IOCAN3 IOCANbits.IOCAN3 // bit 3 3485 #define IOCAN4 IOCANbits.IOCAN4 // bit 4 3486 #define IOCAN5 IOCANbits.IOCAN5 // bit 5 3487 3488 #define IOCAP0 IOCAPbits.IOCAP0 // bit 0 3489 #define IOCAP1 IOCAPbits.IOCAP1 // bit 1 3490 #define IOCAP2 IOCAPbits.IOCAP2 // bit 2 3491 #define IOCAP3 IOCAPbits.IOCAP3 // bit 3 3492 #define IOCAP4 IOCAPbits.IOCAP4 // bit 4 3493 #define IOCAP5 IOCAPbits.IOCAP5 // bit 5 3494 3495 #define IOCBF4 IOCBFbits.IOCBF4 // bit 4 3496 #define IOCBF5 IOCBFbits.IOCBF5 // bit 5 3497 #define IOCBF6 IOCBFbits.IOCBF6 // bit 6 3498 #define IOCBF7 IOCBFbits.IOCBF7 // bit 7 3499 3500 #define IOCBN4 IOCBNbits.IOCBN4 // bit 4 3501 #define IOCBN5 IOCBNbits.IOCBN5 // bit 5 3502 #define IOCBN6 IOCBNbits.IOCBN6 // bit 6 3503 #define IOCBN7 IOCBNbits.IOCBN7 // bit 7 3504 3505 #define IOCBP4 IOCBPbits.IOCBP4 // bit 4 3506 #define IOCBP5 IOCBPbits.IOCBP5 // bit 5 3507 #define IOCBP6 IOCBPbits.IOCBP6 // bit 6 3508 #define IOCBP7 IOCBPbits.IOCBP7 // bit 7 3509 3510 #define IOCCF0 IOCCFbits.IOCCF0 // bit 0 3511 #define IOCCF1 IOCCFbits.IOCCF1 // bit 1 3512 #define IOCCF2 IOCCFbits.IOCCF2 // bit 2 3513 #define IOCCF3 IOCCFbits.IOCCF3 // bit 3 3514 #define IOCCF4 IOCCFbits.IOCCF4 // bit 4 3515 #define IOCCF5 IOCCFbits.IOCCF5 // bit 5 3516 #define IOCCF6 IOCCFbits.IOCCF6 // bit 6 3517 #define IOCCF7 IOCCFbits.IOCCF7 // bit 7 3518 3519 #define IOCCN0 IOCCNbits.IOCCN0 // bit 0 3520 #define IOCCN1 IOCCNbits.IOCCN1 // bit 1 3521 #define IOCCN2 IOCCNbits.IOCCN2 // bit 2 3522 #define IOCCN3 IOCCNbits.IOCCN3 // bit 3 3523 #define IOCCN4 IOCCNbits.IOCCN4 // bit 4 3524 #define IOCCN5 IOCCNbits.IOCCN5 // bit 5 3525 #define IOCCN6 IOCCNbits.IOCCN6 // bit 6 3526 #define IOCCN7 IOCCNbits.IOCCN7 // bit 7 3527 3528 #define IOCCP0 IOCCPbits.IOCCP0 // bit 0 3529 #define IOCCP1 IOCCPbits.IOCCP1 // bit 1 3530 #define IOCCP2 IOCCPbits.IOCCP2 // bit 2 3531 #define IOCCP3 IOCCPbits.IOCCP3 // bit 3 3532 #define IOCCP4 IOCCPbits.IOCCP4 // bit 4 3533 #define IOCCP5 IOCCPbits.IOCCP5 // bit 5 3534 #define IOCCP6 IOCCPbits.IOCCP6 // bit 6 3535 #define IOCCP7 IOCCPbits.IOCCP7 // bit 7 3536 3537 #define LATA0 LATAbits.LATA0 // bit 0 3538 #define LATA1 LATAbits.LATA1 // bit 1 3539 #define LATA2 LATAbits.LATA2 // bit 2 3540 #define LATA4 LATAbits.LATA4 // bit 4 3541 #define LATA5 LATAbits.LATA5 // bit 5 3542 3543 #define LATB4 LATBbits.LATB4 // bit 4 3544 #define LATB5 LATBbits.LATB5 // bit 5 3545 #define LATB6 LATBbits.LATB6 // bit 6 3546 #define LATB7 LATBbits.LATB7 // bit 7 3547 3548 #define LATC0 LATCbits.LATC0 // bit 0 3549 #define LATC1 LATCbits.LATC1 // bit 1 3550 #define LATC2 LATCbits.LATC2 // bit 2 3551 #define LATC3 LATCbits.LATC3 // bit 3 3552 #define LATC4 LATCbits.LATC4 // bit 4 3553 #define LATC5 LATCbits.LATC5 // bit 5 3554 #define LATC6 LATCbits.LATC6 // bit 6 3555 #define LATC7 LATCbits.LATC7 // bit 7 3556 3557 #define ODA0 ODCONAbits.ODA0 // bit 0 3558 #define ODA1 ODCONAbits.ODA1 // bit 1 3559 #define ODA2 ODCONAbits.ODA2 // bit 2 3560 #define ODA4 ODCONAbits.ODA4 // bit 4 3561 #define ODA5 ODCONAbits.ODA5 // bit 5 3562 3563 #define ODB4 ODCONBbits.ODB4 // bit 4 3564 #define ODB5 ODCONBbits.ODB5 // bit 5 3565 #define ODB6 ODCONBbits.ODB6 // bit 6 3566 #define ODB7 ODCONBbits.ODB7 // bit 7 3567 3568 #define ODC0 ODCONCbits.ODC0 // bit 0 3569 #define ODC1 ODCONCbits.ODC1 // bit 1 3570 #define ODC2 ODCONCbits.ODC2 // bit 2 3571 #define ODC3 ODCONCbits.ODC3 // bit 3 3572 #define ODC4 ODCONCbits.ODC4 // bit 4 3573 #define ODC5 ODCONCbits.ODC5 // bit 5 3574 #define ODC6 ODCONCbits.ODC6 // bit 6 3575 #define ODC7 ODCONCbits.ODC7 // bit 7 3576 3577 #define OPA1PCH0 OPA1CONbits.OPA1PCH0 // bit 0 3578 #define OPA1PCH1 OPA1CONbits.OPA1PCH1 // bit 1 3579 #define OPA1UG OPA1CONbits.OPA1UG // bit 4 3580 #define OPA1SP OPA1CONbits.OPA1SP // bit 6 3581 #define OPA1EN OPA1CONbits.OPA1EN // bit 7 3582 3583 #define OPA2PCH0 OPA2CONbits.OPA2PCH0 // bit 0 3584 #define OPA2PCH1 OPA2CONbits.OPA2PCH1 // bit 1 3585 #define OPA2UG OPA2CONbits.OPA2UG // bit 4 3586 #define OPA2SP OPA2CONbits.OPA2SP // bit 6 3587 #define OPA2EN OPA2CONbits.OPA2EN // bit 7 3588 3589 #define PS0 OPTION_REGbits.PS0 // bit 0 3590 #define PS1 OPTION_REGbits.PS1 // bit 1 3591 #define PS2 OPTION_REGbits.PS2 // bit 2 3592 #define PSA OPTION_REGbits.PSA // bit 3 3593 #define TMR0SE OPTION_REGbits.TMR0SE // bit 4, shadows bit in OPTION_REGbits 3594 #define T0SE OPTION_REGbits.T0SE // bit 4, shadows bit in OPTION_REGbits 3595 #define TMR0CS OPTION_REGbits.TMR0CS // bit 5, shadows bit in OPTION_REGbits 3596 #define T0CS OPTION_REGbits.T0CS // bit 5, shadows bit in OPTION_REGbits 3597 #define INTEDG OPTION_REGbits.INTEDG // bit 6 3598 #define NOT_WPUEN OPTION_REGbits.NOT_WPUEN // bit 7 3599 3600 #define SCS0 OSCCONbits.SCS0 // bit 0 3601 #define SCS1 OSCCONbits.SCS1 // bit 1 3602 #define IRCF0 OSCCONbits.IRCF0 // bit 3 3603 #define IRCF1 OSCCONbits.IRCF1 // bit 4 3604 #define IRCF2 OSCCONbits.IRCF2 // bit 5 3605 #define IRCF3 OSCCONbits.IRCF3 // bit 6 3606 #define SPLLEN OSCCONbits.SPLLEN // bit 7 3607 3608 #define HFIOFS OSCSTATbits.HFIOFS // bit 0 3609 #define LFIOFR OSCSTATbits.LFIOFR // bit 1 3610 #define MFIOFR OSCSTATbits.MFIOFR // bit 2 3611 #define HFIOFL OSCSTATbits.HFIOFL // bit 3 3612 #define HFIOFR OSCSTATbits.HFIOFR // bit 4 3613 #define OSTS OSCSTATbits.OSTS // bit 5 3614 #define PLLR OSCSTATbits.PLLR // bit 6 3615 #define SOSCR OSCSTATbits.SOSCR // bit 7 3616 3617 #define TUN0 OSCTUNEbits.TUN0 // bit 0 3618 #define TUN1 OSCTUNEbits.TUN1 // bit 1 3619 #define TUN2 OSCTUNEbits.TUN2 // bit 2 3620 #define TUN3 OSCTUNEbits.TUN3 // bit 3 3621 #define TUN4 OSCTUNEbits.TUN4 // bit 4 3622 #define TUN5 OSCTUNEbits.TUN5 // bit 5 3623 3624 #define NOT_BOR PCONbits.NOT_BOR // bit 0 3625 #define NOT_POR PCONbits.NOT_POR // bit 1 3626 #define NOT_RI PCONbits.NOT_RI // bit 2 3627 #define NOT_RMCLR PCONbits.NOT_RMCLR // bit 3 3628 #define NOT_RWDT PCONbits.NOT_RWDT // bit 4 3629 #define STKUNF PCONbits.STKUNF // bit 6 3630 #define STKOVF PCONbits.STKOVF // bit 7 3631 3632 #define TMR1IE PIE1bits.TMR1IE // bit 0 3633 #define TMR2IE PIE1bits.TMR2IE // bit 1 3634 #define CCP1IE PIE1bits.CCP1IE // bit 2, shadows bit in PIE1bits 3635 #define CCPIE PIE1bits.CCPIE // bit 2, shadows bit in PIE1bits 3636 #define SSP1IE PIE1bits.SSP1IE // bit 3 3637 #define ADIE PIE1bits.ADIE // bit 6 3638 #define TMR1GIE PIE1bits.TMR1GIE // bit 7 3639 3640 #define CCP2IE PIE2bits.CCP2IE // bit 0 3641 #define BCL1IE PIE2bits.BCL1IE // bit 3 3642 3643 #define ZCDIE PIE3bits.ZCDIE // bit 4 3644 3645 #define TMR1IF PIR1bits.TMR1IF // bit 0 3646 #define TMR2IF PIR1bits.TMR2IF // bit 1 3647 #define CCP1IF PIR1bits.CCP1IF // bit 2, shadows bit in PIR1bits 3648 #define CCPIF PIR1bits.CCPIF // bit 2, shadows bit in PIR1bits 3649 #define SSP1IF PIR1bits.SSP1IF // bit 3 3650 #define ADIF PIR1bits.ADIF // bit 6 3651 #define TMR1GIF PIR1bits.TMR1GIF // bit 7 3652 3653 #define CCP2IF PIR2bits.CCP2IF // bit 0 3654 #define BCL1IF PIR2bits.BCL1IF // bit 3 3655 3656 #define ZCDIF PIR3bits.ZCDIF // bit 4 3657 3658 #define RD PMCON1bits.RD // bit 0 3659 #define WR PMCON1bits.WR // bit 1 3660 #define WREN PMCON1bits.WREN // bit 2 3661 #define WRERR PMCON1bits.WRERR // bit 3 3662 #define FREE PMCON1bits.FREE // bit 4 3663 #define LWLO PMCON1bits.LWLO // bit 5 3664 #define CFGS PMCON1bits.CFGS // bit 6 3665 3666 #define RA0 PORTAbits.RA0 // bit 0 3667 #define RA1 PORTAbits.RA1 // bit 1 3668 #define RA2 PORTAbits.RA2 // bit 2 3669 #define RA3 PORTAbits.RA3 // bit 3 3670 #define RA4 PORTAbits.RA4 // bit 4 3671 #define RA5 PORTAbits.RA5 // bit 5 3672 3673 #define RB4 PORTBbits.RB4 // bit 4 3674 #define RB5 PORTBbits.RB5 // bit 5 3675 #define RB6 PORTBbits.RB6 // bit 6 3676 #define RB7 PORTBbits.RB7 // bit 7 3677 3678 #define RC0 PORTCbits.RC0 // bit 0 3679 #define RC1 PORTCbits.RC1 // bit 1 3680 #define RC2 PORTCbits.RC2 // bit 2 3681 #define RC3 PORTCbits.RC3 // bit 3 3682 #define RC4 PORTCbits.RC4 // bit 4 3683 #define RC5 PORTCbits.RC5 // bit 5 3684 #define RC6 PORTCbits.RC6 // bit 6 3685 #define RC7 PORTCbits.RC7 // bit 7 3686 3687 #define PPSLOCKED PPSLOCKbits.PPSLOCKED // bit 0 3688 3689 #define SLRA0 SLRCONAbits.SLRA0 // bit 0 3690 #define SLRA1 SLRCONAbits.SLRA1 // bit 1 3691 #define SLRA2 SLRCONAbits.SLRA2 // bit 2 3692 #define SLRA4 SLRCONAbits.SLRA4 // bit 4 3693 #define SLRA5 SLRCONAbits.SLRA5 // bit 5 3694 3695 #define SLRB4 SLRCONBbits.SLRB4 // bit 4 3696 #define SLRB5 SLRCONBbits.SLRB5 // bit 5 3697 #define SLRB6 SLRCONBbits.SLRB6 // bit 6 3698 #define SLRB7 SLRCONBbits.SLRB7 // bit 7 3699 3700 #define SLRC0 SLRCONCbits.SLRC0 // bit 0 3701 #define SLRC1 SLRCONCbits.SLRC1 // bit 1 3702 #define SLRC2 SLRCONCbits.SLRC2 // bit 2 3703 #define SLRC3 SLRCONCbits.SLRC3 // bit 3 3704 #define SLRC4 SLRCONCbits.SLRC4 // bit 4 3705 #define SLRC5 SLRCONCbits.SLRC5 // bit 5 3706 #define SLRC6 SLRCONCbits.SLRC6 // bit 6 3707 #define SLRC7 SLRCONCbits.SLRC7 // bit 7 3708 3709 #define SSP1ADD0 SSP1ADDbits.SSP1ADD0 // bit 0, shadows bit in SSP1ADDbits 3710 #define ADD0 SSP1ADDbits.ADD0 // bit 0, shadows bit in SSP1ADDbits 3711 #define SSP1ADD1 SSP1ADDbits.SSP1ADD1 // bit 1, shadows bit in SSP1ADDbits 3712 #define ADD1 SSP1ADDbits.ADD1 // bit 1, shadows bit in SSP1ADDbits 3713 #define SSP1ADD2 SSP1ADDbits.SSP1ADD2 // bit 2, shadows bit in SSP1ADDbits 3714 #define ADD2 SSP1ADDbits.ADD2 // bit 2, shadows bit in SSP1ADDbits 3715 #define SSP1ADD3 SSP1ADDbits.SSP1ADD3 // bit 3, shadows bit in SSP1ADDbits 3716 #define ADD3 SSP1ADDbits.ADD3 // bit 3, shadows bit in SSP1ADDbits 3717 #define SSP1ADD4 SSP1ADDbits.SSP1ADD4 // bit 4, shadows bit in SSP1ADDbits 3718 #define ADD4 SSP1ADDbits.ADD4 // bit 4, shadows bit in SSP1ADDbits 3719 #define SSP1ADD5 SSP1ADDbits.SSP1ADD5 // bit 5, shadows bit in SSP1ADDbits 3720 #define ADD5 SSP1ADDbits.ADD5 // bit 5, shadows bit in SSP1ADDbits 3721 #define SSP1ADD6 SSP1ADDbits.SSP1ADD6 // bit 6, shadows bit in SSP1ADDbits 3722 #define ADD6 SSP1ADDbits.ADD6 // bit 6, shadows bit in SSP1ADDbits 3723 #define SSP1ADD7 SSP1ADDbits.SSP1ADD7 // bit 7, shadows bit in SSP1ADDbits 3724 #define ADD7 SSP1ADDbits.ADD7 // bit 7, shadows bit in SSP1ADDbits 3725 3726 #define SSP1BUF0 SSP1BUFbits.SSP1BUF0 // bit 0, shadows bit in SSP1BUFbits 3727 #define BUF0 SSP1BUFbits.BUF0 // bit 0, shadows bit in SSP1BUFbits 3728 #define SSP1BUF1 SSP1BUFbits.SSP1BUF1 // bit 1, shadows bit in SSP1BUFbits 3729 #define BUF1 SSP1BUFbits.BUF1 // bit 1, shadows bit in SSP1BUFbits 3730 #define SSP1BUF2 SSP1BUFbits.SSP1BUF2 // bit 2, shadows bit in SSP1BUFbits 3731 #define BUF2 SSP1BUFbits.BUF2 // bit 2, shadows bit in SSP1BUFbits 3732 #define SSP1BUF3 SSP1BUFbits.SSP1BUF3 // bit 3, shadows bit in SSP1BUFbits 3733 #define BUF3 SSP1BUFbits.BUF3 // bit 3, shadows bit in SSP1BUFbits 3734 #define SSP1BUF4 SSP1BUFbits.SSP1BUF4 // bit 4, shadows bit in SSP1BUFbits 3735 #define BUF4 SSP1BUFbits.BUF4 // bit 4, shadows bit in SSP1BUFbits 3736 #define SSP1BUF5 SSP1BUFbits.SSP1BUF5 // bit 5, shadows bit in SSP1BUFbits 3737 #define BUF5 SSP1BUFbits.BUF5 // bit 5, shadows bit in SSP1BUFbits 3738 #define SSP1BUF6 SSP1BUFbits.SSP1BUF6 // bit 6, shadows bit in SSP1BUFbits 3739 #define BUF6 SSP1BUFbits.BUF6 // bit 6, shadows bit in SSP1BUFbits 3740 #define SSP1BUF7 SSP1BUFbits.SSP1BUF7 // bit 7, shadows bit in SSP1BUFbits 3741 #define BUF7 SSP1BUFbits.BUF7 // bit 7, shadows bit in SSP1BUFbits 3742 3743 #define SSPM0 SSP1CONbits.SSPM0 // bit 0 3744 #define SSPM1 SSP1CONbits.SSPM1 // bit 1 3745 #define SSPM2 SSP1CONbits.SSPM2 // bit 2 3746 #define SSPM3 SSP1CONbits.SSPM3 // bit 3 3747 #define CKP SSP1CONbits.CKP // bit 4 3748 #define SSPEN SSP1CONbits.SSPEN // bit 5 3749 #define SSPOV SSP1CONbits.SSPOV // bit 6 3750 #define WCOL SSP1CONbits.WCOL // bit 7 3751 3752 #define SEN SSP1CON2bits.SEN // bit 0 3753 #define RSEN SSP1CON2bits.RSEN // bit 1 3754 #define PEN SSP1CON2bits.PEN // bit 2 3755 #define RCEN SSP1CON2bits.RCEN // bit 3 3756 #define ACKEN SSP1CON2bits.ACKEN // bit 4 3757 #define ACKDT SSP1CON2bits.ACKDT // bit 5 3758 #define ACKSTAT SSP1CON2bits.ACKSTAT // bit 6 3759 #define GCEN SSP1CON2bits.GCEN // bit 7 3760 3761 #define DHEN SSP1CON3bits.DHEN // bit 0 3762 #define AHEN SSP1CON3bits.AHEN // bit 1 3763 #define SBCDE SSP1CON3bits.SBCDE // bit 2 3764 #define SDAHT SSP1CON3bits.SDAHT // bit 3 3765 #define BOEN SSP1CON3bits.BOEN // bit 4 3766 #define SCIE SSP1CON3bits.SCIE // bit 5 3767 #define PCIE SSP1CON3bits.PCIE // bit 6 3768 #define ACKTIM SSP1CON3bits.ACKTIM // bit 7 3769 3770 #define SSP1MSK0 SSP1MSKbits.SSP1MSK0 // bit 0, shadows bit in SSP1MSKbits 3771 #define MSK0 SSP1MSKbits.MSK0 // bit 0, shadows bit in SSP1MSKbits 3772 #define SSP1MSK1 SSP1MSKbits.SSP1MSK1 // bit 1, shadows bit in SSP1MSKbits 3773 #define MSK1 SSP1MSKbits.MSK1 // bit 1, shadows bit in SSP1MSKbits 3774 #define SSP1MSK2 SSP1MSKbits.SSP1MSK2 // bit 2, shadows bit in SSP1MSKbits 3775 #define MSK2 SSP1MSKbits.MSK2 // bit 2, shadows bit in SSP1MSKbits 3776 #define SSP1MSK3 SSP1MSKbits.SSP1MSK3 // bit 3, shadows bit in SSP1MSKbits 3777 #define MSK3 SSP1MSKbits.MSK3 // bit 3, shadows bit in SSP1MSKbits 3778 #define SSP1MSK4 SSP1MSKbits.SSP1MSK4 // bit 4, shadows bit in SSP1MSKbits 3779 #define MSK4 SSP1MSKbits.MSK4 // bit 4, shadows bit in SSP1MSKbits 3780 #define SSP1MSK5 SSP1MSKbits.SSP1MSK5 // bit 5, shadows bit in SSP1MSKbits 3781 #define MSK5 SSP1MSKbits.MSK5 // bit 5, shadows bit in SSP1MSKbits 3782 #define SSP1MSK6 SSP1MSKbits.SSP1MSK6 // bit 6, shadows bit in SSP1MSKbits 3783 #define MSK6 SSP1MSKbits.MSK6 // bit 6, shadows bit in SSP1MSKbits 3784 #define SSP1MSK7 SSP1MSKbits.SSP1MSK7 // bit 7, shadows bit in SSP1MSKbits 3785 #define MSK7 SSP1MSKbits.MSK7 // bit 7, shadows bit in SSP1MSKbits 3786 3787 #define BF SSP1STATbits.BF // bit 0 3788 #define UA SSP1STATbits.UA // bit 1 3789 #define R_NOT_W SSP1STATbits.R_NOT_W // bit 2 3790 #define S SSP1STATbits.S // bit 3 3791 #define P SSP1STATbits.P // bit 4 3792 #define D_NOT_A SSP1STATbits.D_NOT_A // bit 5 3793 #define CKE SSP1STATbits.CKE // bit 6 3794 #define SMP SSP1STATbits.SMP // bit 7 3795 3796 #define C STATUSbits.C // bit 0 3797 #define DC STATUSbits.DC // bit 1 3798 #define Z STATUSbits.Z // bit 2 3799 #define NOT_PD STATUSbits.NOT_PD // bit 3 3800 #define NOT_TO STATUSbits.NOT_TO // bit 4 3801 3802 #define C_SHAD STATUS_SHADbits.C_SHAD // bit 0 3803 #define DC_SHAD STATUS_SHADbits.DC_SHAD // bit 1 3804 #define Z_SHAD STATUS_SHADbits.Z_SHAD // bit 2 3805 3806 #define TMR1ON T1CONbits.TMR1ON // bit 0 3807 #define NOT_T1SYNC T1CONbits.NOT_T1SYNC // bit 2 3808 #define T1OSCEN T1CONbits.T1OSCEN // bit 3 3809 #define T1CKPS0 T1CONbits.T1CKPS0 // bit 4 3810 #define T1CKPS1 T1CONbits.T1CKPS1 // bit 5 3811 #define TMR1CS0 T1CONbits.TMR1CS0 // bit 6 3812 #define TMR1CS1 T1CONbits.TMR1CS1 // bit 7 3813 3814 #define T1GSS0 T1GCONbits.T1GSS0 // bit 0 3815 #define T1GSS1 T1GCONbits.T1GSS1 // bit 1 3816 #define T1GVAL T1GCONbits.T1GVAL // bit 2 3817 #define T1GGO_NOT_DONE T1GCONbits.T1GGO_NOT_DONE // bit 3 3818 #define T1GSPM T1GCONbits.T1GSPM // bit 4 3819 #define T1GTM T1GCONbits.T1GTM // bit 5 3820 #define T1GPOL T1GCONbits.T1GPOL // bit 6 3821 #define TMR1GE T1GCONbits.TMR1GE // bit 7 3822 3823 #define T2CKPS0 T2CONbits.T2CKPS0 // bit 0 3824 #define T2CKPS1 T2CONbits.T2CKPS1 // bit 1 3825 #define TMR2ON T2CONbits.TMR2ON // bit 2 3826 #define T2OUTPS0 T2CONbits.T2OUTPS0 // bit 3 3827 #define T2OUTPS1 T2CONbits.T2OUTPS1 // bit 4 3828 #define T2OUTPS2 T2CONbits.T2OUTPS2 // bit 5 3829 #define T2OUTPS3 T2CONbits.T2OUTPS3 // bit 6 3830 3831 #define TRISA0 TRISAbits.TRISA0 // bit 0 3832 #define TRISA1 TRISAbits.TRISA1 // bit 1 3833 #define TRISA2 TRISAbits.TRISA2 // bit 2 3834 #define TRISA4 TRISAbits.TRISA4 // bit 4 3835 #define TRISA5 TRISAbits.TRISA5 // bit 5 3836 3837 #define TRISB4 TRISBbits.TRISB4 // bit 4 3838 #define TRISB5 TRISBbits.TRISB5 // bit 5 3839 #define TRISB6 TRISBbits.TRISB6 // bit 6 3840 #define TRISB7 TRISBbits.TRISB7 // bit 7 3841 3842 #define TRISC0 TRISCbits.TRISC0 // bit 0 3843 #define TRISC1 TRISCbits.TRISC1 // bit 1 3844 #define TRISC2 TRISCbits.TRISC2 // bit 2 3845 #define TRISC3 TRISCbits.TRISC3 // bit 3 3846 #define TRISC4 TRISCbits.TRISC4 // bit 4 3847 #define TRISC5 TRISCbits.TRISC5 // bit 5 3848 #define TRISC6 TRISCbits.TRISC6 // bit 6 3849 #define TRISC7 TRISCbits.TRISC7 // bit 7 3850 3851 #define Reserved VREGCONbits.Reserved // bit 0 3852 #define VREGPM VREGCONbits.VREGPM // bit 1 3853 3854 #define SWDTEN WDTCONbits.SWDTEN // bit 0 3855 #define WDTPS0 WDTCONbits.WDTPS0 // bit 1 3856 #define WDTPS1 WDTCONbits.WDTPS1 // bit 2 3857 #define WDTPS2 WDTCONbits.WDTPS2 // bit 3 3858 #define WDTPS3 WDTCONbits.WDTPS3 // bit 4 3859 #define WDTPS4 WDTCONbits.WDTPS4 // bit 5 3860 3861 #define WPUA0 WPUAbits.WPUA0 // bit 0 3862 #define WPUA1 WPUAbits.WPUA1 // bit 1 3863 #define WPUA2 WPUAbits.WPUA2 // bit 2 3864 #define WPUA3 WPUAbits.WPUA3 // bit 3 3865 #define WPUA4 WPUAbits.WPUA4 // bit 4 3866 #define WPUA5 WPUAbits.WPUA5 // bit 5 3867 3868 #define WPUB4 WPUBbits.WPUB4 // bit 4 3869 #define WPUB5 WPUBbits.WPUB5 // bit 5 3870 #define WPUB6 WPUBbits.WPUB6 // bit 6 3871 #define WPUB7 WPUBbits.WPUB7 // bit 7 3872 3873 #define WPUC0 WPUCbits.WPUC0 // bit 0 3874 #define WPUC1 WPUCbits.WPUC1 // bit 1 3875 #define WPUC2 WPUCbits.WPUC2 // bit 2 3876 #define WPUC3 WPUCbits.WPUC3 // bit 3 3877 #define WPUC4 WPUCbits.WPUC4 // bit 4 3878 #define WPUC5 WPUCbits.WPUC5 // bit 5 3879 #define WPUC6 WPUCbits.WPUC6 // bit 6 3880 #define WPUC7 WPUCbits.WPUC7 // bit 7 3881 3882 #define ZCD1INTN ZCD1CONbits.ZCD1INTN // bit 0 3883 #define ZCD1INTP ZCD1CONbits.ZCD1INTP // bit 1 3884 #define ZCD1POL ZCD1CONbits.ZCD1POL // bit 4 3885 #define ZCD1OUT ZCD1CONbits.ZCD1OUT // bit 5 3886 #define ZCD1EN ZCD1CONbits.ZCD1EN // bit 7 3887 3888 #endif // #ifndef NO_BIT_DEFINES 3889 3890 #endif // #ifndef __PIC16F1707_H__ 3891