1 /* 2 * This declarations of the PIC18LF4620 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:24:05 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 __PIC18LF4620_H__ 26 #define __PIC18LF4620_H__ 27 28 //============================================================================== 29 30 //============================================================================== 31 // 32 // Register Definitions 33 // 34 //============================================================================== 35 36 37 //============================================================================== 38 // PORTA Bits 39 40 extern __at(0x0F80) __sfr PORTA; 41 42 typedef union 43 { 44 struct 45 { 46 unsigned RA0 : 1; 47 unsigned RA1 : 1; 48 unsigned RA2 : 1; 49 unsigned RA3 : 1; 50 unsigned RA4 : 1; 51 unsigned RA5 : 1; 52 unsigned RA6 : 1; 53 unsigned RA7 : 1; 54 }; 55 56 struct 57 { 58 unsigned : 1; 59 unsigned : 1; 60 unsigned : 1; 61 unsigned : 1; 62 unsigned T0CKI : 1; 63 unsigned AN4 : 1; 64 unsigned : 1; 65 unsigned : 1; 66 }; 67 68 struct 69 { 70 unsigned : 1; 71 unsigned : 1; 72 unsigned : 1; 73 unsigned : 1; 74 unsigned : 1; 75 unsigned SS : 1; 76 unsigned : 1; 77 unsigned : 1; 78 }; 79 80 struct 81 { 82 unsigned : 1; 83 unsigned : 1; 84 unsigned : 1; 85 unsigned : 1; 86 unsigned : 1; 87 unsigned NOT_SS : 1; 88 unsigned : 1; 89 unsigned : 1; 90 }; 91 92 struct 93 { 94 unsigned : 1; 95 unsigned : 1; 96 unsigned : 1; 97 unsigned : 1; 98 unsigned : 1; 99 unsigned LVDIN : 1; 100 unsigned : 1; 101 unsigned : 1; 102 }; 103 104 struct 105 { 106 unsigned : 1; 107 unsigned : 1; 108 unsigned : 1; 109 unsigned : 1; 110 unsigned : 1; 111 unsigned HLVDIN : 1; 112 unsigned : 1; 113 unsigned : 1; 114 }; 115 } __PORTAbits_t; 116 117 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits; 118 119 #define _PORTA_RA0 0x01 120 #define _PORTA_RA1 0x02 121 #define _PORTA_RA2 0x04 122 #define _PORTA_RA3 0x08 123 #define _PORTA_RA4 0x10 124 #define _PORTA_T0CKI 0x10 125 #define _PORTA_RA5 0x20 126 #define _PORTA_AN4 0x20 127 #define _PORTA_SS 0x20 128 #define _PORTA_NOT_SS 0x20 129 #define _PORTA_LVDIN 0x20 130 #define _PORTA_HLVDIN 0x20 131 #define _PORTA_RA6 0x40 132 #define _PORTA_RA7 0x80 133 134 //============================================================================== 135 136 137 //============================================================================== 138 // PORTB Bits 139 140 extern __at(0x0F81) __sfr PORTB; 141 142 typedef union 143 { 144 struct 145 { 146 unsigned RB0 : 1; 147 unsigned RB1 : 1; 148 unsigned RB2 : 1; 149 unsigned RB3 : 1; 150 unsigned RB4 : 1; 151 unsigned RB5 : 1; 152 unsigned RB6 : 1; 153 unsigned RB7 : 1; 154 }; 155 156 struct 157 { 158 unsigned INT0 : 1; 159 unsigned INT1 : 1; 160 unsigned INT2 : 1; 161 unsigned CCP2 : 1; 162 unsigned KBI0 : 1; 163 unsigned KBI1 : 1; 164 unsigned KBI2 : 1; 165 unsigned KBI3 : 1; 166 }; 167 168 struct 169 { 170 unsigned AN12 : 1; 171 unsigned AN10 : 1; 172 unsigned AN8 : 1; 173 unsigned AN9 : 1; 174 unsigned AN11 : 1; 175 unsigned PGM : 1; 176 unsigned PGC : 1; 177 unsigned PGD : 1; 178 }; 179 180 struct 181 { 182 unsigned INT : 3; 183 unsigned : 5; 184 }; 185 186 struct 187 { 188 unsigned : 4; 189 unsigned KBI : 4; 190 }; 191 } __PORTBbits_t; 192 193 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits; 194 195 #define _PORTB_RB0 0x01 196 #define _PORTB_INT0 0x01 197 #define _PORTB_AN12 0x01 198 #define _PORTB_RB1 0x02 199 #define _PORTB_INT1 0x02 200 #define _PORTB_AN10 0x02 201 #define _PORTB_RB2 0x04 202 #define _PORTB_INT2 0x04 203 #define _PORTB_AN8 0x04 204 #define _PORTB_RB3 0x08 205 #define _PORTB_CCP2 0x08 206 #define _PORTB_AN9 0x08 207 #define _PORTB_RB4 0x10 208 #define _PORTB_KBI0 0x10 209 #define _PORTB_AN11 0x10 210 #define _PORTB_RB5 0x20 211 #define _PORTB_KBI1 0x20 212 #define _PORTB_PGM 0x20 213 #define _PORTB_RB6 0x40 214 #define _PORTB_KBI2 0x40 215 #define _PORTB_PGC 0x40 216 #define _PORTB_RB7 0x80 217 #define _PORTB_KBI3 0x80 218 #define _PORTB_PGD 0x80 219 220 //============================================================================== 221 222 223 //============================================================================== 224 // PORTC Bits 225 226 extern __at(0x0F82) __sfr PORTC; 227 228 typedef union 229 { 230 struct 231 { 232 unsigned RC0 : 1; 233 unsigned RC1 : 1; 234 unsigned RC2 : 1; 235 unsigned RC3 : 1; 236 unsigned RC4 : 1; 237 unsigned RC5 : 1; 238 unsigned RC6 : 1; 239 unsigned RC7 : 1; 240 }; 241 242 struct 243 { 244 unsigned T1OSO : 1; 245 unsigned T1OSI : 1; 246 unsigned CCP1 : 1; 247 unsigned SCK : 1; 248 unsigned SDI : 1; 249 unsigned SDO : 1; 250 unsigned TX : 1; 251 unsigned RX : 1; 252 }; 253 254 struct 255 { 256 unsigned T13CKI : 1; 257 unsigned CCP2 : 1; 258 unsigned : 1; 259 unsigned SCL : 1; 260 unsigned SDA : 1; 261 unsigned : 1; 262 unsigned CK : 1; 263 unsigned : 1; 264 }; 265 266 struct 267 { 268 unsigned T1CKI : 1; 269 unsigned : 1; 270 unsigned : 1; 271 unsigned : 1; 272 unsigned : 1; 273 unsigned : 1; 274 unsigned : 1; 275 unsigned : 1; 276 }; 277 } __PORTCbits_t; 278 279 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits; 280 281 #define _PORTC_RC0 0x01 282 #define _PORTC_T1OSO 0x01 283 #define _PORTC_T13CKI 0x01 284 #define _PORTC_T1CKI 0x01 285 #define _PORTC_RC1 0x02 286 #define _PORTC_T1OSI 0x02 287 #define _PORTC_CCP2 0x02 288 #define _PORTC_RC2 0x04 289 #define _PORTC_CCP1 0x04 290 #define _PORTC_RC3 0x08 291 #define _PORTC_SCK 0x08 292 #define _PORTC_SCL 0x08 293 #define _PORTC_RC4 0x10 294 #define _PORTC_SDI 0x10 295 #define _PORTC_SDA 0x10 296 #define _PORTC_RC5 0x20 297 #define _PORTC_SDO 0x20 298 #define _PORTC_RC6 0x40 299 #define _PORTC_TX 0x40 300 #define _PORTC_CK 0x40 301 #define _PORTC_RC7 0x80 302 #define _PORTC_RX 0x80 303 304 //============================================================================== 305 306 307 //============================================================================== 308 // PORTD Bits 309 310 extern __at(0x0F83) __sfr PORTD; 311 312 typedef union 313 { 314 struct 315 { 316 unsigned RD0 : 1; 317 unsigned RD1 : 1; 318 unsigned RD2 : 1; 319 unsigned RD3 : 1; 320 unsigned RD4 : 1; 321 unsigned RD5 : 1; 322 unsigned RD6 : 1; 323 unsigned RD7 : 1; 324 }; 325 326 struct 327 { 328 unsigned PSP0 : 1; 329 unsigned PSP1 : 1; 330 unsigned PSP2 : 1; 331 unsigned PSP3 : 1; 332 unsigned PSP4 : 1; 333 unsigned PSP5 : 1; 334 unsigned PSP6 : 1; 335 unsigned PSP7 : 1; 336 }; 337 338 struct 339 { 340 unsigned : 1; 341 unsigned : 1; 342 unsigned : 1; 343 unsigned : 1; 344 unsigned : 1; 345 unsigned P1B : 1; 346 unsigned P1C : 1; 347 unsigned P1D : 1; 348 }; 349 } __PORTDbits_t; 350 351 extern __at(0x0F83) volatile __PORTDbits_t PORTDbits; 352 353 #define _PORTD_RD0 0x01 354 #define _PORTD_PSP0 0x01 355 #define _PORTD_RD1 0x02 356 #define _PORTD_PSP1 0x02 357 #define _PORTD_RD2 0x04 358 #define _PORTD_PSP2 0x04 359 #define _PORTD_RD3 0x08 360 #define _PORTD_PSP3 0x08 361 #define _PORTD_RD4 0x10 362 #define _PORTD_PSP4 0x10 363 #define _PORTD_RD5 0x20 364 #define _PORTD_PSP5 0x20 365 #define _PORTD_P1B 0x20 366 #define _PORTD_RD6 0x40 367 #define _PORTD_PSP6 0x40 368 #define _PORTD_P1C 0x40 369 #define _PORTD_RD7 0x80 370 #define _PORTD_PSP7 0x80 371 #define _PORTD_P1D 0x80 372 373 //============================================================================== 374 375 376 //============================================================================== 377 // PORTE Bits 378 379 extern __at(0x0F84) __sfr PORTE; 380 381 typedef union 382 { 383 struct 384 { 385 unsigned RE0 : 1; 386 unsigned RE1 : 1; 387 unsigned RE2 : 1; 388 unsigned RE3 : 1; 389 unsigned : 1; 390 unsigned : 1; 391 unsigned : 1; 392 unsigned : 1; 393 }; 394 395 struct 396 { 397 unsigned RD : 1; 398 unsigned WR : 1; 399 unsigned CS : 1; 400 unsigned MCLR : 1; 401 unsigned : 1; 402 unsigned : 1; 403 unsigned : 1; 404 unsigned : 1; 405 }; 406 407 struct 408 { 409 unsigned NOT_RD : 1; 410 unsigned NOT_WR : 1; 411 unsigned NOT_CS : 1; 412 unsigned NOT_MCLR : 1; 413 unsigned : 1; 414 unsigned : 1; 415 unsigned : 1; 416 unsigned : 1; 417 }; 418 419 struct 420 { 421 unsigned AN5 : 1; 422 unsigned AN6 : 1; 423 unsigned AN7 : 1; 424 unsigned VPP : 1; 425 unsigned : 1; 426 unsigned : 1; 427 unsigned : 1; 428 unsigned : 1; 429 }; 430 431 struct 432 { 433 unsigned RE : 4; 434 unsigned : 4; 435 }; 436 } __PORTEbits_t; 437 438 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits; 439 440 #define _PORTE_RE0 0x01 441 #define _PORTE_RD 0x01 442 #define _PORTE_NOT_RD 0x01 443 #define _PORTE_AN5 0x01 444 #define _PORTE_RE1 0x02 445 #define _PORTE_WR 0x02 446 #define _PORTE_NOT_WR 0x02 447 #define _PORTE_AN6 0x02 448 #define _PORTE_RE2 0x04 449 #define _PORTE_CS 0x04 450 #define _PORTE_NOT_CS 0x04 451 #define _PORTE_AN7 0x04 452 #define _PORTE_RE3 0x08 453 #define _PORTE_MCLR 0x08 454 #define _PORTE_NOT_MCLR 0x08 455 #define _PORTE_VPP 0x08 456 457 //============================================================================== 458 459 460 //============================================================================== 461 // LATA Bits 462 463 extern __at(0x0F89) __sfr LATA; 464 465 typedef struct 466 { 467 unsigned LATA0 : 1; 468 unsigned LATA1 : 1; 469 unsigned LATA2 : 1; 470 unsigned LATA3 : 1; 471 unsigned LATA4 : 1; 472 unsigned LATA5 : 1; 473 unsigned LATA6 : 1; 474 unsigned LATA7 : 1; 475 } __LATAbits_t; 476 477 extern __at(0x0F89) volatile __LATAbits_t LATAbits; 478 479 #define _LATA0 0x01 480 #define _LATA1 0x02 481 #define _LATA2 0x04 482 #define _LATA3 0x08 483 #define _LATA4 0x10 484 #define _LATA5 0x20 485 #define _LATA6 0x40 486 #define _LATA7 0x80 487 488 //============================================================================== 489 490 491 //============================================================================== 492 // LATB Bits 493 494 extern __at(0x0F8A) __sfr LATB; 495 496 typedef struct 497 { 498 unsigned LATB0 : 1; 499 unsigned LATB1 : 1; 500 unsigned LATB2 : 1; 501 unsigned LATB3 : 1; 502 unsigned LATB4 : 1; 503 unsigned LATB5 : 1; 504 unsigned LATB6 : 1; 505 unsigned LATB7 : 1; 506 } __LATBbits_t; 507 508 extern __at(0x0F8A) volatile __LATBbits_t LATBbits; 509 510 #define _LATB0 0x01 511 #define _LATB1 0x02 512 #define _LATB2 0x04 513 #define _LATB3 0x08 514 #define _LATB4 0x10 515 #define _LATB5 0x20 516 #define _LATB6 0x40 517 #define _LATB7 0x80 518 519 //============================================================================== 520 521 522 //============================================================================== 523 // LATC Bits 524 525 extern __at(0x0F8B) __sfr LATC; 526 527 typedef struct 528 { 529 unsigned LATC0 : 1; 530 unsigned LATC1 : 1; 531 unsigned LATC2 : 1; 532 unsigned LATC3 : 1; 533 unsigned LATC4 : 1; 534 unsigned LATC5 : 1; 535 unsigned LATC6 : 1; 536 unsigned LATC7 : 1; 537 } __LATCbits_t; 538 539 extern __at(0x0F8B) volatile __LATCbits_t LATCbits; 540 541 #define _LATC0 0x01 542 #define _LATC1 0x02 543 #define _LATC2 0x04 544 #define _LATC3 0x08 545 #define _LATC4 0x10 546 #define _LATC5 0x20 547 #define _LATC6 0x40 548 #define _LATC7 0x80 549 550 //============================================================================== 551 552 553 //============================================================================== 554 // LATD Bits 555 556 extern __at(0x0F8C) __sfr LATD; 557 558 typedef struct 559 { 560 unsigned LATD0 : 1; 561 unsigned LATD1 : 1; 562 unsigned LATD2 : 1; 563 unsigned LATD3 : 1; 564 unsigned LATD4 : 1; 565 unsigned LATD5 : 1; 566 unsigned LATD6 : 1; 567 unsigned LATD7 : 1; 568 } __LATDbits_t; 569 570 extern __at(0x0F8C) volatile __LATDbits_t LATDbits; 571 572 #define _LATD0 0x01 573 #define _LATD1 0x02 574 #define _LATD2 0x04 575 #define _LATD3 0x08 576 #define _LATD4 0x10 577 #define _LATD5 0x20 578 #define _LATD6 0x40 579 #define _LATD7 0x80 580 581 //============================================================================== 582 583 584 //============================================================================== 585 // LATE Bits 586 587 extern __at(0x0F8D) __sfr LATE; 588 589 typedef union 590 { 591 struct 592 { 593 unsigned LATE0 : 1; 594 unsigned LATE1 : 1; 595 unsigned LATE2 : 1; 596 unsigned : 1; 597 unsigned : 1; 598 unsigned : 1; 599 unsigned : 1; 600 unsigned : 1; 601 }; 602 603 struct 604 { 605 unsigned LATE : 3; 606 unsigned : 5; 607 }; 608 } __LATEbits_t; 609 610 extern __at(0x0F8D) volatile __LATEbits_t LATEbits; 611 612 #define _LATE0 0x01 613 #define _LATE1 0x02 614 #define _LATE2 0x04 615 616 //============================================================================== 617 618 619 //============================================================================== 620 // DDRA Bits 621 622 extern __at(0x0F92) __sfr DDRA; 623 624 typedef union 625 { 626 struct 627 { 628 unsigned TRISA0 : 1; 629 unsigned TRISA1 : 1; 630 unsigned TRISA2 : 1; 631 unsigned TRISA3 : 1; 632 unsigned TRISA4 : 1; 633 unsigned TRISA5 : 1; 634 unsigned TRISA6 : 1; 635 unsigned TRISA7 : 1; 636 }; 637 638 struct 639 { 640 unsigned RA0 : 1; 641 unsigned RA1 : 1; 642 unsigned RA2 : 1; 643 unsigned RA3 : 1; 644 unsigned RA4 : 1; 645 unsigned RA5 : 1; 646 unsigned RA6 : 1; 647 unsigned RA7 : 1; 648 }; 649 } __DDRAbits_t; 650 651 extern __at(0x0F92) volatile __DDRAbits_t DDRAbits; 652 653 #define _TRISA0 0x01 654 #define _RA0 0x01 655 #define _TRISA1 0x02 656 #define _RA1 0x02 657 #define _TRISA2 0x04 658 #define _RA2 0x04 659 #define _TRISA3 0x08 660 #define _RA3 0x08 661 #define _TRISA4 0x10 662 #define _RA4 0x10 663 #define _TRISA5 0x20 664 #define _RA5 0x20 665 #define _TRISA6 0x40 666 #define _RA6 0x40 667 #define _TRISA7 0x80 668 #define _RA7 0x80 669 670 //============================================================================== 671 672 673 //============================================================================== 674 // TRISA Bits 675 676 extern __at(0x0F92) __sfr TRISA; 677 678 typedef union 679 { 680 struct 681 { 682 unsigned TRISA0 : 1; 683 unsigned TRISA1 : 1; 684 unsigned TRISA2 : 1; 685 unsigned TRISA3 : 1; 686 unsigned TRISA4 : 1; 687 unsigned TRISA5 : 1; 688 unsigned TRISA6 : 1; 689 unsigned TRISA7 : 1; 690 }; 691 692 struct 693 { 694 unsigned RA0 : 1; 695 unsigned RA1 : 1; 696 unsigned RA2 : 1; 697 unsigned RA3 : 1; 698 unsigned RA4 : 1; 699 unsigned RA5 : 1; 700 unsigned RA6 : 1; 701 unsigned RA7 : 1; 702 }; 703 } __TRISAbits_t; 704 705 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits; 706 707 #define _TRISA_TRISA0 0x01 708 #define _TRISA_RA0 0x01 709 #define _TRISA_TRISA1 0x02 710 #define _TRISA_RA1 0x02 711 #define _TRISA_TRISA2 0x04 712 #define _TRISA_RA2 0x04 713 #define _TRISA_TRISA3 0x08 714 #define _TRISA_RA3 0x08 715 #define _TRISA_TRISA4 0x10 716 #define _TRISA_RA4 0x10 717 #define _TRISA_TRISA5 0x20 718 #define _TRISA_RA5 0x20 719 #define _TRISA_TRISA6 0x40 720 #define _TRISA_RA6 0x40 721 #define _TRISA_TRISA7 0x80 722 #define _TRISA_RA7 0x80 723 724 //============================================================================== 725 726 727 //============================================================================== 728 // DDRB Bits 729 730 extern __at(0x0F93) __sfr DDRB; 731 732 typedef union 733 { 734 struct 735 { 736 unsigned TRISB0 : 1; 737 unsigned TRISB1 : 1; 738 unsigned TRISB2 : 1; 739 unsigned TRISB3 : 1; 740 unsigned TRISB4 : 1; 741 unsigned TRISB5 : 1; 742 unsigned TRISB6 : 1; 743 unsigned TRISB7 : 1; 744 }; 745 746 struct 747 { 748 unsigned RB0 : 1; 749 unsigned RB1 : 1; 750 unsigned RB2 : 1; 751 unsigned RB3 : 1; 752 unsigned RB4 : 1; 753 unsigned RB5 : 1; 754 unsigned RB6 : 1; 755 unsigned RB7 : 1; 756 }; 757 } __DDRBbits_t; 758 759 extern __at(0x0F93) volatile __DDRBbits_t DDRBbits; 760 761 #define _TRISB0 0x01 762 #define _RB0 0x01 763 #define _TRISB1 0x02 764 #define _RB1 0x02 765 #define _TRISB2 0x04 766 #define _RB2 0x04 767 #define _TRISB3 0x08 768 #define _RB3 0x08 769 #define _TRISB4 0x10 770 #define _RB4 0x10 771 #define _TRISB5 0x20 772 #define _RB5 0x20 773 #define _TRISB6 0x40 774 #define _RB6 0x40 775 #define _TRISB7 0x80 776 #define _RB7 0x80 777 778 //============================================================================== 779 780 781 //============================================================================== 782 // TRISB Bits 783 784 extern __at(0x0F93) __sfr TRISB; 785 786 typedef union 787 { 788 struct 789 { 790 unsigned TRISB0 : 1; 791 unsigned TRISB1 : 1; 792 unsigned TRISB2 : 1; 793 unsigned TRISB3 : 1; 794 unsigned TRISB4 : 1; 795 unsigned TRISB5 : 1; 796 unsigned TRISB6 : 1; 797 unsigned TRISB7 : 1; 798 }; 799 800 struct 801 { 802 unsigned RB0 : 1; 803 unsigned RB1 : 1; 804 unsigned RB2 : 1; 805 unsigned RB3 : 1; 806 unsigned RB4 : 1; 807 unsigned RB5 : 1; 808 unsigned RB6 : 1; 809 unsigned RB7 : 1; 810 }; 811 } __TRISBbits_t; 812 813 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits; 814 815 #define _TRISB_TRISB0 0x01 816 #define _TRISB_RB0 0x01 817 #define _TRISB_TRISB1 0x02 818 #define _TRISB_RB1 0x02 819 #define _TRISB_TRISB2 0x04 820 #define _TRISB_RB2 0x04 821 #define _TRISB_TRISB3 0x08 822 #define _TRISB_RB3 0x08 823 #define _TRISB_TRISB4 0x10 824 #define _TRISB_RB4 0x10 825 #define _TRISB_TRISB5 0x20 826 #define _TRISB_RB5 0x20 827 #define _TRISB_TRISB6 0x40 828 #define _TRISB_RB6 0x40 829 #define _TRISB_TRISB7 0x80 830 #define _TRISB_RB7 0x80 831 832 //============================================================================== 833 834 835 //============================================================================== 836 // DDRC Bits 837 838 extern __at(0x0F94) __sfr DDRC; 839 840 typedef union 841 { 842 struct 843 { 844 unsigned TRISC0 : 1; 845 unsigned TRISC1 : 1; 846 unsigned TRISC2 : 1; 847 unsigned TRISC3 : 1; 848 unsigned TRISC4 : 1; 849 unsigned TRISC5 : 1; 850 unsigned TRISC6 : 1; 851 unsigned TRISC7 : 1; 852 }; 853 854 struct 855 { 856 unsigned RC0 : 1; 857 unsigned RC1 : 1; 858 unsigned RC2 : 1; 859 unsigned RC3 : 1; 860 unsigned RC4 : 1; 861 unsigned RC5 : 1; 862 unsigned RC6 : 1; 863 unsigned RC7 : 1; 864 }; 865 } __DDRCbits_t; 866 867 extern __at(0x0F94) volatile __DDRCbits_t DDRCbits; 868 869 #define _TRISC0 0x01 870 #define _RC0 0x01 871 #define _TRISC1 0x02 872 #define _RC1 0x02 873 #define _TRISC2 0x04 874 #define _RC2 0x04 875 #define _TRISC3 0x08 876 #define _RC3 0x08 877 #define _TRISC4 0x10 878 #define _RC4 0x10 879 #define _TRISC5 0x20 880 #define _RC5 0x20 881 #define _TRISC6 0x40 882 #define _RC6 0x40 883 #define _TRISC7 0x80 884 #define _RC7 0x80 885 886 //============================================================================== 887 888 889 //============================================================================== 890 // TRISC Bits 891 892 extern __at(0x0F94) __sfr TRISC; 893 894 typedef union 895 { 896 struct 897 { 898 unsigned TRISC0 : 1; 899 unsigned TRISC1 : 1; 900 unsigned TRISC2 : 1; 901 unsigned TRISC3 : 1; 902 unsigned TRISC4 : 1; 903 unsigned TRISC5 : 1; 904 unsigned TRISC6 : 1; 905 unsigned TRISC7 : 1; 906 }; 907 908 struct 909 { 910 unsigned RC0 : 1; 911 unsigned RC1 : 1; 912 unsigned RC2 : 1; 913 unsigned RC3 : 1; 914 unsigned RC4 : 1; 915 unsigned RC5 : 1; 916 unsigned RC6 : 1; 917 unsigned RC7 : 1; 918 }; 919 } __TRISCbits_t; 920 921 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits; 922 923 #define _TRISC_TRISC0 0x01 924 #define _TRISC_RC0 0x01 925 #define _TRISC_TRISC1 0x02 926 #define _TRISC_RC1 0x02 927 #define _TRISC_TRISC2 0x04 928 #define _TRISC_RC2 0x04 929 #define _TRISC_TRISC3 0x08 930 #define _TRISC_RC3 0x08 931 #define _TRISC_TRISC4 0x10 932 #define _TRISC_RC4 0x10 933 #define _TRISC_TRISC5 0x20 934 #define _TRISC_RC5 0x20 935 #define _TRISC_TRISC6 0x40 936 #define _TRISC_RC6 0x40 937 #define _TRISC_TRISC7 0x80 938 #define _TRISC_RC7 0x80 939 940 //============================================================================== 941 942 943 //============================================================================== 944 // DDRD Bits 945 946 extern __at(0x0F95) __sfr DDRD; 947 948 typedef union 949 { 950 struct 951 { 952 unsigned TRISD0 : 1; 953 unsigned TRISD1 : 1; 954 unsigned TRISD2 : 1; 955 unsigned TRISD3 : 1; 956 unsigned TRISD4 : 1; 957 unsigned TRISD5 : 1; 958 unsigned TRISD6 : 1; 959 unsigned TRISD7 : 1; 960 }; 961 962 struct 963 { 964 unsigned RD0 : 1; 965 unsigned RD1 : 1; 966 unsigned RD2 : 1; 967 unsigned RD3 : 1; 968 unsigned RD4 : 1; 969 unsigned RD5 : 1; 970 unsigned RD6 : 1; 971 unsigned RD7 : 1; 972 }; 973 } __DDRDbits_t; 974 975 extern __at(0x0F95) volatile __DDRDbits_t DDRDbits; 976 977 #define _TRISD0 0x01 978 #define _RD0 0x01 979 #define _TRISD1 0x02 980 #define _RD1 0x02 981 #define _TRISD2 0x04 982 #define _RD2 0x04 983 #define _TRISD3 0x08 984 #define _RD3 0x08 985 #define _TRISD4 0x10 986 #define _RD4 0x10 987 #define _TRISD5 0x20 988 #define _RD5 0x20 989 #define _TRISD6 0x40 990 #define _RD6 0x40 991 #define _TRISD7 0x80 992 #define _RD7 0x80 993 994 //============================================================================== 995 996 997 //============================================================================== 998 // TRISD Bits 999 1000 extern __at(0x0F95) __sfr TRISD; 1001 1002 typedef union 1003 { 1004 struct 1005 { 1006 unsigned TRISD0 : 1; 1007 unsigned TRISD1 : 1; 1008 unsigned TRISD2 : 1; 1009 unsigned TRISD3 : 1; 1010 unsigned TRISD4 : 1; 1011 unsigned TRISD5 : 1; 1012 unsigned TRISD6 : 1; 1013 unsigned TRISD7 : 1; 1014 }; 1015 1016 struct 1017 { 1018 unsigned RD0 : 1; 1019 unsigned RD1 : 1; 1020 unsigned RD2 : 1; 1021 unsigned RD3 : 1; 1022 unsigned RD4 : 1; 1023 unsigned RD5 : 1; 1024 unsigned RD6 : 1; 1025 unsigned RD7 : 1; 1026 }; 1027 } __TRISDbits_t; 1028 1029 extern __at(0x0F95) volatile __TRISDbits_t TRISDbits; 1030 1031 #define _TRISD_TRISD0 0x01 1032 #define _TRISD_RD0 0x01 1033 #define _TRISD_TRISD1 0x02 1034 #define _TRISD_RD1 0x02 1035 #define _TRISD_TRISD2 0x04 1036 #define _TRISD_RD2 0x04 1037 #define _TRISD_TRISD3 0x08 1038 #define _TRISD_RD3 0x08 1039 #define _TRISD_TRISD4 0x10 1040 #define _TRISD_RD4 0x10 1041 #define _TRISD_TRISD5 0x20 1042 #define _TRISD_RD5 0x20 1043 #define _TRISD_TRISD6 0x40 1044 #define _TRISD_RD6 0x40 1045 #define _TRISD_TRISD7 0x80 1046 #define _TRISD_RD7 0x80 1047 1048 //============================================================================== 1049 1050 1051 //============================================================================== 1052 // DDRE Bits 1053 1054 extern __at(0x0F96) __sfr DDRE; 1055 1056 typedef union 1057 { 1058 struct 1059 { 1060 unsigned TRISE0 : 1; 1061 unsigned TRISE1 : 1; 1062 unsigned TRISE2 : 1; 1063 unsigned : 1; 1064 unsigned PSPMODE : 1; 1065 unsigned IBOV : 1; 1066 unsigned OBF : 1; 1067 unsigned IBF : 1; 1068 }; 1069 1070 struct 1071 { 1072 unsigned RE0 : 1; 1073 unsigned RE1 : 1; 1074 unsigned RE2 : 1; 1075 unsigned : 1; 1076 unsigned : 1; 1077 unsigned : 1; 1078 unsigned : 1; 1079 unsigned : 1; 1080 }; 1081 1082 struct 1083 { 1084 unsigned TRISE : 3; 1085 unsigned : 5; 1086 }; 1087 1088 struct 1089 { 1090 unsigned RE : 3; 1091 unsigned : 5; 1092 }; 1093 } __DDREbits_t; 1094 1095 extern __at(0x0F96) volatile __DDREbits_t DDREbits; 1096 1097 #define _TRISE0 0x01 1098 #define _RE0 0x01 1099 #define _TRISE1 0x02 1100 #define _RE1 0x02 1101 #define _TRISE2 0x04 1102 #define _RE2 0x04 1103 #define _PSPMODE 0x10 1104 #define _IBOV 0x20 1105 #define _OBF 0x40 1106 #define _IBF 0x80 1107 1108 //============================================================================== 1109 1110 1111 //============================================================================== 1112 // TRISE Bits 1113 1114 extern __at(0x0F96) __sfr TRISE; 1115 1116 typedef union 1117 { 1118 struct 1119 { 1120 unsigned TRISE0 : 1; 1121 unsigned TRISE1 : 1; 1122 unsigned TRISE2 : 1; 1123 unsigned : 1; 1124 unsigned PSPMODE : 1; 1125 unsigned IBOV : 1; 1126 unsigned OBF : 1; 1127 unsigned IBF : 1; 1128 }; 1129 1130 struct 1131 { 1132 unsigned RE0 : 1; 1133 unsigned RE1 : 1; 1134 unsigned RE2 : 1; 1135 unsigned : 1; 1136 unsigned : 1; 1137 unsigned : 1; 1138 unsigned : 1; 1139 unsigned : 1; 1140 }; 1141 1142 struct 1143 { 1144 unsigned TRISE : 3; 1145 unsigned : 5; 1146 }; 1147 1148 struct 1149 { 1150 unsigned RE : 3; 1151 unsigned : 5; 1152 }; 1153 } __TRISEbits_t; 1154 1155 extern __at(0x0F96) volatile __TRISEbits_t TRISEbits; 1156 1157 #define _TRISE_TRISE0 0x01 1158 #define _TRISE_RE0 0x01 1159 #define _TRISE_TRISE1 0x02 1160 #define _TRISE_RE1 0x02 1161 #define _TRISE_TRISE2 0x04 1162 #define _TRISE_RE2 0x04 1163 #define _TRISE_PSPMODE 0x10 1164 #define _TRISE_IBOV 0x20 1165 #define _TRISE_OBF 0x40 1166 #define _TRISE_IBF 0x80 1167 1168 //============================================================================== 1169 1170 1171 //============================================================================== 1172 // OSCTUNE Bits 1173 1174 extern __at(0x0F9B) __sfr OSCTUNE; 1175 1176 typedef union 1177 { 1178 struct 1179 { 1180 unsigned TUN0 : 1; 1181 unsigned TUN1 : 1; 1182 unsigned TUN2 : 1; 1183 unsigned TUN3 : 1; 1184 unsigned TUN4 : 1; 1185 unsigned : 1; 1186 unsigned PLLEN : 1; 1187 unsigned INTSRC : 1; 1188 }; 1189 1190 struct 1191 { 1192 unsigned TUN : 5; 1193 unsigned : 3; 1194 }; 1195 } __OSCTUNEbits_t; 1196 1197 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits; 1198 1199 #define _TUN0 0x01 1200 #define _TUN1 0x02 1201 #define _TUN2 0x04 1202 #define _TUN3 0x08 1203 #define _TUN4 0x10 1204 #define _PLLEN 0x40 1205 #define _INTSRC 0x80 1206 1207 //============================================================================== 1208 1209 1210 //============================================================================== 1211 // PIE1 Bits 1212 1213 extern __at(0x0F9D) __sfr PIE1; 1214 1215 typedef struct 1216 { 1217 unsigned TMR1IE : 1; 1218 unsigned TMR2IE : 1; 1219 unsigned CCP1IE : 1; 1220 unsigned SSPIE : 1; 1221 unsigned TXIE : 1; 1222 unsigned RCIE : 1; 1223 unsigned ADIE : 1; 1224 unsigned PSPIE : 1; 1225 } __PIE1bits_t; 1226 1227 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits; 1228 1229 #define _TMR1IE 0x01 1230 #define _TMR2IE 0x02 1231 #define _CCP1IE 0x04 1232 #define _SSPIE 0x08 1233 #define _TXIE 0x10 1234 #define _RCIE 0x20 1235 #define _ADIE 0x40 1236 #define _PSPIE 0x80 1237 1238 //============================================================================== 1239 1240 1241 //============================================================================== 1242 // PIR1 Bits 1243 1244 extern __at(0x0F9E) __sfr PIR1; 1245 1246 typedef struct 1247 { 1248 unsigned TMR1IF : 1; 1249 unsigned TMR2IF : 1; 1250 unsigned CCP1IF : 1; 1251 unsigned SSPIF : 1; 1252 unsigned TXIF : 1; 1253 unsigned RCIF : 1; 1254 unsigned ADIF : 1; 1255 unsigned PSPIF : 1; 1256 } __PIR1bits_t; 1257 1258 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits; 1259 1260 #define _TMR1IF 0x01 1261 #define _TMR2IF 0x02 1262 #define _CCP1IF 0x04 1263 #define _SSPIF 0x08 1264 #define _TXIF 0x10 1265 #define _RCIF 0x20 1266 #define _ADIF 0x40 1267 #define _PSPIF 0x80 1268 1269 //============================================================================== 1270 1271 1272 //============================================================================== 1273 // IPR1 Bits 1274 1275 extern __at(0x0F9F) __sfr IPR1; 1276 1277 typedef struct 1278 { 1279 unsigned TMR1IP : 1; 1280 unsigned TMR2IP : 1; 1281 unsigned CCP1IP : 1; 1282 unsigned SSPIP : 1; 1283 unsigned TXIP : 1; 1284 unsigned RCIP : 1; 1285 unsigned ADIP : 1; 1286 unsigned PSPIP : 1; 1287 } __IPR1bits_t; 1288 1289 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits; 1290 1291 #define _TMR1IP 0x01 1292 #define _TMR2IP 0x02 1293 #define _CCP1IP 0x04 1294 #define _SSPIP 0x08 1295 #define _TXIP 0x10 1296 #define _RCIP 0x20 1297 #define _ADIP 0x40 1298 #define _PSPIP 0x80 1299 1300 //============================================================================== 1301 1302 1303 //============================================================================== 1304 // PIE2 Bits 1305 1306 extern __at(0x0FA0) __sfr PIE2; 1307 1308 typedef union 1309 { 1310 struct 1311 { 1312 unsigned CCP2IE : 1; 1313 unsigned TMR3IE : 1; 1314 unsigned HLVDIE : 1; 1315 unsigned BCLIE : 1; 1316 unsigned EEIE : 1; 1317 unsigned : 1; 1318 unsigned CMIE : 1; 1319 unsigned OSCFIE : 1; 1320 }; 1321 1322 struct 1323 { 1324 unsigned : 1; 1325 unsigned : 1; 1326 unsigned LVDIE : 1; 1327 unsigned : 1; 1328 unsigned : 1; 1329 unsigned : 1; 1330 unsigned : 1; 1331 unsigned : 1; 1332 }; 1333 } __PIE2bits_t; 1334 1335 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits; 1336 1337 #define _CCP2IE 0x01 1338 #define _TMR3IE 0x02 1339 #define _HLVDIE 0x04 1340 #define _LVDIE 0x04 1341 #define _BCLIE 0x08 1342 #define _EEIE 0x10 1343 #define _CMIE 0x40 1344 #define _OSCFIE 0x80 1345 1346 //============================================================================== 1347 1348 1349 //============================================================================== 1350 // PIR2 Bits 1351 1352 extern __at(0x0FA1) __sfr PIR2; 1353 1354 typedef union 1355 { 1356 struct 1357 { 1358 unsigned CCP2IF : 1; 1359 unsigned TMR3IF : 1; 1360 unsigned HLVDIF : 1; 1361 unsigned BCLIF : 1; 1362 unsigned EEIF : 1; 1363 unsigned : 1; 1364 unsigned CMIF : 1; 1365 unsigned OSCFIF : 1; 1366 }; 1367 1368 struct 1369 { 1370 unsigned : 1; 1371 unsigned : 1; 1372 unsigned LVDIF : 1; 1373 unsigned : 1; 1374 unsigned : 1; 1375 unsigned : 1; 1376 unsigned : 1; 1377 unsigned : 1; 1378 }; 1379 } __PIR2bits_t; 1380 1381 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits; 1382 1383 #define _CCP2IF 0x01 1384 #define _TMR3IF 0x02 1385 #define _HLVDIF 0x04 1386 #define _LVDIF 0x04 1387 #define _BCLIF 0x08 1388 #define _EEIF 0x10 1389 #define _CMIF 0x40 1390 #define _OSCFIF 0x80 1391 1392 //============================================================================== 1393 1394 1395 //============================================================================== 1396 // IPR2 Bits 1397 1398 extern __at(0x0FA2) __sfr IPR2; 1399 1400 typedef union 1401 { 1402 struct 1403 { 1404 unsigned CCP2IP : 1; 1405 unsigned TMR3IP : 1; 1406 unsigned HLVDIP : 1; 1407 unsigned BCLIP : 1; 1408 unsigned EEIP : 1; 1409 unsigned : 1; 1410 unsigned CMIP : 1; 1411 unsigned OSCFIP : 1; 1412 }; 1413 1414 struct 1415 { 1416 unsigned : 1; 1417 unsigned : 1; 1418 unsigned LVDIP : 1; 1419 unsigned : 1; 1420 unsigned : 1; 1421 unsigned : 1; 1422 unsigned : 1; 1423 unsigned : 1; 1424 }; 1425 } __IPR2bits_t; 1426 1427 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits; 1428 1429 #define _CCP2IP 0x01 1430 #define _TMR3IP 0x02 1431 #define _HLVDIP 0x04 1432 #define _LVDIP 0x04 1433 #define _BCLIP 0x08 1434 #define _EEIP 0x10 1435 #define _CMIP 0x40 1436 #define _OSCFIP 0x80 1437 1438 //============================================================================== 1439 1440 1441 //============================================================================== 1442 // EECON1 Bits 1443 1444 extern __at(0x0FA6) __sfr EECON1; 1445 1446 typedef struct 1447 { 1448 unsigned RD : 1; 1449 unsigned WR : 1; 1450 unsigned WREN : 1; 1451 unsigned WRERR : 1; 1452 unsigned FREE : 1; 1453 unsigned : 1; 1454 unsigned CFGS : 1; 1455 unsigned EEPGD : 1; 1456 } __EECON1bits_t; 1457 1458 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits; 1459 1460 #define _RD 0x01 1461 #define _WR 0x02 1462 #define _WREN 0x04 1463 #define _WRERR 0x08 1464 #define _FREE 0x10 1465 #define _CFGS 0x40 1466 #define _EEPGD 0x80 1467 1468 //============================================================================== 1469 1470 extern __at(0x0FA7) __sfr EECON2; 1471 extern __at(0x0FA8) __sfr EEDATA; 1472 extern __at(0x0FA9) __sfr EEADR; 1473 extern __at(0x0FAA) __sfr EEADRH; 1474 1475 //============================================================================== 1476 // RCSTA Bits 1477 1478 extern __at(0x0FAB) __sfr RCSTA; 1479 1480 typedef union 1481 { 1482 struct 1483 { 1484 unsigned RX9D : 1; 1485 unsigned OERR : 1; 1486 unsigned FERR : 1; 1487 unsigned ADDEN : 1; 1488 unsigned CREN : 1; 1489 unsigned SREN : 1; 1490 unsigned RX9 : 1; 1491 unsigned SPEN : 1; 1492 }; 1493 1494 struct 1495 { 1496 unsigned : 1; 1497 unsigned : 1; 1498 unsigned : 1; 1499 unsigned ADEN : 1; 1500 unsigned : 1; 1501 unsigned : 1; 1502 unsigned : 1; 1503 unsigned : 1; 1504 }; 1505 } __RCSTAbits_t; 1506 1507 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits; 1508 1509 #define _RX9D 0x01 1510 #define _OERR 0x02 1511 #define _FERR 0x04 1512 #define _ADDEN 0x08 1513 #define _ADEN 0x08 1514 #define _CREN 0x10 1515 #define _SREN 0x20 1516 #define _RX9 0x40 1517 #define _SPEN 0x80 1518 1519 //============================================================================== 1520 1521 1522 //============================================================================== 1523 // TXSTA Bits 1524 1525 extern __at(0x0FAC) __sfr TXSTA; 1526 1527 typedef struct 1528 { 1529 unsigned TX9D : 1; 1530 unsigned TRMT : 1; 1531 unsigned BRGH : 1; 1532 unsigned SENDB : 1; 1533 unsigned SYNC : 1; 1534 unsigned TXEN : 1; 1535 unsigned TX9 : 1; 1536 unsigned CSRC : 1; 1537 } __TXSTAbits_t; 1538 1539 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits; 1540 1541 #define _TX9D 0x01 1542 #define _TRMT 0x02 1543 #define _BRGH 0x04 1544 #define _SENDB 0x08 1545 #define _SYNC 0x10 1546 #define _TXEN 0x20 1547 #define _TX9 0x40 1548 #define _CSRC 0x80 1549 1550 //============================================================================== 1551 1552 extern __at(0x0FAD) __sfr TXREG; 1553 extern __at(0x0FAE) __sfr RCREG; 1554 extern __at(0x0FAF) __sfr SPBRG; 1555 extern __at(0x0FB0) __sfr SPBRGH; 1556 1557 //============================================================================== 1558 // T3CON Bits 1559 1560 extern __at(0x0FB1) __sfr T3CON; 1561 1562 typedef union 1563 { 1564 struct 1565 { 1566 unsigned TMR3ON : 1; 1567 unsigned TMR3CS : 1; 1568 unsigned NOT_T3SYNC : 1; 1569 unsigned T3CCP1 : 1; 1570 unsigned T3CKPS0 : 1; 1571 unsigned T3CKPS1 : 1; 1572 unsigned T3CCP2 : 1; 1573 unsigned RD16 : 1; 1574 }; 1575 1576 struct 1577 { 1578 unsigned : 1; 1579 unsigned : 1; 1580 unsigned T3SYNC : 1; 1581 unsigned : 1; 1582 unsigned : 1; 1583 unsigned : 1; 1584 unsigned : 1; 1585 unsigned : 1; 1586 }; 1587 1588 struct 1589 { 1590 unsigned : 4; 1591 unsigned T3CKPS : 2; 1592 unsigned : 2; 1593 }; 1594 } __T3CONbits_t; 1595 1596 extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits; 1597 1598 #define _T3CON_TMR3ON 0x01 1599 #define _T3CON_TMR3CS 0x02 1600 #define _T3CON_NOT_T3SYNC 0x04 1601 #define _T3CON_T3SYNC 0x04 1602 #define _T3CON_T3CCP1 0x08 1603 #define _T3CON_T3CKPS0 0x10 1604 #define _T3CON_T3CKPS1 0x20 1605 #define _T3CON_T3CCP2 0x40 1606 #define _T3CON_RD16 0x80 1607 1608 //============================================================================== 1609 1610 extern __at(0x0FB2) __sfr TMR3; 1611 extern __at(0x0FB2) __sfr TMR3L; 1612 extern __at(0x0FB3) __sfr TMR3H; 1613 1614 //============================================================================== 1615 // CMCON Bits 1616 1617 extern __at(0x0FB4) __sfr CMCON; 1618 1619 typedef union 1620 { 1621 struct 1622 { 1623 unsigned CM0 : 1; 1624 unsigned CM1 : 1; 1625 unsigned CM2 : 1; 1626 unsigned CIS : 1; 1627 unsigned C1INV : 1; 1628 unsigned C2INV : 1; 1629 unsigned C1OUT : 1; 1630 unsigned C2OUT : 1; 1631 }; 1632 1633 struct 1634 { 1635 unsigned CM : 3; 1636 unsigned : 5; 1637 }; 1638 } __CMCONbits_t; 1639 1640 extern __at(0x0FB4) volatile __CMCONbits_t CMCONbits; 1641 1642 #define _CM0 0x01 1643 #define _CM1 0x02 1644 #define _CM2 0x04 1645 #define _CIS 0x08 1646 #define _C1INV 0x10 1647 #define _C2INV 0x20 1648 #define _C1OUT 0x40 1649 #define _C2OUT 0x80 1650 1651 //============================================================================== 1652 1653 1654 //============================================================================== 1655 // CVRCON Bits 1656 1657 extern __at(0x0FB5) __sfr CVRCON; 1658 1659 typedef union 1660 { 1661 struct 1662 { 1663 unsigned CVR0 : 1; 1664 unsigned CVR1 : 1; 1665 unsigned CVR2 : 1; 1666 unsigned CVR3 : 1; 1667 unsigned CVRSS : 1; 1668 unsigned CVRR : 1; 1669 unsigned CVROE : 1; 1670 unsigned CVREN : 1; 1671 }; 1672 1673 struct 1674 { 1675 unsigned CVR : 4; 1676 unsigned : 4; 1677 }; 1678 } __CVRCONbits_t; 1679 1680 extern __at(0x0FB5) volatile __CVRCONbits_t CVRCONbits; 1681 1682 #define _CVR0 0x01 1683 #define _CVR1 0x02 1684 #define _CVR2 0x04 1685 #define _CVR3 0x08 1686 #define _CVRSS 0x10 1687 #define _CVRR 0x20 1688 #define _CVROE 0x40 1689 #define _CVREN 0x80 1690 1691 //============================================================================== 1692 1693 1694 //============================================================================== 1695 // ECCP1AS Bits 1696 1697 extern __at(0x0FB6) __sfr ECCP1AS; 1698 1699 typedef union 1700 { 1701 struct 1702 { 1703 unsigned PSSBD0 : 1; 1704 unsigned PSSBD1 : 1; 1705 unsigned PSSAC0 : 1; 1706 unsigned PSSAC1 : 1; 1707 unsigned ECCPAS0 : 1; 1708 unsigned ECCPAS1 : 1; 1709 unsigned ECCPAS2 : 1; 1710 unsigned ECCPASE : 1; 1711 }; 1712 1713 struct 1714 { 1715 unsigned PSSBD : 2; 1716 unsigned : 6; 1717 }; 1718 1719 struct 1720 { 1721 unsigned : 2; 1722 unsigned PSSAC : 2; 1723 unsigned : 4; 1724 }; 1725 1726 struct 1727 { 1728 unsigned : 4; 1729 unsigned ECCPAS : 3; 1730 unsigned : 1; 1731 }; 1732 } __ECCP1ASbits_t; 1733 1734 extern __at(0x0FB6) volatile __ECCP1ASbits_t ECCP1ASbits; 1735 1736 #define _PSSBD0 0x01 1737 #define _PSSBD1 0x02 1738 #define _PSSAC0 0x04 1739 #define _PSSAC1 0x08 1740 #define _ECCPAS0 0x10 1741 #define _ECCPAS1 0x20 1742 #define _ECCPAS2 0x40 1743 #define _ECCPASE 0x80 1744 1745 //============================================================================== 1746 1747 1748 //============================================================================== 1749 // PWM1CON Bits 1750 1751 extern __at(0x0FB7) __sfr PWM1CON; 1752 1753 typedef union 1754 { 1755 struct 1756 { 1757 unsigned PDC0 : 1; 1758 unsigned PDC1 : 1; 1759 unsigned PDC2 : 1; 1760 unsigned PDC3 : 1; 1761 unsigned PDC4 : 1; 1762 unsigned PDC5 : 1; 1763 unsigned PDC6 : 1; 1764 unsigned PRSEN : 1; 1765 }; 1766 1767 struct 1768 { 1769 unsigned PDC : 7; 1770 unsigned : 1; 1771 }; 1772 } __PWM1CONbits_t; 1773 1774 extern __at(0x0FB7) volatile __PWM1CONbits_t PWM1CONbits; 1775 1776 #define _PDC0 0x01 1777 #define _PDC1 0x02 1778 #define _PDC2 0x04 1779 #define _PDC3 0x08 1780 #define _PDC4 0x10 1781 #define _PDC5 0x20 1782 #define _PDC6 0x40 1783 #define _PRSEN 0x80 1784 1785 //============================================================================== 1786 1787 1788 //============================================================================== 1789 // BAUDCON Bits 1790 1791 extern __at(0x0FB8) __sfr BAUDCON; 1792 1793 typedef union 1794 { 1795 struct 1796 { 1797 unsigned ABDEN : 1; 1798 unsigned WUE : 1; 1799 unsigned : 1; 1800 unsigned BRG16 : 1; 1801 unsigned TXCKP : 1; 1802 unsigned RXDTP : 1; 1803 unsigned RCIDL : 1; 1804 unsigned ABDOVF : 1; 1805 }; 1806 1807 struct 1808 { 1809 unsigned : 1; 1810 unsigned : 1; 1811 unsigned : 1; 1812 unsigned : 1; 1813 unsigned SCKP : 1; 1814 unsigned RXCKP : 1; 1815 unsigned RCMT : 1; 1816 unsigned : 1; 1817 }; 1818 } __BAUDCONbits_t; 1819 1820 extern __at(0x0FB8) volatile __BAUDCONbits_t BAUDCONbits; 1821 1822 #define _ABDEN 0x01 1823 #define _WUE 0x02 1824 #define _BRG16 0x08 1825 #define _TXCKP 0x10 1826 #define _SCKP 0x10 1827 #define _RXDTP 0x20 1828 #define _RXCKP 0x20 1829 #define _RCIDL 0x40 1830 #define _RCMT 0x40 1831 #define _ABDOVF 0x80 1832 1833 //============================================================================== 1834 1835 1836 //============================================================================== 1837 // BAUDCTL Bits 1838 1839 extern __at(0x0FB8) __sfr BAUDCTL; 1840 1841 typedef union 1842 { 1843 struct 1844 { 1845 unsigned ABDEN : 1; 1846 unsigned WUE : 1; 1847 unsigned : 1; 1848 unsigned BRG16 : 1; 1849 unsigned TXCKP : 1; 1850 unsigned RXDTP : 1; 1851 unsigned RCIDL : 1; 1852 unsigned ABDOVF : 1; 1853 }; 1854 1855 struct 1856 { 1857 unsigned : 1; 1858 unsigned : 1; 1859 unsigned : 1; 1860 unsigned : 1; 1861 unsigned SCKP : 1; 1862 unsigned RXCKP : 1; 1863 unsigned RCMT : 1; 1864 unsigned : 1; 1865 }; 1866 } __BAUDCTLbits_t; 1867 1868 extern __at(0x0FB8) volatile __BAUDCTLbits_t BAUDCTLbits; 1869 1870 #define _BAUDCTL_ABDEN 0x01 1871 #define _BAUDCTL_WUE 0x02 1872 #define _BAUDCTL_BRG16 0x08 1873 #define _BAUDCTL_TXCKP 0x10 1874 #define _BAUDCTL_SCKP 0x10 1875 #define _BAUDCTL_RXDTP 0x20 1876 #define _BAUDCTL_RXCKP 0x20 1877 #define _BAUDCTL_RCIDL 0x40 1878 #define _BAUDCTL_RCMT 0x40 1879 #define _BAUDCTL_ABDOVF 0x80 1880 1881 //============================================================================== 1882 1883 1884 //============================================================================== 1885 // CCP2CON Bits 1886 1887 extern __at(0x0FBA) __sfr CCP2CON; 1888 1889 typedef union 1890 { 1891 struct 1892 { 1893 unsigned CCP2M0 : 1; 1894 unsigned CCP2M1 : 1; 1895 unsigned CCP2M2 : 1; 1896 unsigned CCP2M3 : 1; 1897 unsigned CCP2Y : 1; 1898 unsigned CCP2X : 1; 1899 unsigned : 1; 1900 unsigned : 1; 1901 }; 1902 1903 struct 1904 { 1905 unsigned : 1; 1906 unsigned : 1; 1907 unsigned : 1; 1908 unsigned : 1; 1909 unsigned DC2B0 : 1; 1910 unsigned DC2B1 : 1; 1911 unsigned : 1; 1912 unsigned : 1; 1913 }; 1914 1915 struct 1916 { 1917 unsigned CCP2M : 4; 1918 unsigned : 4; 1919 }; 1920 1921 struct 1922 { 1923 unsigned : 4; 1924 unsigned DC2B : 2; 1925 unsigned : 2; 1926 }; 1927 } __CCP2CONbits_t; 1928 1929 extern __at(0x0FBA) volatile __CCP2CONbits_t CCP2CONbits; 1930 1931 #define _CCP2M0 0x01 1932 #define _CCP2M1 0x02 1933 #define _CCP2M2 0x04 1934 #define _CCP2M3 0x08 1935 #define _CCP2Y 0x10 1936 #define _DC2B0 0x10 1937 #define _CCP2X 0x20 1938 #define _DC2B1 0x20 1939 1940 //============================================================================== 1941 1942 extern __at(0x0FBB) __sfr CCPR2; 1943 extern __at(0x0FBB) __sfr CCPR2L; 1944 extern __at(0x0FBC) __sfr CCPR2H; 1945 1946 //============================================================================== 1947 // CCP1CON Bits 1948 1949 extern __at(0x0FBD) __sfr CCP1CON; 1950 1951 typedef union 1952 { 1953 struct 1954 { 1955 unsigned CCP1M0 : 1; 1956 unsigned CCP1M1 : 1; 1957 unsigned CCP1M2 : 1; 1958 unsigned CCP1M3 : 1; 1959 unsigned CCP1Y : 1; 1960 unsigned CCP1X : 1; 1961 unsigned P1M0 : 1; 1962 unsigned P1M1 : 1; 1963 }; 1964 1965 struct 1966 { 1967 unsigned : 1; 1968 unsigned : 1; 1969 unsigned : 1; 1970 unsigned : 1; 1971 unsigned DC1B0 : 1; 1972 unsigned DC1B1 : 1; 1973 unsigned : 1; 1974 unsigned : 1; 1975 }; 1976 1977 struct 1978 { 1979 unsigned CCP1M : 4; 1980 unsigned : 4; 1981 }; 1982 1983 struct 1984 { 1985 unsigned : 4; 1986 unsigned DC1B : 2; 1987 unsigned : 2; 1988 }; 1989 1990 struct 1991 { 1992 unsigned : 6; 1993 unsigned P1M : 2; 1994 }; 1995 } __CCP1CONbits_t; 1996 1997 extern __at(0x0FBD) volatile __CCP1CONbits_t CCP1CONbits; 1998 1999 #define _CCP1M0 0x01 2000 #define _CCP1M1 0x02 2001 #define _CCP1M2 0x04 2002 #define _CCP1M3 0x08 2003 #define _CCP1Y 0x10 2004 #define _DC1B0 0x10 2005 #define _CCP1X 0x20 2006 #define _DC1B1 0x20 2007 #define _P1M0 0x40 2008 #define _P1M1 0x80 2009 2010 //============================================================================== 2011 2012 extern __at(0x0FBE) __sfr CCPR1; 2013 extern __at(0x0FBE) __sfr CCPR1L; 2014 extern __at(0x0FBF) __sfr CCPR1H; 2015 2016 //============================================================================== 2017 // ADCON2 Bits 2018 2019 extern __at(0x0FC0) __sfr ADCON2; 2020 2021 typedef union 2022 { 2023 struct 2024 { 2025 unsigned ADCS0 : 1; 2026 unsigned ADCS1 : 1; 2027 unsigned ADCS2 : 1; 2028 unsigned ACQT0 : 1; 2029 unsigned ACQT1 : 1; 2030 unsigned ACQT2 : 1; 2031 unsigned : 1; 2032 unsigned ADFM : 1; 2033 }; 2034 2035 struct 2036 { 2037 unsigned ADCS : 3; 2038 unsigned : 5; 2039 }; 2040 2041 struct 2042 { 2043 unsigned : 3; 2044 unsigned ACQT : 3; 2045 unsigned : 2; 2046 }; 2047 } __ADCON2bits_t; 2048 2049 extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits; 2050 2051 #define _ADCS0 0x01 2052 #define _ADCS1 0x02 2053 #define _ADCS2 0x04 2054 #define _ACQT0 0x08 2055 #define _ACQT1 0x10 2056 #define _ACQT2 0x20 2057 #define _ADFM 0x80 2058 2059 //============================================================================== 2060 2061 2062 //============================================================================== 2063 // ADCON1 Bits 2064 2065 extern __at(0x0FC1) __sfr ADCON1; 2066 2067 typedef union 2068 { 2069 struct 2070 { 2071 unsigned PCFG0 : 1; 2072 unsigned PCFG1 : 1; 2073 unsigned PCFG2 : 1; 2074 unsigned PCFG3 : 1; 2075 unsigned VCFG0 : 1; 2076 unsigned VCFG1 : 1; 2077 unsigned : 1; 2078 unsigned : 1; 2079 }; 2080 2081 struct 2082 { 2083 unsigned PCFG : 4; 2084 unsigned : 4; 2085 }; 2086 2087 struct 2088 { 2089 unsigned : 4; 2090 unsigned VCFG : 2; 2091 unsigned : 2; 2092 }; 2093 } __ADCON1bits_t; 2094 2095 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits; 2096 2097 #define _PCFG0 0x01 2098 #define _PCFG1 0x02 2099 #define _PCFG2 0x04 2100 #define _PCFG3 0x08 2101 #define _VCFG0 0x10 2102 #define _VCFG1 0x20 2103 2104 //============================================================================== 2105 2106 2107 //============================================================================== 2108 // ADCON0 Bits 2109 2110 extern __at(0x0FC2) __sfr ADCON0; 2111 2112 typedef union 2113 { 2114 struct 2115 { 2116 unsigned ADON : 1; 2117 unsigned GO_NOT_DONE : 1; 2118 unsigned CHS0 : 1; 2119 unsigned CHS1 : 1; 2120 unsigned CHS2 : 1; 2121 unsigned CHS3 : 1; 2122 unsigned : 1; 2123 unsigned : 1; 2124 }; 2125 2126 struct 2127 { 2128 unsigned : 1; 2129 unsigned GO : 1; 2130 unsigned : 1; 2131 unsigned : 1; 2132 unsigned : 1; 2133 unsigned : 1; 2134 unsigned : 1; 2135 unsigned : 1; 2136 }; 2137 2138 struct 2139 { 2140 unsigned : 1; 2141 unsigned DONE : 1; 2142 unsigned : 1; 2143 unsigned : 1; 2144 unsigned : 1; 2145 unsigned : 1; 2146 unsigned : 1; 2147 unsigned : 1; 2148 }; 2149 2150 struct 2151 { 2152 unsigned : 1; 2153 unsigned NOT_DONE : 1; 2154 unsigned : 1; 2155 unsigned : 1; 2156 unsigned : 1; 2157 unsigned : 1; 2158 unsigned : 1; 2159 unsigned : 1; 2160 }; 2161 2162 struct 2163 { 2164 unsigned : 1; 2165 unsigned GO_DONE : 1; 2166 unsigned : 1; 2167 unsigned : 1; 2168 unsigned : 1; 2169 unsigned : 1; 2170 unsigned : 1; 2171 unsigned : 1; 2172 }; 2173 2174 struct 2175 { 2176 unsigned : 2; 2177 unsigned CHS : 4; 2178 unsigned : 2; 2179 }; 2180 } __ADCON0bits_t; 2181 2182 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits; 2183 2184 #define _ADON 0x01 2185 #define _GO_NOT_DONE 0x02 2186 #define _GO 0x02 2187 #define _DONE 0x02 2188 #define _NOT_DONE 0x02 2189 #define _GO_DONE 0x02 2190 #define _CHS0 0x04 2191 #define _CHS1 0x08 2192 #define _CHS2 0x10 2193 #define _CHS3 0x20 2194 2195 //============================================================================== 2196 2197 extern __at(0x0FC3) __sfr ADRES; 2198 extern __at(0x0FC3) __sfr ADRESL; 2199 extern __at(0x0FC4) __sfr ADRESH; 2200 2201 //============================================================================== 2202 // SSPCON2 Bits 2203 2204 extern __at(0x0FC5) __sfr SSPCON2; 2205 2206 typedef struct 2207 { 2208 unsigned SEN : 1; 2209 unsigned RSEN : 1; 2210 unsigned PEN : 1; 2211 unsigned RCEN : 1; 2212 unsigned ACKEN : 1; 2213 unsigned ACKDT : 1; 2214 unsigned ACKSTAT : 1; 2215 unsigned GCEN : 1; 2216 } __SSPCON2bits_t; 2217 2218 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits; 2219 2220 #define _SEN 0x01 2221 #define _RSEN 0x02 2222 #define _PEN 0x04 2223 #define _RCEN 0x08 2224 #define _ACKEN 0x10 2225 #define _ACKDT 0x20 2226 #define _ACKSTAT 0x40 2227 #define _GCEN 0x80 2228 2229 //============================================================================== 2230 2231 2232 //============================================================================== 2233 // SSPCON1 Bits 2234 2235 extern __at(0x0FC6) __sfr SSPCON1; 2236 2237 typedef union 2238 { 2239 struct 2240 { 2241 unsigned SSPM0 : 1; 2242 unsigned SSPM1 : 1; 2243 unsigned SSPM2 : 1; 2244 unsigned SSPM3 : 1; 2245 unsigned CKP : 1; 2246 unsigned SSPEN : 1; 2247 unsigned SSPOV : 1; 2248 unsigned WCOL : 1; 2249 }; 2250 2251 struct 2252 { 2253 unsigned SSPM : 4; 2254 unsigned : 4; 2255 }; 2256 } __SSPCON1bits_t; 2257 2258 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits; 2259 2260 #define _SSPM0 0x01 2261 #define _SSPM1 0x02 2262 #define _SSPM2 0x04 2263 #define _SSPM3 0x08 2264 #define _CKP 0x10 2265 #define _SSPEN 0x20 2266 #define _SSPOV 0x40 2267 #define _WCOL 0x80 2268 2269 //============================================================================== 2270 2271 2272 //============================================================================== 2273 // SSPSTAT Bits 2274 2275 extern __at(0x0FC7) __sfr SSPSTAT; 2276 2277 typedef union 2278 { 2279 struct 2280 { 2281 unsigned BF : 1; 2282 unsigned UA : 1; 2283 unsigned R_NOT_W : 1; 2284 unsigned S : 1; 2285 unsigned P : 1; 2286 unsigned D_NOT_A : 1; 2287 unsigned CKE : 1; 2288 unsigned SMP : 1; 2289 }; 2290 2291 struct 2292 { 2293 unsigned : 1; 2294 unsigned : 1; 2295 unsigned R : 1; 2296 unsigned : 1; 2297 unsigned : 1; 2298 unsigned D : 1; 2299 unsigned : 1; 2300 unsigned : 1; 2301 }; 2302 2303 struct 2304 { 2305 unsigned : 1; 2306 unsigned : 1; 2307 unsigned NOT_W : 1; 2308 unsigned : 1; 2309 unsigned : 1; 2310 unsigned NOT_A : 1; 2311 unsigned : 1; 2312 unsigned : 1; 2313 }; 2314 2315 struct 2316 { 2317 unsigned : 1; 2318 unsigned : 1; 2319 unsigned R_W : 1; 2320 unsigned : 1; 2321 unsigned : 1; 2322 unsigned D_A : 1; 2323 unsigned : 1; 2324 unsigned : 1; 2325 }; 2326 2327 struct 2328 { 2329 unsigned : 1; 2330 unsigned : 1; 2331 unsigned NOT_WRITE : 1; 2332 unsigned : 1; 2333 unsigned : 1; 2334 unsigned NOT_ADDRESS : 1; 2335 unsigned : 1; 2336 unsigned : 1; 2337 }; 2338 } __SSPSTATbits_t; 2339 2340 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits; 2341 2342 #define _BF 0x01 2343 #define _UA 0x02 2344 #define _R_NOT_W 0x04 2345 #define _R 0x04 2346 #define _NOT_W 0x04 2347 #define _R_W 0x04 2348 #define _NOT_WRITE 0x04 2349 #define _S 0x08 2350 #define _P 0x10 2351 #define _D_NOT_A 0x20 2352 #define _D 0x20 2353 #define _NOT_A 0x20 2354 #define _D_A 0x20 2355 #define _NOT_ADDRESS 0x20 2356 #define _CKE 0x40 2357 #define _SMP 0x80 2358 2359 //============================================================================== 2360 2361 extern __at(0x0FC8) __sfr SSPADD; 2362 extern __at(0x0FC9) __sfr SSPBUF; 2363 2364 //============================================================================== 2365 // T2CON Bits 2366 2367 extern __at(0x0FCA) __sfr T2CON; 2368 2369 typedef union 2370 { 2371 struct 2372 { 2373 unsigned T2CKPS0 : 1; 2374 unsigned T2CKPS1 : 1; 2375 unsigned TMR2ON : 1; 2376 unsigned T2OUTPS0 : 1; 2377 unsigned T2OUTPS1 : 1; 2378 unsigned T2OUTPS2 : 1; 2379 unsigned T2OUTPS3 : 1; 2380 unsigned : 1; 2381 }; 2382 2383 struct 2384 { 2385 unsigned T2CKPS : 2; 2386 unsigned : 6; 2387 }; 2388 2389 struct 2390 { 2391 unsigned : 3; 2392 unsigned T2OUTPS : 4; 2393 unsigned : 1; 2394 }; 2395 } __T2CONbits_t; 2396 2397 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits; 2398 2399 #define _T2CKPS0 0x01 2400 #define _T2CKPS1 0x02 2401 #define _TMR2ON 0x04 2402 #define _T2OUTPS0 0x08 2403 #define _T2OUTPS1 0x10 2404 #define _T2OUTPS2 0x20 2405 #define _T2OUTPS3 0x40 2406 2407 //============================================================================== 2408 2409 extern __at(0x0FCB) __sfr PR2; 2410 extern __at(0x0FCC) __sfr TMR2; 2411 2412 //============================================================================== 2413 // T1CON Bits 2414 2415 extern __at(0x0FCD) __sfr T1CON; 2416 2417 typedef union 2418 { 2419 struct 2420 { 2421 unsigned TMR1ON : 1; 2422 unsigned TMR1CS : 1; 2423 unsigned NOT_T1SYNC : 1; 2424 unsigned T1OSCEN : 1; 2425 unsigned T1CKPS0 : 1; 2426 unsigned T1CKPS1 : 1; 2427 unsigned T1RUN : 1; 2428 unsigned RD16 : 1; 2429 }; 2430 2431 struct 2432 { 2433 unsigned : 1; 2434 unsigned : 1; 2435 unsigned T1SYNC : 1; 2436 unsigned : 1; 2437 unsigned : 1; 2438 unsigned : 1; 2439 unsigned : 1; 2440 unsigned : 1; 2441 }; 2442 2443 struct 2444 { 2445 unsigned : 4; 2446 unsigned T1CKPS : 2; 2447 unsigned : 2; 2448 }; 2449 } __T1CONbits_t; 2450 2451 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits; 2452 2453 #define _TMR1ON 0x01 2454 #define _TMR1CS 0x02 2455 #define _NOT_T1SYNC 0x04 2456 #define _T1SYNC 0x04 2457 #define _T1OSCEN 0x08 2458 #define _T1CKPS0 0x10 2459 #define _T1CKPS1 0x20 2460 #define _T1RUN 0x40 2461 #define _RD16 0x80 2462 2463 //============================================================================== 2464 2465 extern __at(0x0FCE) __sfr TMR1; 2466 extern __at(0x0FCE) __sfr TMR1L; 2467 extern __at(0x0FCF) __sfr TMR1H; 2468 2469 //============================================================================== 2470 // RCON Bits 2471 2472 extern __at(0x0FD0) __sfr RCON; 2473 2474 typedef union 2475 { 2476 struct 2477 { 2478 unsigned NOT_BOR : 1; 2479 unsigned NOT_POR : 1; 2480 unsigned NOT_PD : 1; 2481 unsigned NOT_TO : 1; 2482 unsigned NOT_RI : 1; 2483 unsigned : 1; 2484 unsigned SBOREN : 1; 2485 unsigned IPEN : 1; 2486 }; 2487 2488 struct 2489 { 2490 unsigned BOR : 1; 2491 unsigned POR : 1; 2492 unsigned PD : 1; 2493 unsigned TO : 1; 2494 unsigned RI : 1; 2495 unsigned : 1; 2496 unsigned : 1; 2497 unsigned : 1; 2498 }; 2499 } __RCONbits_t; 2500 2501 extern __at(0x0FD0) volatile __RCONbits_t RCONbits; 2502 2503 #define _NOT_BOR 0x01 2504 #define _BOR 0x01 2505 #define _NOT_POR 0x02 2506 #define _POR 0x02 2507 #define _NOT_PD 0x04 2508 #define _PD 0x04 2509 #define _NOT_TO 0x08 2510 #define _TO 0x08 2511 #define _NOT_RI 0x10 2512 #define _RI 0x10 2513 #define _SBOREN 0x40 2514 #define _IPEN 0x80 2515 2516 //============================================================================== 2517 2518 2519 //============================================================================== 2520 // WDTCON Bits 2521 2522 extern __at(0x0FD1) __sfr WDTCON; 2523 2524 typedef union 2525 { 2526 struct 2527 { 2528 unsigned SWDTEN : 1; 2529 unsigned : 1; 2530 unsigned : 1; 2531 unsigned : 1; 2532 unsigned : 1; 2533 unsigned : 1; 2534 unsigned : 1; 2535 unsigned : 1; 2536 }; 2537 2538 struct 2539 { 2540 unsigned SWDTE : 1; 2541 unsigned : 1; 2542 unsigned : 1; 2543 unsigned : 1; 2544 unsigned : 1; 2545 unsigned : 1; 2546 unsigned : 1; 2547 unsigned : 1; 2548 }; 2549 } __WDTCONbits_t; 2550 2551 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits; 2552 2553 #define _SWDTEN 0x01 2554 #define _SWDTE 0x01 2555 2556 //============================================================================== 2557 2558 2559 //============================================================================== 2560 // HLVDCON Bits 2561 2562 extern __at(0x0FD2) __sfr HLVDCON; 2563 2564 typedef union 2565 { 2566 struct 2567 { 2568 unsigned HLVDL0 : 1; 2569 unsigned HLVDL1 : 1; 2570 unsigned HLVDL2 : 1; 2571 unsigned HLVDL3 : 1; 2572 unsigned HLVDEN : 1; 2573 unsigned IVRST : 1; 2574 unsigned : 1; 2575 unsigned VDIRMAG : 1; 2576 }; 2577 2578 struct 2579 { 2580 unsigned LVDL0 : 1; 2581 unsigned LVDL1 : 1; 2582 unsigned LVDL2 : 1; 2583 unsigned LVDL3 : 1; 2584 unsigned LVDEN : 1; 2585 unsigned IRVST : 1; 2586 unsigned : 1; 2587 unsigned : 1; 2588 }; 2589 2590 struct 2591 { 2592 unsigned LVV0 : 1; 2593 unsigned LVV1 : 1; 2594 unsigned LVV2 : 1; 2595 unsigned LVV3 : 1; 2596 unsigned : 1; 2597 unsigned BGST : 1; 2598 unsigned : 1; 2599 unsigned : 1; 2600 }; 2601 2602 struct 2603 { 2604 unsigned HLVDL : 4; 2605 unsigned : 4; 2606 }; 2607 2608 struct 2609 { 2610 unsigned LVV : 4; 2611 unsigned : 4; 2612 }; 2613 2614 struct 2615 { 2616 unsigned LVDL : 4; 2617 unsigned : 4; 2618 }; 2619 } __HLVDCONbits_t; 2620 2621 extern __at(0x0FD2) volatile __HLVDCONbits_t HLVDCONbits; 2622 2623 #define _HLVDL0 0x01 2624 #define _LVDL0 0x01 2625 #define _LVV0 0x01 2626 #define _HLVDL1 0x02 2627 #define _LVDL1 0x02 2628 #define _LVV1 0x02 2629 #define _HLVDL2 0x04 2630 #define _LVDL2 0x04 2631 #define _LVV2 0x04 2632 #define _HLVDL3 0x08 2633 #define _LVDL3 0x08 2634 #define _LVV3 0x08 2635 #define _HLVDEN 0x10 2636 #define _LVDEN 0x10 2637 #define _IVRST 0x20 2638 #define _IRVST 0x20 2639 #define _BGST 0x20 2640 #define _VDIRMAG 0x80 2641 2642 //============================================================================== 2643 2644 2645 //============================================================================== 2646 // LVDCON Bits 2647 2648 extern __at(0x0FD2) __sfr LVDCON; 2649 2650 typedef union 2651 { 2652 struct 2653 { 2654 unsigned HLVDL0 : 1; 2655 unsigned HLVDL1 : 1; 2656 unsigned HLVDL2 : 1; 2657 unsigned HLVDL3 : 1; 2658 unsigned HLVDEN : 1; 2659 unsigned IVRST : 1; 2660 unsigned : 1; 2661 unsigned VDIRMAG : 1; 2662 }; 2663 2664 struct 2665 { 2666 unsigned LVDL0 : 1; 2667 unsigned LVDL1 : 1; 2668 unsigned LVDL2 : 1; 2669 unsigned LVDL3 : 1; 2670 unsigned LVDEN : 1; 2671 unsigned IRVST : 1; 2672 unsigned : 1; 2673 unsigned : 1; 2674 }; 2675 2676 struct 2677 { 2678 unsigned LVV0 : 1; 2679 unsigned LVV1 : 1; 2680 unsigned LVV2 : 1; 2681 unsigned LVV3 : 1; 2682 unsigned : 1; 2683 unsigned BGST : 1; 2684 unsigned : 1; 2685 unsigned : 1; 2686 }; 2687 2688 struct 2689 { 2690 unsigned HLVDL : 4; 2691 unsigned : 4; 2692 }; 2693 2694 struct 2695 { 2696 unsigned LVDL : 4; 2697 unsigned : 4; 2698 }; 2699 2700 struct 2701 { 2702 unsigned LVV : 4; 2703 unsigned : 4; 2704 }; 2705 } __LVDCONbits_t; 2706 2707 extern __at(0x0FD2) volatile __LVDCONbits_t LVDCONbits; 2708 2709 #define _LVDCON_HLVDL0 0x01 2710 #define _LVDCON_LVDL0 0x01 2711 #define _LVDCON_LVV0 0x01 2712 #define _LVDCON_HLVDL1 0x02 2713 #define _LVDCON_LVDL1 0x02 2714 #define _LVDCON_LVV1 0x02 2715 #define _LVDCON_HLVDL2 0x04 2716 #define _LVDCON_LVDL2 0x04 2717 #define _LVDCON_LVV2 0x04 2718 #define _LVDCON_HLVDL3 0x08 2719 #define _LVDCON_LVDL3 0x08 2720 #define _LVDCON_LVV3 0x08 2721 #define _LVDCON_HLVDEN 0x10 2722 #define _LVDCON_LVDEN 0x10 2723 #define _LVDCON_IVRST 0x20 2724 #define _LVDCON_IRVST 0x20 2725 #define _LVDCON_BGST 0x20 2726 #define _LVDCON_VDIRMAG 0x80 2727 2728 //============================================================================== 2729 2730 2731 //============================================================================== 2732 // OSCCON Bits 2733 2734 extern __at(0x0FD3) __sfr OSCCON; 2735 2736 typedef union 2737 { 2738 struct 2739 { 2740 unsigned SCS0 : 1; 2741 unsigned SCS1 : 1; 2742 unsigned IOFS : 1; 2743 unsigned OSTS : 1; 2744 unsigned IRCF0 : 1; 2745 unsigned IRCF1 : 1; 2746 unsigned IRCF2 : 1; 2747 unsigned IDLEN : 1; 2748 }; 2749 2750 struct 2751 { 2752 unsigned SCS : 2; 2753 unsigned : 6; 2754 }; 2755 2756 struct 2757 { 2758 unsigned : 4; 2759 unsigned IRCF : 3; 2760 unsigned : 1; 2761 }; 2762 } __OSCCONbits_t; 2763 2764 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits; 2765 2766 #define _SCS0 0x01 2767 #define _SCS1 0x02 2768 #define _IOFS 0x04 2769 #define _OSTS 0x08 2770 #define _IRCF0 0x10 2771 #define _IRCF1 0x20 2772 #define _IRCF2 0x40 2773 #define _IDLEN 0x80 2774 2775 //============================================================================== 2776 2777 2778 //============================================================================== 2779 // T0CON Bits 2780 2781 extern __at(0x0FD5) __sfr T0CON; 2782 2783 typedef union 2784 { 2785 struct 2786 { 2787 unsigned T0PS0 : 1; 2788 unsigned T0PS1 : 1; 2789 unsigned T0PS2 : 1; 2790 unsigned PSA : 1; 2791 unsigned T0SE : 1; 2792 unsigned T0CS : 1; 2793 unsigned T08BIT : 1; 2794 unsigned TMR0ON : 1; 2795 }; 2796 2797 struct 2798 { 2799 unsigned : 1; 2800 unsigned : 1; 2801 unsigned : 1; 2802 unsigned : 1; 2803 unsigned : 1; 2804 unsigned : 1; 2805 unsigned T016BIT : 1; 2806 unsigned : 1; 2807 }; 2808 2809 struct 2810 { 2811 unsigned T0PS : 3; 2812 unsigned : 5; 2813 }; 2814 } __T0CONbits_t; 2815 2816 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits; 2817 2818 #define _T0PS0 0x01 2819 #define _T0PS1 0x02 2820 #define _T0PS2 0x04 2821 #define _PSA 0x08 2822 #define _T0SE 0x10 2823 #define _T0CS 0x20 2824 #define _T08BIT 0x40 2825 #define _T016BIT 0x40 2826 #define _TMR0ON 0x80 2827 2828 //============================================================================== 2829 2830 extern __at(0x0FD6) __sfr TMR0; 2831 extern __at(0x0FD6) __sfr TMR0L; 2832 extern __at(0x0FD7) __sfr TMR0H; 2833 2834 //============================================================================== 2835 // STATUS Bits 2836 2837 extern __at(0x0FD8) __sfr STATUS; 2838 2839 typedef struct 2840 { 2841 unsigned C : 1; 2842 unsigned DC : 1; 2843 unsigned Z : 1; 2844 unsigned OV : 1; 2845 unsigned N : 1; 2846 unsigned : 1; 2847 unsigned : 1; 2848 unsigned : 1; 2849 } __STATUSbits_t; 2850 2851 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits; 2852 2853 #define _C 0x01 2854 #define _DC 0x02 2855 #define _Z 0x04 2856 #define _OV 0x08 2857 #define _N 0x10 2858 2859 //============================================================================== 2860 2861 extern __at(0x0FD9) __sfr FSR2L; 2862 extern __at(0x0FDA) __sfr FSR2H; 2863 extern __at(0x0FDB) __sfr PLUSW2; 2864 extern __at(0x0FDC) __sfr PREINC2; 2865 extern __at(0x0FDD) __sfr POSTDEC2; 2866 extern __at(0x0FDE) __sfr POSTINC2; 2867 extern __at(0x0FDF) __sfr INDF2; 2868 extern __at(0x0FE0) __sfr BSR; 2869 extern __at(0x0FE1) __sfr FSR1L; 2870 extern __at(0x0FE2) __sfr FSR1H; 2871 extern __at(0x0FE3) __sfr PLUSW1; 2872 extern __at(0x0FE4) __sfr PREINC1; 2873 extern __at(0x0FE5) __sfr POSTDEC1; 2874 extern __at(0x0FE6) __sfr POSTINC1; 2875 extern __at(0x0FE7) __sfr INDF1; 2876 extern __at(0x0FE8) __sfr WREG; 2877 extern __at(0x0FE9) __sfr FSR0L; 2878 extern __at(0x0FEA) __sfr FSR0H; 2879 extern __at(0x0FEB) __sfr PLUSW0; 2880 extern __at(0x0FEC) __sfr PREINC0; 2881 extern __at(0x0FED) __sfr POSTDEC0; 2882 extern __at(0x0FEE) __sfr POSTINC0; 2883 extern __at(0x0FEF) __sfr INDF0; 2884 2885 //============================================================================== 2886 // INTCON3 Bits 2887 2888 extern __at(0x0FF0) __sfr INTCON3; 2889 2890 typedef union 2891 { 2892 struct 2893 { 2894 unsigned INT1IF : 1; 2895 unsigned INT2IF : 1; 2896 unsigned : 1; 2897 unsigned INT1IE : 1; 2898 unsigned INT2IE : 1; 2899 unsigned : 1; 2900 unsigned INT1IP : 1; 2901 unsigned INT2IP : 1; 2902 }; 2903 2904 struct 2905 { 2906 unsigned INT1F : 1; 2907 unsigned INT2F : 1; 2908 unsigned : 1; 2909 unsigned INT1E : 1; 2910 unsigned INT2E : 1; 2911 unsigned : 1; 2912 unsigned INT1P : 1; 2913 unsigned INT2P : 1; 2914 }; 2915 } __INTCON3bits_t; 2916 2917 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits; 2918 2919 #define _INT1IF 0x01 2920 #define _INT1F 0x01 2921 #define _INT2IF 0x02 2922 #define _INT2F 0x02 2923 #define _INT1IE 0x08 2924 #define _INT1E 0x08 2925 #define _INT2IE 0x10 2926 #define _INT2E 0x10 2927 #define _INT1IP 0x40 2928 #define _INT1P 0x40 2929 #define _INT2IP 0x80 2930 #define _INT2P 0x80 2931 2932 //============================================================================== 2933 2934 2935 //============================================================================== 2936 // INTCON2 Bits 2937 2938 extern __at(0x0FF1) __sfr INTCON2; 2939 2940 typedef union 2941 { 2942 struct 2943 { 2944 unsigned RBIP : 1; 2945 unsigned : 1; 2946 unsigned TMR0IP : 1; 2947 unsigned : 1; 2948 unsigned INTEDG2 : 1; 2949 unsigned INTEDG1 : 1; 2950 unsigned INTEDG0 : 1; 2951 unsigned NOT_RBPU : 1; 2952 }; 2953 2954 struct 2955 { 2956 unsigned : 1; 2957 unsigned : 1; 2958 unsigned : 1; 2959 unsigned : 1; 2960 unsigned : 1; 2961 unsigned : 1; 2962 unsigned : 1; 2963 unsigned RBPU : 1; 2964 }; 2965 } __INTCON2bits_t; 2966 2967 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits; 2968 2969 #define _RBIP 0x01 2970 #define _TMR0IP 0x04 2971 #define _INTEDG2 0x10 2972 #define _INTEDG1 0x20 2973 #define _INTEDG0 0x40 2974 #define _NOT_RBPU 0x80 2975 #define _RBPU 0x80 2976 2977 //============================================================================== 2978 2979 2980 //============================================================================== 2981 // INTCON Bits 2982 2983 extern __at(0x0FF2) __sfr INTCON; 2984 2985 typedef union 2986 { 2987 struct 2988 { 2989 unsigned RBIF : 1; 2990 unsigned INT0IF : 1; 2991 unsigned TMR0IF : 1; 2992 unsigned RBIE : 1; 2993 unsigned INT0IE : 1; 2994 unsigned TMR0IE : 1; 2995 unsigned PEIE_GIEL : 1; 2996 unsigned GIE_GIEH : 1; 2997 }; 2998 2999 struct 3000 { 3001 unsigned : 1; 3002 unsigned INT0F : 1; 3003 unsigned T0IF : 1; 3004 unsigned : 1; 3005 unsigned INT0E : 1; 3006 unsigned T0IE : 1; 3007 unsigned PEIE : 1; 3008 unsigned GIE : 1; 3009 }; 3010 3011 struct 3012 { 3013 unsigned : 1; 3014 unsigned : 1; 3015 unsigned : 1; 3016 unsigned : 1; 3017 unsigned : 1; 3018 unsigned : 1; 3019 unsigned GIEL : 1; 3020 unsigned GIEH : 1; 3021 }; 3022 } __INTCONbits_t; 3023 3024 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits; 3025 3026 #define _RBIF 0x01 3027 #define _INT0IF 0x02 3028 #define _INT0F 0x02 3029 #define _TMR0IF 0x04 3030 #define _T0IF 0x04 3031 #define _RBIE 0x08 3032 #define _INT0IE 0x10 3033 #define _INT0E 0x10 3034 #define _TMR0IE 0x20 3035 #define _T0IE 0x20 3036 #define _PEIE_GIEL 0x40 3037 #define _PEIE 0x40 3038 #define _GIEL 0x40 3039 #define _GIE_GIEH 0x80 3040 #define _GIE 0x80 3041 #define _GIEH 0x80 3042 3043 //============================================================================== 3044 3045 extern __at(0x0FF3) __sfr PROD; 3046 extern __at(0x0FF3) __sfr PRODL; 3047 extern __at(0x0FF4) __sfr PRODH; 3048 extern __at(0x0FF5) __sfr TABLAT; 3049 extern __at(0x0FF6) __sfr TBLPTR; 3050 extern __at(0x0FF6) __sfr TBLPTRL; 3051 extern __at(0x0FF7) __sfr TBLPTRH; 3052 extern __at(0x0FF8) __sfr TBLPTRU; 3053 extern __at(0x0FF9) __sfr PC; 3054 extern __at(0x0FF9) __sfr PCL; 3055 extern __at(0x0FFA) __sfr PCLATH; 3056 extern __at(0x0FFB) __sfr PCLATU; 3057 3058 //============================================================================== 3059 // STKPTR Bits 3060 3061 extern __at(0x0FFC) __sfr STKPTR; 3062 3063 typedef union 3064 { 3065 struct 3066 { 3067 unsigned STKPTR0 : 1; 3068 unsigned STKPTR1 : 1; 3069 unsigned STKPTR2 : 1; 3070 unsigned STKPTR3 : 1; 3071 unsigned STKPTR4 : 1; 3072 unsigned : 1; 3073 unsigned STKUNF : 1; 3074 unsigned STKFUL : 1; 3075 }; 3076 3077 struct 3078 { 3079 unsigned SP0 : 1; 3080 unsigned SP1 : 1; 3081 unsigned SP2 : 1; 3082 unsigned SP3 : 1; 3083 unsigned SP4 : 1; 3084 unsigned : 1; 3085 unsigned : 1; 3086 unsigned STKOVF : 1; 3087 }; 3088 3089 struct 3090 { 3091 unsigned SP : 5; 3092 unsigned : 3; 3093 }; 3094 3095 struct 3096 { 3097 unsigned STKPTR : 5; 3098 unsigned : 3; 3099 }; 3100 } __STKPTRbits_t; 3101 3102 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits; 3103 3104 #define _STKPTR0 0x01 3105 #define _SP0 0x01 3106 #define _STKPTR1 0x02 3107 #define _SP1 0x02 3108 #define _STKPTR2 0x04 3109 #define _SP2 0x04 3110 #define _STKPTR3 0x08 3111 #define _SP3 0x08 3112 #define _STKPTR4 0x10 3113 #define _SP4 0x10 3114 #define _STKUNF 0x40 3115 #define _STKFUL 0x80 3116 #define _STKOVF 0x80 3117 3118 //============================================================================== 3119 3120 extern __at(0x0FFD) __sfr TOS; 3121 extern __at(0x0FFD) __sfr TOSL; 3122 extern __at(0x0FFE) __sfr TOSH; 3123 extern __at(0x0FFF) __sfr TOSU; 3124 3125 //============================================================================== 3126 // 3127 // Configuration Bits 3128 // 3129 //============================================================================== 3130 3131 #define __CONFIG1H 0x300001 3132 #define __CONFIG2L 0x300002 3133 #define __CONFIG2H 0x300003 3134 #define __CONFIG3H 0x300005 3135 #define __CONFIG4L 0x300006 3136 #define __CONFIG5L 0x300008 3137 #define __CONFIG5H 0x300009 3138 #define __CONFIG6L 0x30000A 3139 #define __CONFIG6H 0x30000B 3140 #define __CONFIG7L 0x30000C 3141 #define __CONFIG7H 0x30000D 3142 3143 //----------------------------- CONFIG1H Options ------------------------------- 3144 3145 #define _OSC_LP_1H 0xF0 // LP oscillator. 3146 #define _OSC_XT_1H 0xF1 // XT oscillator. 3147 #define _OSC_HS_1H 0xF2 // HS oscillator. 3148 #define _OSC_RC_1H 0xF3 // External RC oscillator, CLKO function on RA6. 3149 #define _OSC_EC_1H 0xF4 // EC oscillator, CLKOUT function on RA6. 3150 #define _OSC_ECIO6_1H 0xF5 // EC oscillator, port function on RA6. 3151 #define _OSC_HSPLL_1H 0xF6 // HS oscillator, PLL enabled (Clock Frequency = 4 x FOSC1). 3152 #define _OSC_RCIO6_1H 0xF7 // External RC oscillator, port function on RA6. 3153 #define _OSC_INTIO67_1H 0xF8 // Internal oscillator block, port function on RA6 and RA7. 3154 #define _OSC_INTIO7_1H 0xF9 // Internal oscillator block, CLKOUT function on RA6, port function on RA7. 3155 #define _FCMEN_OFF_1H 0xBF // Fail-Safe Clock Monitor disabled. 3156 #define _FCMEN_ON_1H 0xFF // Fail-Safe Clock Monitor enabled. 3157 #define _IESO_OFF_1H 0x7F // Oscillator Switchover mode disabled. 3158 #define _IESO_ON_1H 0xFF // Oscillator Switchover mode enabled. 3159 3160 //----------------------------- CONFIG2L Options ------------------------------- 3161 3162 #define _PWRT_ON_2L 0xFE // PWRT enabled. 3163 #define _PWRT_OFF_2L 0xFF // PWRT disabled. 3164 #define _BOREN_OFF_2L 0xF9 // Brown-out Reset disabled in hardware and software. 3165 #define _BOREN_ON_2L 0xFB // Brown-out Reset enabled and controlled by software (SBOREN is enabled). 3166 #define _BOREN_NOSLP_2L 0xFD // Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled). 3167 #define _BOREN_SBORDIS_2L 0xFF // Brown-out Reset enabled in hardware only (SBOREN is disabled). 3168 #define _BORV_0_2L 0xE7 // Maximum setting. 3169 #define _BORV_1_2L 0xEF 3170 #define _BORV_2_2L 0xF7 3171 #define _BORV_3_2L 0xFF // Minimum setting. 3172 3173 //----------------------------- CONFIG2H Options ------------------------------- 3174 3175 #define _WDT_OFF_2H 0xFE // WDT disabled (control is placed on the SWDTEN bit). 3176 #define _WDT_ON_2H 0xFF // WDT enabled. 3177 #define _WDTPS_1_2H 0xE1 // 1:1. 3178 #define _WDTPS_2_2H 0xE3 // 1:2. 3179 #define _WDTPS_4_2H 0xE5 // 1:4. 3180 #define _WDTPS_8_2H 0xE7 // 1:8. 3181 #define _WDTPS_16_2H 0xE9 // 1:16. 3182 #define _WDTPS_32_2H 0xEB // 1:32. 3183 #define _WDTPS_64_2H 0xED // 1:64. 3184 #define _WDTPS_128_2H 0xEF // 1:128. 3185 #define _WDTPS_256_2H 0xF1 // 1:256. 3186 #define _WDTPS_512_2H 0xF3 // 1:512. 3187 #define _WDTPS_1024_2H 0xF5 // 1:1024. 3188 #define _WDTPS_2048_2H 0xF7 // 1:2048. 3189 #define _WDTPS_4096_2H 0xF9 // 1:4096. 3190 #define _WDTPS_8192_2H 0xFB // 1:8192. 3191 #define _WDTPS_16384_2H 0xFD // 1:16384. 3192 #define _WDTPS_32768_2H 0xFF // 1:32768. 3193 3194 //----------------------------- CONFIG3H Options ------------------------------- 3195 3196 #define _CCP2MX_PORTBE_3H 0xFE // CCP2 input/output is multiplexed with RB3. 3197 #define _CCP2MX_PORTC_3H 0xFF // CCP2 input/output is multiplexed with RC1. 3198 #define _PBADEN_OFF_3H 0xFD // PORTB<4:0> pins are configured as digital I/O on Reset. 3199 #define _PBADEN_ON_3H 0xFF // PORTB<4:0> pins are configured as analog input channels on Reset. 3200 #define _LPT1OSC_OFF_3H 0xFB // Timer1 configured for higher power operation. 3201 #define _LPT1OSC_ON_3H 0xFF // Timer1 configured for low-power operation. 3202 #define _MCLRE_OFF_3H 0x7F // RE3 input pin enabled; MCLR disabled. 3203 #define _MCLRE_ON_3H 0xFF // MCLR pin enabled; RE3 input pin disabled. 3204 3205 //----------------------------- CONFIG4L Options ------------------------------- 3206 3207 #define _STVREN_OFF_4L 0xFE // Stack full/underflow will not cause Reset. 3208 #define _STVREN_ON_4L 0xFF // Stack full/underflow will cause Reset. 3209 #define _LVP_OFF_4L 0xFB // Single-Supply ICSP disabled. 3210 #define _LVP_ON_4L 0xFF // Single-Supply ICSP enabled. 3211 #define _XINST_OFF_4L 0xBF // Instruction set extension and Indexed Addressing mode disabled (Legacy mode). 3212 #define _XINST_ON_4L 0xFF // Instruction set extension and Indexed Addressing mode enabled. 3213 #define _DEBUG_ON_4L 0x7F // Background debugger enabled, RB6 and RB7 are dedicated to In-Circuit Debug. 3214 #define _DEBUG_OFF_4L 0xFF // Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins. 3215 3216 //----------------------------- CONFIG5L Options ------------------------------- 3217 3218 #define _CP0_ON_5L 0xFE // Block 0 (000800-003FFFh) code-protected. 3219 #define _CP0_OFF_5L 0xFF // Block 0 (000800-003FFFh) not code-protected. 3220 #define _CP1_ON_5L 0xFD // Block 1 (004000-007FFFh) code-protected. 3221 #define _CP1_OFF_5L 0xFF // Block 1 (004000-007FFFh) not code-protected. 3222 #define _CP2_ON_5L 0xFB // Block 2 (008000-00BFFFh) code-protected. 3223 #define _CP2_OFF_5L 0xFF // Block 2 (008000-00BFFFh) not code-protected. 3224 #define _CP3_ON_5L 0xF7 // Block 3 (00C000-00FFFFh) code-protected. 3225 #define _CP3_OFF_5L 0xFF // Block 3 (00C000-00FFFFh) not code-protected. 3226 3227 //----------------------------- CONFIG5H Options ------------------------------- 3228 3229 #define _CPB_ON_5H 0xBF // Boot block (000000-0007FFh) code-protected. 3230 #define _CPB_OFF_5H 0xFF // Boot block (000000-0007FFh) not code-protected. 3231 #define _CPD_ON_5H 0x7F // Data EEPROM code-protected. 3232 #define _CPD_OFF_5H 0xFF // Data EEPROM not code-protected. 3233 3234 //----------------------------- CONFIG6L Options ------------------------------- 3235 3236 #define _WRT0_ON_6L 0xFE // Block 0 (000800-003FFFh) write-protected. 3237 #define _WRT0_OFF_6L 0xFF // Block 0 (000800-003FFFh) not write-protected. 3238 #define _WRT1_ON_6L 0xFD // Block 1 (004000-007FFFh) write-protected. 3239 #define _WRT1_OFF_6L 0xFF // Block 1 (004000-007FFFh) not write-protected. 3240 #define _WRT2_ON_6L 0xFB // Block 2 (008000-00BFFFh) write-protected. 3241 #define _WRT2_OFF_6L 0xFF // Block 2 (008000-00BFFFh) not write-protected. 3242 #define _WRT3_ON_6L 0xF7 // Block 3 (00C000-00FFFFh) write-protected. 3243 #define _WRT3_OFF_6L 0xFF // Block 3 (00C000-00FFFFh) not write-protected. 3244 3245 //----------------------------- CONFIG6H Options ------------------------------- 3246 3247 #define _WRTC_ON_6H 0xDF // Configuration registers (300000-3000FFh) write-protected. 3248 #define _WRTC_OFF_6H 0xFF // Configuration registers (300000-3000FFh) not write-protected. 3249 #define _WRTB_ON_6H 0xBF // Boot Block (000000-0007FFh) write-protected. 3250 #define _WRTB_OFF_6H 0xFF // Boot Block (000000-0007FFh) not write-protected. 3251 #define _WRTD_ON_6H 0x7F // Data EEPROM write-protected. 3252 #define _WRTD_OFF_6H 0xFF // Data EEPROM not write-protected. 3253 3254 //----------------------------- CONFIG7L Options ------------------------------- 3255 3256 #define _EBTR0_ON_7L 0xFE // Block 0 (000800-003FFFh) protected from table reads executed in other blocks. 3257 #define _EBTR0_OFF_7L 0xFF // Block 0 (000800-003FFFh) not protected from table reads executed in other blocks. 3258 #define _EBTR1_ON_7L 0xFD // Block 1 (004000-007FFFh) protected from table reads executed in other blocks. 3259 #define _EBTR1_OFF_7L 0xFF // Block 1 (004000-007FFFh) not protected from table reads executed in other blocks. 3260 #define _EBTR2_ON_7L 0xFB // Block 2 (008000-00BFFFh) protected from table reads executed in other blocks. 3261 #define _EBTR2_OFF_7L 0xFF // Block 2 (008000-00BFFFh) not protected from table reads executed in other blocks. 3262 #define _EBTR3_ON_7L 0xF7 // Block 3 (00C000-00FFFFh) protected from table reads executed in other blocks. 3263 #define _EBTR3_OFF_7L 0xFF // Block 3 (00C000-00FFFFh) not protected from table reads executed in other blocks. 3264 3265 //----------------------------- CONFIG7H Options ------------------------------- 3266 3267 #define _EBTRB_ON_7H 0xBF // Boot Block (000000-0007FFh) protected from table reads executed in other blocks. 3268 #define _EBTRB_OFF_7H 0xFF // Boot Block (000000-0007FFh) not protected from table reads executed in other blocks. 3269 3270 //============================================================================== 3271 3272 #define __DEVID1 0x3FFFFE 3273 #define __DEVID2 0x3FFFFF 3274 3275 #define __IDLOC0 0x200000 3276 #define __IDLOC1 0x200001 3277 #define __IDLOC2 0x200002 3278 #define __IDLOC3 0x200003 3279 #define __IDLOC4 0x200004 3280 #define __IDLOC5 0x200005 3281 #define __IDLOC6 0x200006 3282 #define __IDLOC7 0x200007 3283 3284 #endif // #ifndef __PIC18LF4620_H__ 3285