1 /* 2 * This declarations of the PIC18LF6310 MCU. 3 * 4 * This file is part of the GNU PIC library for SDCC, originally 5 * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016. 6 * 7 * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:24:05 UTC. 8 * 9 * SDCC is licensed under the GNU Public license (GPL) v2. Note that 10 * this license covers the code to the compiler and other executables, 11 * but explicitly does not cover any code or objects generated by sdcc. 12 * 13 * For pic device libraries and header files which are derived from 14 * Microchip header (.inc) and linker script (.lkr) files Microchip 15 * requires that "The header files should state that they are only to be 16 * used with authentic Microchip devices" which makes them incompatible 17 * with the GPL. Pic device libraries and header files are located at 18 * non-free/lib and non-free/include directories respectively. 19 * Sdcc should be run with the --use-non-free command line option in 20 * order to include non-free header files and libraries. 21 * 22 * See http://sdcc.sourceforge.net/ for the latest information on sdcc. 23 */ 24 25 #ifndef __PIC18LF6310_H__ 26 #define __PIC18LF6310_H__ 27 28 //============================================================================== 29 30 //============================================================================== 31 // 32 // Register Definitions 33 // 34 //============================================================================== 35 36 37 //============================================================================== 38 // RCSTA2 Bits 39 40 extern __at(0x0F6B) __sfr RCSTA2; 41 42 typedef union 43 { 44 struct 45 { 46 unsigned RX9D : 1; 47 unsigned OERR : 1; 48 unsigned FERR : 1; 49 unsigned ADDEN : 1; 50 unsigned CREN : 1; 51 unsigned SREN : 1; 52 unsigned RX9 : 1; 53 unsigned SPEN : 1; 54 }; 55 56 struct 57 { 58 unsigned RCD8 : 1; 59 unsigned OERR2 : 1; 60 unsigned FERR2 : 1; 61 unsigned ADEN : 1; 62 unsigned CREN2 : 1; 63 unsigned SREN2 : 1; 64 unsigned RC9 : 1; 65 unsigned SPEN2 : 1; 66 }; 67 68 struct 69 { 70 unsigned RX9D2 : 1; 71 unsigned : 1; 72 unsigned : 1; 73 unsigned ADDEN2 : 1; 74 unsigned : 1; 75 unsigned : 1; 76 unsigned NOT_RC8 : 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 : 1; 88 unsigned RC8_9 : 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 : 1; 100 unsigned RX92 : 1; 101 unsigned : 1; 102 }; 103 } __RCSTA2bits_t; 104 105 extern __at(0x0F6B) volatile __RCSTA2bits_t RCSTA2bits; 106 107 #define _RCSTA2_RX9D 0x01 108 #define _RCSTA2_RCD8 0x01 109 #define _RCSTA2_RX9D2 0x01 110 #define _RCSTA2_OERR 0x02 111 #define _RCSTA2_OERR2 0x02 112 #define _RCSTA2_FERR 0x04 113 #define _RCSTA2_FERR2 0x04 114 #define _RCSTA2_ADDEN 0x08 115 #define _RCSTA2_ADEN 0x08 116 #define _RCSTA2_ADDEN2 0x08 117 #define _RCSTA2_CREN 0x10 118 #define _RCSTA2_CREN2 0x10 119 #define _RCSTA2_SREN 0x20 120 #define _RCSTA2_SREN2 0x20 121 #define _RCSTA2_RX9 0x40 122 #define _RCSTA2_RC9 0x40 123 #define _RCSTA2_NOT_RC8 0x40 124 #define _RCSTA2_RC8_9 0x40 125 #define _RCSTA2_RX92 0x40 126 #define _RCSTA2_SPEN 0x80 127 #define _RCSTA2_SPEN2 0x80 128 129 //============================================================================== 130 131 132 //============================================================================== 133 // TXSTA2 Bits 134 135 extern __at(0x0F6C) __sfr TXSTA2; 136 137 typedef union 138 { 139 struct 140 { 141 unsigned TX9D : 1; 142 unsigned TRMT : 1; 143 unsigned BRGH : 1; 144 unsigned SENDB2 : 1; 145 unsigned SYNC : 1; 146 unsigned TXEN : 1; 147 unsigned TX9 : 1; 148 unsigned CSRC : 1; 149 }; 150 151 struct 152 { 153 unsigned TXD8 : 1; 154 unsigned TRMT2 : 1; 155 unsigned BRGH2 : 1; 156 unsigned : 1; 157 unsigned SYNC2 : 1; 158 unsigned TXEN2 : 1; 159 unsigned TX8_9 : 1; 160 unsigned CSRC2 : 1; 161 }; 162 163 struct 164 { 165 unsigned TX9D2 : 1; 166 unsigned : 1; 167 unsigned : 1; 168 unsigned : 1; 169 unsigned : 1; 170 unsigned : 1; 171 unsigned NOT_TX8 : 1; 172 unsigned : 1; 173 }; 174 175 struct 176 { 177 unsigned : 1; 178 unsigned : 1; 179 unsigned : 1; 180 unsigned : 1; 181 unsigned : 1; 182 unsigned : 1; 183 unsigned TX92 : 1; 184 unsigned : 1; 185 }; 186 } __TXSTA2bits_t; 187 188 extern __at(0x0F6C) volatile __TXSTA2bits_t TXSTA2bits; 189 190 #define _TXSTA2_TX9D 0x01 191 #define _TXSTA2_TXD8 0x01 192 #define _TXSTA2_TX9D2 0x01 193 #define _TXSTA2_TRMT 0x02 194 #define _TXSTA2_TRMT2 0x02 195 #define _TXSTA2_BRGH 0x04 196 #define _TXSTA2_BRGH2 0x04 197 #define _TXSTA2_SENDB2 0x08 198 #define _TXSTA2_SYNC 0x10 199 #define _TXSTA2_SYNC2 0x10 200 #define _TXSTA2_TXEN 0x20 201 #define _TXSTA2_TXEN2 0x20 202 #define _TXSTA2_TX9 0x40 203 #define _TXSTA2_TX8_9 0x40 204 #define _TXSTA2_NOT_TX8 0x40 205 #define _TXSTA2_TX92 0x40 206 #define _TXSTA2_CSRC 0x80 207 #define _TXSTA2_CSRC2 0x80 208 209 //============================================================================== 210 211 extern __at(0x0F6D) __sfr TXREG2; 212 extern __at(0x0F6E) __sfr RCREG2; 213 extern __at(0x0F6F) __sfr SPBRG2; 214 215 //============================================================================== 216 // BAUDCON1 Bits 217 218 extern __at(0x0F7E) __sfr BAUDCON1; 219 220 typedef union 221 { 222 struct 223 { 224 unsigned ABDEN : 1; 225 unsigned WUE : 1; 226 unsigned : 1; 227 unsigned BRG16 : 1; 228 unsigned SCKP : 1; 229 unsigned : 1; 230 unsigned RCIDL : 1; 231 unsigned ABDOVF : 1; 232 }; 233 234 struct 235 { 236 unsigned : 1; 237 unsigned : 1; 238 unsigned : 1; 239 unsigned : 1; 240 unsigned : 1; 241 unsigned : 1; 242 unsigned RCMT : 1; 243 unsigned : 1; 244 }; 245 } __BAUDCON1bits_t; 246 247 extern __at(0x0F7E) volatile __BAUDCON1bits_t BAUDCON1bits; 248 249 #define _ABDEN 0x01 250 #define _WUE 0x02 251 #define _BRG16 0x08 252 #define _SCKP 0x10 253 #define _RCIDL 0x40 254 #define _RCMT 0x40 255 #define _ABDOVF 0x80 256 257 //============================================================================== 258 259 260 //============================================================================== 261 // BAUDCTL1 Bits 262 263 extern __at(0x0F7E) __sfr BAUDCTL1; 264 265 typedef union 266 { 267 struct 268 { 269 unsigned ABDEN : 1; 270 unsigned WUE : 1; 271 unsigned : 1; 272 unsigned BRG16 : 1; 273 unsigned SCKP : 1; 274 unsigned : 1; 275 unsigned RCIDL : 1; 276 unsigned ABDOVF : 1; 277 }; 278 279 struct 280 { 281 unsigned : 1; 282 unsigned : 1; 283 unsigned : 1; 284 unsigned : 1; 285 unsigned : 1; 286 unsigned : 1; 287 unsigned RCMT : 1; 288 unsigned : 1; 289 }; 290 } __BAUDCTL1bits_t; 291 292 extern __at(0x0F7E) volatile __BAUDCTL1bits_t BAUDCTL1bits; 293 294 #define _BAUDCTL1_ABDEN 0x01 295 #define _BAUDCTL1_WUE 0x02 296 #define _BAUDCTL1_BRG16 0x08 297 #define _BAUDCTL1_SCKP 0x10 298 #define _BAUDCTL1_RCIDL 0x40 299 #define _BAUDCTL1_RCMT 0x40 300 #define _BAUDCTL1_ABDOVF 0x80 301 302 //============================================================================== 303 304 extern __at(0x0F7F) __sfr SPBRGH1; 305 306 //============================================================================== 307 // PORTA Bits 308 309 extern __at(0x0F80) __sfr PORTA; 310 311 typedef union 312 { 313 struct 314 { 315 unsigned RA0 : 1; 316 unsigned RA1 : 1; 317 unsigned RA2 : 1; 318 unsigned RA3 : 1; 319 unsigned RA4 : 1; 320 unsigned RA5 : 1; 321 unsigned RA6 : 1; 322 unsigned RA7 : 1; 323 }; 324 325 struct 326 { 327 unsigned AN0 : 1; 328 unsigned AN1 : 1; 329 unsigned AN2 : 1; 330 unsigned AN3 : 1; 331 unsigned T0CKI : 1; 332 unsigned AN4 : 1; 333 unsigned OSC2 : 1; 334 unsigned OSC1 : 1; 335 }; 336 337 struct 338 { 339 unsigned : 1; 340 unsigned : 1; 341 unsigned VREFM : 1; 342 unsigned VREFP : 1; 343 unsigned : 1; 344 unsigned LVDIN : 1; 345 unsigned CLKO : 1; 346 unsigned CLKI : 1; 347 }; 348 } __PORTAbits_t; 349 350 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits; 351 352 #define _PORTA_RA0 0x01 353 #define _PORTA_AN0 0x01 354 #define _PORTA_RA1 0x02 355 #define _PORTA_AN1 0x02 356 #define _PORTA_RA2 0x04 357 #define _PORTA_AN2 0x04 358 #define _PORTA_VREFM 0x04 359 #define _PORTA_RA3 0x08 360 #define _PORTA_AN3 0x08 361 #define _PORTA_VREFP 0x08 362 #define _PORTA_RA4 0x10 363 #define _PORTA_T0CKI 0x10 364 #define _PORTA_RA5 0x20 365 #define _PORTA_AN4 0x20 366 #define _PORTA_LVDIN 0x20 367 #define _PORTA_RA6 0x40 368 #define _PORTA_OSC2 0x40 369 #define _PORTA_CLKO 0x40 370 #define _PORTA_RA7 0x80 371 #define _PORTA_OSC1 0x80 372 #define _PORTA_CLKI 0x80 373 374 //============================================================================== 375 376 377 //============================================================================== 378 // PORTB Bits 379 380 extern __at(0x0F81) __sfr PORTB; 381 382 typedef union 383 { 384 struct 385 { 386 unsigned RB0 : 1; 387 unsigned RB1 : 1; 388 unsigned RB2 : 1; 389 unsigned RB3 : 1; 390 unsigned RB4 : 1; 391 unsigned RB5 : 1; 392 unsigned RB6 : 1; 393 unsigned RB7 : 1; 394 }; 395 396 struct 397 { 398 unsigned INT0 : 1; 399 unsigned INT1 : 1; 400 unsigned INT2 : 1; 401 unsigned INT3 : 1; 402 unsigned KBI0 : 1; 403 unsigned KBI1 : 1; 404 unsigned KBI2 : 1; 405 unsigned KBI3 : 1; 406 }; 407 408 struct 409 { 410 unsigned : 1; 411 unsigned : 1; 412 unsigned : 1; 413 unsigned CCP2B : 1; 414 unsigned : 1; 415 unsigned PGM : 1; 416 unsigned PGC : 1; 417 unsigned PGD : 1; 418 }; 419 420 struct 421 { 422 unsigned INT : 4; 423 unsigned : 4; 424 }; 425 426 struct 427 { 428 unsigned : 4; 429 unsigned KBI : 4; 430 }; 431 } __PORTBbits_t; 432 433 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits; 434 435 #define _PORTB_RB0 0x01 436 #define _PORTB_INT0 0x01 437 #define _PORTB_RB1 0x02 438 #define _PORTB_INT1 0x02 439 #define _PORTB_RB2 0x04 440 #define _PORTB_INT2 0x04 441 #define _PORTB_RB3 0x08 442 #define _PORTB_INT3 0x08 443 #define _PORTB_CCP2B 0x08 444 #define _PORTB_RB4 0x10 445 #define _PORTB_KBI0 0x10 446 #define _PORTB_RB5 0x20 447 #define _PORTB_KBI1 0x20 448 #define _PORTB_PGM 0x20 449 #define _PORTB_RB6 0x40 450 #define _PORTB_KBI2 0x40 451 #define _PORTB_PGC 0x40 452 #define _PORTB_RB7 0x80 453 #define _PORTB_KBI3 0x80 454 #define _PORTB_PGD 0x80 455 456 //============================================================================== 457 458 459 //============================================================================== 460 // PORTC Bits 461 462 extern __at(0x0F82) __sfr PORTC; 463 464 typedef union 465 { 466 struct 467 { 468 unsigned RC0 : 1; 469 unsigned RC1 : 1; 470 unsigned RC2 : 1; 471 unsigned RC3 : 1; 472 unsigned RC4 : 1; 473 unsigned RC5 : 1; 474 unsigned RC6 : 1; 475 unsigned RC7 : 1; 476 }; 477 478 struct 479 { 480 unsigned T1OSO : 1; 481 unsigned T1OSI : 1; 482 unsigned CCP1 : 1; 483 unsigned SCK : 1; 484 unsigned SDI : 1; 485 unsigned SDO : 1; 486 unsigned TX : 1; 487 unsigned RX : 1; 488 }; 489 490 struct 491 { 492 unsigned T13CKI : 1; 493 unsigned CCP2C : 1; 494 unsigned : 1; 495 unsigned SCL : 1; 496 unsigned SDA : 1; 497 unsigned : 1; 498 unsigned CK : 1; 499 unsigned : 1; 500 }; 501 } __PORTCbits_t; 502 503 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits; 504 505 #define _PORTC_RC0 0x01 506 #define _PORTC_T1OSO 0x01 507 #define _PORTC_T13CKI 0x01 508 #define _PORTC_RC1 0x02 509 #define _PORTC_T1OSI 0x02 510 #define _PORTC_CCP2C 0x02 511 #define _PORTC_RC2 0x04 512 #define _PORTC_CCP1 0x04 513 #define _PORTC_RC3 0x08 514 #define _PORTC_SCK 0x08 515 #define _PORTC_SCL 0x08 516 #define _PORTC_RC4 0x10 517 #define _PORTC_SDI 0x10 518 #define _PORTC_SDA 0x10 519 #define _PORTC_RC5 0x20 520 #define _PORTC_SDO 0x20 521 #define _PORTC_RC6 0x40 522 #define _PORTC_TX 0x40 523 #define _PORTC_CK 0x40 524 #define _PORTC_RC7 0x80 525 #define _PORTC_RX 0x80 526 527 //============================================================================== 528 529 530 //============================================================================== 531 // PORTD Bits 532 533 extern __at(0x0F83) __sfr PORTD; 534 535 typedef union 536 { 537 struct 538 { 539 unsigned RD0 : 1; 540 unsigned RD1 : 1; 541 unsigned RD2 : 1; 542 unsigned RD3 : 1; 543 unsigned RD4 : 1; 544 unsigned RD5 : 1; 545 unsigned RD6 : 1; 546 unsigned RD7 : 1; 547 }; 548 549 struct 550 { 551 unsigned PSP0 : 1; 552 unsigned PSP1 : 1; 553 unsigned PSP2 : 1; 554 unsigned PSP3 : 1; 555 unsigned PSP4 : 1; 556 unsigned PSP5 : 1; 557 unsigned PSP6 : 1; 558 unsigned PSP7 : 1; 559 }; 560 } __PORTDbits_t; 561 562 extern __at(0x0F83) volatile __PORTDbits_t PORTDbits; 563 564 #define _PORTD_RD0 0x01 565 #define _PORTD_PSP0 0x01 566 #define _PORTD_RD1 0x02 567 #define _PORTD_PSP1 0x02 568 #define _PORTD_RD2 0x04 569 #define _PORTD_PSP2 0x04 570 #define _PORTD_RD3 0x08 571 #define _PORTD_PSP3 0x08 572 #define _PORTD_RD4 0x10 573 #define _PORTD_PSP4 0x10 574 #define _PORTD_RD5 0x20 575 #define _PORTD_PSP5 0x20 576 #define _PORTD_RD6 0x40 577 #define _PORTD_PSP6 0x40 578 #define _PORTD_RD7 0x80 579 #define _PORTD_PSP7 0x80 580 581 //============================================================================== 582 583 584 //============================================================================== 585 // PORTE Bits 586 587 extern __at(0x0F84) __sfr PORTE; 588 589 typedef union 590 { 591 struct 592 { 593 unsigned RE0 : 1; 594 unsigned RE1 : 1; 595 unsigned RE2 : 1; 596 unsigned RE3 : 1; 597 unsigned RE4 : 1; 598 unsigned RE5 : 1; 599 unsigned RE6 : 1; 600 unsigned RE7 : 1; 601 }; 602 603 struct 604 { 605 unsigned RD : 1; 606 unsigned WR : 1; 607 unsigned CS : 1; 608 unsigned : 1; 609 unsigned : 1; 610 unsigned : 1; 611 unsigned : 1; 612 unsigned CCP2E : 1; 613 }; 614 } __PORTEbits_t; 615 616 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits; 617 618 #define _PORTE_RE0 0x01 619 #define _PORTE_RD 0x01 620 #define _PORTE_RE1 0x02 621 #define _PORTE_WR 0x02 622 #define _PORTE_RE2 0x04 623 #define _PORTE_CS 0x04 624 #define _PORTE_RE3 0x08 625 #define _PORTE_RE4 0x10 626 #define _PORTE_RE5 0x20 627 #define _PORTE_RE6 0x40 628 #define _PORTE_RE7 0x80 629 #define _PORTE_CCP2E 0x80 630 631 //============================================================================== 632 633 634 //============================================================================== 635 // PORTF Bits 636 637 extern __at(0x0F85) __sfr PORTF; 638 639 typedef union 640 { 641 struct 642 { 643 unsigned RF0 : 1; 644 unsigned RF1 : 1; 645 unsigned RF2 : 1; 646 unsigned RF3 : 1; 647 unsigned RF4 : 1; 648 unsigned RF5 : 1; 649 unsigned RF6 : 1; 650 unsigned RF7 : 1; 651 }; 652 653 struct 654 { 655 unsigned AN5 : 1; 656 unsigned AN6 : 1; 657 unsigned AN7 : 1; 658 unsigned AN8 : 1; 659 unsigned AN9 : 1; 660 unsigned AN10 : 1; 661 unsigned AN11 : 1; 662 unsigned SS : 1; 663 }; 664 665 struct 666 { 667 unsigned : 1; 668 unsigned C2OUTF : 1; 669 unsigned C1OUTF : 1; 670 unsigned : 1; 671 unsigned : 1; 672 unsigned CVREFF : 1; 673 unsigned : 1; 674 unsigned : 1; 675 }; 676 } __PORTFbits_t; 677 678 extern __at(0x0F85) volatile __PORTFbits_t PORTFbits; 679 680 #define _PORTF_RF0 0x01 681 #define _PORTF_AN5 0x01 682 #define _PORTF_RF1 0x02 683 #define _PORTF_AN6 0x02 684 #define _PORTF_C2OUTF 0x02 685 #define _PORTF_RF2 0x04 686 #define _PORTF_AN7 0x04 687 #define _PORTF_C1OUTF 0x04 688 #define _PORTF_RF3 0x08 689 #define _PORTF_AN8 0x08 690 #define _PORTF_RF4 0x10 691 #define _PORTF_AN9 0x10 692 #define _PORTF_RF5 0x20 693 #define _PORTF_AN10 0x20 694 #define _PORTF_CVREFF 0x20 695 #define _PORTF_RF6 0x40 696 #define _PORTF_AN11 0x40 697 #define _PORTF_RF7 0x80 698 #define _PORTF_SS 0x80 699 700 //============================================================================== 701 702 703 //============================================================================== 704 // PORTG Bits 705 706 extern __at(0x0F86) __sfr PORTG; 707 708 typedef union 709 { 710 struct 711 { 712 unsigned RG0 : 1; 713 unsigned RG1 : 1; 714 unsigned RG2 : 1; 715 unsigned RG3 : 1; 716 unsigned RG4 : 1; 717 unsigned RG5 : 1; 718 unsigned : 1; 719 unsigned : 1; 720 }; 721 722 struct 723 { 724 unsigned CCP3 : 1; 725 unsigned TX2 : 1; 726 unsigned RX2 : 1; 727 unsigned : 1; 728 unsigned : 1; 729 unsigned MCLR : 1; 730 unsigned : 1; 731 unsigned : 1; 732 }; 733 734 struct 735 { 736 unsigned : 1; 737 unsigned CK2 : 1; 738 unsigned DT2 : 1; 739 unsigned : 1; 740 unsigned : 1; 741 unsigned VPP : 1; 742 unsigned : 1; 743 unsigned : 1; 744 }; 745 746 struct 747 { 748 unsigned RG : 6; 749 unsigned : 2; 750 }; 751 } __PORTGbits_t; 752 753 extern __at(0x0F86) volatile __PORTGbits_t PORTGbits; 754 755 #define _PORTG_RG0 0x01 756 #define _PORTG_CCP3 0x01 757 #define _PORTG_RG1 0x02 758 #define _PORTG_TX2 0x02 759 #define _PORTG_CK2 0x02 760 #define _PORTG_RG2 0x04 761 #define _PORTG_RX2 0x04 762 #define _PORTG_DT2 0x04 763 #define _PORTG_RG3 0x08 764 #define _PORTG_RG4 0x10 765 #define _PORTG_RG5 0x20 766 #define _PORTG_MCLR 0x20 767 #define _PORTG_VPP 0x20 768 769 //============================================================================== 770 771 772 //============================================================================== 773 // LATA Bits 774 775 extern __at(0x0F89) __sfr LATA; 776 777 typedef struct 778 { 779 unsigned LATA0 : 1; 780 unsigned LATA1 : 1; 781 unsigned LATA2 : 1; 782 unsigned LATA3 : 1; 783 unsigned LATA4 : 1; 784 unsigned LATA5 : 1; 785 unsigned LATA6 : 1; 786 unsigned LATA7 : 1; 787 } __LATAbits_t; 788 789 extern __at(0x0F89) volatile __LATAbits_t LATAbits; 790 791 #define _LATA0 0x01 792 #define _LATA1 0x02 793 #define _LATA2 0x04 794 #define _LATA3 0x08 795 #define _LATA4 0x10 796 #define _LATA5 0x20 797 #define _LATA6 0x40 798 #define _LATA7 0x80 799 800 //============================================================================== 801 802 803 //============================================================================== 804 // LATB Bits 805 806 extern __at(0x0F8A) __sfr LATB; 807 808 typedef struct 809 { 810 unsigned LATB0 : 1; 811 unsigned LATB1 : 1; 812 unsigned LATB2 : 1; 813 unsigned LATB3 : 1; 814 unsigned LATB4 : 1; 815 unsigned LATB5 : 1; 816 unsigned LATB6 : 1; 817 unsigned LATB7 : 1; 818 } __LATBbits_t; 819 820 extern __at(0x0F8A) volatile __LATBbits_t LATBbits; 821 822 #define _LATB0 0x01 823 #define _LATB1 0x02 824 #define _LATB2 0x04 825 #define _LATB3 0x08 826 #define _LATB4 0x10 827 #define _LATB5 0x20 828 #define _LATB6 0x40 829 #define _LATB7 0x80 830 831 //============================================================================== 832 833 834 //============================================================================== 835 // LATC Bits 836 837 extern __at(0x0F8B) __sfr LATC; 838 839 typedef struct 840 { 841 unsigned LATC0 : 1; 842 unsigned LATC1 : 1; 843 unsigned LATC2 : 1; 844 unsigned LATC3 : 1; 845 unsigned LATC4 : 1; 846 unsigned LATC5 : 1; 847 unsigned LATC6 : 1; 848 unsigned LATC7 : 1; 849 } __LATCbits_t; 850 851 extern __at(0x0F8B) volatile __LATCbits_t LATCbits; 852 853 #define _LATC0 0x01 854 #define _LATC1 0x02 855 #define _LATC2 0x04 856 #define _LATC3 0x08 857 #define _LATC4 0x10 858 #define _LATC5 0x20 859 #define _LATC6 0x40 860 #define _LATC7 0x80 861 862 //============================================================================== 863 864 865 //============================================================================== 866 // LATD Bits 867 868 extern __at(0x0F8C) __sfr LATD; 869 870 typedef struct 871 { 872 unsigned LATD0 : 1; 873 unsigned LATD1 : 1; 874 unsigned LATD2 : 1; 875 unsigned LATD3 : 1; 876 unsigned LATD4 : 1; 877 unsigned LATD5 : 1; 878 unsigned LATD6 : 1; 879 unsigned LATD7 : 1; 880 } __LATDbits_t; 881 882 extern __at(0x0F8C) volatile __LATDbits_t LATDbits; 883 884 #define _LATD0 0x01 885 #define _LATD1 0x02 886 #define _LATD2 0x04 887 #define _LATD3 0x08 888 #define _LATD4 0x10 889 #define _LATD5 0x20 890 #define _LATD6 0x40 891 #define _LATD7 0x80 892 893 //============================================================================== 894 895 896 //============================================================================== 897 // LATE Bits 898 899 extern __at(0x0F8D) __sfr LATE; 900 901 typedef struct 902 { 903 unsigned LATE0 : 1; 904 unsigned LATE1 : 1; 905 unsigned LATE2 : 1; 906 unsigned LATE3 : 1; 907 unsigned LATE4 : 1; 908 unsigned LATE5 : 1; 909 unsigned LATE6 : 1; 910 unsigned LATE7 : 1; 911 } __LATEbits_t; 912 913 extern __at(0x0F8D) volatile __LATEbits_t LATEbits; 914 915 #define _LATE0 0x01 916 #define _LATE1 0x02 917 #define _LATE2 0x04 918 #define _LATE3 0x08 919 #define _LATE4 0x10 920 #define _LATE5 0x20 921 #define _LATE6 0x40 922 #define _LATE7 0x80 923 924 //============================================================================== 925 926 927 //============================================================================== 928 // LATF Bits 929 930 extern __at(0x0F8E) __sfr LATF; 931 932 typedef struct 933 { 934 unsigned LATF0 : 1; 935 unsigned LATF1 : 1; 936 unsigned LATF2 : 1; 937 unsigned LATF3 : 1; 938 unsigned LATF4 : 1; 939 unsigned LATF5 : 1; 940 unsigned LATF6 : 1; 941 unsigned LATF7 : 1; 942 } __LATFbits_t; 943 944 extern __at(0x0F8E) volatile __LATFbits_t LATFbits; 945 946 #define _LATF0 0x01 947 #define _LATF1 0x02 948 #define _LATF2 0x04 949 #define _LATF3 0x08 950 #define _LATF4 0x10 951 #define _LATF5 0x20 952 #define _LATF6 0x40 953 #define _LATF7 0x80 954 955 //============================================================================== 956 957 958 //============================================================================== 959 // LATG Bits 960 961 extern __at(0x0F8F) __sfr LATG; 962 963 typedef union 964 { 965 struct 966 { 967 unsigned LATG0 : 1; 968 unsigned LATG1 : 1; 969 unsigned LATG2 : 1; 970 unsigned LATG3 : 1; 971 unsigned LATG4 : 1; 972 unsigned : 1; 973 unsigned : 1; 974 unsigned : 1; 975 }; 976 977 struct 978 { 979 unsigned LATG : 5; 980 unsigned : 3; 981 }; 982 } __LATGbits_t; 983 984 extern __at(0x0F8F) volatile __LATGbits_t LATGbits; 985 986 #define _LATG0 0x01 987 #define _LATG1 0x02 988 #define _LATG2 0x04 989 #define _LATG3 0x08 990 #define _LATG4 0x10 991 992 //============================================================================== 993 994 995 //============================================================================== 996 // DDRA Bits 997 998 extern __at(0x0F92) __sfr DDRA; 999 1000 typedef union 1001 { 1002 struct 1003 { 1004 unsigned TRISA0 : 1; 1005 unsigned TRISA1 : 1; 1006 unsigned TRISA2 : 1; 1007 unsigned TRISA3 : 1; 1008 unsigned TRISA4 : 1; 1009 unsigned TRISA5 : 1; 1010 unsigned TRISA6 : 1; 1011 unsigned TRISA7 : 1; 1012 }; 1013 1014 struct 1015 { 1016 unsigned RA0 : 1; 1017 unsigned RA1 : 1; 1018 unsigned RA2 : 1; 1019 unsigned RA3 : 1; 1020 unsigned RA4 : 1; 1021 unsigned RA5 : 1; 1022 unsigned RA6 : 1; 1023 unsigned RA7 : 1; 1024 }; 1025 } __DDRAbits_t; 1026 1027 extern __at(0x0F92) volatile __DDRAbits_t DDRAbits; 1028 1029 #define _TRISA0 0x01 1030 #define _RA0 0x01 1031 #define _TRISA1 0x02 1032 #define _RA1 0x02 1033 #define _TRISA2 0x04 1034 #define _RA2 0x04 1035 #define _TRISA3 0x08 1036 #define _RA3 0x08 1037 #define _TRISA4 0x10 1038 #define _RA4 0x10 1039 #define _TRISA5 0x20 1040 #define _RA5 0x20 1041 #define _TRISA6 0x40 1042 #define _RA6 0x40 1043 #define _TRISA7 0x80 1044 #define _RA7 0x80 1045 1046 //============================================================================== 1047 1048 1049 //============================================================================== 1050 // TRISA Bits 1051 1052 extern __at(0x0F92) __sfr TRISA; 1053 1054 typedef union 1055 { 1056 struct 1057 { 1058 unsigned TRISA0 : 1; 1059 unsigned TRISA1 : 1; 1060 unsigned TRISA2 : 1; 1061 unsigned TRISA3 : 1; 1062 unsigned TRISA4 : 1; 1063 unsigned TRISA5 : 1; 1064 unsigned TRISA6 : 1; 1065 unsigned TRISA7 : 1; 1066 }; 1067 1068 struct 1069 { 1070 unsigned RA0 : 1; 1071 unsigned RA1 : 1; 1072 unsigned RA2 : 1; 1073 unsigned RA3 : 1; 1074 unsigned RA4 : 1; 1075 unsigned RA5 : 1; 1076 unsigned RA6 : 1; 1077 unsigned RA7 : 1; 1078 }; 1079 } __TRISAbits_t; 1080 1081 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits; 1082 1083 #define _TRISA_TRISA0 0x01 1084 #define _TRISA_RA0 0x01 1085 #define _TRISA_TRISA1 0x02 1086 #define _TRISA_RA1 0x02 1087 #define _TRISA_TRISA2 0x04 1088 #define _TRISA_RA2 0x04 1089 #define _TRISA_TRISA3 0x08 1090 #define _TRISA_RA3 0x08 1091 #define _TRISA_TRISA4 0x10 1092 #define _TRISA_RA4 0x10 1093 #define _TRISA_TRISA5 0x20 1094 #define _TRISA_RA5 0x20 1095 #define _TRISA_TRISA6 0x40 1096 #define _TRISA_RA6 0x40 1097 #define _TRISA_TRISA7 0x80 1098 #define _TRISA_RA7 0x80 1099 1100 //============================================================================== 1101 1102 1103 //============================================================================== 1104 // DDRB Bits 1105 1106 extern __at(0x0F93) __sfr DDRB; 1107 1108 typedef union 1109 { 1110 struct 1111 { 1112 unsigned TRISB0 : 1; 1113 unsigned TRISB1 : 1; 1114 unsigned TRISB2 : 1; 1115 unsigned TRISB3 : 1; 1116 unsigned TRISB4 : 1; 1117 unsigned TRISB5 : 1; 1118 unsigned TRISB6 : 1; 1119 unsigned TRISB7 : 1; 1120 }; 1121 1122 struct 1123 { 1124 unsigned RB0 : 1; 1125 unsigned RB1 : 1; 1126 unsigned RB2 : 1; 1127 unsigned RB3 : 1; 1128 unsigned RB4 : 1; 1129 unsigned RB5 : 1; 1130 unsigned RB6 : 1; 1131 unsigned RB7 : 1; 1132 }; 1133 } __DDRBbits_t; 1134 1135 extern __at(0x0F93) volatile __DDRBbits_t DDRBbits; 1136 1137 #define _TRISB0 0x01 1138 #define _RB0 0x01 1139 #define _TRISB1 0x02 1140 #define _RB1 0x02 1141 #define _TRISB2 0x04 1142 #define _RB2 0x04 1143 #define _TRISB3 0x08 1144 #define _RB3 0x08 1145 #define _TRISB4 0x10 1146 #define _RB4 0x10 1147 #define _TRISB5 0x20 1148 #define _RB5 0x20 1149 #define _TRISB6 0x40 1150 #define _RB6 0x40 1151 #define _TRISB7 0x80 1152 #define _RB7 0x80 1153 1154 //============================================================================== 1155 1156 1157 //============================================================================== 1158 // TRISB Bits 1159 1160 extern __at(0x0F93) __sfr TRISB; 1161 1162 typedef union 1163 { 1164 struct 1165 { 1166 unsigned TRISB0 : 1; 1167 unsigned TRISB1 : 1; 1168 unsigned TRISB2 : 1; 1169 unsigned TRISB3 : 1; 1170 unsigned TRISB4 : 1; 1171 unsigned TRISB5 : 1; 1172 unsigned TRISB6 : 1; 1173 unsigned TRISB7 : 1; 1174 }; 1175 1176 struct 1177 { 1178 unsigned RB0 : 1; 1179 unsigned RB1 : 1; 1180 unsigned RB2 : 1; 1181 unsigned RB3 : 1; 1182 unsigned RB4 : 1; 1183 unsigned RB5 : 1; 1184 unsigned RB6 : 1; 1185 unsigned RB7 : 1; 1186 }; 1187 } __TRISBbits_t; 1188 1189 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits; 1190 1191 #define _TRISB_TRISB0 0x01 1192 #define _TRISB_RB0 0x01 1193 #define _TRISB_TRISB1 0x02 1194 #define _TRISB_RB1 0x02 1195 #define _TRISB_TRISB2 0x04 1196 #define _TRISB_RB2 0x04 1197 #define _TRISB_TRISB3 0x08 1198 #define _TRISB_RB3 0x08 1199 #define _TRISB_TRISB4 0x10 1200 #define _TRISB_RB4 0x10 1201 #define _TRISB_TRISB5 0x20 1202 #define _TRISB_RB5 0x20 1203 #define _TRISB_TRISB6 0x40 1204 #define _TRISB_RB6 0x40 1205 #define _TRISB_TRISB7 0x80 1206 #define _TRISB_RB7 0x80 1207 1208 //============================================================================== 1209 1210 1211 //============================================================================== 1212 // DDRC Bits 1213 1214 extern __at(0x0F94) __sfr DDRC; 1215 1216 typedef union 1217 { 1218 struct 1219 { 1220 unsigned TRISC0 : 1; 1221 unsigned TRISC1 : 1; 1222 unsigned TRISC2 : 1; 1223 unsigned TRISC3 : 1; 1224 unsigned TRISC4 : 1; 1225 unsigned TRISC5 : 1; 1226 unsigned TRISC6 : 1; 1227 unsigned TRISC7 : 1; 1228 }; 1229 1230 struct 1231 { 1232 unsigned RC0 : 1; 1233 unsigned RC1 : 1; 1234 unsigned RC2 : 1; 1235 unsigned RC3 : 1; 1236 unsigned RC4 : 1; 1237 unsigned RC5 : 1; 1238 unsigned RC6 : 1; 1239 unsigned RC7 : 1; 1240 }; 1241 } __DDRCbits_t; 1242 1243 extern __at(0x0F94) volatile __DDRCbits_t DDRCbits; 1244 1245 #define _TRISC0 0x01 1246 #define _RC0 0x01 1247 #define _TRISC1 0x02 1248 #define _RC1 0x02 1249 #define _TRISC2 0x04 1250 #define _RC2 0x04 1251 #define _TRISC3 0x08 1252 #define _RC3 0x08 1253 #define _TRISC4 0x10 1254 #define _RC4 0x10 1255 #define _TRISC5 0x20 1256 #define _RC5 0x20 1257 #define _TRISC6 0x40 1258 #define _RC6 0x40 1259 #define _TRISC7 0x80 1260 #define _RC7 0x80 1261 1262 //============================================================================== 1263 1264 1265 //============================================================================== 1266 // TRISC Bits 1267 1268 extern __at(0x0F94) __sfr TRISC; 1269 1270 typedef union 1271 { 1272 struct 1273 { 1274 unsigned TRISC0 : 1; 1275 unsigned TRISC1 : 1; 1276 unsigned TRISC2 : 1; 1277 unsigned TRISC3 : 1; 1278 unsigned TRISC4 : 1; 1279 unsigned TRISC5 : 1; 1280 unsigned TRISC6 : 1; 1281 unsigned TRISC7 : 1; 1282 }; 1283 1284 struct 1285 { 1286 unsigned RC0 : 1; 1287 unsigned RC1 : 1; 1288 unsigned RC2 : 1; 1289 unsigned RC3 : 1; 1290 unsigned RC4 : 1; 1291 unsigned RC5 : 1; 1292 unsigned RC6 : 1; 1293 unsigned RC7 : 1; 1294 }; 1295 } __TRISCbits_t; 1296 1297 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits; 1298 1299 #define _TRISC_TRISC0 0x01 1300 #define _TRISC_RC0 0x01 1301 #define _TRISC_TRISC1 0x02 1302 #define _TRISC_RC1 0x02 1303 #define _TRISC_TRISC2 0x04 1304 #define _TRISC_RC2 0x04 1305 #define _TRISC_TRISC3 0x08 1306 #define _TRISC_RC3 0x08 1307 #define _TRISC_TRISC4 0x10 1308 #define _TRISC_RC4 0x10 1309 #define _TRISC_TRISC5 0x20 1310 #define _TRISC_RC5 0x20 1311 #define _TRISC_TRISC6 0x40 1312 #define _TRISC_RC6 0x40 1313 #define _TRISC_TRISC7 0x80 1314 #define _TRISC_RC7 0x80 1315 1316 //============================================================================== 1317 1318 1319 //============================================================================== 1320 // DDRD Bits 1321 1322 extern __at(0x0F95) __sfr DDRD; 1323 1324 typedef union 1325 { 1326 struct 1327 { 1328 unsigned TRISD0 : 1; 1329 unsigned TRISD1 : 1; 1330 unsigned TRISD2 : 1; 1331 unsigned TRISD3 : 1; 1332 unsigned TRISD4 : 1; 1333 unsigned TRISD5 : 1; 1334 unsigned TRISD6 : 1; 1335 unsigned TRISD7 : 1; 1336 }; 1337 1338 struct 1339 { 1340 unsigned RD0 : 1; 1341 unsigned RD1 : 1; 1342 unsigned RD2 : 1; 1343 unsigned RD3 : 1; 1344 unsigned RD4 : 1; 1345 unsigned RD5 : 1; 1346 unsigned RD6 : 1; 1347 unsigned RD7 : 1; 1348 }; 1349 } __DDRDbits_t; 1350 1351 extern __at(0x0F95) volatile __DDRDbits_t DDRDbits; 1352 1353 #define _TRISD0 0x01 1354 #define _RD0 0x01 1355 #define _TRISD1 0x02 1356 #define _RD1 0x02 1357 #define _TRISD2 0x04 1358 #define _RD2 0x04 1359 #define _TRISD3 0x08 1360 #define _RD3 0x08 1361 #define _TRISD4 0x10 1362 #define _RD4 0x10 1363 #define _TRISD5 0x20 1364 #define _RD5 0x20 1365 #define _TRISD6 0x40 1366 #define _RD6 0x40 1367 #define _TRISD7 0x80 1368 #define _RD7 0x80 1369 1370 //============================================================================== 1371 1372 1373 //============================================================================== 1374 // TRISD Bits 1375 1376 extern __at(0x0F95) __sfr TRISD; 1377 1378 typedef union 1379 { 1380 struct 1381 { 1382 unsigned TRISD0 : 1; 1383 unsigned TRISD1 : 1; 1384 unsigned TRISD2 : 1; 1385 unsigned TRISD3 : 1; 1386 unsigned TRISD4 : 1; 1387 unsigned TRISD5 : 1; 1388 unsigned TRISD6 : 1; 1389 unsigned TRISD7 : 1; 1390 }; 1391 1392 struct 1393 { 1394 unsigned RD0 : 1; 1395 unsigned RD1 : 1; 1396 unsigned RD2 : 1; 1397 unsigned RD3 : 1; 1398 unsigned RD4 : 1; 1399 unsigned RD5 : 1; 1400 unsigned RD6 : 1; 1401 unsigned RD7 : 1; 1402 }; 1403 } __TRISDbits_t; 1404 1405 extern __at(0x0F95) volatile __TRISDbits_t TRISDbits; 1406 1407 #define _TRISD_TRISD0 0x01 1408 #define _TRISD_RD0 0x01 1409 #define _TRISD_TRISD1 0x02 1410 #define _TRISD_RD1 0x02 1411 #define _TRISD_TRISD2 0x04 1412 #define _TRISD_RD2 0x04 1413 #define _TRISD_TRISD3 0x08 1414 #define _TRISD_RD3 0x08 1415 #define _TRISD_TRISD4 0x10 1416 #define _TRISD_RD4 0x10 1417 #define _TRISD_TRISD5 0x20 1418 #define _TRISD_RD5 0x20 1419 #define _TRISD_TRISD6 0x40 1420 #define _TRISD_RD6 0x40 1421 #define _TRISD_TRISD7 0x80 1422 #define _TRISD_RD7 0x80 1423 1424 //============================================================================== 1425 1426 1427 //============================================================================== 1428 // DDRE Bits 1429 1430 extern __at(0x0F96) __sfr DDRE; 1431 1432 typedef union 1433 { 1434 struct 1435 { 1436 unsigned TRISE0 : 1; 1437 unsigned TRISE1 : 1; 1438 unsigned TRISE2 : 1; 1439 unsigned TRISE3 : 1; 1440 unsigned TRISE4 : 1; 1441 unsigned TRISE5 : 1; 1442 unsigned TRISE6 : 1; 1443 unsigned TRISE7 : 1; 1444 }; 1445 1446 struct 1447 { 1448 unsigned RE0 : 1; 1449 unsigned RE1 : 1; 1450 unsigned RE2 : 1; 1451 unsigned RE3 : 1; 1452 unsigned RE4 : 1; 1453 unsigned RE5 : 1; 1454 unsigned RE6 : 1; 1455 unsigned RE7 : 1; 1456 }; 1457 } __DDREbits_t; 1458 1459 extern __at(0x0F96) volatile __DDREbits_t DDREbits; 1460 1461 #define _TRISE0 0x01 1462 #define _RE0 0x01 1463 #define _TRISE1 0x02 1464 #define _RE1 0x02 1465 #define _TRISE2 0x04 1466 #define _RE2 0x04 1467 #define _TRISE3 0x08 1468 #define _RE3 0x08 1469 #define _TRISE4 0x10 1470 #define _RE4 0x10 1471 #define _TRISE5 0x20 1472 #define _RE5 0x20 1473 #define _TRISE6 0x40 1474 #define _RE6 0x40 1475 #define _TRISE7 0x80 1476 #define _RE7 0x80 1477 1478 //============================================================================== 1479 1480 1481 //============================================================================== 1482 // TRISE Bits 1483 1484 extern __at(0x0F96) __sfr TRISE; 1485 1486 typedef union 1487 { 1488 struct 1489 { 1490 unsigned TRISE0 : 1; 1491 unsigned TRISE1 : 1; 1492 unsigned TRISE2 : 1; 1493 unsigned TRISE3 : 1; 1494 unsigned TRISE4 : 1; 1495 unsigned TRISE5 : 1; 1496 unsigned TRISE6 : 1; 1497 unsigned TRISE7 : 1; 1498 }; 1499 1500 struct 1501 { 1502 unsigned RE0 : 1; 1503 unsigned RE1 : 1; 1504 unsigned RE2 : 1; 1505 unsigned RE3 : 1; 1506 unsigned RE4 : 1; 1507 unsigned RE5 : 1; 1508 unsigned RE6 : 1; 1509 unsigned RE7 : 1; 1510 }; 1511 } __TRISEbits_t; 1512 1513 extern __at(0x0F96) volatile __TRISEbits_t TRISEbits; 1514 1515 #define _TRISE_TRISE0 0x01 1516 #define _TRISE_RE0 0x01 1517 #define _TRISE_TRISE1 0x02 1518 #define _TRISE_RE1 0x02 1519 #define _TRISE_TRISE2 0x04 1520 #define _TRISE_RE2 0x04 1521 #define _TRISE_TRISE3 0x08 1522 #define _TRISE_RE3 0x08 1523 #define _TRISE_TRISE4 0x10 1524 #define _TRISE_RE4 0x10 1525 #define _TRISE_TRISE5 0x20 1526 #define _TRISE_RE5 0x20 1527 #define _TRISE_TRISE6 0x40 1528 #define _TRISE_RE6 0x40 1529 #define _TRISE_TRISE7 0x80 1530 #define _TRISE_RE7 0x80 1531 1532 //============================================================================== 1533 1534 1535 //============================================================================== 1536 // DDRF Bits 1537 1538 extern __at(0x0F97) __sfr DDRF; 1539 1540 typedef union 1541 { 1542 struct 1543 { 1544 unsigned TRISF0 : 1; 1545 unsigned TRISF1 : 1; 1546 unsigned TRISF2 : 1; 1547 unsigned TRISF3 : 1; 1548 unsigned TRISF4 : 1; 1549 unsigned TRISF5 : 1; 1550 unsigned TRISF6 : 1; 1551 unsigned TRISF7 : 1; 1552 }; 1553 1554 struct 1555 { 1556 unsigned RF0 : 1; 1557 unsigned RF1 : 1; 1558 unsigned RF2 : 1; 1559 unsigned RF3 : 1; 1560 unsigned RF4 : 1; 1561 unsigned RF5 : 1; 1562 unsigned RF6 : 1; 1563 unsigned RF7 : 1; 1564 }; 1565 } __DDRFbits_t; 1566 1567 extern __at(0x0F97) volatile __DDRFbits_t DDRFbits; 1568 1569 #define _TRISF0 0x01 1570 #define _RF0 0x01 1571 #define _TRISF1 0x02 1572 #define _RF1 0x02 1573 #define _TRISF2 0x04 1574 #define _RF2 0x04 1575 #define _TRISF3 0x08 1576 #define _RF3 0x08 1577 #define _TRISF4 0x10 1578 #define _RF4 0x10 1579 #define _TRISF5 0x20 1580 #define _RF5 0x20 1581 #define _TRISF6 0x40 1582 #define _RF6 0x40 1583 #define _TRISF7 0x80 1584 #define _RF7 0x80 1585 1586 //============================================================================== 1587 1588 1589 //============================================================================== 1590 // TRISF Bits 1591 1592 extern __at(0x0F97) __sfr TRISF; 1593 1594 typedef union 1595 { 1596 struct 1597 { 1598 unsigned TRISF0 : 1; 1599 unsigned TRISF1 : 1; 1600 unsigned TRISF2 : 1; 1601 unsigned TRISF3 : 1; 1602 unsigned TRISF4 : 1; 1603 unsigned TRISF5 : 1; 1604 unsigned TRISF6 : 1; 1605 unsigned TRISF7 : 1; 1606 }; 1607 1608 struct 1609 { 1610 unsigned RF0 : 1; 1611 unsigned RF1 : 1; 1612 unsigned RF2 : 1; 1613 unsigned RF3 : 1; 1614 unsigned RF4 : 1; 1615 unsigned RF5 : 1; 1616 unsigned RF6 : 1; 1617 unsigned RF7 : 1; 1618 }; 1619 } __TRISFbits_t; 1620 1621 extern __at(0x0F97) volatile __TRISFbits_t TRISFbits; 1622 1623 #define _TRISF_TRISF0 0x01 1624 #define _TRISF_RF0 0x01 1625 #define _TRISF_TRISF1 0x02 1626 #define _TRISF_RF1 0x02 1627 #define _TRISF_TRISF2 0x04 1628 #define _TRISF_RF2 0x04 1629 #define _TRISF_TRISF3 0x08 1630 #define _TRISF_RF3 0x08 1631 #define _TRISF_TRISF4 0x10 1632 #define _TRISF_RF4 0x10 1633 #define _TRISF_TRISF5 0x20 1634 #define _TRISF_RF5 0x20 1635 #define _TRISF_TRISF6 0x40 1636 #define _TRISF_RF6 0x40 1637 #define _TRISF_TRISF7 0x80 1638 #define _TRISF_RF7 0x80 1639 1640 //============================================================================== 1641 1642 1643 //============================================================================== 1644 // DDRG Bits 1645 1646 extern __at(0x0F98) __sfr DDRG; 1647 1648 typedef union 1649 { 1650 struct 1651 { 1652 unsigned TRISG0 : 1; 1653 unsigned TRISG1 : 1; 1654 unsigned TRISG2 : 1; 1655 unsigned TRISG3 : 1; 1656 unsigned TRISG4 : 1; 1657 unsigned : 1; 1658 unsigned : 1; 1659 unsigned : 1; 1660 }; 1661 1662 struct 1663 { 1664 unsigned RG0 : 1; 1665 unsigned RG1 : 1; 1666 unsigned RG2 : 1; 1667 unsigned RG3 : 1; 1668 unsigned RG4 : 1; 1669 unsigned : 1; 1670 unsigned : 1; 1671 unsigned : 1; 1672 }; 1673 1674 struct 1675 { 1676 unsigned RG : 5; 1677 unsigned : 3; 1678 }; 1679 1680 struct 1681 { 1682 unsigned TRISG : 5; 1683 unsigned : 3; 1684 }; 1685 } __DDRGbits_t; 1686 1687 extern __at(0x0F98) volatile __DDRGbits_t DDRGbits; 1688 1689 #define _TRISG0 0x01 1690 #define _RG0 0x01 1691 #define _TRISG1 0x02 1692 #define _RG1 0x02 1693 #define _TRISG2 0x04 1694 #define _RG2 0x04 1695 #define _TRISG3 0x08 1696 #define _RG3 0x08 1697 #define _TRISG4 0x10 1698 #define _RG4 0x10 1699 1700 //============================================================================== 1701 1702 1703 //============================================================================== 1704 // TRISG Bits 1705 1706 extern __at(0x0F98) __sfr TRISG; 1707 1708 typedef union 1709 { 1710 struct 1711 { 1712 unsigned TRISG0 : 1; 1713 unsigned TRISG1 : 1; 1714 unsigned TRISG2 : 1; 1715 unsigned TRISG3 : 1; 1716 unsigned TRISG4 : 1; 1717 unsigned : 1; 1718 unsigned : 1; 1719 unsigned : 1; 1720 }; 1721 1722 struct 1723 { 1724 unsigned RG0 : 1; 1725 unsigned RG1 : 1; 1726 unsigned RG2 : 1; 1727 unsigned RG3 : 1; 1728 unsigned RG4 : 1; 1729 unsigned : 1; 1730 unsigned : 1; 1731 unsigned : 1; 1732 }; 1733 1734 struct 1735 { 1736 unsigned TRISG : 5; 1737 unsigned : 3; 1738 }; 1739 1740 struct 1741 { 1742 unsigned RG : 5; 1743 unsigned : 3; 1744 }; 1745 } __TRISGbits_t; 1746 1747 extern __at(0x0F98) volatile __TRISGbits_t TRISGbits; 1748 1749 #define _TRISG_TRISG0 0x01 1750 #define _TRISG_RG0 0x01 1751 #define _TRISG_TRISG1 0x02 1752 #define _TRISG_RG1 0x02 1753 #define _TRISG_TRISG2 0x04 1754 #define _TRISG_RG2 0x04 1755 #define _TRISG_TRISG3 0x08 1756 #define _TRISG_RG3 0x08 1757 #define _TRISG_TRISG4 0x10 1758 #define _TRISG_RG4 0x10 1759 1760 //============================================================================== 1761 1762 1763 //============================================================================== 1764 // OSCTUNE Bits 1765 1766 extern __at(0x0F9B) __sfr OSCTUNE; 1767 1768 typedef union 1769 { 1770 struct 1771 { 1772 unsigned TUN0 : 1; 1773 unsigned TUN1 : 1; 1774 unsigned TUN2 : 1; 1775 unsigned TUN3 : 1; 1776 unsigned TUN4 : 1; 1777 unsigned : 1; 1778 unsigned PLLEN : 1; 1779 unsigned INTSRC : 1; 1780 }; 1781 1782 struct 1783 { 1784 unsigned TUN : 5; 1785 unsigned : 3; 1786 }; 1787 } __OSCTUNEbits_t; 1788 1789 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits; 1790 1791 #define _TUN0 0x01 1792 #define _TUN1 0x02 1793 #define _TUN2 0x04 1794 #define _TUN3 0x08 1795 #define _TUN4 0x10 1796 #define _PLLEN 0x40 1797 #define _INTSRC 0x80 1798 1799 //============================================================================== 1800 1801 1802 //============================================================================== 1803 // PIE1 Bits 1804 1805 extern __at(0x0F9D) __sfr PIE1; 1806 1807 typedef union 1808 { 1809 struct 1810 { 1811 unsigned TMR1IE : 1; 1812 unsigned TMR2IE : 1; 1813 unsigned CCP1IE : 1; 1814 unsigned SSPIE : 1; 1815 unsigned TXIE : 1; 1816 unsigned RCIE : 1; 1817 unsigned ADIE : 1; 1818 unsigned PSPIE : 1; 1819 }; 1820 1821 struct 1822 { 1823 unsigned : 1; 1824 unsigned : 1; 1825 unsigned : 1; 1826 unsigned : 1; 1827 unsigned TX1IE : 1; 1828 unsigned RC1IE : 1; 1829 unsigned : 1; 1830 unsigned : 1; 1831 }; 1832 } __PIE1bits_t; 1833 1834 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits; 1835 1836 #define _TMR1IE 0x01 1837 #define _TMR2IE 0x02 1838 #define _CCP1IE 0x04 1839 #define _SSPIE 0x08 1840 #define _TXIE 0x10 1841 #define _TX1IE 0x10 1842 #define _RCIE 0x20 1843 #define _RC1IE 0x20 1844 #define _ADIE 0x40 1845 #define _PSPIE 0x80 1846 1847 //============================================================================== 1848 1849 1850 //============================================================================== 1851 // PIR1 Bits 1852 1853 extern __at(0x0F9E) __sfr PIR1; 1854 1855 typedef union 1856 { 1857 struct 1858 { 1859 unsigned TMR1IF : 1; 1860 unsigned TMR2IF : 1; 1861 unsigned CCP1IF : 1; 1862 unsigned SSPIF : 1; 1863 unsigned TXIF : 1; 1864 unsigned RCIF : 1; 1865 unsigned ADIF : 1; 1866 unsigned PSPIF : 1; 1867 }; 1868 1869 struct 1870 { 1871 unsigned : 1; 1872 unsigned : 1; 1873 unsigned : 1; 1874 unsigned : 1; 1875 unsigned TX1IF : 1; 1876 unsigned RC1IF : 1; 1877 unsigned : 1; 1878 unsigned : 1; 1879 }; 1880 } __PIR1bits_t; 1881 1882 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits; 1883 1884 #define _TMR1IF 0x01 1885 #define _TMR2IF 0x02 1886 #define _CCP1IF 0x04 1887 #define _SSPIF 0x08 1888 #define _TXIF 0x10 1889 #define _TX1IF 0x10 1890 #define _RCIF 0x20 1891 #define _RC1IF 0x20 1892 #define _ADIF 0x40 1893 #define _PSPIF 0x80 1894 1895 //============================================================================== 1896 1897 1898 //============================================================================== 1899 // IPR1 Bits 1900 1901 extern __at(0x0F9F) __sfr IPR1; 1902 1903 typedef union 1904 { 1905 struct 1906 { 1907 unsigned TMR1IP : 1; 1908 unsigned TMR2IP : 1; 1909 unsigned CCP1IP : 1; 1910 unsigned SSPIP : 1; 1911 unsigned TXIP : 1; 1912 unsigned RCIP : 1; 1913 unsigned ADIP : 1; 1914 unsigned PSPIP : 1; 1915 }; 1916 1917 struct 1918 { 1919 unsigned : 1; 1920 unsigned : 1; 1921 unsigned : 1; 1922 unsigned : 1; 1923 unsigned TX1IP : 1; 1924 unsigned RC1IP : 1; 1925 unsigned : 1; 1926 unsigned : 1; 1927 }; 1928 } __IPR1bits_t; 1929 1930 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits; 1931 1932 #define _TMR1IP 0x01 1933 #define _TMR2IP 0x02 1934 #define _CCP1IP 0x04 1935 #define _SSPIP 0x08 1936 #define _TXIP 0x10 1937 #define _TX1IP 0x10 1938 #define _RCIP 0x20 1939 #define _RC1IP 0x20 1940 #define _ADIP 0x40 1941 #define _PSPIP 0x80 1942 1943 //============================================================================== 1944 1945 1946 //============================================================================== 1947 // PIE2 Bits 1948 1949 extern __at(0x0FA0) __sfr PIE2; 1950 1951 typedef union 1952 { 1953 struct 1954 { 1955 unsigned CCP2IE : 1; 1956 unsigned TMR3IE : 1; 1957 unsigned HLVDIE : 1; 1958 unsigned BCLIE : 1; 1959 unsigned : 1; 1960 unsigned : 1; 1961 unsigned CMIE : 1; 1962 unsigned OSCFIE : 1; 1963 }; 1964 1965 struct 1966 { 1967 unsigned : 1; 1968 unsigned : 1; 1969 unsigned LVDIE : 1; 1970 unsigned : 1; 1971 unsigned : 1; 1972 unsigned : 1; 1973 unsigned : 1; 1974 unsigned : 1; 1975 }; 1976 } __PIE2bits_t; 1977 1978 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits; 1979 1980 #define _CCP2IE 0x01 1981 #define _TMR3IE 0x02 1982 #define _HLVDIE 0x04 1983 #define _LVDIE 0x04 1984 #define _BCLIE 0x08 1985 #define _CMIE 0x40 1986 #define _OSCFIE 0x80 1987 1988 //============================================================================== 1989 1990 1991 //============================================================================== 1992 // PIR2 Bits 1993 1994 extern __at(0x0FA1) __sfr PIR2; 1995 1996 typedef union 1997 { 1998 struct 1999 { 2000 unsigned CCP2IF : 1; 2001 unsigned TMR3IF : 1; 2002 unsigned HLVDIF : 1; 2003 unsigned BCLIF : 1; 2004 unsigned : 1; 2005 unsigned : 1; 2006 unsigned CMIF : 1; 2007 unsigned OSCFIF : 1; 2008 }; 2009 2010 struct 2011 { 2012 unsigned : 1; 2013 unsigned : 1; 2014 unsigned LVDIF : 1; 2015 unsigned : 1; 2016 unsigned : 1; 2017 unsigned : 1; 2018 unsigned : 1; 2019 unsigned : 1; 2020 }; 2021 } __PIR2bits_t; 2022 2023 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits; 2024 2025 #define _CCP2IF 0x01 2026 #define _TMR3IF 0x02 2027 #define _HLVDIF 0x04 2028 #define _LVDIF 0x04 2029 #define _BCLIF 0x08 2030 #define _CMIF 0x40 2031 #define _OSCFIF 0x80 2032 2033 //============================================================================== 2034 2035 2036 //============================================================================== 2037 // IPR2 Bits 2038 2039 extern __at(0x0FA2) __sfr IPR2; 2040 2041 typedef union 2042 { 2043 struct 2044 { 2045 unsigned CCP2IP : 1; 2046 unsigned TMR3IP : 1; 2047 unsigned HLVDIP : 1; 2048 unsigned BCLIP : 1; 2049 unsigned : 1; 2050 unsigned : 1; 2051 unsigned CMIP : 1; 2052 unsigned OSCFIP : 1; 2053 }; 2054 2055 struct 2056 { 2057 unsigned : 1; 2058 unsigned : 1; 2059 unsigned LVDIP : 1; 2060 unsigned : 1; 2061 unsigned : 1; 2062 unsigned : 1; 2063 unsigned : 1; 2064 unsigned : 1; 2065 }; 2066 } __IPR2bits_t; 2067 2068 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits; 2069 2070 #define _CCP2IP 0x01 2071 #define _TMR3IP 0x02 2072 #define _HLVDIP 0x04 2073 #define _LVDIP 0x04 2074 #define _BCLIP 0x08 2075 #define _CMIP 0x40 2076 #define _OSCFIP 0x80 2077 2078 //============================================================================== 2079 2080 2081 //============================================================================== 2082 // PIE3 Bits 2083 2084 extern __at(0x0FA3) __sfr PIE3; 2085 2086 typedef struct 2087 { 2088 unsigned CCP3IE : 1; 2089 unsigned : 1; 2090 unsigned : 1; 2091 unsigned : 1; 2092 unsigned TX2IE : 1; 2093 unsigned RC2IE : 1; 2094 unsigned : 1; 2095 unsigned : 1; 2096 } __PIE3bits_t; 2097 2098 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits; 2099 2100 #define _CCP3IE 0x01 2101 #define _TX2IE 0x10 2102 #define _RC2IE 0x20 2103 2104 //============================================================================== 2105 2106 2107 //============================================================================== 2108 // PIR3 Bits 2109 2110 extern __at(0x0FA4) __sfr PIR3; 2111 2112 typedef struct 2113 { 2114 unsigned CCP3IF : 1; 2115 unsigned : 1; 2116 unsigned : 1; 2117 unsigned : 1; 2118 unsigned TX2IF : 1; 2119 unsigned RC2IF : 1; 2120 unsigned : 1; 2121 unsigned : 1; 2122 } __PIR3bits_t; 2123 2124 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits; 2125 2126 #define _CCP3IF 0x01 2127 #define _TX2IF 0x10 2128 #define _RC2IF 0x20 2129 2130 //============================================================================== 2131 2132 2133 //============================================================================== 2134 // IPR3 Bits 2135 2136 extern __at(0x0FA5) __sfr IPR3; 2137 2138 typedef struct 2139 { 2140 unsigned CCP3IP : 1; 2141 unsigned : 1; 2142 unsigned : 1; 2143 unsigned : 1; 2144 unsigned TX2IP : 1; 2145 unsigned RC2IP : 1; 2146 unsigned : 1; 2147 unsigned : 1; 2148 } __IPR3bits_t; 2149 2150 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits; 2151 2152 #define _CCP3IP 0x01 2153 #define _TX2IP 0x10 2154 #define _RC2IP 0x20 2155 2156 //============================================================================== 2157 2158 2159 //============================================================================== 2160 // RCSTA Bits 2161 2162 extern __at(0x0FAB) __sfr RCSTA; 2163 2164 typedef union 2165 { 2166 struct 2167 { 2168 unsigned RX9D : 1; 2169 unsigned OERR : 1; 2170 unsigned FERR : 1; 2171 unsigned ADDEN : 1; 2172 unsigned CREN : 1; 2173 unsigned SREN : 1; 2174 unsigned RX9 : 1; 2175 unsigned SPEN : 1; 2176 }; 2177 2178 struct 2179 { 2180 unsigned RX9D1 : 1; 2181 unsigned OERR1 : 1; 2182 unsigned FERR1 : 1; 2183 unsigned ADEN : 1; 2184 unsigned CREN1 : 1; 2185 unsigned SREN1 : 1; 2186 unsigned RX91 : 1; 2187 unsigned SPEN1 : 1; 2188 }; 2189 2190 struct 2191 { 2192 unsigned : 1; 2193 unsigned : 1; 2194 unsigned : 1; 2195 unsigned ADDEN1 : 1; 2196 unsigned : 1; 2197 unsigned : 1; 2198 unsigned : 1; 2199 unsigned : 1; 2200 }; 2201 } __RCSTAbits_t; 2202 2203 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits; 2204 2205 #define _RX9D 0x01 2206 #define _RX9D1 0x01 2207 #define _OERR 0x02 2208 #define _OERR1 0x02 2209 #define _FERR 0x04 2210 #define _FERR1 0x04 2211 #define _ADDEN 0x08 2212 #define _ADEN 0x08 2213 #define _ADDEN1 0x08 2214 #define _CREN 0x10 2215 #define _CREN1 0x10 2216 #define _SREN 0x20 2217 #define _SREN1 0x20 2218 #define _RX9 0x40 2219 #define _RX91 0x40 2220 #define _SPEN 0x80 2221 #define _SPEN1 0x80 2222 2223 //============================================================================== 2224 2225 2226 //============================================================================== 2227 // RCSTA1 Bits 2228 2229 extern __at(0x0FAB) __sfr RCSTA1; 2230 2231 typedef union 2232 { 2233 struct 2234 { 2235 unsigned RX9D : 1; 2236 unsigned OERR : 1; 2237 unsigned FERR : 1; 2238 unsigned ADDEN : 1; 2239 unsigned CREN : 1; 2240 unsigned SREN : 1; 2241 unsigned RX9 : 1; 2242 unsigned SPEN : 1; 2243 }; 2244 2245 struct 2246 { 2247 unsigned RX9D1 : 1; 2248 unsigned OERR1 : 1; 2249 unsigned FERR1 : 1; 2250 unsigned ADEN : 1; 2251 unsigned CREN1 : 1; 2252 unsigned SREN1 : 1; 2253 unsigned RX91 : 1; 2254 unsigned SPEN1 : 1; 2255 }; 2256 2257 struct 2258 { 2259 unsigned : 1; 2260 unsigned : 1; 2261 unsigned : 1; 2262 unsigned ADDEN1 : 1; 2263 unsigned : 1; 2264 unsigned : 1; 2265 unsigned : 1; 2266 unsigned : 1; 2267 }; 2268 } __RCSTA1bits_t; 2269 2270 extern __at(0x0FAB) volatile __RCSTA1bits_t RCSTA1bits; 2271 2272 #define _RCSTA1_RX9D 0x01 2273 #define _RCSTA1_RX9D1 0x01 2274 #define _RCSTA1_OERR 0x02 2275 #define _RCSTA1_OERR1 0x02 2276 #define _RCSTA1_FERR 0x04 2277 #define _RCSTA1_FERR1 0x04 2278 #define _RCSTA1_ADDEN 0x08 2279 #define _RCSTA1_ADEN 0x08 2280 #define _RCSTA1_ADDEN1 0x08 2281 #define _RCSTA1_CREN 0x10 2282 #define _RCSTA1_CREN1 0x10 2283 #define _RCSTA1_SREN 0x20 2284 #define _RCSTA1_SREN1 0x20 2285 #define _RCSTA1_RX9 0x40 2286 #define _RCSTA1_RX91 0x40 2287 #define _RCSTA1_SPEN 0x80 2288 #define _RCSTA1_SPEN1 0x80 2289 2290 //============================================================================== 2291 2292 2293 //============================================================================== 2294 // TXSTA Bits 2295 2296 extern __at(0x0FAC) __sfr TXSTA; 2297 2298 typedef union 2299 { 2300 struct 2301 { 2302 unsigned TX9D : 1; 2303 unsigned TRMT : 1; 2304 unsigned BRGH : 1; 2305 unsigned SENDB : 1; 2306 unsigned SYNC : 1; 2307 unsigned TXEN : 1; 2308 unsigned TX9 : 1; 2309 unsigned CSRC : 1; 2310 }; 2311 2312 struct 2313 { 2314 unsigned TX9D1 : 1; 2315 unsigned TRMT1 : 1; 2316 unsigned BRGH1 : 1; 2317 unsigned SENDB1 : 1; 2318 unsigned SYNC1 : 1; 2319 unsigned TXEN1 : 1; 2320 unsigned TX91 : 1; 2321 unsigned CSRC1 : 1; 2322 }; 2323 } __TXSTAbits_t; 2324 2325 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits; 2326 2327 #define _TX9D 0x01 2328 #define _TX9D1 0x01 2329 #define _TRMT 0x02 2330 #define _TRMT1 0x02 2331 #define _BRGH 0x04 2332 #define _BRGH1 0x04 2333 #define _SENDB 0x08 2334 #define _SENDB1 0x08 2335 #define _SYNC 0x10 2336 #define _SYNC1 0x10 2337 #define _TXEN 0x20 2338 #define _TXEN1 0x20 2339 #define _TX9 0x40 2340 #define _TX91 0x40 2341 #define _CSRC 0x80 2342 #define _CSRC1 0x80 2343 2344 //============================================================================== 2345 2346 2347 //============================================================================== 2348 // TXSTA1 Bits 2349 2350 extern __at(0x0FAC) __sfr TXSTA1; 2351 2352 typedef union 2353 { 2354 struct 2355 { 2356 unsigned TX9D : 1; 2357 unsigned TRMT : 1; 2358 unsigned BRGH : 1; 2359 unsigned SENDB : 1; 2360 unsigned SYNC : 1; 2361 unsigned TXEN : 1; 2362 unsigned TX9 : 1; 2363 unsigned CSRC : 1; 2364 }; 2365 2366 struct 2367 { 2368 unsigned TX9D1 : 1; 2369 unsigned TRMT1 : 1; 2370 unsigned BRGH1 : 1; 2371 unsigned SENDB1 : 1; 2372 unsigned SYNC1 : 1; 2373 unsigned TXEN1 : 1; 2374 unsigned TX91 : 1; 2375 unsigned CSRC1 : 1; 2376 }; 2377 } __TXSTA1bits_t; 2378 2379 extern __at(0x0FAC) volatile __TXSTA1bits_t TXSTA1bits; 2380 2381 #define _TXSTA1_TX9D 0x01 2382 #define _TXSTA1_TX9D1 0x01 2383 #define _TXSTA1_TRMT 0x02 2384 #define _TXSTA1_TRMT1 0x02 2385 #define _TXSTA1_BRGH 0x04 2386 #define _TXSTA1_BRGH1 0x04 2387 #define _TXSTA1_SENDB 0x08 2388 #define _TXSTA1_SENDB1 0x08 2389 #define _TXSTA1_SYNC 0x10 2390 #define _TXSTA1_SYNC1 0x10 2391 #define _TXSTA1_TXEN 0x20 2392 #define _TXSTA1_TXEN1 0x20 2393 #define _TXSTA1_TX9 0x40 2394 #define _TXSTA1_TX91 0x40 2395 #define _TXSTA1_CSRC 0x80 2396 #define _TXSTA1_CSRC1 0x80 2397 2398 //============================================================================== 2399 2400 extern __at(0x0FAD) __sfr TXREG; 2401 extern __at(0x0FAD) __sfr TXREG1; 2402 extern __at(0x0FAE) __sfr RCREG; 2403 extern __at(0x0FAE) __sfr RCREG1; 2404 extern __at(0x0FAF) __sfr SPBRG; 2405 extern __at(0x0FAF) __sfr SPBRG1; 2406 2407 //============================================================================== 2408 // PSPCON Bits 2409 2410 extern __at(0x0FB0) __sfr PSPCON; 2411 2412 typedef struct 2413 { 2414 unsigned : 1; 2415 unsigned : 1; 2416 unsigned : 1; 2417 unsigned : 1; 2418 unsigned PSPMODE : 1; 2419 unsigned IBOV : 1; 2420 unsigned OBF : 1; 2421 unsigned IBF : 1; 2422 } __PSPCONbits_t; 2423 2424 extern __at(0x0FB0) volatile __PSPCONbits_t PSPCONbits; 2425 2426 #define _PSPMODE 0x10 2427 #define _IBOV 0x20 2428 #define _OBF 0x40 2429 #define _IBF 0x80 2430 2431 //============================================================================== 2432 2433 2434 //============================================================================== 2435 // T3CON Bits 2436 2437 extern __at(0x0FB1) __sfr T3CON; 2438 2439 typedef union 2440 { 2441 struct 2442 { 2443 unsigned TMR3ON : 1; 2444 unsigned TMR3CS : 1; 2445 unsigned NOT_T3SYNC : 1; 2446 unsigned T3CCP1 : 1; 2447 unsigned T3CKPS0 : 1; 2448 unsigned T3CKPS1 : 1; 2449 unsigned T3CCP2 : 1; 2450 unsigned RD16 : 1; 2451 }; 2452 2453 struct 2454 { 2455 unsigned : 1; 2456 unsigned : 1; 2457 unsigned T3SYNC : 1; 2458 unsigned : 1; 2459 unsigned : 1; 2460 unsigned : 1; 2461 unsigned : 1; 2462 unsigned : 1; 2463 }; 2464 2465 struct 2466 { 2467 unsigned : 1; 2468 unsigned : 1; 2469 unsigned T3INSYNC : 1; 2470 unsigned : 1; 2471 unsigned : 1; 2472 unsigned : 1; 2473 unsigned : 1; 2474 unsigned : 1; 2475 }; 2476 2477 struct 2478 { 2479 unsigned : 4; 2480 unsigned T3CKPS : 2; 2481 unsigned : 2; 2482 }; 2483 } __T3CONbits_t; 2484 2485 extern __at(0x0FB1) volatile __T3CONbits_t T3CONbits; 2486 2487 #define _T3CON_TMR3ON 0x01 2488 #define _T3CON_TMR3CS 0x02 2489 #define _T3CON_NOT_T3SYNC 0x04 2490 #define _T3CON_T3SYNC 0x04 2491 #define _T3CON_T3INSYNC 0x04 2492 #define _T3CON_T3CCP1 0x08 2493 #define _T3CON_T3CKPS0 0x10 2494 #define _T3CON_T3CKPS1 0x20 2495 #define _T3CON_T3CCP2 0x40 2496 #define _T3CON_RD16 0x80 2497 2498 //============================================================================== 2499 2500 extern __at(0x0FB2) __sfr TMR3; 2501 extern __at(0x0FB2) __sfr TMR3L; 2502 extern __at(0x0FB3) __sfr TMR3H; 2503 2504 //============================================================================== 2505 // CMCON Bits 2506 2507 extern __at(0x0FB4) __sfr CMCON; 2508 2509 typedef union 2510 { 2511 struct 2512 { 2513 unsigned CM0 : 1; 2514 unsigned CM1 : 1; 2515 unsigned CM2 : 1; 2516 unsigned CIS : 1; 2517 unsigned C1INV : 1; 2518 unsigned C2INV : 1; 2519 unsigned C1OUT : 1; 2520 unsigned C2OUT : 1; 2521 }; 2522 2523 struct 2524 { 2525 unsigned CM : 3; 2526 unsigned : 5; 2527 }; 2528 } __CMCONbits_t; 2529 2530 extern __at(0x0FB4) volatile __CMCONbits_t CMCONbits; 2531 2532 #define _CM0 0x01 2533 #define _CM1 0x02 2534 #define _CM2 0x04 2535 #define _CIS 0x08 2536 #define _C1INV 0x10 2537 #define _C2INV 0x20 2538 #define _C1OUT 0x40 2539 #define _C2OUT 0x80 2540 2541 //============================================================================== 2542 2543 2544 //============================================================================== 2545 // CVRCON Bits 2546 2547 extern __at(0x0FB5) __sfr CVRCON; 2548 2549 typedef union 2550 { 2551 struct 2552 { 2553 unsigned CVR0 : 1; 2554 unsigned CVR1 : 1; 2555 unsigned CVR2 : 1; 2556 unsigned CVR3 : 1; 2557 unsigned CVRSS : 1; 2558 unsigned CVRR : 1; 2559 unsigned CVROE : 1; 2560 unsigned CVREN : 1; 2561 }; 2562 2563 struct 2564 { 2565 unsigned : 1; 2566 unsigned : 1; 2567 unsigned : 1; 2568 unsigned : 1; 2569 unsigned CVREF : 1; 2570 unsigned : 1; 2571 unsigned : 1; 2572 unsigned : 1; 2573 }; 2574 2575 struct 2576 { 2577 unsigned CVR : 4; 2578 unsigned : 4; 2579 }; 2580 } __CVRCONbits_t; 2581 2582 extern __at(0x0FB5) volatile __CVRCONbits_t CVRCONbits; 2583 2584 #define _CVR0 0x01 2585 #define _CVR1 0x02 2586 #define _CVR2 0x04 2587 #define _CVR3 0x08 2588 #define _CVRSS 0x10 2589 #define _CVREF 0x10 2590 #define _CVRR 0x20 2591 #define _CVROE 0x40 2592 #define _CVREN 0x80 2593 2594 //============================================================================== 2595 2596 2597 //============================================================================== 2598 // CCP3CON Bits 2599 2600 extern __at(0x0FB7) __sfr CCP3CON; 2601 2602 typedef union 2603 { 2604 struct 2605 { 2606 unsigned CCP3M0 : 1; 2607 unsigned CCP3M1 : 1; 2608 unsigned CCP3M2 : 1; 2609 unsigned CCP3M3 : 1; 2610 unsigned DCCP3Y : 1; 2611 unsigned DCCP3X : 1; 2612 unsigned : 1; 2613 unsigned : 1; 2614 }; 2615 2616 struct 2617 { 2618 unsigned : 1; 2619 unsigned : 1; 2620 unsigned : 1; 2621 unsigned : 1; 2622 unsigned DC3B0 : 1; 2623 unsigned DC3B1 : 1; 2624 unsigned : 1; 2625 unsigned : 1; 2626 }; 2627 2628 struct 2629 { 2630 unsigned CCP3M : 4; 2631 unsigned : 4; 2632 }; 2633 2634 struct 2635 { 2636 unsigned : 4; 2637 unsigned DC3B : 2; 2638 unsigned : 2; 2639 }; 2640 } __CCP3CONbits_t; 2641 2642 extern __at(0x0FB7) volatile __CCP3CONbits_t CCP3CONbits; 2643 2644 #define _CCP3M0 0x01 2645 #define _CCP3M1 0x02 2646 #define _CCP3M2 0x04 2647 #define _CCP3M3 0x08 2648 #define _DCCP3Y 0x10 2649 #define _DC3B0 0x10 2650 #define _DCCP3X 0x20 2651 #define _DC3B1 0x20 2652 2653 //============================================================================== 2654 2655 extern __at(0x0FB8) __sfr CCPR3; 2656 extern __at(0x0FB8) __sfr CCPR3L; 2657 extern __at(0x0FB9) __sfr CCPR3H; 2658 2659 //============================================================================== 2660 // CCP2CON Bits 2661 2662 extern __at(0x0FBA) __sfr CCP2CON; 2663 2664 typedef union 2665 { 2666 struct 2667 { 2668 unsigned CCP2M0 : 1; 2669 unsigned CCP2M1 : 1; 2670 unsigned CCP2M2 : 1; 2671 unsigned CCP2M3 : 1; 2672 unsigned DCCP2Y : 1; 2673 unsigned DCCP2X : 1; 2674 unsigned : 1; 2675 unsigned : 1; 2676 }; 2677 2678 struct 2679 { 2680 unsigned : 1; 2681 unsigned : 1; 2682 unsigned : 1; 2683 unsigned : 1; 2684 unsigned CCP2Y : 1; 2685 unsigned CCP2X : 1; 2686 unsigned : 1; 2687 unsigned : 1; 2688 }; 2689 2690 struct 2691 { 2692 unsigned : 1; 2693 unsigned : 1; 2694 unsigned : 1; 2695 unsigned : 1; 2696 unsigned DC2B0 : 1; 2697 unsigned DC2B1 : 1; 2698 unsigned : 1; 2699 unsigned : 1; 2700 }; 2701 2702 struct 2703 { 2704 unsigned CCP2M : 4; 2705 unsigned : 4; 2706 }; 2707 2708 struct 2709 { 2710 unsigned : 4; 2711 unsigned DC2B : 2; 2712 unsigned : 2; 2713 }; 2714 } __CCP2CONbits_t; 2715 2716 extern __at(0x0FBA) volatile __CCP2CONbits_t CCP2CONbits; 2717 2718 #define _CCP2M0 0x01 2719 #define _CCP2M1 0x02 2720 #define _CCP2M2 0x04 2721 #define _CCP2M3 0x08 2722 #define _DCCP2Y 0x10 2723 #define _CCP2Y 0x10 2724 #define _DC2B0 0x10 2725 #define _DCCP2X 0x20 2726 #define _CCP2X 0x20 2727 #define _DC2B1 0x20 2728 2729 //============================================================================== 2730 2731 extern __at(0x0FBB) __sfr CCPR2; 2732 extern __at(0x0FBB) __sfr CCPR2L; 2733 extern __at(0x0FBC) __sfr CCPR2H; 2734 2735 //============================================================================== 2736 // CCP1CON Bits 2737 2738 extern __at(0x0FBD) __sfr CCP1CON; 2739 2740 typedef union 2741 { 2742 struct 2743 { 2744 unsigned CCP1M0 : 1; 2745 unsigned CCP1M1 : 1; 2746 unsigned CCP1M2 : 1; 2747 unsigned CCP1M3 : 1; 2748 unsigned DCCP1Y : 1; 2749 unsigned DCCP1X : 1; 2750 unsigned : 1; 2751 unsigned : 1; 2752 }; 2753 2754 struct 2755 { 2756 unsigned : 1; 2757 unsigned : 1; 2758 unsigned : 1; 2759 unsigned : 1; 2760 unsigned CCP1Y : 1; 2761 unsigned CCP1X : 1; 2762 unsigned : 1; 2763 unsigned : 1; 2764 }; 2765 2766 struct 2767 { 2768 unsigned : 1; 2769 unsigned : 1; 2770 unsigned : 1; 2771 unsigned : 1; 2772 unsigned DC1B0 : 1; 2773 unsigned DC1B1 : 1; 2774 unsigned : 1; 2775 unsigned : 1; 2776 }; 2777 2778 struct 2779 { 2780 unsigned CCP1M : 4; 2781 unsigned : 4; 2782 }; 2783 2784 struct 2785 { 2786 unsigned : 4; 2787 unsigned DC1B : 2; 2788 unsigned : 2; 2789 }; 2790 } __CCP1CONbits_t; 2791 2792 extern __at(0x0FBD) volatile __CCP1CONbits_t CCP1CONbits; 2793 2794 #define _CCP1M0 0x01 2795 #define _CCP1M1 0x02 2796 #define _CCP1M2 0x04 2797 #define _CCP1M3 0x08 2798 #define _DCCP1Y 0x10 2799 #define _CCP1Y 0x10 2800 #define _DC1B0 0x10 2801 #define _DCCP1X 0x20 2802 #define _CCP1X 0x20 2803 #define _DC1B1 0x20 2804 2805 //============================================================================== 2806 2807 extern __at(0x0FBE) __sfr CCPR1; 2808 extern __at(0x0FBE) __sfr CCPR1L; 2809 extern __at(0x0FBF) __sfr CCPR1H; 2810 2811 //============================================================================== 2812 // ADCON2 Bits 2813 2814 extern __at(0x0FC0) __sfr ADCON2; 2815 2816 typedef union 2817 { 2818 struct 2819 { 2820 unsigned ADCS0 : 1; 2821 unsigned ADCS1 : 1; 2822 unsigned ADCS2 : 1; 2823 unsigned ACQT0 : 1; 2824 unsigned ACQT1 : 1; 2825 unsigned ACQT2 : 1; 2826 unsigned : 1; 2827 unsigned ADFM : 1; 2828 }; 2829 2830 struct 2831 { 2832 unsigned ADCS : 3; 2833 unsigned : 5; 2834 }; 2835 2836 struct 2837 { 2838 unsigned : 3; 2839 unsigned ACQT : 3; 2840 unsigned : 2; 2841 }; 2842 } __ADCON2bits_t; 2843 2844 extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits; 2845 2846 #define _ADCS0 0x01 2847 #define _ADCS1 0x02 2848 #define _ADCS2 0x04 2849 #define _ACQT0 0x08 2850 #define _ACQT1 0x10 2851 #define _ACQT2 0x20 2852 #define _ADFM 0x80 2853 2854 //============================================================================== 2855 2856 2857 //============================================================================== 2858 // ADCON1 Bits 2859 2860 extern __at(0x0FC1) __sfr ADCON1; 2861 2862 typedef union 2863 { 2864 struct 2865 { 2866 unsigned PCFG0 : 1; 2867 unsigned PCFG1 : 1; 2868 unsigned PCFG2 : 1; 2869 unsigned PCFG3 : 1; 2870 unsigned VCFG0 : 1; 2871 unsigned VCFG1 : 1; 2872 unsigned : 1; 2873 unsigned : 1; 2874 }; 2875 2876 struct 2877 { 2878 unsigned PCFG : 4; 2879 unsigned : 4; 2880 }; 2881 2882 struct 2883 { 2884 unsigned : 4; 2885 unsigned VCFG : 2; 2886 unsigned : 2; 2887 }; 2888 } __ADCON1bits_t; 2889 2890 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits; 2891 2892 #define _PCFG0 0x01 2893 #define _PCFG1 0x02 2894 #define _PCFG2 0x04 2895 #define _PCFG3 0x08 2896 #define _VCFG0 0x10 2897 #define _VCFG1 0x20 2898 2899 //============================================================================== 2900 2901 2902 //============================================================================== 2903 // ADCON0 Bits 2904 2905 extern __at(0x0FC2) __sfr ADCON0; 2906 2907 typedef union 2908 { 2909 struct 2910 { 2911 unsigned ADON : 1; 2912 unsigned GO_NOT_DONE : 1; 2913 unsigned CHS0 : 1; 2914 unsigned CHS1 : 1; 2915 unsigned CHS2 : 1; 2916 unsigned CHS3 : 1; 2917 unsigned : 1; 2918 unsigned : 1; 2919 }; 2920 2921 struct 2922 { 2923 unsigned : 1; 2924 unsigned GO_DONE : 1; 2925 unsigned : 1; 2926 unsigned : 1; 2927 unsigned : 1; 2928 unsigned : 1; 2929 unsigned : 1; 2930 unsigned : 1; 2931 }; 2932 2933 struct 2934 { 2935 unsigned : 1; 2936 unsigned DONE : 1; 2937 unsigned : 1; 2938 unsigned : 1; 2939 unsigned : 1; 2940 unsigned : 1; 2941 unsigned : 1; 2942 unsigned : 1; 2943 }; 2944 2945 struct 2946 { 2947 unsigned : 1; 2948 unsigned GO : 1; 2949 unsigned : 1; 2950 unsigned : 1; 2951 unsigned : 1; 2952 unsigned : 1; 2953 unsigned : 1; 2954 unsigned : 1; 2955 }; 2956 2957 struct 2958 { 2959 unsigned : 1; 2960 unsigned NOT_DONE : 1; 2961 unsigned : 1; 2962 unsigned : 1; 2963 unsigned : 1; 2964 unsigned : 1; 2965 unsigned : 1; 2966 unsigned : 1; 2967 }; 2968 2969 struct 2970 { 2971 unsigned : 2; 2972 unsigned CHS : 4; 2973 unsigned : 2; 2974 }; 2975 } __ADCON0bits_t; 2976 2977 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits; 2978 2979 #define _ADON 0x01 2980 #define _GO_NOT_DONE 0x02 2981 #define _GO_DONE 0x02 2982 #define _DONE 0x02 2983 #define _GO 0x02 2984 #define _NOT_DONE 0x02 2985 #define _CHS0 0x04 2986 #define _CHS1 0x08 2987 #define _CHS2 0x10 2988 #define _CHS3 0x20 2989 2990 //============================================================================== 2991 2992 extern __at(0x0FC3) __sfr ADRES; 2993 extern __at(0x0FC3) __sfr ADRESL; 2994 extern __at(0x0FC4) __sfr ADRESH; 2995 2996 //============================================================================== 2997 // SSPCON2 Bits 2998 2999 extern __at(0x0FC5) __sfr SSPCON2; 3000 3001 typedef struct 3002 { 3003 unsigned SEN : 1; 3004 unsigned RSEN : 1; 3005 unsigned PEN : 1; 3006 unsigned RCEN : 1; 3007 unsigned ACKEN : 1; 3008 unsigned ACKDT : 1; 3009 unsigned ACKSTAT : 1; 3010 unsigned GCEN : 1; 3011 } __SSPCON2bits_t; 3012 3013 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits; 3014 3015 #define _SEN 0x01 3016 #define _RSEN 0x02 3017 #define _PEN 0x04 3018 #define _RCEN 0x08 3019 #define _ACKEN 0x10 3020 #define _ACKDT 0x20 3021 #define _ACKSTAT 0x40 3022 #define _GCEN 0x80 3023 3024 //============================================================================== 3025 3026 3027 //============================================================================== 3028 // SSPCON1 Bits 3029 3030 extern __at(0x0FC6) __sfr SSPCON1; 3031 3032 typedef union 3033 { 3034 struct 3035 { 3036 unsigned SSPM0 : 1; 3037 unsigned SSPM1 : 1; 3038 unsigned SSPM2 : 1; 3039 unsigned SSPM3 : 1; 3040 unsigned CKP : 1; 3041 unsigned SSPEN : 1; 3042 unsigned SSPOV : 1; 3043 unsigned WCOL : 1; 3044 }; 3045 3046 struct 3047 { 3048 unsigned SSPM : 4; 3049 unsigned : 4; 3050 }; 3051 } __SSPCON1bits_t; 3052 3053 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits; 3054 3055 #define _SSPM0 0x01 3056 #define _SSPM1 0x02 3057 #define _SSPM2 0x04 3058 #define _SSPM3 0x08 3059 #define _CKP 0x10 3060 #define _SSPEN 0x20 3061 #define _SSPOV 0x40 3062 #define _WCOL 0x80 3063 3064 //============================================================================== 3065 3066 3067 //============================================================================== 3068 // SSPSTAT Bits 3069 3070 extern __at(0x0FC7) __sfr SSPSTAT; 3071 3072 typedef union 3073 { 3074 struct 3075 { 3076 unsigned BF : 1; 3077 unsigned UA : 1; 3078 unsigned R_NOT_W : 1; 3079 unsigned S : 1; 3080 unsigned P : 1; 3081 unsigned D_NOT_A : 1; 3082 unsigned CKE : 1; 3083 unsigned SMP : 1; 3084 }; 3085 3086 struct 3087 { 3088 unsigned : 1; 3089 unsigned : 1; 3090 unsigned R_W : 1; 3091 unsigned I2C_START : 1; 3092 unsigned I2C_STOP : 1; 3093 unsigned D_A : 1; 3094 unsigned : 1; 3095 unsigned : 1; 3096 }; 3097 3098 struct 3099 { 3100 unsigned : 1; 3101 unsigned : 1; 3102 unsigned I2C_READ : 1; 3103 unsigned : 1; 3104 unsigned : 1; 3105 unsigned I2C_DAT : 1; 3106 unsigned : 1; 3107 unsigned : 1; 3108 }; 3109 3110 struct 3111 { 3112 unsigned : 1; 3113 unsigned : 1; 3114 unsigned NOT_W : 1; 3115 unsigned : 1; 3116 unsigned : 1; 3117 unsigned NOT_A : 1; 3118 unsigned : 1; 3119 unsigned : 1; 3120 }; 3121 3122 struct 3123 { 3124 unsigned : 1; 3125 unsigned : 1; 3126 unsigned NOT_WRITE : 1; 3127 unsigned : 1; 3128 unsigned : 1; 3129 unsigned NOT_ADDRESS : 1; 3130 unsigned : 1; 3131 unsigned : 1; 3132 }; 3133 3134 struct 3135 { 3136 unsigned : 1; 3137 unsigned : 1; 3138 unsigned READ_WRITE : 1; 3139 unsigned : 1; 3140 unsigned : 1; 3141 unsigned DATA_ADDRESS : 1; 3142 unsigned : 1; 3143 unsigned : 1; 3144 }; 3145 3146 struct 3147 { 3148 unsigned : 1; 3149 unsigned : 1; 3150 unsigned R : 1; 3151 unsigned : 1; 3152 unsigned : 1; 3153 unsigned D : 1; 3154 unsigned : 1; 3155 unsigned : 1; 3156 }; 3157 } __SSPSTATbits_t; 3158 3159 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits; 3160 3161 #define _BF 0x01 3162 #define _UA 0x02 3163 #define _R_NOT_W 0x04 3164 #define _R_W 0x04 3165 #define _I2C_READ 0x04 3166 #define _NOT_W 0x04 3167 #define _NOT_WRITE 0x04 3168 #define _READ_WRITE 0x04 3169 #define _R 0x04 3170 #define _S 0x08 3171 #define _I2C_START 0x08 3172 #define _P 0x10 3173 #define _I2C_STOP 0x10 3174 #define _D_NOT_A 0x20 3175 #define _D_A 0x20 3176 #define _I2C_DAT 0x20 3177 #define _NOT_A 0x20 3178 #define _NOT_ADDRESS 0x20 3179 #define _DATA_ADDRESS 0x20 3180 #define _D 0x20 3181 #define _CKE 0x40 3182 #define _SMP 0x80 3183 3184 //============================================================================== 3185 3186 extern __at(0x0FC8) __sfr SSPADD; 3187 extern __at(0x0FC9) __sfr SSPBUF; 3188 3189 //============================================================================== 3190 // T2CON Bits 3191 3192 extern __at(0x0FCA) __sfr T2CON; 3193 3194 typedef union 3195 { 3196 struct 3197 { 3198 unsigned T2CKPS0 : 1; 3199 unsigned T2CKPS1 : 1; 3200 unsigned TMR2ON : 1; 3201 unsigned T2OUTPS0 : 1; 3202 unsigned T2OUTPS1 : 1; 3203 unsigned T2OUTPS2 : 1; 3204 unsigned T2OUTPS3 : 1; 3205 unsigned : 1; 3206 }; 3207 3208 struct 3209 { 3210 unsigned T2CKPS : 2; 3211 unsigned : 6; 3212 }; 3213 3214 struct 3215 { 3216 unsigned : 3; 3217 unsigned T2OUTPS : 4; 3218 unsigned : 1; 3219 }; 3220 } __T2CONbits_t; 3221 3222 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits; 3223 3224 #define _T2CKPS0 0x01 3225 #define _T2CKPS1 0x02 3226 #define _TMR2ON 0x04 3227 #define _T2OUTPS0 0x08 3228 #define _T2OUTPS1 0x10 3229 #define _T2OUTPS2 0x20 3230 #define _T2OUTPS3 0x40 3231 3232 //============================================================================== 3233 3234 extern __at(0x0FCB) __sfr PR2; 3235 extern __at(0x0FCC) __sfr TMR2; 3236 3237 //============================================================================== 3238 // T1CON Bits 3239 3240 extern __at(0x0FCD) __sfr T1CON; 3241 3242 typedef union 3243 { 3244 struct 3245 { 3246 unsigned TMR1ON : 1; 3247 unsigned TMR1CS : 1; 3248 unsigned NOT_T1SYNC : 1; 3249 unsigned T1OSCEN : 1; 3250 unsigned T1CKPS0 : 1; 3251 unsigned T1CKPS1 : 1; 3252 unsigned T1RUN : 1; 3253 unsigned RD16 : 1; 3254 }; 3255 3256 struct 3257 { 3258 unsigned : 1; 3259 unsigned : 1; 3260 unsigned T1INSYNC : 1; 3261 unsigned : 1; 3262 unsigned : 1; 3263 unsigned : 1; 3264 unsigned : 1; 3265 unsigned : 1; 3266 }; 3267 3268 struct 3269 { 3270 unsigned : 1; 3271 unsigned : 1; 3272 unsigned T1SYNC : 1; 3273 unsigned : 1; 3274 unsigned : 1; 3275 unsigned : 1; 3276 unsigned : 1; 3277 unsigned : 1; 3278 }; 3279 3280 struct 3281 { 3282 unsigned : 4; 3283 unsigned T1CKPS : 2; 3284 unsigned : 2; 3285 }; 3286 } __T1CONbits_t; 3287 3288 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits; 3289 3290 #define _TMR1ON 0x01 3291 #define _TMR1CS 0x02 3292 #define _NOT_T1SYNC 0x04 3293 #define _T1INSYNC 0x04 3294 #define _T1SYNC 0x04 3295 #define _T1OSCEN 0x08 3296 #define _T1CKPS0 0x10 3297 #define _T1CKPS1 0x20 3298 #define _T1RUN 0x40 3299 #define _RD16 0x80 3300 3301 //============================================================================== 3302 3303 extern __at(0x0FCE) __sfr TMR1; 3304 extern __at(0x0FCE) __sfr TMR1L; 3305 extern __at(0x0FCF) __sfr TMR1H; 3306 3307 //============================================================================== 3308 // RCON Bits 3309 3310 extern __at(0x0FD0) __sfr RCON; 3311 3312 typedef union 3313 { 3314 struct 3315 { 3316 unsigned NOT_BOR : 1; 3317 unsigned NOT_POR : 1; 3318 unsigned NOT_PD : 1; 3319 unsigned NOT_TO : 1; 3320 unsigned NOT_RI : 1; 3321 unsigned : 1; 3322 unsigned SBOREN : 1; 3323 unsigned IPEN : 1; 3324 }; 3325 3326 struct 3327 { 3328 unsigned BOR : 1; 3329 unsigned POR : 1; 3330 unsigned PD : 1; 3331 unsigned TO : 1; 3332 unsigned RI : 1; 3333 unsigned : 1; 3334 unsigned : 1; 3335 unsigned : 1; 3336 }; 3337 } __RCONbits_t; 3338 3339 extern __at(0x0FD0) volatile __RCONbits_t RCONbits; 3340 3341 #define _NOT_BOR 0x01 3342 #define _BOR 0x01 3343 #define _NOT_POR 0x02 3344 #define _POR 0x02 3345 #define _NOT_PD 0x04 3346 #define _PD 0x04 3347 #define _NOT_TO 0x08 3348 #define _TO 0x08 3349 #define _NOT_RI 0x10 3350 #define _RI 0x10 3351 #define _SBOREN 0x40 3352 #define _IPEN 0x80 3353 3354 //============================================================================== 3355 3356 3357 //============================================================================== 3358 // WDTCON Bits 3359 3360 extern __at(0x0FD1) __sfr WDTCON; 3361 3362 typedef union 3363 { 3364 struct 3365 { 3366 unsigned SWDTEN : 1; 3367 unsigned : 1; 3368 unsigned : 1; 3369 unsigned : 1; 3370 unsigned : 1; 3371 unsigned : 1; 3372 unsigned : 1; 3373 unsigned : 1; 3374 }; 3375 3376 struct 3377 { 3378 unsigned SWDTE : 1; 3379 unsigned : 1; 3380 unsigned : 1; 3381 unsigned : 1; 3382 unsigned : 1; 3383 unsigned : 1; 3384 unsigned : 1; 3385 unsigned : 1; 3386 }; 3387 } __WDTCONbits_t; 3388 3389 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits; 3390 3391 #define _SWDTEN 0x01 3392 #define _SWDTE 0x01 3393 3394 //============================================================================== 3395 3396 3397 //============================================================================== 3398 // HLVDCON Bits 3399 3400 extern __at(0x0FD2) __sfr HLVDCON; 3401 3402 typedef union 3403 { 3404 struct 3405 { 3406 unsigned HLVDL0 : 1; 3407 unsigned HLVDL1 : 1; 3408 unsigned HLVDL2 : 1; 3409 unsigned HLVDL3 : 1; 3410 unsigned HLVDEN : 1; 3411 unsigned IRVST : 1; 3412 unsigned : 1; 3413 unsigned VDIRMAG : 1; 3414 }; 3415 3416 struct 3417 { 3418 unsigned LVDL0 : 1; 3419 unsigned LVDL1 : 1; 3420 unsigned LVDL2 : 1; 3421 unsigned LVDL3 : 1; 3422 unsigned LVDEN : 1; 3423 unsigned BGST : 1; 3424 unsigned : 1; 3425 unsigned : 1; 3426 }; 3427 3428 struct 3429 { 3430 unsigned LVV0 : 1; 3431 unsigned LVV1 : 1; 3432 unsigned LVV2 : 1; 3433 unsigned LVV3 : 1; 3434 unsigned : 1; 3435 unsigned : 1; 3436 unsigned : 1; 3437 unsigned : 1; 3438 }; 3439 3440 struct 3441 { 3442 unsigned LVV : 4; 3443 unsigned : 4; 3444 }; 3445 3446 struct 3447 { 3448 unsigned HLVDL : 4; 3449 unsigned : 4; 3450 }; 3451 3452 struct 3453 { 3454 unsigned LVDL : 4; 3455 unsigned : 4; 3456 }; 3457 } __HLVDCONbits_t; 3458 3459 extern __at(0x0FD2) volatile __HLVDCONbits_t HLVDCONbits; 3460 3461 #define _HLVDL0 0x01 3462 #define _LVDL0 0x01 3463 #define _LVV0 0x01 3464 #define _HLVDL1 0x02 3465 #define _LVDL1 0x02 3466 #define _LVV1 0x02 3467 #define _HLVDL2 0x04 3468 #define _LVDL2 0x04 3469 #define _LVV2 0x04 3470 #define _HLVDL3 0x08 3471 #define _LVDL3 0x08 3472 #define _LVV3 0x08 3473 #define _HLVDEN 0x10 3474 #define _LVDEN 0x10 3475 #define _IRVST 0x20 3476 #define _BGST 0x20 3477 #define _VDIRMAG 0x80 3478 3479 //============================================================================== 3480 3481 3482 //============================================================================== 3483 // LVDCON Bits 3484 3485 extern __at(0x0FD2) __sfr LVDCON; 3486 3487 typedef union 3488 { 3489 struct 3490 { 3491 unsigned HLVDL0 : 1; 3492 unsigned HLVDL1 : 1; 3493 unsigned HLVDL2 : 1; 3494 unsigned HLVDL3 : 1; 3495 unsigned HLVDEN : 1; 3496 unsigned IRVST : 1; 3497 unsigned : 1; 3498 unsigned VDIRMAG : 1; 3499 }; 3500 3501 struct 3502 { 3503 unsigned LVDL0 : 1; 3504 unsigned LVDL1 : 1; 3505 unsigned LVDL2 : 1; 3506 unsigned LVDL3 : 1; 3507 unsigned LVDEN : 1; 3508 unsigned BGST : 1; 3509 unsigned : 1; 3510 unsigned : 1; 3511 }; 3512 3513 struct 3514 { 3515 unsigned LVV0 : 1; 3516 unsigned LVV1 : 1; 3517 unsigned LVV2 : 1; 3518 unsigned LVV3 : 1; 3519 unsigned : 1; 3520 unsigned : 1; 3521 unsigned : 1; 3522 unsigned : 1; 3523 }; 3524 3525 struct 3526 { 3527 unsigned LVV : 4; 3528 unsigned : 4; 3529 }; 3530 3531 struct 3532 { 3533 unsigned HLVDL : 4; 3534 unsigned : 4; 3535 }; 3536 3537 struct 3538 { 3539 unsigned LVDL : 4; 3540 unsigned : 4; 3541 }; 3542 } __LVDCONbits_t; 3543 3544 extern __at(0x0FD2) volatile __LVDCONbits_t LVDCONbits; 3545 3546 #define _LVDCON_HLVDL0 0x01 3547 #define _LVDCON_LVDL0 0x01 3548 #define _LVDCON_LVV0 0x01 3549 #define _LVDCON_HLVDL1 0x02 3550 #define _LVDCON_LVDL1 0x02 3551 #define _LVDCON_LVV1 0x02 3552 #define _LVDCON_HLVDL2 0x04 3553 #define _LVDCON_LVDL2 0x04 3554 #define _LVDCON_LVV2 0x04 3555 #define _LVDCON_HLVDL3 0x08 3556 #define _LVDCON_LVDL3 0x08 3557 #define _LVDCON_LVV3 0x08 3558 #define _LVDCON_HLVDEN 0x10 3559 #define _LVDCON_LVDEN 0x10 3560 #define _LVDCON_IRVST 0x20 3561 #define _LVDCON_BGST 0x20 3562 #define _LVDCON_VDIRMAG 0x80 3563 3564 //============================================================================== 3565 3566 3567 //============================================================================== 3568 // OSCCON Bits 3569 3570 extern __at(0x0FD3) __sfr OSCCON; 3571 3572 typedef union 3573 { 3574 struct 3575 { 3576 unsigned SCS0 : 1; 3577 unsigned SCS1 : 1; 3578 unsigned IOFS : 1; 3579 unsigned OSTS : 1; 3580 unsigned IRCF0 : 1; 3581 unsigned IRCF1 : 1; 3582 unsigned IRCF2 : 1; 3583 unsigned IDLEN : 1; 3584 }; 3585 3586 struct 3587 { 3588 unsigned : 1; 3589 unsigned : 1; 3590 unsigned FLTS : 1; 3591 unsigned : 1; 3592 unsigned : 1; 3593 unsigned : 1; 3594 unsigned : 1; 3595 unsigned : 1; 3596 }; 3597 3598 struct 3599 { 3600 unsigned SCS : 2; 3601 unsigned : 6; 3602 }; 3603 3604 struct 3605 { 3606 unsigned : 4; 3607 unsigned IRCF : 3; 3608 unsigned : 1; 3609 }; 3610 } __OSCCONbits_t; 3611 3612 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits; 3613 3614 #define _SCS0 0x01 3615 #define _SCS1 0x02 3616 #define _IOFS 0x04 3617 #define _FLTS 0x04 3618 #define _OSTS 0x08 3619 #define _IRCF0 0x10 3620 #define _IRCF1 0x20 3621 #define _IRCF2 0x40 3622 #define _IDLEN 0x80 3623 3624 //============================================================================== 3625 3626 3627 //============================================================================== 3628 // T0CON Bits 3629 3630 extern __at(0x0FD5) __sfr T0CON; 3631 3632 typedef union 3633 { 3634 struct 3635 { 3636 unsigned T0PS0 : 1; 3637 unsigned T0PS1 : 1; 3638 unsigned T0PS2 : 1; 3639 unsigned PSA : 1; 3640 unsigned T0SE : 1; 3641 unsigned T0CS : 1; 3642 unsigned T08BIT : 1; 3643 unsigned TMR0ON : 1; 3644 }; 3645 3646 struct 3647 { 3648 unsigned T0PS : 3; 3649 unsigned : 5; 3650 }; 3651 } __T0CONbits_t; 3652 3653 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits; 3654 3655 #define _T0PS0 0x01 3656 #define _T0PS1 0x02 3657 #define _T0PS2 0x04 3658 #define _PSA 0x08 3659 #define _T0SE 0x10 3660 #define _T0CS 0x20 3661 #define _T08BIT 0x40 3662 #define _TMR0ON 0x80 3663 3664 //============================================================================== 3665 3666 extern __at(0x0FD6) __sfr TMR0; 3667 extern __at(0x0FD6) __sfr TMR0L; 3668 extern __at(0x0FD7) __sfr TMR0H; 3669 3670 //============================================================================== 3671 // STATUS Bits 3672 3673 extern __at(0x0FD8) __sfr STATUS; 3674 3675 typedef struct 3676 { 3677 unsigned C : 1; 3678 unsigned DC : 1; 3679 unsigned Z : 1; 3680 unsigned OV : 1; 3681 unsigned N : 1; 3682 unsigned : 1; 3683 unsigned : 1; 3684 unsigned : 1; 3685 } __STATUSbits_t; 3686 3687 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits; 3688 3689 #define _C 0x01 3690 #define _DC 0x02 3691 #define _Z 0x04 3692 #define _OV 0x08 3693 #define _N 0x10 3694 3695 //============================================================================== 3696 3697 extern __at(0x0FD9) __sfr FSR2L; 3698 extern __at(0x0FDA) __sfr FSR2H; 3699 extern __at(0x0FDB) __sfr PLUSW2; 3700 extern __at(0x0FDC) __sfr PREINC2; 3701 extern __at(0x0FDD) __sfr POSTDEC2; 3702 extern __at(0x0FDE) __sfr POSTINC2; 3703 extern __at(0x0FDF) __sfr INDF2; 3704 extern __at(0x0FE0) __sfr BSR; 3705 extern __at(0x0FE1) __sfr FSR1L; 3706 extern __at(0x0FE2) __sfr FSR1H; 3707 extern __at(0x0FE3) __sfr PLUSW1; 3708 extern __at(0x0FE4) __sfr PREINC1; 3709 extern __at(0x0FE5) __sfr POSTDEC1; 3710 extern __at(0x0FE6) __sfr POSTINC1; 3711 extern __at(0x0FE7) __sfr INDF1; 3712 extern __at(0x0FE8) __sfr WREG; 3713 extern __at(0x0FE9) __sfr FSR0L; 3714 extern __at(0x0FEA) __sfr FSR0H; 3715 extern __at(0x0FEB) __sfr PLUSW0; 3716 extern __at(0x0FEC) __sfr PREINC0; 3717 extern __at(0x0FED) __sfr POSTDEC0; 3718 extern __at(0x0FEE) __sfr POSTINC0; 3719 extern __at(0x0FEF) __sfr INDF0; 3720 3721 //============================================================================== 3722 // INTCON3 Bits 3723 3724 extern __at(0x0FF0) __sfr INTCON3; 3725 3726 typedef union 3727 { 3728 struct 3729 { 3730 unsigned INT1IF : 1; 3731 unsigned INT2IF : 1; 3732 unsigned INT3IF : 1; 3733 unsigned INT1IE : 1; 3734 unsigned INT2IE : 1; 3735 unsigned INT3IE : 1; 3736 unsigned INT1IP : 1; 3737 unsigned INT2IP : 1; 3738 }; 3739 3740 struct 3741 { 3742 unsigned INT1F : 1; 3743 unsigned INT2F : 1; 3744 unsigned INT3F : 1; 3745 unsigned INT1E : 1; 3746 unsigned INT2E : 1; 3747 unsigned INT3E : 1; 3748 unsigned INT1P : 1; 3749 unsigned INT2P : 1; 3750 }; 3751 } __INTCON3bits_t; 3752 3753 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits; 3754 3755 #define _INT1IF 0x01 3756 #define _INT1F 0x01 3757 #define _INT2IF 0x02 3758 #define _INT2F 0x02 3759 #define _INT3IF 0x04 3760 #define _INT3F 0x04 3761 #define _INT1IE 0x08 3762 #define _INT1E 0x08 3763 #define _INT2IE 0x10 3764 #define _INT2E 0x10 3765 #define _INT3IE 0x20 3766 #define _INT3E 0x20 3767 #define _INT1IP 0x40 3768 #define _INT1P 0x40 3769 #define _INT2IP 0x80 3770 #define _INT2P 0x80 3771 3772 //============================================================================== 3773 3774 3775 //============================================================================== 3776 // INTCON2 Bits 3777 3778 extern __at(0x0FF1) __sfr INTCON2; 3779 3780 typedef union 3781 { 3782 struct 3783 { 3784 unsigned RBIP : 1; 3785 unsigned INT3IP : 1; 3786 unsigned TMR0IP : 1; 3787 unsigned INTEDG3 : 1; 3788 unsigned INTEDG2 : 1; 3789 unsigned INTEDG1 : 1; 3790 unsigned INTEDG0 : 1; 3791 unsigned NOT_RBPU : 1; 3792 }; 3793 3794 struct 3795 { 3796 unsigned : 1; 3797 unsigned INT3P : 1; 3798 unsigned T0IP : 1; 3799 unsigned : 1; 3800 unsigned : 1; 3801 unsigned : 1; 3802 unsigned : 1; 3803 unsigned RBPU : 1; 3804 }; 3805 } __INTCON2bits_t; 3806 3807 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits; 3808 3809 #define _RBIP 0x01 3810 #define _INT3IP 0x02 3811 #define _INT3P 0x02 3812 #define _TMR0IP 0x04 3813 #define _T0IP 0x04 3814 #define _INTEDG3 0x08 3815 #define _INTEDG2 0x10 3816 #define _INTEDG1 0x20 3817 #define _INTEDG0 0x40 3818 #define _NOT_RBPU 0x80 3819 #define _RBPU 0x80 3820 3821 //============================================================================== 3822 3823 3824 //============================================================================== 3825 // INTCON Bits 3826 3827 extern __at(0x0FF2) __sfr INTCON; 3828 3829 typedef union 3830 { 3831 struct 3832 { 3833 unsigned RBIF : 1; 3834 unsigned INT0IF : 1; 3835 unsigned TMR0IF : 1; 3836 unsigned RBIE : 1; 3837 unsigned INT0IE : 1; 3838 unsigned TMR0IE : 1; 3839 unsigned PEIE_GIEL : 1; 3840 unsigned GIE_GIEH : 1; 3841 }; 3842 3843 struct 3844 { 3845 unsigned : 1; 3846 unsigned INT0F : 1; 3847 unsigned T0IF : 1; 3848 unsigned : 1; 3849 unsigned INT0E : 1; 3850 unsigned T0IE : 1; 3851 unsigned PEIE : 1; 3852 unsigned GIE : 1; 3853 }; 3854 3855 struct 3856 { 3857 unsigned : 1; 3858 unsigned : 1; 3859 unsigned : 1; 3860 unsigned : 1; 3861 unsigned : 1; 3862 unsigned : 1; 3863 unsigned GIEL : 1; 3864 unsigned GIEH : 1; 3865 }; 3866 } __INTCONbits_t; 3867 3868 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits; 3869 3870 #define _RBIF 0x01 3871 #define _INT0IF 0x02 3872 #define _INT0F 0x02 3873 #define _TMR0IF 0x04 3874 #define _T0IF 0x04 3875 #define _RBIE 0x08 3876 #define _INT0IE 0x10 3877 #define _INT0E 0x10 3878 #define _TMR0IE 0x20 3879 #define _T0IE 0x20 3880 #define _PEIE_GIEL 0x40 3881 #define _PEIE 0x40 3882 #define _GIEL 0x40 3883 #define _GIE_GIEH 0x80 3884 #define _GIE 0x80 3885 #define _GIEH 0x80 3886 3887 //============================================================================== 3888 3889 extern __at(0x0FF3) __sfr PROD; 3890 extern __at(0x0FF3) __sfr PRODL; 3891 extern __at(0x0FF4) __sfr PRODH; 3892 extern __at(0x0FF5) __sfr TABLAT; 3893 extern __at(0x0FF6) __sfr TBLPTR; 3894 extern __at(0x0FF6) __sfr TBLPTRL; 3895 extern __at(0x0FF7) __sfr TBLPTRH; 3896 extern __at(0x0FF8) __sfr TBLPTRU; 3897 extern __at(0x0FF9) __sfr PC; 3898 extern __at(0x0FF9) __sfr PCL; 3899 extern __at(0x0FFA) __sfr PCLATH; 3900 extern __at(0x0FFB) __sfr PCLATU; 3901 3902 //============================================================================== 3903 // STKPTR Bits 3904 3905 extern __at(0x0FFC) __sfr STKPTR; 3906 3907 typedef union 3908 { 3909 struct 3910 { 3911 unsigned STKPTR0 : 1; 3912 unsigned STKPTR1 : 1; 3913 unsigned STKPTR2 : 1; 3914 unsigned STKPTR3 : 1; 3915 unsigned STKPTR4 : 1; 3916 unsigned : 1; 3917 unsigned STKUNF : 1; 3918 unsigned STKFUL : 1; 3919 }; 3920 3921 struct 3922 { 3923 unsigned : 1; 3924 unsigned : 1; 3925 unsigned : 1; 3926 unsigned : 1; 3927 unsigned : 1; 3928 unsigned : 1; 3929 unsigned : 1; 3930 unsigned STKOVF : 1; 3931 }; 3932 3933 struct 3934 { 3935 unsigned STKPTR : 5; 3936 unsigned : 3; 3937 }; 3938 } __STKPTRbits_t; 3939 3940 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits; 3941 3942 #define _STKPTR0 0x01 3943 #define _STKPTR1 0x02 3944 #define _STKPTR2 0x04 3945 #define _STKPTR3 0x08 3946 #define _STKPTR4 0x10 3947 #define _STKUNF 0x40 3948 #define _STKFUL 0x80 3949 #define _STKOVF 0x80 3950 3951 //============================================================================== 3952 3953 extern __at(0x0FFD) __sfr TOS; 3954 extern __at(0x0FFD) __sfr TOSL; 3955 extern __at(0x0FFE) __sfr TOSH; 3956 extern __at(0x0FFF) __sfr TOSU; 3957 3958 //============================================================================== 3959 // 3960 // Configuration Bits 3961 // 3962 //============================================================================== 3963 3964 #define __CONFIG1H 0x300001 3965 #define __CONFIG2L 0x300002 3966 #define __CONFIG2H 0x300003 3967 #define __CONFIG3L 0x300004 3968 #define __CONFIG3H 0x300005 3969 #define __CONFIG4L 0x300006 3970 #define __CONFIG5L 0x300008 3971 #define __CONFIG7L 0x30000C 3972 3973 //----------------------------- CONFIG1H Options ------------------------------- 3974 3975 #define _OSC_LP_1H 0xF0 // LP oscillator. 3976 #define _OSC_XT_1H 0xF1 // XT oscillator. 3977 #define _OSC_HS_1H 0xF2 // HS oscillator. 3978 #define _OSC_RC_1H 0xF3 // External RC oscillator, CLKO function on RA6. 3979 #define _OSC_EC_1H 0xF4 // EC oscillator, CLKO function on RA6. 3980 #define _OSC_ECIO_1H 0xF5 // EC oscillator, port function on RA6. 3981 #define _OSC_HSPLL_1H 0xF6 // HS oscillator, PLL enabled (clock frequency = 4 x FOSC1). 3982 #define _OSC_RCIO_1H 0xF7 // External RC oscillator, port function on RA6. 3983 #define _OSC_INTIO67_1H 0xF8 // Internal oscillator block, port function on RA6 and RA7. 3984 #define _OSC_INTIO7_1H 0xF9 // Internal oscillator block, CLKO function on RA6, port function on RA7. 3985 #define _FCMEN_OFF_1H 0xBF // Fail-Safe Clock Monitor disabled. 3986 #define _FCMEN_ON_1H 0xFF // Fail-Safe Clock Monitor enabled. 3987 #define _IESO_OFF_1H 0x7F // Oscillator Switchover mode disabled. 3988 #define _IESO_ON_1H 0xFF // Oscillator Switchover mode enabled. 3989 3990 //----------------------------- CONFIG2L Options ------------------------------- 3991 3992 #define _PWRT_ON_2L 0xFE // PWRT enabled. 3993 #define _PWRT_OFF_2L 0xFF // PWRT disabled. 3994 #define _BOREN_OFF_2L 0xF9 // Brown-out Reset disabled in hardware and software. 3995 #define _BOREN_ON_2L 0xFB // Brown-out Reset enabled and controlled by software (SBOREN is enabled). 3996 #define _BOREN_NOSLP_2L 0xFD // Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled). 3997 #define _BOREN_SBORDIS_2L 0xFF // Brown-out Reset enabled in hardware only (SBOREN is disabled). 3998 #define _BORV_0_2L 0xE7 // VBOR set to 4.6V. 3999 #define _BORV_1_2L 0xEF // VBOR set to 4.3V. 4000 #define _BORV_2_2L 0xF7 // VBOR set to 2.8V. 4001 #define _BORV_3_2L 0xFF // VBOR set to 2.1V. 4002 4003 //----------------------------- CONFIG2H Options ------------------------------- 4004 4005 #define _WDT_OFF_2H 0xFE // WDT disabled (control is placed on the SWDTEN bit). 4006 #define _WDT_ON_2H 0xFF // WDT enabled. 4007 #define _WDTPS_1_2H 0xE1 // 1:1. 4008 #define _WDTPS_2_2H 0xE3 // 1:2. 4009 #define _WDTPS_4_2H 0xE5 // 1:4. 4010 #define _WDTPS_8_2H 0xE7 // 1:8. 4011 #define _WDTPS_16_2H 0xE9 // 1:16. 4012 #define _WDTPS_32_2H 0xEB // 1:32. 4013 #define _WDTPS_64_2H 0xED // 1:64. 4014 #define _WDTPS_128_2H 0xEF // 1:128. 4015 #define _WDTPS_256_2H 0xF1 // 1:256. 4016 #define _WDTPS_512_2H 0xF3 // 1:512. 4017 #define _WDTPS_1024_2H 0xF5 // 1:1024. 4018 #define _WDTPS_2048_2H 0xF7 // 1:2048. 4019 #define _WDTPS_4096_2H 0xF9 // 1:4096. 4020 #define _WDTPS_8192_2H 0xFB // 1:8192. 4021 #define _WDTPS_16384_2H 0xFD // 1:16384. 4022 #define _WDTPS_32768_2H 0xFF // 1:32768. 4023 4024 //----------------------------- CONFIG3L Options ------------------------------- 4025 4026 #define _CCP2MX_PORTE_3H 0xFE // CCP2 input/output is multiplexed with RE7. 4027 #define _CCP2MX_PORTC_3H 0xFF // CCP2 input/output is multiplexed with RC1. 4028 #define _LPT1OSC_OFF_3H 0xFB // Timer1 configured for higher power operation. 4029 #define _LPT1OSC_ON_3H 0xFF // Timer1 configured for low-power operation. 4030 #define _MCLRE_OFF_3H 0x7F // RG5 input pin enabled; MCLR disabled. 4031 #define _MCLRE_ON_3H 0xFF // MCLR pin enabled; RG5 input pin disabled. 4032 4033 //----------------------------- CONFIG3H Options ------------------------------- 4034 4035 #define _CCP2MX_PORTE_3H 0xFE // CCP2 input/output is multiplexed with RE7. 4036 #define _CCP2MX_PORTC_3H 0xFF // CCP2 input/output is multiplexed with RC1. 4037 #define _LPT1OSC_OFF_3H 0xFB // Timer1 configured for higher power operation. 4038 #define _LPT1OSC_ON_3H 0xFF // Timer1 configured for low-power operation. 4039 #define _MCLRE_OFF_3H 0x7F // RG5 input pin enabled; MCLR disabled. 4040 #define _MCLRE_ON_3H 0xFF // MCLR pin enabled; RG5 input pin disabled. 4041 4042 //----------------------------- CONFIG4L Options ------------------------------- 4043 4044 #define _STVREN_OFF_4L 0xFE // Stack full/underflow will not cause Reset. 4045 #define _STVREN_ON_4L 0xFF // Stack full/underflow will cause Reset. 4046 #define _XINST_OFF_4L 0xBF // Instruction set extension and Indexed Addressing mode disabled (Legacy mode). 4047 #define _XINST_ON_4L 0xFF // Instruction set extension and Indexed Addressing mode enabled. 4048 #define _DEBUG_ON_4L 0x7F // Background debugger enabled, RB6 and RB7 are dedicated to In-Circuit Debug. 4049 #define _DEBUG_OFF_4L 0xFF // Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins. 4050 4051 //----------------------------- CONFIG5L Options ------------------------------- 4052 4053 #define _CP_ON_5L 0xFE // Program memory block code-protected. 4054 #define _CP_OFF_5L 0xFF // Program memory block not code-protected. 4055 4056 //============================================================================== 4057 4058 #define __DEVID1 0x3FFFFE 4059 #define __DEVID2 0x3FFFFF 4060 4061 #define __IDLOC0 0x200000 4062 #define __IDLOC1 0x200001 4063 #define __IDLOC2 0x200002 4064 #define __IDLOC3 0x200003 4065 #define __IDLOC4 0x200004 4066 #define __IDLOC5 0x200005 4067 #define __IDLOC6 0x200006 4068 #define __IDLOC7 0x200007 4069 4070 #endif // #ifndef __PIC18LF6310_H__ 4071