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