1 /* 2 * This declarations of the PIC18F4439 MCU. 3 * 4 * This file is part of the GNU PIC library for SDCC, originally 5 * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016. 6 * 7 * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:23:46 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 __PIC18F4439_H__ 26 #define __PIC18F4439_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 : 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 : 1; 66 }; 67 68 struct 69 { 70 unsigned : 1; 71 unsigned : 1; 72 unsigned VREFM : 1; 73 unsigned VREFP : 1; 74 unsigned : 1; 75 unsigned SS : 1; 76 unsigned CLK0 : 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 LVDIN : 1; 88 unsigned : 1; 89 unsigned : 1; 90 }; 91 92 struct 93 { 94 unsigned RA : 7; 95 unsigned : 1; 96 }; 97 } __PORTAbits_t; 98 99 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits; 100 101 #define _PORTA_RA0 0x01 102 #define _PORTA_AN0 0x01 103 #define _PORTA_RA1 0x02 104 #define _PORTA_AN1 0x02 105 #define _PORTA_RA2 0x04 106 #define _PORTA_AN2 0x04 107 #define _PORTA_VREFM 0x04 108 #define _PORTA_RA3 0x08 109 #define _PORTA_AN3 0x08 110 #define _PORTA_VREFP 0x08 111 #define _PORTA_RA4 0x10 112 #define _PORTA_T0CKI 0x10 113 #define _PORTA_RA5 0x20 114 #define _PORTA_AN4 0x20 115 #define _PORTA_SS 0x20 116 #define _PORTA_LVDIN 0x20 117 #define _PORTA_RA6 0x40 118 #define _PORTA_OSC2 0x40 119 #define _PORTA_CLK0 0x40 120 121 //============================================================================== 122 123 124 //============================================================================== 125 // PORTB Bits 126 127 extern __at(0x0F81) __sfr PORTB; 128 129 typedef union 130 { 131 struct 132 { 133 unsigned RB0 : 1; 134 unsigned RB1 : 1; 135 unsigned RB2 : 1; 136 unsigned RB3 : 1; 137 unsigned RB4 : 1; 138 unsigned RB5 : 1; 139 unsigned RB6 : 1; 140 unsigned RB7 : 1; 141 }; 142 143 struct 144 { 145 unsigned INT0 : 1; 146 unsigned INT1 : 1; 147 unsigned INT2 : 1; 148 unsigned INT3 : 1; 149 unsigned : 1; 150 unsigned : 1; 151 unsigned : 1; 152 unsigned : 1; 153 }; 154 155 struct 156 { 157 unsigned INT : 4; 158 unsigned : 4; 159 }; 160 } __PORTBbits_t; 161 162 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits; 163 164 #define _PORTB_RB0 0x01 165 #define _PORTB_INT0 0x01 166 #define _PORTB_RB1 0x02 167 #define _PORTB_INT1 0x02 168 #define _PORTB_RB2 0x04 169 #define _PORTB_INT2 0x04 170 #define _PORTB_RB3 0x08 171 #define _PORTB_INT3 0x08 172 #define _PORTB_RB4 0x10 173 #define _PORTB_RB5 0x20 174 #define _PORTB_RB6 0x40 175 #define _PORTB_RB7 0x80 176 177 //============================================================================== 178 179 180 //============================================================================== 181 // PORTC Bits 182 183 extern __at(0x0F82) __sfr PORTC; 184 185 typedef union 186 { 187 struct 188 { 189 unsigned RC0 : 1; 190 unsigned T1OSI : 1; 191 unsigned CCP1 : 1; 192 unsigned RC3 : 1; 193 unsigned RC4 : 1; 194 unsigned RC5 : 1; 195 unsigned RC6 : 1; 196 unsigned RC7 : 1; 197 }; 198 199 struct 200 { 201 unsigned T1OSO : 1; 202 unsigned CCP2 : 1; 203 unsigned RC2 : 1; 204 unsigned SCK : 1; 205 unsigned SDI : 1; 206 unsigned SDO : 1; 207 unsigned TX : 1; 208 unsigned RX : 1; 209 }; 210 211 struct 212 { 213 unsigned T1CKI : 1; 214 unsigned RC1 : 1; 215 unsigned : 1; 216 unsigned SCL : 1; 217 unsigned SDA : 1; 218 unsigned : 1; 219 unsigned CK : 1; 220 unsigned : 1; 221 }; 222 } __PORTCbits_t; 223 224 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits; 225 226 #define _PORTC_RC0 0x01 227 #define _PORTC_T1OSO 0x01 228 #define _PORTC_T1CKI 0x01 229 #define _PORTC_T1OSI 0x02 230 #define _PORTC_CCP2 0x02 231 #define _PORTC_RC1 0x02 232 #define _PORTC_CCP1 0x04 233 #define _PORTC_RC2 0x04 234 #define _PORTC_RC3 0x08 235 #define _PORTC_SCK 0x08 236 #define _PORTC_SCL 0x08 237 #define _PORTC_RC4 0x10 238 #define _PORTC_SDI 0x10 239 #define _PORTC_SDA 0x10 240 #define _PORTC_RC5 0x20 241 #define _PORTC_SDO 0x20 242 #define _PORTC_RC6 0x40 243 #define _PORTC_TX 0x40 244 #define _PORTC_CK 0x40 245 #define _PORTC_RC7 0x80 246 #define _PORTC_RX 0x80 247 248 //============================================================================== 249 250 251 //============================================================================== 252 // PORTD Bits 253 254 extern __at(0x0F83) __sfr PORTD; 255 256 typedef union 257 { 258 struct 259 { 260 unsigned RD0 : 1; 261 unsigned RD1 : 1; 262 unsigned RD2 : 1; 263 unsigned RD3 : 1; 264 unsigned RD4 : 1; 265 unsigned RD5 : 1; 266 unsigned RD6 : 1; 267 unsigned RD7 : 1; 268 }; 269 270 struct 271 { 272 unsigned AD0 : 1; 273 unsigned AD1 : 1; 274 unsigned AD2 : 1; 275 unsigned AD3 : 1; 276 unsigned AD4 : 1; 277 unsigned AD5 : 1; 278 unsigned AD6 : 1; 279 unsigned AD7 : 1; 280 }; 281 } __PORTDbits_t; 282 283 extern __at(0x0F83) volatile __PORTDbits_t PORTDbits; 284 285 #define _PORTD_RD0 0x01 286 #define _PORTD_AD0 0x01 287 #define _PORTD_RD1 0x02 288 #define _PORTD_AD1 0x02 289 #define _PORTD_RD2 0x04 290 #define _PORTD_AD2 0x04 291 #define _PORTD_RD3 0x08 292 #define _PORTD_AD3 0x08 293 #define _PORTD_RD4 0x10 294 #define _PORTD_AD4 0x10 295 #define _PORTD_RD5 0x20 296 #define _PORTD_AD5 0x20 297 #define _PORTD_RD6 0x40 298 #define _PORTD_AD6 0x40 299 #define _PORTD_RD7 0x80 300 #define _PORTD_AD7 0x80 301 302 //============================================================================== 303 304 305 //============================================================================== 306 // PORTE Bits 307 308 extern __at(0x0F84) __sfr PORTE; 309 310 typedef union 311 { 312 struct 313 { 314 unsigned RE0 : 1; 315 unsigned RE1 : 1; 316 unsigned RE2 : 1; 317 unsigned RE3 : 1; 318 unsigned RE4 : 1; 319 unsigned RE5 : 1; 320 unsigned RE6 : 1; 321 unsigned RE7 : 1; 322 }; 323 324 struct 325 { 326 unsigned AN5 : 1; 327 unsigned AN6 : 1; 328 unsigned AN7 : 1; 329 unsigned WRH : 1; 330 unsigned : 1; 331 unsigned : 1; 332 unsigned : 1; 333 unsigned CCP2 : 1; 334 }; 335 336 struct 337 { 338 unsigned ALE : 1; 339 unsigned OE : 1; 340 unsigned WRL : 1; 341 unsigned : 1; 342 unsigned : 1; 343 unsigned : 1; 344 unsigned : 1; 345 unsigned : 1; 346 }; 347 } __PORTEbits_t; 348 349 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits; 350 351 #define _PORTE_RE0 0x01 352 #define _PORTE_AN5 0x01 353 #define _PORTE_ALE 0x01 354 #define _PORTE_RE1 0x02 355 #define _PORTE_AN6 0x02 356 #define _PORTE_OE 0x02 357 #define _PORTE_RE2 0x04 358 #define _PORTE_AN7 0x04 359 #define _PORTE_WRL 0x04 360 #define _PORTE_RE3 0x08 361 #define _PORTE_WRH 0x08 362 #define _PORTE_RE4 0x10 363 #define _PORTE_RE5 0x20 364 #define _PORTE_RE6 0x40 365 #define _PORTE_RE7 0x80 366 #define _PORTE_CCP2 0x80 367 368 //============================================================================== 369 370 371 //============================================================================== 372 // LATA Bits 373 374 extern __at(0x0F89) __sfr LATA; 375 376 typedef union 377 { 378 struct 379 { 380 unsigned LATA0 : 1; 381 unsigned LATA1 : 1; 382 unsigned LATA2 : 1; 383 unsigned LATA3 : 1; 384 unsigned LATA4 : 1; 385 unsigned LATA5 : 1; 386 unsigned LATA6 : 1; 387 unsigned : 1; 388 }; 389 390 struct 391 { 392 unsigned LATA : 7; 393 unsigned : 1; 394 }; 395 } __LATAbits_t; 396 397 extern __at(0x0F89) volatile __LATAbits_t LATAbits; 398 399 #define _LATA0 0x01 400 #define _LATA1 0x02 401 #define _LATA2 0x04 402 #define _LATA3 0x08 403 #define _LATA4 0x10 404 #define _LATA5 0x20 405 #define _LATA6 0x40 406 407 //============================================================================== 408 409 410 //============================================================================== 411 // LATB Bits 412 413 extern __at(0x0F8A) __sfr LATB; 414 415 typedef struct 416 { 417 unsigned LATB0 : 1; 418 unsigned LATB1 : 1; 419 unsigned LATB2 : 1; 420 unsigned LATB3 : 1; 421 unsigned LATB4 : 1; 422 unsigned LATB5 : 1; 423 unsigned LATB6 : 1; 424 unsigned LATB7 : 1; 425 } __LATBbits_t; 426 427 extern __at(0x0F8A) volatile __LATBbits_t LATBbits; 428 429 #define _LATB0 0x01 430 #define _LATB1 0x02 431 #define _LATB2 0x04 432 #define _LATB3 0x08 433 #define _LATB4 0x10 434 #define _LATB5 0x20 435 #define _LATB6 0x40 436 #define _LATB7 0x80 437 438 //============================================================================== 439 440 441 //============================================================================== 442 // LATC Bits 443 444 extern __at(0x0F8B) __sfr LATC; 445 446 typedef struct 447 { 448 unsigned LATC0 : 1; 449 unsigned LATC1 : 1; 450 unsigned LATC2 : 1; 451 unsigned LATC3 : 1; 452 unsigned LATC4 : 1; 453 unsigned LATC5 : 1; 454 unsigned LATC6 : 1; 455 unsigned LATC7 : 1; 456 } __LATCbits_t; 457 458 extern __at(0x0F8B) volatile __LATCbits_t LATCbits; 459 460 #define _LATC0 0x01 461 #define _LATC1 0x02 462 #define _LATC2 0x04 463 #define _LATC3 0x08 464 #define _LATC4 0x10 465 #define _LATC5 0x20 466 #define _LATC6 0x40 467 #define _LATC7 0x80 468 469 //============================================================================== 470 471 472 //============================================================================== 473 // LATD Bits 474 475 extern __at(0x0F8C) __sfr LATD; 476 477 typedef struct 478 { 479 unsigned LATD0 : 1; 480 unsigned LATD1 : 1; 481 unsigned LATD2 : 1; 482 unsigned LATD3 : 1; 483 unsigned LATD4 : 1; 484 unsigned LATD5 : 1; 485 unsigned LATD6 : 1; 486 unsigned LATD7 : 1; 487 } __LATDbits_t; 488 489 extern __at(0x0F8C) volatile __LATDbits_t LATDbits; 490 491 #define _LATD0 0x01 492 #define _LATD1 0x02 493 #define _LATD2 0x04 494 #define _LATD3 0x08 495 #define _LATD4 0x10 496 #define _LATD5 0x20 497 #define _LATD6 0x40 498 #define _LATD7 0x80 499 500 //============================================================================== 501 502 503 //============================================================================== 504 // LATE Bits 505 506 extern __at(0x0F8D) __sfr LATE; 507 508 typedef struct 509 { 510 unsigned LATE0 : 1; 511 unsigned LATE1 : 1; 512 unsigned LATE2 : 1; 513 unsigned LATE3 : 1; 514 unsigned LATE4 : 1; 515 unsigned LATE5 : 1; 516 unsigned LATE6 : 1; 517 unsigned LATE7 : 1; 518 } __LATEbits_t; 519 520 extern __at(0x0F8D) volatile __LATEbits_t LATEbits; 521 522 #define _LATE0 0x01 523 #define _LATE1 0x02 524 #define _LATE2 0x04 525 #define _LATE3 0x08 526 #define _LATE4 0x10 527 #define _LATE5 0x20 528 #define _LATE6 0x40 529 #define _LATE7 0x80 530 531 //============================================================================== 532 533 534 //============================================================================== 535 // DDRA Bits 536 537 extern __at(0x0F92) __sfr DDRA; 538 539 typedef union 540 { 541 struct 542 { 543 unsigned TRISA0 : 1; 544 unsigned TRISA1 : 1; 545 unsigned TRISA2 : 1; 546 unsigned TRISA3 : 1; 547 unsigned TRISA4 : 1; 548 unsigned TRISA5 : 1; 549 unsigned TRISA6 : 1; 550 unsigned RA7 : 1; 551 }; 552 553 struct 554 { 555 unsigned RA0 : 1; 556 unsigned RA1 : 1; 557 unsigned RA2 : 1; 558 unsigned RA3 : 1; 559 unsigned RA4 : 1; 560 unsigned RA5 : 1; 561 unsigned RA6 : 1; 562 unsigned : 1; 563 }; 564 565 struct 566 { 567 unsigned TRISA : 7; 568 unsigned : 1; 569 }; 570 } __DDRAbits_t; 571 572 extern __at(0x0F92) volatile __DDRAbits_t DDRAbits; 573 574 #define _TRISA0 0x01 575 #define _RA0 0x01 576 #define _TRISA1 0x02 577 #define _RA1 0x02 578 #define _TRISA2 0x04 579 #define _RA2 0x04 580 #define _TRISA3 0x08 581 #define _RA3 0x08 582 #define _TRISA4 0x10 583 #define _RA4 0x10 584 #define _TRISA5 0x20 585 #define _RA5 0x20 586 #define _TRISA6 0x40 587 #define _RA6 0x40 588 #define _RA7 0x80 589 590 //============================================================================== 591 592 593 //============================================================================== 594 // TRISA Bits 595 596 extern __at(0x0F92) __sfr TRISA; 597 598 typedef union 599 { 600 struct 601 { 602 unsigned TRISA0 : 1; 603 unsigned TRISA1 : 1; 604 unsigned TRISA2 : 1; 605 unsigned TRISA3 : 1; 606 unsigned TRISA4 : 1; 607 unsigned TRISA5 : 1; 608 unsigned TRISA6 : 1; 609 unsigned RA7 : 1; 610 }; 611 612 struct 613 { 614 unsigned RA0 : 1; 615 unsigned RA1 : 1; 616 unsigned RA2 : 1; 617 unsigned RA3 : 1; 618 unsigned RA4 : 1; 619 unsigned RA5 : 1; 620 unsigned RA6 : 1; 621 unsigned : 1; 622 }; 623 624 struct 625 { 626 unsigned TRISA : 7; 627 unsigned : 1; 628 }; 629 } __TRISAbits_t; 630 631 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits; 632 633 #define _TRISA_TRISA0 0x01 634 #define _TRISA_RA0 0x01 635 #define _TRISA_TRISA1 0x02 636 #define _TRISA_RA1 0x02 637 #define _TRISA_TRISA2 0x04 638 #define _TRISA_RA2 0x04 639 #define _TRISA_TRISA3 0x08 640 #define _TRISA_RA3 0x08 641 #define _TRISA_TRISA4 0x10 642 #define _TRISA_RA4 0x10 643 #define _TRISA_TRISA5 0x20 644 #define _TRISA_RA5 0x20 645 #define _TRISA_TRISA6 0x40 646 #define _TRISA_RA6 0x40 647 #define _TRISA_RA7 0x80 648 649 //============================================================================== 650 651 652 //============================================================================== 653 // DDRB Bits 654 655 extern __at(0x0F93) __sfr DDRB; 656 657 typedef union 658 { 659 struct 660 { 661 unsigned TRISB0 : 1; 662 unsigned TRISB1 : 1; 663 unsigned TRISB2 : 1; 664 unsigned TRISB3 : 1; 665 unsigned TRISB4 : 1; 666 unsigned TRISB5 : 1; 667 unsigned TRISB6 : 1; 668 unsigned TRISB7 : 1; 669 }; 670 671 struct 672 { 673 unsigned RB0 : 1; 674 unsigned RB1 : 1; 675 unsigned RB2 : 1; 676 unsigned RB3 : 1; 677 unsigned RB4 : 1; 678 unsigned RB5 : 1; 679 unsigned RB6 : 1; 680 unsigned RB7 : 1; 681 }; 682 } __DDRBbits_t; 683 684 extern __at(0x0F93) volatile __DDRBbits_t DDRBbits; 685 686 #define _TRISB0 0x01 687 #define _RB0 0x01 688 #define _TRISB1 0x02 689 #define _RB1 0x02 690 #define _TRISB2 0x04 691 #define _RB2 0x04 692 #define _TRISB3 0x08 693 #define _RB3 0x08 694 #define _TRISB4 0x10 695 #define _RB4 0x10 696 #define _TRISB5 0x20 697 #define _RB5 0x20 698 #define _TRISB6 0x40 699 #define _RB6 0x40 700 #define _TRISB7 0x80 701 #define _RB7 0x80 702 703 //============================================================================== 704 705 706 //============================================================================== 707 // TRISB Bits 708 709 extern __at(0x0F93) __sfr TRISB; 710 711 typedef union 712 { 713 struct 714 { 715 unsigned TRISB0 : 1; 716 unsigned TRISB1 : 1; 717 unsigned TRISB2 : 1; 718 unsigned TRISB3 : 1; 719 unsigned TRISB4 : 1; 720 unsigned TRISB5 : 1; 721 unsigned TRISB6 : 1; 722 unsigned TRISB7 : 1; 723 }; 724 725 struct 726 { 727 unsigned RB0 : 1; 728 unsigned RB1 : 1; 729 unsigned RB2 : 1; 730 unsigned RB3 : 1; 731 unsigned RB4 : 1; 732 unsigned RB5 : 1; 733 unsigned RB6 : 1; 734 unsigned RB7 : 1; 735 }; 736 } __TRISBbits_t; 737 738 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits; 739 740 #define _TRISB_TRISB0 0x01 741 #define _TRISB_RB0 0x01 742 #define _TRISB_TRISB1 0x02 743 #define _TRISB_RB1 0x02 744 #define _TRISB_TRISB2 0x04 745 #define _TRISB_RB2 0x04 746 #define _TRISB_TRISB3 0x08 747 #define _TRISB_RB3 0x08 748 #define _TRISB_TRISB4 0x10 749 #define _TRISB_RB4 0x10 750 #define _TRISB_TRISB5 0x20 751 #define _TRISB_RB5 0x20 752 #define _TRISB_TRISB6 0x40 753 #define _TRISB_RB6 0x40 754 #define _TRISB_TRISB7 0x80 755 #define _TRISB_RB7 0x80 756 757 //============================================================================== 758 759 760 //============================================================================== 761 // DDRC Bits 762 763 extern __at(0x0F94) __sfr DDRC; 764 765 typedef union 766 { 767 struct 768 { 769 unsigned TRISC0 : 1; 770 unsigned RC1 : 1; 771 unsigned RC2 : 1; 772 unsigned TRISC3 : 1; 773 unsigned TRISC4 : 1; 774 unsigned TRISC5 : 1; 775 unsigned TRISC6 : 1; 776 unsigned TRISC7 : 1; 777 }; 778 779 struct 780 { 781 unsigned RC0 : 1; 782 unsigned : 1; 783 unsigned : 1; 784 unsigned RC3 : 1; 785 unsigned RC4 : 1; 786 unsigned RC5 : 1; 787 unsigned RC6 : 1; 788 unsigned RC7 : 1; 789 }; 790 } __DDRCbits_t; 791 792 extern __at(0x0F94) volatile __DDRCbits_t DDRCbits; 793 794 #define _TRISC0 0x01 795 #define _RC0 0x01 796 #define _RC1 0x02 797 #define _RC2 0x04 798 #define _TRISC3 0x08 799 #define _RC3 0x08 800 #define _TRISC4 0x10 801 #define _RC4 0x10 802 #define _TRISC5 0x20 803 #define _RC5 0x20 804 #define _TRISC6 0x40 805 #define _RC6 0x40 806 #define _TRISC7 0x80 807 #define _RC7 0x80 808 809 //============================================================================== 810 811 812 //============================================================================== 813 // TRISC Bits 814 815 extern __at(0x0F94) __sfr TRISC; 816 817 typedef union 818 { 819 struct 820 { 821 unsigned TRISC0 : 1; 822 unsigned RC1 : 1; 823 unsigned RC2 : 1; 824 unsigned TRISC3 : 1; 825 unsigned TRISC4 : 1; 826 unsigned TRISC5 : 1; 827 unsigned TRISC6 : 1; 828 unsigned TRISC7 : 1; 829 }; 830 831 struct 832 { 833 unsigned RC0 : 1; 834 unsigned : 1; 835 unsigned : 1; 836 unsigned RC3 : 1; 837 unsigned RC4 : 1; 838 unsigned RC5 : 1; 839 unsigned RC6 : 1; 840 unsigned RC7 : 1; 841 }; 842 } __TRISCbits_t; 843 844 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits; 845 846 #define _TRISC_TRISC0 0x01 847 #define _TRISC_RC0 0x01 848 #define _TRISC_RC1 0x02 849 #define _TRISC_RC2 0x04 850 #define _TRISC_TRISC3 0x08 851 #define _TRISC_RC3 0x08 852 #define _TRISC_TRISC4 0x10 853 #define _TRISC_RC4 0x10 854 #define _TRISC_TRISC5 0x20 855 #define _TRISC_RC5 0x20 856 #define _TRISC_TRISC6 0x40 857 #define _TRISC_RC6 0x40 858 #define _TRISC_TRISC7 0x80 859 #define _TRISC_RC7 0x80 860 861 //============================================================================== 862 863 864 //============================================================================== 865 // DDRD Bits 866 867 extern __at(0x0F95) __sfr DDRD; 868 869 typedef union 870 { 871 struct 872 { 873 unsigned TRISD0 : 1; 874 unsigned TRISD1 : 1; 875 unsigned TRISD2 : 1; 876 unsigned TRISD3 : 1; 877 unsigned TRISD4 : 1; 878 unsigned TRISD5 : 1; 879 unsigned TRISD6 : 1; 880 unsigned TRISD7 : 1; 881 }; 882 883 struct 884 { 885 unsigned RD0 : 1; 886 unsigned RD1 : 1; 887 unsigned RD2 : 1; 888 unsigned RD3 : 1; 889 unsigned RD4 : 1; 890 unsigned RD5 : 1; 891 unsigned RD6 : 1; 892 unsigned RD7 : 1; 893 }; 894 } __DDRDbits_t; 895 896 extern __at(0x0F95) volatile __DDRDbits_t DDRDbits; 897 898 #define _TRISD0 0x01 899 #define _RD0 0x01 900 #define _TRISD1 0x02 901 #define _RD1 0x02 902 #define _TRISD2 0x04 903 #define _RD2 0x04 904 #define _TRISD3 0x08 905 #define _RD3 0x08 906 #define _TRISD4 0x10 907 #define _RD4 0x10 908 #define _TRISD5 0x20 909 #define _RD5 0x20 910 #define _TRISD6 0x40 911 #define _RD6 0x40 912 #define _TRISD7 0x80 913 #define _RD7 0x80 914 915 //============================================================================== 916 917 918 //============================================================================== 919 // TRISD Bits 920 921 extern __at(0x0F95) __sfr TRISD; 922 923 typedef union 924 { 925 struct 926 { 927 unsigned TRISD0 : 1; 928 unsigned TRISD1 : 1; 929 unsigned TRISD2 : 1; 930 unsigned TRISD3 : 1; 931 unsigned TRISD4 : 1; 932 unsigned TRISD5 : 1; 933 unsigned TRISD6 : 1; 934 unsigned TRISD7 : 1; 935 }; 936 937 struct 938 { 939 unsigned RD0 : 1; 940 unsigned RD1 : 1; 941 unsigned RD2 : 1; 942 unsigned RD3 : 1; 943 unsigned RD4 : 1; 944 unsigned RD5 : 1; 945 unsigned RD6 : 1; 946 unsigned RD7 : 1; 947 }; 948 } __TRISDbits_t; 949 950 extern __at(0x0F95) volatile __TRISDbits_t TRISDbits; 951 952 #define _TRISD_TRISD0 0x01 953 #define _TRISD_RD0 0x01 954 #define _TRISD_TRISD1 0x02 955 #define _TRISD_RD1 0x02 956 #define _TRISD_TRISD2 0x04 957 #define _TRISD_RD2 0x04 958 #define _TRISD_TRISD3 0x08 959 #define _TRISD_RD3 0x08 960 #define _TRISD_TRISD4 0x10 961 #define _TRISD_RD4 0x10 962 #define _TRISD_TRISD5 0x20 963 #define _TRISD_RD5 0x20 964 #define _TRISD_TRISD6 0x40 965 #define _TRISD_RD6 0x40 966 #define _TRISD_TRISD7 0x80 967 #define _TRISD_RD7 0x80 968 969 //============================================================================== 970 971 972 //============================================================================== 973 // DDRE Bits 974 975 extern __at(0x0F96) __sfr DDRE; 976 977 typedef union 978 { 979 struct 980 { 981 unsigned TRISE0 : 1; 982 unsigned TRISE1 : 1; 983 unsigned TRISE2 : 1; 984 unsigned RE3 : 1; 985 unsigned PSPMODE : 1; 986 unsigned IBOV : 1; 987 unsigned OBF : 1; 988 unsigned IBF : 1; 989 }; 990 991 struct 992 { 993 unsigned RE0 : 1; 994 unsigned RE1 : 1; 995 unsigned RE2 : 1; 996 unsigned : 1; 997 unsigned RE4 : 1; 998 unsigned RE5 : 1; 999 unsigned RE6 : 1; 1000 unsigned RE7 : 1; 1001 }; 1002 1003 struct 1004 { 1005 unsigned TRISE : 3; 1006 unsigned : 5; 1007 }; 1008 } __DDREbits_t; 1009 1010 extern __at(0x0F96) volatile __DDREbits_t DDREbits; 1011 1012 #define _TRISE0 0x01 1013 #define _RE0 0x01 1014 #define _TRISE1 0x02 1015 #define _RE1 0x02 1016 #define _TRISE2 0x04 1017 #define _RE2 0x04 1018 #define _RE3 0x08 1019 #define _PSPMODE 0x10 1020 #define _RE4 0x10 1021 #define _IBOV 0x20 1022 #define _RE5 0x20 1023 #define _OBF 0x40 1024 #define _RE6 0x40 1025 #define _IBF 0x80 1026 #define _RE7 0x80 1027 1028 //============================================================================== 1029 1030 1031 //============================================================================== 1032 // TRISE Bits 1033 1034 extern __at(0x0F96) __sfr TRISE; 1035 1036 typedef union 1037 { 1038 struct 1039 { 1040 unsigned TRISE0 : 1; 1041 unsigned TRISE1 : 1; 1042 unsigned TRISE2 : 1; 1043 unsigned RE3 : 1; 1044 unsigned PSPMODE : 1; 1045 unsigned IBOV : 1; 1046 unsigned OBF : 1; 1047 unsigned IBF : 1; 1048 }; 1049 1050 struct 1051 { 1052 unsigned RE0 : 1; 1053 unsigned RE1 : 1; 1054 unsigned RE2 : 1; 1055 unsigned : 1; 1056 unsigned RE4 : 1; 1057 unsigned RE5 : 1; 1058 unsigned RE6 : 1; 1059 unsigned RE7 : 1; 1060 }; 1061 1062 struct 1063 { 1064 unsigned TRISE : 3; 1065 unsigned : 5; 1066 }; 1067 } __TRISEbits_t; 1068 1069 extern __at(0x0F96) volatile __TRISEbits_t TRISEbits; 1070 1071 #define _TRISE_TRISE0 0x01 1072 #define _TRISE_RE0 0x01 1073 #define _TRISE_TRISE1 0x02 1074 #define _TRISE_RE1 0x02 1075 #define _TRISE_TRISE2 0x04 1076 #define _TRISE_RE2 0x04 1077 #define _TRISE_RE3 0x08 1078 #define _TRISE_PSPMODE 0x10 1079 #define _TRISE_RE4 0x10 1080 #define _TRISE_IBOV 0x20 1081 #define _TRISE_RE5 0x20 1082 #define _TRISE_OBF 0x40 1083 #define _TRISE_RE6 0x40 1084 #define _TRISE_IBF 0x80 1085 #define _TRISE_RE7 0x80 1086 1087 //============================================================================== 1088 1089 1090 //============================================================================== 1091 // PIE1 Bits 1092 1093 extern __at(0x0F9D) __sfr PIE1; 1094 1095 typedef struct 1096 { 1097 unsigned TMR1IE : 1; 1098 unsigned TMR2IE : 1; 1099 unsigned CCP1IE : 1; 1100 unsigned SSPIE : 1; 1101 unsigned TXIE : 1; 1102 unsigned RCIE : 1; 1103 unsigned ADIE : 1; 1104 unsigned PSPIE : 1; 1105 } __PIE1bits_t; 1106 1107 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits; 1108 1109 #define _TMR1IE 0x01 1110 #define _TMR2IE 0x02 1111 #define _CCP1IE 0x04 1112 #define _SSPIE 0x08 1113 #define _TXIE 0x10 1114 #define _RCIE 0x20 1115 #define _ADIE 0x40 1116 #define _PSPIE 0x80 1117 1118 //============================================================================== 1119 1120 1121 //============================================================================== 1122 // PIR1 Bits 1123 1124 extern __at(0x0F9E) __sfr PIR1; 1125 1126 typedef struct 1127 { 1128 unsigned TMR1IF : 1; 1129 unsigned TMR2IF : 1; 1130 unsigned CCP1IF : 1; 1131 unsigned SSPIF : 1; 1132 unsigned TXIF : 1; 1133 unsigned RCIF : 1; 1134 unsigned ADIF : 1; 1135 unsigned PSPIF : 1; 1136 } __PIR1bits_t; 1137 1138 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits; 1139 1140 #define _TMR1IF 0x01 1141 #define _TMR2IF 0x02 1142 #define _CCP1IF 0x04 1143 #define _SSPIF 0x08 1144 #define _TXIF 0x10 1145 #define _RCIF 0x20 1146 #define _ADIF 0x40 1147 #define _PSPIF 0x80 1148 1149 //============================================================================== 1150 1151 1152 //============================================================================== 1153 // IPR1 Bits 1154 1155 extern __at(0x0F9F) __sfr IPR1; 1156 1157 typedef struct 1158 { 1159 unsigned TMR1IP : 1; 1160 unsigned TMR2IP : 1; 1161 unsigned CCP1IP : 1; 1162 unsigned SSPIP : 1; 1163 unsigned TXIP : 1; 1164 unsigned RCIP : 1; 1165 unsigned ADIP : 1; 1166 unsigned PSPIP : 1; 1167 } __IPR1bits_t; 1168 1169 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits; 1170 1171 #define _TMR1IP 0x01 1172 #define _TMR2IP 0x02 1173 #define _CCP1IP 0x04 1174 #define _SSPIP 0x08 1175 #define _TXIP 0x10 1176 #define _RCIP 0x20 1177 #define _ADIP 0x40 1178 #define _PSPIP 0x80 1179 1180 //============================================================================== 1181 1182 1183 //============================================================================== 1184 // PIE2 Bits 1185 1186 extern __at(0x0FA0) __sfr PIE2; 1187 1188 typedef struct 1189 { 1190 unsigned CCP2IE : 1; 1191 unsigned TMR3IE : 1; 1192 unsigned LVDIE : 1; 1193 unsigned BCLIE : 1; 1194 unsigned EEIE : 1; 1195 unsigned : 1; 1196 unsigned : 1; 1197 unsigned : 1; 1198 } __PIE2bits_t; 1199 1200 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits; 1201 1202 #define _CCP2IE 0x01 1203 #define _TMR3IE 0x02 1204 #define _LVDIE 0x04 1205 #define _BCLIE 0x08 1206 #define _EEIE 0x10 1207 1208 //============================================================================== 1209 1210 1211 //============================================================================== 1212 // PIR2 Bits 1213 1214 extern __at(0x0FA1) __sfr PIR2; 1215 1216 typedef struct 1217 { 1218 unsigned CCP2IF : 1; 1219 unsigned TMR3IF : 1; 1220 unsigned LVDIF : 1; 1221 unsigned BCLIF : 1; 1222 unsigned EEIF : 1; 1223 unsigned : 1; 1224 unsigned : 1; 1225 unsigned : 1; 1226 } __PIR2bits_t; 1227 1228 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits; 1229 1230 #define _CCP2IF 0x01 1231 #define _TMR3IF 0x02 1232 #define _LVDIF 0x04 1233 #define _BCLIF 0x08 1234 #define _EEIF 0x10 1235 1236 //============================================================================== 1237 1238 1239 //============================================================================== 1240 // IPR2 Bits 1241 1242 extern __at(0x0FA2) __sfr IPR2; 1243 1244 typedef struct 1245 { 1246 unsigned CCP2IP : 1; 1247 unsigned TMR3IP : 1; 1248 unsigned LVDIP : 1; 1249 unsigned BCLIP : 1; 1250 unsigned EEIP : 1; 1251 unsigned : 1; 1252 unsigned : 1; 1253 unsigned : 1; 1254 } __IPR2bits_t; 1255 1256 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits; 1257 1258 #define _CCP2IP 0x01 1259 #define _TMR3IP 0x02 1260 #define _LVDIP 0x04 1261 #define _BCLIP 0x08 1262 #define _EEIP 0x10 1263 1264 //============================================================================== 1265 1266 1267 //============================================================================== 1268 // EECON1 Bits 1269 1270 extern __at(0x0FA6) __sfr EECON1; 1271 1272 typedef struct 1273 { 1274 unsigned RD : 1; 1275 unsigned WR : 1; 1276 unsigned WREN : 1; 1277 unsigned WRERR : 1; 1278 unsigned FREE : 1; 1279 unsigned : 1; 1280 unsigned CFGS : 1; 1281 unsigned EEPGD : 1; 1282 } __EECON1bits_t; 1283 1284 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits; 1285 1286 #define _RD 0x01 1287 #define _WR 0x02 1288 #define _WREN 0x04 1289 #define _WRERR 0x08 1290 #define _FREE 0x10 1291 #define _CFGS 0x40 1292 #define _EEPGD 0x80 1293 1294 //============================================================================== 1295 1296 extern __at(0x0FA7) __sfr EECON2; 1297 extern __at(0x0FA8) __sfr EEDATA; 1298 extern __at(0x0FA9) __sfr EEADR; 1299 1300 //============================================================================== 1301 // RCSTA Bits 1302 1303 extern __at(0x0FAB) __sfr RCSTA; 1304 1305 typedef struct 1306 { 1307 unsigned RX9D : 1; 1308 unsigned OERR : 1; 1309 unsigned FERR : 1; 1310 unsigned ADDEN : 1; 1311 unsigned CREN : 1; 1312 unsigned SREN : 1; 1313 unsigned RX9 : 1; 1314 unsigned SPEN : 1; 1315 } __RCSTAbits_t; 1316 1317 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits; 1318 1319 #define _RX9D 0x01 1320 #define _OERR 0x02 1321 #define _FERR 0x04 1322 #define _ADDEN 0x08 1323 #define _CREN 0x10 1324 #define _SREN 0x20 1325 #define _RX9 0x40 1326 #define _SPEN 0x80 1327 1328 //============================================================================== 1329 1330 1331 //============================================================================== 1332 // TXSTA Bits 1333 1334 extern __at(0x0FAC) __sfr TXSTA; 1335 1336 typedef struct 1337 { 1338 unsigned TX9D : 1; 1339 unsigned TRMT : 1; 1340 unsigned BRGH : 1; 1341 unsigned : 1; 1342 unsigned SYNC : 1; 1343 unsigned TXEN : 1; 1344 unsigned TX9 : 1; 1345 unsigned CSRC : 1; 1346 } __TXSTAbits_t; 1347 1348 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits; 1349 1350 #define _TX9D 0x01 1351 #define _TRMT 0x02 1352 #define _BRGH 0x04 1353 #define _SYNC 0x10 1354 #define _TXEN 0x20 1355 #define _TX9 0x40 1356 #define _CSRC 0x80 1357 1358 //============================================================================== 1359 1360 extern __at(0x0FAD) __sfr TXREG; 1361 extern __at(0x0FAE) __sfr RCREG; 1362 extern __at(0x0FAF) __sfr SPBRG; 1363 1364 //============================================================================== 1365 // T3CON Bits 1366 1367 extern __at(0x0FB1) __sfr T3CON; 1368 1369 typedef union 1370 { 1371 struct 1372 { 1373 unsigned TMR3ON : 1; 1374 unsigned TMR3CS : 1; 1375 unsigned NOT_T3SYNC : 1; 1376 unsigned T3CCP1 : 1; 1377 unsigned T3CKPS0 : 1; 1378 unsigned T3CKPS1 : 1; 1379 unsigned T3CCP2 : 1; 1380 unsigned RD16 : 1; 1381 }; 1382 1383 struct 1384 { 1385 unsigned : 1; 1386 unsigned : 1; 1387 unsigned T3SYNC : 1; 1388 unsigned : 1; 1389 unsigned : 1; 1390 unsigned : 1; 1391 unsigned : 1; 1392 unsigned : 1; 1393 }; 1394 1395 struct 1396 { 1397 unsigned : 4; 1398 unsigned T3CKPS : 2; 1399 unsigned : 2; 1400 }; 1401 } __T3CONbits_t; 1402 1403 extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits; 1404 1405 #define _T3CON_TMR3ON 0x01 1406 #define _T3CON_TMR3CS 0x02 1407 #define _T3CON_NOT_T3SYNC 0x04 1408 #define _T3CON_T3SYNC 0x04 1409 #define _T3CON_T3CCP1 0x08 1410 #define _T3CON_T3CKPS0 0x10 1411 #define _T3CON_T3CKPS1 0x20 1412 #define _T3CON_T3CCP2 0x40 1413 #define _T3CON_RD16 0x80 1414 1415 //============================================================================== 1416 1417 extern __at(0x0FB2) __sfr TMR3; 1418 extern __at(0x0FB2) __sfr TMR3L; 1419 extern __at(0x0FB3) __sfr TMR3H; 1420 1421 //============================================================================== 1422 // CCP2CON Bits 1423 1424 extern __at(0x0FBA) __sfr CCP2CON; 1425 1426 typedef union 1427 { 1428 struct 1429 { 1430 unsigned CCP2M0 : 1; 1431 unsigned CCP2M1 : 1; 1432 unsigned CCP2M2 : 1; 1433 unsigned CCP2M3 : 1; 1434 unsigned CCP2Y : 1; 1435 unsigned CCP2X : 1; 1436 unsigned : 1; 1437 unsigned : 1; 1438 }; 1439 1440 struct 1441 { 1442 unsigned : 1; 1443 unsigned : 1; 1444 unsigned : 1; 1445 unsigned : 1; 1446 unsigned DC2B0 : 1; 1447 unsigned DC2B1 : 1; 1448 unsigned : 1; 1449 unsigned : 1; 1450 }; 1451 1452 struct 1453 { 1454 unsigned : 1; 1455 unsigned : 1; 1456 unsigned : 1; 1457 unsigned : 1; 1458 unsigned : 1; 1459 unsigned DCCPX : 1; 1460 unsigned : 1; 1461 unsigned : 1; 1462 }; 1463 1464 struct 1465 { 1466 unsigned CCP2M : 4; 1467 unsigned : 4; 1468 }; 1469 1470 struct 1471 { 1472 unsigned : 4; 1473 unsigned DC2B : 2; 1474 unsigned : 2; 1475 }; 1476 } __CCP2CONbits_t; 1477 1478 extern __at(0x0FBA) volatile __CCP2CONbits_t CCP2CONbits; 1479 1480 #define _CCP2M0 0x01 1481 #define _CCP2M1 0x02 1482 #define _CCP2M2 0x04 1483 #define _CCP2M3 0x08 1484 #define _CCP2Y 0x10 1485 #define _DC2B0 0x10 1486 #define _CCP2X 0x20 1487 #define _DC2B1 0x20 1488 #define _DCCPX 0x20 1489 1490 //============================================================================== 1491 1492 extern __at(0x0FBB) __sfr CCPR2; 1493 extern __at(0x0FBB) __sfr CCPR2L; 1494 extern __at(0x0FBC) __sfr CCPR2H; 1495 1496 //============================================================================== 1497 // CCP1CON Bits 1498 1499 extern __at(0x0FBD) __sfr CCP1CON; 1500 1501 typedef union 1502 { 1503 struct 1504 { 1505 unsigned CCP1M0 : 1; 1506 unsigned CCP1M1 : 1; 1507 unsigned CCP1M2 : 1; 1508 unsigned CCP1M3 : 1; 1509 unsigned CCP1Y : 1; 1510 unsigned CCP1X : 1; 1511 unsigned : 1; 1512 unsigned : 1; 1513 }; 1514 1515 struct 1516 { 1517 unsigned : 1; 1518 unsigned : 1; 1519 unsigned : 1; 1520 unsigned : 1; 1521 unsigned DC1B0 : 1; 1522 unsigned DC1B1 : 1; 1523 unsigned : 1; 1524 unsigned : 1; 1525 }; 1526 1527 struct 1528 { 1529 unsigned CCP1M : 4; 1530 unsigned : 4; 1531 }; 1532 1533 struct 1534 { 1535 unsigned : 4; 1536 unsigned DC1B : 2; 1537 unsigned : 2; 1538 }; 1539 } __CCP1CONbits_t; 1540 1541 extern __at(0x0FBD) volatile __CCP1CONbits_t CCP1CONbits; 1542 1543 #define _CCP1M0 0x01 1544 #define _CCP1M1 0x02 1545 #define _CCP1M2 0x04 1546 #define _CCP1M3 0x08 1547 #define _CCP1Y 0x10 1548 #define _DC1B0 0x10 1549 #define _CCP1X 0x20 1550 #define _DC1B1 0x20 1551 1552 //============================================================================== 1553 1554 extern __at(0x0FBE) __sfr CCPR1; 1555 extern __at(0x0FBE) __sfr CCPR1L; 1556 extern __at(0x0FBF) __sfr CCPR1H; 1557 1558 //============================================================================== 1559 // ADCON1 Bits 1560 1561 extern __at(0x0FC1) __sfr ADCON1; 1562 1563 typedef union 1564 { 1565 struct 1566 { 1567 unsigned PCFG0 : 1; 1568 unsigned PCFG1 : 1; 1569 unsigned PCFG2 : 1; 1570 unsigned PCFG3 : 1; 1571 unsigned : 1; 1572 unsigned : 1; 1573 unsigned ADCS2 : 1; 1574 unsigned ADFM : 1; 1575 }; 1576 1577 struct 1578 { 1579 unsigned PCFG : 4; 1580 unsigned : 4; 1581 }; 1582 } __ADCON1bits_t; 1583 1584 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits; 1585 1586 #define _PCFG0 0x01 1587 #define _PCFG1 0x02 1588 #define _PCFG2 0x04 1589 #define _PCFG3 0x08 1590 #define _ADCS2 0x40 1591 #define _ADFM 0x80 1592 1593 //============================================================================== 1594 1595 1596 //============================================================================== 1597 // ADCON0 Bits 1598 1599 extern __at(0x0FC2) __sfr ADCON0; 1600 1601 typedef union 1602 { 1603 struct 1604 { 1605 unsigned ADON : 1; 1606 unsigned : 1; 1607 unsigned GO_NOT_DONE : 1; 1608 unsigned CHS0 : 1; 1609 unsigned CHS1 : 1; 1610 unsigned CHS2 : 1; 1611 unsigned ADCS0 : 1; 1612 unsigned ADCS1 : 1; 1613 }; 1614 1615 struct 1616 { 1617 unsigned : 1; 1618 unsigned : 1; 1619 unsigned GO : 1; 1620 unsigned : 1; 1621 unsigned : 1; 1622 unsigned : 1; 1623 unsigned : 1; 1624 unsigned : 1; 1625 }; 1626 1627 struct 1628 { 1629 unsigned : 1; 1630 unsigned : 1; 1631 unsigned NOT_DONE : 1; 1632 unsigned : 1; 1633 unsigned : 1; 1634 unsigned : 1; 1635 unsigned : 1; 1636 unsigned : 1; 1637 }; 1638 1639 struct 1640 { 1641 unsigned : 1; 1642 unsigned : 1; 1643 unsigned DONE : 1; 1644 unsigned : 1; 1645 unsigned : 1; 1646 unsigned : 1; 1647 unsigned : 1; 1648 unsigned : 1; 1649 }; 1650 1651 struct 1652 { 1653 unsigned : 1; 1654 unsigned : 1; 1655 unsigned GO_DONE : 1; 1656 unsigned : 1; 1657 unsigned : 1; 1658 unsigned : 1; 1659 unsigned : 1; 1660 unsigned : 1; 1661 }; 1662 1663 struct 1664 { 1665 unsigned : 3; 1666 unsigned CHS : 3; 1667 unsigned : 2; 1668 }; 1669 1670 struct 1671 { 1672 unsigned : 6; 1673 unsigned ADCS : 2; 1674 }; 1675 } __ADCON0bits_t; 1676 1677 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits; 1678 1679 #define _ADON 0x01 1680 #define _GO_NOT_DONE 0x04 1681 #define _GO 0x04 1682 #define _NOT_DONE 0x04 1683 #define _DONE 0x04 1684 #define _GO_DONE 0x04 1685 #define _CHS0 0x08 1686 #define _CHS1 0x10 1687 #define _CHS2 0x20 1688 #define _ADCS0 0x40 1689 #define _ADCS1 0x80 1690 1691 //============================================================================== 1692 1693 extern __at(0x0FC3) __sfr ADRES; 1694 extern __at(0x0FC3) __sfr ADRESL; 1695 extern __at(0x0FC4) __sfr ADRESH; 1696 1697 //============================================================================== 1698 // SSPCON2 Bits 1699 1700 extern __at(0x0FC5) __sfr SSPCON2; 1701 1702 typedef struct 1703 { 1704 unsigned SEN : 1; 1705 unsigned RSEN : 1; 1706 unsigned PEN : 1; 1707 unsigned RCEN : 1; 1708 unsigned ACKEN : 1; 1709 unsigned ACKDT : 1; 1710 unsigned ACKSTAT : 1; 1711 unsigned GCEN : 1; 1712 } __SSPCON2bits_t; 1713 1714 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits; 1715 1716 #define _SEN 0x01 1717 #define _RSEN 0x02 1718 #define _PEN 0x04 1719 #define _RCEN 0x08 1720 #define _ACKEN 0x10 1721 #define _ACKDT 0x20 1722 #define _ACKSTAT 0x40 1723 #define _GCEN 0x80 1724 1725 //============================================================================== 1726 1727 1728 //============================================================================== 1729 // SSPCON1 Bits 1730 1731 extern __at(0x0FC6) __sfr SSPCON1; 1732 1733 typedef union 1734 { 1735 struct 1736 { 1737 unsigned SSPM0 : 1; 1738 unsigned SSPM1 : 1; 1739 unsigned SSPM2 : 1; 1740 unsigned SSPM3 : 1; 1741 unsigned CKP : 1; 1742 unsigned SSPEN : 1; 1743 unsigned SSPOV : 1; 1744 unsigned WCOL : 1; 1745 }; 1746 1747 struct 1748 { 1749 unsigned SSPM : 4; 1750 unsigned : 4; 1751 }; 1752 } __SSPCON1bits_t; 1753 1754 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits; 1755 1756 #define _SSPM0 0x01 1757 #define _SSPM1 0x02 1758 #define _SSPM2 0x04 1759 #define _SSPM3 0x08 1760 #define _CKP 0x10 1761 #define _SSPEN 0x20 1762 #define _SSPOV 0x40 1763 #define _WCOL 0x80 1764 1765 //============================================================================== 1766 1767 1768 //============================================================================== 1769 // SSPSTAT Bits 1770 1771 extern __at(0x0FC7) __sfr SSPSTAT; 1772 1773 typedef union 1774 { 1775 struct 1776 { 1777 unsigned BF : 1; 1778 unsigned UA : 1; 1779 unsigned R_NOT_W : 1; 1780 unsigned S : 1; 1781 unsigned P : 1; 1782 unsigned D_NOT_A : 1; 1783 unsigned CKE : 1; 1784 unsigned SMP : 1; 1785 }; 1786 1787 struct 1788 { 1789 unsigned : 1; 1790 unsigned : 1; 1791 unsigned R_W : 1; 1792 unsigned : 1; 1793 unsigned : 1; 1794 unsigned D_A : 1; 1795 unsigned : 1; 1796 unsigned : 1; 1797 }; 1798 } __SSPSTATbits_t; 1799 1800 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits; 1801 1802 #define _BF 0x01 1803 #define _UA 0x02 1804 #define _R_NOT_W 0x04 1805 #define _R_W 0x04 1806 #define _S 0x08 1807 #define _P 0x10 1808 #define _D_NOT_A 0x20 1809 #define _D_A 0x20 1810 #define _CKE 0x40 1811 #define _SMP 0x80 1812 1813 //============================================================================== 1814 1815 extern __at(0x0FC8) __sfr SSPADD; 1816 extern __at(0x0FC9) __sfr SSPBUF; 1817 1818 //============================================================================== 1819 // T2CON Bits 1820 1821 extern __at(0x0FCA) __sfr T2CON; 1822 1823 typedef union 1824 { 1825 struct 1826 { 1827 unsigned T2CKPS0 : 1; 1828 unsigned T2CKPS1 : 1; 1829 unsigned TMR2ON : 1; 1830 unsigned TOUTPS0 : 1; 1831 unsigned TOUTPS1 : 1; 1832 unsigned TOUTPS2 : 1; 1833 unsigned TOUTPS3 : 1; 1834 unsigned : 1; 1835 }; 1836 1837 struct 1838 { 1839 unsigned T2CKPS : 2; 1840 unsigned : 6; 1841 }; 1842 1843 struct 1844 { 1845 unsigned : 3; 1846 unsigned TOUTPS : 4; 1847 unsigned : 1; 1848 }; 1849 } __T2CONbits_t; 1850 1851 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits; 1852 1853 #define _T2CKPS0 0x01 1854 #define _T2CKPS1 0x02 1855 #define _TMR2ON 0x04 1856 #define _TOUTPS0 0x08 1857 #define _TOUTPS1 0x10 1858 #define _TOUTPS2 0x20 1859 #define _TOUTPS3 0x40 1860 1861 //============================================================================== 1862 1863 extern __at(0x0FCB) __sfr PR2; 1864 extern __at(0x0FCC) __sfr TMR2; 1865 1866 //============================================================================== 1867 // T1CON Bits 1868 1869 extern __at(0x0FCD) __sfr T1CON; 1870 1871 typedef union 1872 { 1873 struct 1874 { 1875 unsigned TMR1ON : 1; 1876 unsigned TMR1CS : 1; 1877 unsigned NOT_T1SYNC : 1; 1878 unsigned T1OSCEN : 1; 1879 unsigned T1CKPS0 : 1; 1880 unsigned T1CKPS1 : 1; 1881 unsigned : 1; 1882 unsigned RD16 : 1; 1883 }; 1884 1885 struct 1886 { 1887 unsigned : 1; 1888 unsigned : 1; 1889 unsigned T1SYNC : 1; 1890 unsigned : 1; 1891 unsigned : 1; 1892 unsigned : 1; 1893 unsigned : 1; 1894 unsigned T1RD16 : 1; 1895 }; 1896 1897 struct 1898 { 1899 unsigned : 4; 1900 unsigned T1CKPS : 2; 1901 unsigned : 2; 1902 }; 1903 } __T1CONbits_t; 1904 1905 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits; 1906 1907 #define _TMR1ON 0x01 1908 #define _TMR1CS 0x02 1909 #define _NOT_T1SYNC 0x04 1910 #define _T1SYNC 0x04 1911 #define _T1OSCEN 0x08 1912 #define _T1CKPS0 0x10 1913 #define _T1CKPS1 0x20 1914 #define _RD16 0x80 1915 #define _T1RD16 0x80 1916 1917 //============================================================================== 1918 1919 extern __at(0x0FCE) __sfr TMR1; 1920 extern __at(0x0FCE) __sfr TMR1L; 1921 extern __at(0x0FCF) __sfr TMR1H; 1922 1923 //============================================================================== 1924 // RCON Bits 1925 1926 extern __at(0x0FD0) __sfr RCON; 1927 1928 typedef union 1929 { 1930 struct 1931 { 1932 unsigned NOT_BOR : 1; 1933 unsigned NOT_POR : 1; 1934 unsigned NOT_PD : 1; 1935 unsigned NOT_TO : 1; 1936 unsigned NOT_RI : 1; 1937 unsigned : 1; 1938 unsigned : 1; 1939 unsigned IPEN : 1; 1940 }; 1941 1942 struct 1943 { 1944 unsigned BOR : 1; 1945 unsigned POR : 1; 1946 unsigned PD : 1; 1947 unsigned TO : 1; 1948 unsigned RI : 1; 1949 unsigned : 1; 1950 unsigned : 1; 1951 unsigned NOT_IPEN : 1; 1952 }; 1953 } __RCONbits_t; 1954 1955 extern __at(0x0FD0) volatile __RCONbits_t RCONbits; 1956 1957 #define _NOT_BOR 0x01 1958 #define _BOR 0x01 1959 #define _NOT_POR 0x02 1960 #define _POR 0x02 1961 #define _NOT_PD 0x04 1962 #define _PD 0x04 1963 #define _NOT_TO 0x08 1964 #define _TO 0x08 1965 #define _NOT_RI 0x10 1966 #define _RI 0x10 1967 #define _IPEN 0x80 1968 #define _NOT_IPEN 0x80 1969 1970 //============================================================================== 1971 1972 1973 //============================================================================== 1974 // WDTCON Bits 1975 1976 extern __at(0x0FD1) __sfr WDTCON; 1977 1978 typedef union 1979 { 1980 struct 1981 { 1982 unsigned SWDTEN : 1; 1983 unsigned : 1; 1984 unsigned : 1; 1985 unsigned : 1; 1986 unsigned : 1; 1987 unsigned : 1; 1988 unsigned : 1; 1989 unsigned : 1; 1990 }; 1991 1992 struct 1993 { 1994 unsigned SWDTE : 1; 1995 unsigned : 1; 1996 unsigned : 1; 1997 unsigned : 1; 1998 unsigned : 1; 1999 unsigned : 1; 2000 unsigned : 1; 2001 unsigned : 1; 2002 }; 2003 } __WDTCONbits_t; 2004 2005 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits; 2006 2007 #define _SWDTEN 0x01 2008 #define _SWDTE 0x01 2009 2010 //============================================================================== 2011 2012 2013 //============================================================================== 2014 // LVDCON Bits 2015 2016 extern __at(0x0FD2) __sfr LVDCON; 2017 2018 typedef union 2019 { 2020 struct 2021 { 2022 unsigned LVDL0 : 1; 2023 unsigned LVDL1 : 1; 2024 unsigned LVDL2 : 1; 2025 unsigned LVDL3 : 1; 2026 unsigned LVDEN : 1; 2027 unsigned IRVST : 1; 2028 unsigned : 1; 2029 unsigned : 1; 2030 }; 2031 2032 struct 2033 { 2034 unsigned LVDL : 4; 2035 unsigned : 4; 2036 }; 2037 } __LVDCONbits_t; 2038 2039 extern __at(0x0FD2) volatile __LVDCONbits_t LVDCONbits; 2040 2041 #define _LVDL0 0x01 2042 #define _LVDL1 0x02 2043 #define _LVDL2 0x04 2044 #define _LVDL3 0x08 2045 #define _LVDEN 0x10 2046 #define _IRVST 0x20 2047 2048 //============================================================================== 2049 2050 2051 //============================================================================== 2052 // OSCCON Bits 2053 2054 extern __at(0x0FD3) __sfr OSCCON; 2055 2056 typedef union 2057 { 2058 struct 2059 { 2060 unsigned RESERVED : 1; 2061 unsigned : 1; 2062 unsigned : 1; 2063 unsigned : 1; 2064 unsigned : 1; 2065 unsigned : 1; 2066 unsigned : 1; 2067 unsigned : 1; 2068 }; 2069 2070 struct 2071 { 2072 unsigned SCS : 1; 2073 unsigned : 1; 2074 unsigned : 1; 2075 unsigned : 1; 2076 unsigned : 1; 2077 unsigned : 1; 2078 unsigned : 1; 2079 unsigned : 1; 2080 }; 2081 } __OSCCONbits_t; 2082 2083 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits; 2084 2085 #define _RESERVED 0x01 2086 #define _SCS 0x01 2087 2088 //============================================================================== 2089 2090 2091 //============================================================================== 2092 // T0CON Bits 2093 2094 extern __at(0x0FD5) __sfr T0CON; 2095 2096 typedef union 2097 { 2098 struct 2099 { 2100 unsigned T0PS0 : 1; 2101 unsigned T0PS1 : 1; 2102 unsigned T0PS2 : 1; 2103 unsigned PSA : 1; 2104 unsigned T0SE : 1; 2105 unsigned T0CS : 1; 2106 unsigned T08BIT : 1; 2107 unsigned TMR0ON : 1; 2108 }; 2109 2110 struct 2111 { 2112 unsigned T0PS : 3; 2113 unsigned : 5; 2114 }; 2115 } __T0CONbits_t; 2116 2117 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits; 2118 2119 #define _T0PS0 0x01 2120 #define _T0PS1 0x02 2121 #define _T0PS2 0x04 2122 #define _PSA 0x08 2123 #define _T0SE 0x10 2124 #define _T0CS 0x20 2125 #define _T08BIT 0x40 2126 #define _TMR0ON 0x80 2127 2128 //============================================================================== 2129 2130 extern __at(0x0FD6) __sfr TMR0; 2131 extern __at(0x0FD6) __sfr TMR0L; 2132 extern __at(0x0FD7) __sfr TMR0H; 2133 2134 //============================================================================== 2135 // STATUS Bits 2136 2137 extern __at(0x0FD8) __sfr STATUS; 2138 2139 typedef struct 2140 { 2141 unsigned C : 1; 2142 unsigned DC : 1; 2143 unsigned Z : 1; 2144 unsigned OV : 1; 2145 unsigned N : 1; 2146 unsigned : 1; 2147 unsigned : 1; 2148 unsigned : 1; 2149 } __STATUSbits_t; 2150 2151 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits; 2152 2153 #define _C 0x01 2154 #define _DC 0x02 2155 #define _Z 0x04 2156 #define _OV 0x08 2157 #define _N 0x10 2158 2159 //============================================================================== 2160 2161 extern __at(0x0FD9) __sfr FSR2L; 2162 extern __at(0x0FDA) __sfr FSR2H; 2163 extern __at(0x0FDB) __sfr PLUSW2; 2164 extern __at(0x0FDC) __sfr PREINC2; 2165 extern __at(0x0FDD) __sfr POSTDEC2; 2166 extern __at(0x0FDE) __sfr POSTINC2; 2167 extern __at(0x0FDF) __sfr INDF2; 2168 extern __at(0x0FE0) __sfr BSR; 2169 extern __at(0x0FE1) __sfr FSR1L; 2170 extern __at(0x0FE2) __sfr FSR1H; 2171 extern __at(0x0FE3) __sfr PLUSW1; 2172 extern __at(0x0FE4) __sfr PREINC1; 2173 extern __at(0x0FE5) __sfr POSTDEC1; 2174 extern __at(0x0FE6) __sfr POSTINC1; 2175 extern __at(0x0FE7) __sfr INDF1; 2176 extern __at(0x0FE8) __sfr WREG; 2177 extern __at(0x0FE9) __sfr FSR0L; 2178 extern __at(0x0FEA) __sfr FSR0H; 2179 extern __at(0x0FEB) __sfr PLUSW0; 2180 extern __at(0x0FEC) __sfr PREINC0; 2181 extern __at(0x0FED) __sfr POSTDEC0; 2182 extern __at(0x0FEE) __sfr POSTINC0; 2183 extern __at(0x0FEF) __sfr INDF0; 2184 2185 //============================================================================== 2186 // INTCON3 Bits 2187 2188 extern __at(0x0FF0) __sfr INTCON3; 2189 2190 typedef union 2191 { 2192 struct 2193 { 2194 unsigned INT1IF : 1; 2195 unsigned INT2IF : 1; 2196 unsigned : 1; 2197 unsigned INT1IE : 1; 2198 unsigned INT2IE : 1; 2199 unsigned : 1; 2200 unsigned INT1IP : 1; 2201 unsigned INT2IP : 1; 2202 }; 2203 2204 struct 2205 { 2206 unsigned INT1F : 1; 2207 unsigned INT2F : 1; 2208 unsigned : 1; 2209 unsigned INT1E : 1; 2210 unsigned INT2E : 1; 2211 unsigned : 1; 2212 unsigned INT1P : 1; 2213 unsigned INT2P : 1; 2214 }; 2215 } __INTCON3bits_t; 2216 2217 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits; 2218 2219 #define _INT1IF 0x01 2220 #define _INT1F 0x01 2221 #define _INT2IF 0x02 2222 #define _INT2F 0x02 2223 #define _INT1IE 0x08 2224 #define _INT1E 0x08 2225 #define _INT2IE 0x10 2226 #define _INT2E 0x10 2227 #define _INT1IP 0x40 2228 #define _INT1P 0x40 2229 #define _INT2IP 0x80 2230 #define _INT2P 0x80 2231 2232 //============================================================================== 2233 2234 2235 //============================================================================== 2236 // INTCON2 Bits 2237 2238 extern __at(0x0FF1) __sfr INTCON2; 2239 2240 typedef union 2241 { 2242 struct 2243 { 2244 unsigned RBIP : 1; 2245 unsigned INT3P : 1; 2246 unsigned TMR0IP : 1; 2247 unsigned INTEDG3 : 1; 2248 unsigned INTEDG2 : 1; 2249 unsigned INTEDG1 : 1; 2250 unsigned INTEDG0 : 1; 2251 unsigned NOT_RBPU : 1; 2252 }; 2253 2254 struct 2255 { 2256 unsigned : 1; 2257 unsigned : 1; 2258 unsigned T0IP : 1; 2259 unsigned : 1; 2260 unsigned : 1; 2261 unsigned : 1; 2262 unsigned : 1; 2263 unsigned RBPU : 1; 2264 }; 2265 } __INTCON2bits_t; 2266 2267 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits; 2268 2269 #define _RBIP 0x01 2270 #define _INT3P 0x02 2271 #define _TMR0IP 0x04 2272 #define _T0IP 0x04 2273 #define _INTEDG3 0x08 2274 #define _INTEDG2 0x10 2275 #define _INTEDG1 0x20 2276 #define _INTEDG0 0x40 2277 #define _NOT_RBPU 0x80 2278 #define _RBPU 0x80 2279 2280 //============================================================================== 2281 2282 2283 //============================================================================== 2284 // INTCON Bits 2285 2286 extern __at(0x0FF2) __sfr INTCON; 2287 2288 typedef union 2289 { 2290 struct 2291 { 2292 unsigned RBIF : 1; 2293 unsigned INT0IF : 1; 2294 unsigned TMR0IF : 1; 2295 unsigned RBIE : 1; 2296 unsigned INT0IE : 1; 2297 unsigned TMR0IE : 1; 2298 unsigned PEIE_GIEL : 1; 2299 unsigned GIE_GIEH : 1; 2300 }; 2301 2302 struct 2303 { 2304 unsigned : 1; 2305 unsigned INT0F : 1; 2306 unsigned T0IF : 1; 2307 unsigned : 1; 2308 unsigned INT0E : 1; 2309 unsigned T0IE : 1; 2310 unsigned PEIE : 1; 2311 unsigned GIE : 1; 2312 }; 2313 2314 struct 2315 { 2316 unsigned : 1; 2317 unsigned : 1; 2318 unsigned : 1; 2319 unsigned : 1; 2320 unsigned : 1; 2321 unsigned : 1; 2322 unsigned GIEL : 1; 2323 unsigned GIEH : 1; 2324 }; 2325 } __INTCONbits_t; 2326 2327 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits; 2328 2329 #define _RBIF 0x01 2330 #define _INT0IF 0x02 2331 #define _INT0F 0x02 2332 #define _TMR0IF 0x04 2333 #define _T0IF 0x04 2334 #define _RBIE 0x08 2335 #define _INT0IE 0x10 2336 #define _INT0E 0x10 2337 #define _TMR0IE 0x20 2338 #define _T0IE 0x20 2339 #define _PEIE_GIEL 0x40 2340 #define _PEIE 0x40 2341 #define _GIEL 0x40 2342 #define _GIE_GIEH 0x80 2343 #define _GIE 0x80 2344 #define _GIEH 0x80 2345 2346 //============================================================================== 2347 2348 extern __at(0x0FF3) __sfr PROD; 2349 extern __at(0x0FF3) __sfr PRODL; 2350 extern __at(0x0FF4) __sfr PRODH; 2351 extern __at(0x0FF5) __sfr TABLAT; 2352 extern __at(0x0FF6) __sfr TBLPTR; 2353 extern __at(0x0FF6) __sfr TBLPTRL; 2354 extern __at(0x0FF7) __sfr TBLPTRH; 2355 extern __at(0x0FF8) __sfr TBLPTRU; 2356 extern __at(0x0FF9) __sfr PC; 2357 extern __at(0x0FF9) __sfr PCL; 2358 extern __at(0x0FFA) __sfr PCLATH; 2359 extern __at(0x0FFB) __sfr PCLATU; 2360 2361 //============================================================================== 2362 // STKPTR Bits 2363 2364 extern __at(0x0FFC) __sfr STKPTR; 2365 2366 typedef union 2367 { 2368 struct 2369 { 2370 unsigned STKPTR0 : 1; 2371 unsigned STKPTR1 : 1; 2372 unsigned STKPTR2 : 1; 2373 unsigned STKPTR3 : 1; 2374 unsigned STKPTR4 : 1; 2375 unsigned : 1; 2376 unsigned STKUNF : 1; 2377 unsigned STKFUL : 1; 2378 }; 2379 2380 struct 2381 { 2382 unsigned STKPTR : 5; 2383 unsigned : 3; 2384 }; 2385 } __STKPTRbits_t; 2386 2387 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits; 2388 2389 #define _STKPTR0 0x01 2390 #define _STKPTR1 0x02 2391 #define _STKPTR2 0x04 2392 #define _STKPTR3 0x08 2393 #define _STKPTR4 0x10 2394 #define _STKUNF 0x40 2395 #define _STKFUL 0x80 2396 2397 //============================================================================== 2398 2399 extern __at(0x0FFD) __sfr TOS; 2400 extern __at(0x0FFD) __sfr TOSL; 2401 extern __at(0x0FFE) __sfr TOSH; 2402 extern __at(0x0FFF) __sfr TOSU; 2403 2404 //============================================================================== 2405 // 2406 // Configuration Bits 2407 // 2408 //============================================================================== 2409 2410 #define __CONFIG1H 0x300001 2411 #define __CONFIG2L 0x300002 2412 #define __CONFIG2H 0x300003 2413 #define __CONFIG4L 0x300006 2414 #define __CONFIG5L 0x300008 2415 #define __CONFIG5H 0x300009 2416 #define __CONFIG6L 0x30000A 2417 #define __CONFIG6H 0x30000B 2418 #define __CONFIG7L 0x30000C 2419 #define __CONFIG7H 0x30000D 2420 2421 //----------------------------- CONFIG1H Options ------------------------------- 2422 2423 #define _OSC_HS_1H 0xFA // HS oscillator. 2424 #define _OSC_EC_1H 0xFC // EC oscillator w/ OSC2 configured as divide-by-4 clock output. 2425 #define _OSC_ECIO_1H 0xFD // EC oscillator w/ OSC2 configured as RA6. 2426 #define _OSC_HSPLL_1H 0xFE // HS oscillator with PLL enabled; clock frequency = (4 x FOSC). 2427 2428 //----------------------------- CONFIG2L Options ------------------------------- 2429 2430 #define _PWRT_ON_2L 0xFE // PWRT enabled. 2431 #define _PWRT_OFF_2L 0xFF // PWRT disabled. 2432 #define _BOR_OFF_2L 0xFD // Brown-out Reset disabled. 2433 #define _BOR_ON_2L 0xFF // Brown-out Reset enabled. 2434 #define _BORV_45_2L 0xF3 // VBOR set to 4.5V. 2435 #define _BORV_42_2L 0xF7 // VBOR set to 4.2V. 2436 #define _BORV_27_2L 0xFB // VBOR set to 2.7V. 2437 #define _BORV_25_2L 0xFF // VBOR set to 2.5V. 2438 2439 //----------------------------- CONFIG2H Options ------------------------------- 2440 2441 #define _WDT_OFF_2H 0xFE // WDT disabled (control is placed on the SWDTEN bit). 2442 #define _WDT_ON_2H 0xFF // WDT enabled. 2443 #define _WDTPS_1_2H 0xF1 // 1:1. 2444 #define _WDTPS_2_2H 0xF3 // 1:2. 2445 #define _WDTPS_4_2H 0xF5 // 1:4. 2446 #define _WDTPS_8_2H 0xF7 // 1:8. 2447 #define _WDTPS_16_2H 0xF9 // 1:16. 2448 #define _WDTPS_32_2H 0xFB // 1:32. 2449 #define _WDTPS_64_2H 0xFD // 1:64. 2450 #define _WDTPS_128_2H 0xFF // 1:128. 2451 2452 //----------------------------- CONFIG4L Options ------------------------------- 2453 2454 #define _STVR_OFF_4L 0xFE // Stack Full/Underflow will not cause RESET. 2455 #define _STVR_ON_4L 0xFF // Stack Full/Underflow will cause RESET. 2456 #define _LVP_OFF_4L 0xFB // Low Voltage ICSP disabled. 2457 #define _LVP_ON_4L 0xFF // Low Voltage ICSP enabled. 2458 #define _DEBUG_ON_4L 0x7F // Background Debugger enabled. RB6 and RB7 are dedicated to In-Circuit Debug. 2459 #define _DEBUG_OFF_4L 0xFF // Background Debugger disabled. RB6 and RB7 configured as general purpose I/O pins. 2460 2461 //----------------------------- CONFIG5L Options ------------------------------- 2462 2463 #define _CP0_ON_5L 0xFE // Block 0 (000200-001FFFh) code protected. 2464 #define _CP0_OFF_5L 0xFF // Block 0 (000200-001FFFh) not code protected. 2465 #define _CP1_ON_5L 0xFD // Block 1 (002000-003FFFh) code protected. 2466 #define _CP1_OFF_5L 0xFF // Block 1 (002000-003FFFh) not code protected. 2467 2468 //----------------------------- CONFIG5H Options ------------------------------- 2469 2470 #define _CPB_ON_5H 0xBF // Boot block (000000-0001FFh) code protected. 2471 #define _CPB_OFF_5H 0xFF // Boot block (000000-0001FFh) not code protected. 2472 #define _CPD_ON_5H 0x7F // Data EEPROM code protected. 2473 #define _CPD_OFF_5H 0xFF // Data EEPROM not code protected. 2474 2475 //----------------------------- CONFIG6L Options ------------------------------- 2476 2477 #define _WRT0_ON_6L 0xFE // Block 0 (000200h-001FFFh) write protected. 2478 #define _WRT0_OFF_6L 0xFF // Block 0 (000200h-001FFFh) not write protected. 2479 #define _WRT1_ON_6L 0xFD // Block 1 (002000-003FFFh) write protected. 2480 #define _WRT1_OFF_6L 0xFF // Block 1 (002000-003FFFh) not write protected. 2481 2482 //----------------------------- CONFIG6H Options ------------------------------- 2483 2484 #define _WRTC_ON_6H 0xDF // Configuration registers (300000-3000FFh) write protected. 2485 #define _WRTC_OFF_6H 0xFF // Configuration registers (300000-3000FFh) not write protected. 2486 #define _WRTB_ON_6H 0xBF // Boot block (000000-0001FFh) write protected. 2487 #define _WRTB_OFF_6H 0xFF // Boot block (000000-0001FFh) not write protected. 2488 #define _WRTD_ON_6H 0x7F // Data EEPROM write protected. 2489 #define _WRTD_OFF_6H 0xFF // Data EEPROM not write protected. 2490 2491 //----------------------------- CONFIG7L Options ------------------------------- 2492 2493 #define _EBTR0_ON_7L 0xFE // Block 0 (000200h-001FFFh) protected from Table Reads executed in other blocks. 2494 #define _EBTR0_OFF_7L 0xFF // Block 0 (000200h-001FFFh) not protected from Table Reads executed in other blocks. 2495 #define _EBTR1_ON_7L 0xFD // Block 1 (002000-003FFFh) protected from Table Reads executed in other blocks. 2496 #define _EBTR1_OFF_7L 0xFF // Block 1 (002000-003FFFh) not protected from Table Reads executed in other blocks. 2497 2498 //----------------------------- CONFIG7H Options ------------------------------- 2499 2500 #define _EBTRB_ON_7H 0xBF // Boot block (000000-0001FFh) protected from Table Reads executed in other blocks. 2501 #define _EBTRB_OFF_7H 0xFF // Boot block (000000-0001FFh) not protected from Table Reads executed in other blocks. 2502 2503 //============================================================================== 2504 2505 #define __DEVID1 0x3FFFFE 2506 #define __DEVID2 0x3FFFFF 2507 2508 #define __IDLOC0 0x200000 2509 #define __IDLOC1 0x200001 2510 #define __IDLOC2 0x200002 2511 #define __IDLOC3 0x200003 2512 #define __IDLOC4 0x200004 2513 #define __IDLOC5 0x200005 2514 #define __IDLOC6 0x200006 2515 #define __IDLOC7 0x200007 2516 2517 #endif // #ifndef __PIC18F4439_H__ 2518