1 /* 2 * This declarations of the PIC18F26J50 MCU. 3 * 4 * This file is part of the GNU PIC library for SDCC, originally 5 * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016. 6 * 7 * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:23:28 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 __PIC18F26J50_H__ 26 #define __PIC18F26J50_H__ 27 28 //============================================================================== 29 30 //============================================================================== 31 // 32 // Register Definitions 33 // 34 //============================================================================== 35 36 extern __at(0x0EC6) __sfr RPOR0; 37 extern __at(0x0EC7) __sfr RPOR1; 38 extern __at(0x0EC8) __sfr RPOR2; 39 extern __at(0x0EC9) __sfr RPOR3; 40 extern __at(0x0ECA) __sfr RPOR4; 41 extern __at(0x0ECB) __sfr RPOR5; 42 extern __at(0x0ECC) __sfr RPOR6; 43 extern __at(0x0ECD) __sfr RPOR7; 44 extern __at(0x0ECE) __sfr RPOR8; 45 extern __at(0x0ECF) __sfr RPOR9; 46 extern __at(0x0ED0) __sfr RPOR10; 47 extern __at(0x0ED1) __sfr RPOR11; 48 extern __at(0x0ED2) __sfr RPOR12; 49 extern __at(0x0ED3) __sfr RPOR13; 50 extern __at(0x0ED7) __sfr RPOR17; 51 extern __at(0x0ED8) __sfr RPOR18; 52 extern __at(0x0EE7) __sfr RPINR1; 53 extern __at(0x0EE8) __sfr RPINR2; 54 extern __at(0x0EE9) __sfr RPINR3; 55 extern __at(0x0EEA) __sfr RPINR4; 56 extern __at(0x0EEC) __sfr RPINR6; 57 extern __at(0x0EED) __sfr RPINR7; 58 extern __at(0x0EEE) __sfr RPINR8; 59 extern __at(0x0EF2) __sfr RPINR12; 60 extern __at(0x0EF3) __sfr RPINR13; 61 extern __at(0x0EF6) __sfr RPINR16; 62 extern __at(0x0EF7) __sfr RPINR17; 63 extern __at(0x0EFB) __sfr RPINR21; 64 extern __at(0x0EFC) __sfr RPINR22; 65 extern __at(0x0EFD) __sfr RPINR23; 66 extern __at(0x0EFE) __sfr RPINR24; 67 68 //============================================================================== 69 // PPSCON Bits 70 71 extern __at(0x0EFF) __sfr PPSCON; 72 73 typedef struct 74 { 75 unsigned IOLOCK : 1; 76 unsigned : 1; 77 unsigned : 1; 78 unsigned : 1; 79 unsigned : 1; 80 unsigned : 1; 81 unsigned : 1; 82 unsigned : 1; 83 } __PPSCONbits_t; 84 85 extern __at(0x0EFF) volatile __PPSCONbits_t PPSCONbits; 86 87 #define _IOLOCK 0x01 88 89 //============================================================================== 90 91 92 //============================================================================== 93 // UEP0 Bits 94 95 extern __at(0x0F26) __sfr UEP0; 96 97 typedef struct 98 { 99 unsigned EPSTALL : 1; 100 unsigned EPINEN : 1; 101 unsigned EPOUTEN : 1; 102 unsigned EPCONDIS : 1; 103 unsigned EPHSHK : 1; 104 unsigned : 1; 105 unsigned : 1; 106 unsigned : 1; 107 } __UEP0bits_t; 108 109 extern __at(0x0F26) volatile __UEP0bits_t UEP0bits; 110 111 #define _EPSTALL 0x01 112 #define _EPINEN 0x02 113 #define _EPOUTEN 0x04 114 #define _EPCONDIS 0x08 115 #define _EPHSHK 0x10 116 117 //============================================================================== 118 119 120 //============================================================================== 121 // UEP1 Bits 122 123 extern __at(0x0F27) __sfr UEP1; 124 125 typedef struct 126 { 127 unsigned EPSTALL : 1; 128 unsigned EPINEN : 1; 129 unsigned EPOUTEN : 1; 130 unsigned EPCONDIS : 1; 131 unsigned EPHSHK : 1; 132 unsigned : 1; 133 unsigned : 1; 134 unsigned : 1; 135 } __UEP1bits_t; 136 137 extern __at(0x0F27) volatile __UEP1bits_t UEP1bits; 138 139 #define _UEP1_EPSTALL 0x01 140 #define _UEP1_EPINEN 0x02 141 #define _UEP1_EPOUTEN 0x04 142 #define _UEP1_EPCONDIS 0x08 143 #define _UEP1_EPHSHK 0x10 144 145 //============================================================================== 146 147 148 //============================================================================== 149 // UEP2 Bits 150 151 extern __at(0x0F28) __sfr UEP2; 152 153 typedef struct 154 { 155 unsigned EPSTALL : 1; 156 unsigned EPINEN : 1; 157 unsigned EPOUTEN : 1; 158 unsigned EPCONDIS : 1; 159 unsigned EPHSHK : 1; 160 unsigned : 1; 161 unsigned : 1; 162 unsigned : 1; 163 } __UEP2bits_t; 164 165 extern __at(0x0F28) volatile __UEP2bits_t UEP2bits; 166 167 #define _UEP2_EPSTALL 0x01 168 #define _UEP2_EPINEN 0x02 169 #define _UEP2_EPOUTEN 0x04 170 #define _UEP2_EPCONDIS 0x08 171 #define _UEP2_EPHSHK 0x10 172 173 //============================================================================== 174 175 176 //============================================================================== 177 // UEP3 Bits 178 179 extern __at(0x0F29) __sfr UEP3; 180 181 typedef struct 182 { 183 unsigned EPSTALL : 1; 184 unsigned EPINEN : 1; 185 unsigned EPOUTEN : 1; 186 unsigned EPCONDIS : 1; 187 unsigned EPHSHK : 1; 188 unsigned : 1; 189 unsigned : 1; 190 unsigned : 1; 191 } __UEP3bits_t; 192 193 extern __at(0x0F29) volatile __UEP3bits_t UEP3bits; 194 195 #define _UEP3_EPSTALL 0x01 196 #define _UEP3_EPINEN 0x02 197 #define _UEP3_EPOUTEN 0x04 198 #define _UEP3_EPCONDIS 0x08 199 #define _UEP3_EPHSHK 0x10 200 201 //============================================================================== 202 203 204 //============================================================================== 205 // UEP4 Bits 206 207 extern __at(0x0F2A) __sfr UEP4; 208 209 typedef struct 210 { 211 unsigned EPSTALL : 1; 212 unsigned EPINEN : 1; 213 unsigned EPOUTEN : 1; 214 unsigned EPCONDIS : 1; 215 unsigned EPHSHK : 1; 216 unsigned : 1; 217 unsigned : 1; 218 unsigned : 1; 219 } __UEP4bits_t; 220 221 extern __at(0x0F2A) volatile __UEP4bits_t UEP4bits; 222 223 #define _UEP4_EPSTALL 0x01 224 #define _UEP4_EPINEN 0x02 225 #define _UEP4_EPOUTEN 0x04 226 #define _UEP4_EPCONDIS 0x08 227 #define _UEP4_EPHSHK 0x10 228 229 //============================================================================== 230 231 232 //============================================================================== 233 // UEP5 Bits 234 235 extern __at(0x0F2B) __sfr UEP5; 236 237 typedef struct 238 { 239 unsigned EPSTALL : 1; 240 unsigned EPINEN : 1; 241 unsigned EPOUTEN : 1; 242 unsigned EPCONDIS : 1; 243 unsigned EPHSHK : 1; 244 unsigned : 1; 245 unsigned : 1; 246 unsigned : 1; 247 } __UEP5bits_t; 248 249 extern __at(0x0F2B) volatile __UEP5bits_t UEP5bits; 250 251 #define _UEP5_EPSTALL 0x01 252 #define _UEP5_EPINEN 0x02 253 #define _UEP5_EPOUTEN 0x04 254 #define _UEP5_EPCONDIS 0x08 255 #define _UEP5_EPHSHK 0x10 256 257 //============================================================================== 258 259 260 //============================================================================== 261 // UEP6 Bits 262 263 extern __at(0x0F2C) __sfr UEP6; 264 265 typedef struct 266 { 267 unsigned EPSTALL : 1; 268 unsigned EPINEN : 1; 269 unsigned EPOUTEN : 1; 270 unsigned EPCONDIS : 1; 271 unsigned EPHSHK : 1; 272 unsigned : 1; 273 unsigned : 1; 274 unsigned : 1; 275 } __UEP6bits_t; 276 277 extern __at(0x0F2C) volatile __UEP6bits_t UEP6bits; 278 279 #define _UEP6_EPSTALL 0x01 280 #define _UEP6_EPINEN 0x02 281 #define _UEP6_EPOUTEN 0x04 282 #define _UEP6_EPCONDIS 0x08 283 #define _UEP6_EPHSHK 0x10 284 285 //============================================================================== 286 287 288 //============================================================================== 289 // UEP7 Bits 290 291 extern __at(0x0F2D) __sfr UEP7; 292 293 typedef struct 294 { 295 unsigned EPSTALL : 1; 296 unsigned EPINEN : 1; 297 unsigned EPOUTEN : 1; 298 unsigned EPCONDIS : 1; 299 unsigned EPHSHK : 1; 300 unsigned : 1; 301 unsigned : 1; 302 unsigned : 1; 303 } __UEP7bits_t; 304 305 extern __at(0x0F2D) volatile __UEP7bits_t UEP7bits; 306 307 #define _UEP7_EPSTALL 0x01 308 #define _UEP7_EPINEN 0x02 309 #define _UEP7_EPOUTEN 0x04 310 #define _UEP7_EPCONDIS 0x08 311 #define _UEP7_EPHSHK 0x10 312 313 //============================================================================== 314 315 316 //============================================================================== 317 // UEP8 Bits 318 319 extern __at(0x0F2E) __sfr UEP8; 320 321 typedef struct 322 { 323 unsigned EPSTALL : 1; 324 unsigned EPINEN : 1; 325 unsigned EPOUTEN : 1; 326 unsigned EPCONDIS : 1; 327 unsigned EPHSHK : 1; 328 unsigned : 1; 329 unsigned : 1; 330 unsigned : 1; 331 } __UEP8bits_t; 332 333 extern __at(0x0F2E) volatile __UEP8bits_t UEP8bits; 334 335 #define _UEP8_EPSTALL 0x01 336 #define _UEP8_EPINEN 0x02 337 #define _UEP8_EPOUTEN 0x04 338 #define _UEP8_EPCONDIS 0x08 339 #define _UEP8_EPHSHK 0x10 340 341 //============================================================================== 342 343 344 //============================================================================== 345 // UEP9 Bits 346 347 extern __at(0x0F2F) __sfr UEP9; 348 349 typedef struct 350 { 351 unsigned EPSTALL : 1; 352 unsigned EPINEN : 1; 353 unsigned EPOUTEN : 1; 354 unsigned EPCONDIS : 1; 355 unsigned EPHSHK : 1; 356 unsigned : 1; 357 unsigned : 1; 358 unsigned : 1; 359 } __UEP9bits_t; 360 361 extern __at(0x0F2F) volatile __UEP9bits_t UEP9bits; 362 363 #define _UEP9_EPSTALL 0x01 364 #define _UEP9_EPINEN 0x02 365 #define _UEP9_EPOUTEN 0x04 366 #define _UEP9_EPCONDIS 0x08 367 #define _UEP9_EPHSHK 0x10 368 369 //============================================================================== 370 371 372 //============================================================================== 373 // UEP10 Bits 374 375 extern __at(0x0F30) __sfr UEP10; 376 377 typedef struct 378 { 379 unsigned EPSTALL : 1; 380 unsigned EPINEN : 1; 381 unsigned EPOUTEN : 1; 382 unsigned EPCONDIS : 1; 383 unsigned EPHSHK : 1; 384 unsigned : 1; 385 unsigned : 1; 386 unsigned : 1; 387 } __UEP10bits_t; 388 389 extern __at(0x0F30) volatile __UEP10bits_t UEP10bits; 390 391 #define _UEP10_EPSTALL 0x01 392 #define _UEP10_EPINEN 0x02 393 #define _UEP10_EPOUTEN 0x04 394 #define _UEP10_EPCONDIS 0x08 395 #define _UEP10_EPHSHK 0x10 396 397 //============================================================================== 398 399 400 //============================================================================== 401 // UEP11 Bits 402 403 extern __at(0x0F31) __sfr UEP11; 404 405 typedef struct 406 { 407 unsigned EPSTALL : 1; 408 unsigned EPINEN : 1; 409 unsigned EPOUTEN : 1; 410 unsigned EPCONDIS : 1; 411 unsigned EPHSHK : 1; 412 unsigned : 1; 413 unsigned : 1; 414 unsigned : 1; 415 } __UEP11bits_t; 416 417 extern __at(0x0F31) volatile __UEP11bits_t UEP11bits; 418 419 #define _UEP11_EPSTALL 0x01 420 #define _UEP11_EPINEN 0x02 421 #define _UEP11_EPOUTEN 0x04 422 #define _UEP11_EPCONDIS 0x08 423 #define _UEP11_EPHSHK 0x10 424 425 //============================================================================== 426 427 428 //============================================================================== 429 // UEP12 Bits 430 431 extern __at(0x0F32) __sfr UEP12; 432 433 typedef struct 434 { 435 unsigned EPSTALL : 1; 436 unsigned EPINEN : 1; 437 unsigned EPOUTEN : 1; 438 unsigned EPCONDIS : 1; 439 unsigned EPHSHK : 1; 440 unsigned : 1; 441 unsigned : 1; 442 unsigned : 1; 443 } __UEP12bits_t; 444 445 extern __at(0x0F32) volatile __UEP12bits_t UEP12bits; 446 447 #define _UEP12_EPSTALL 0x01 448 #define _UEP12_EPINEN 0x02 449 #define _UEP12_EPOUTEN 0x04 450 #define _UEP12_EPCONDIS 0x08 451 #define _UEP12_EPHSHK 0x10 452 453 //============================================================================== 454 455 456 //============================================================================== 457 // UEP13 Bits 458 459 extern __at(0x0F33) __sfr UEP13; 460 461 typedef struct 462 { 463 unsigned EPSTALL : 1; 464 unsigned EPINEN : 1; 465 unsigned EPOUTEN : 1; 466 unsigned EPCONDIS : 1; 467 unsigned EPHSHK : 1; 468 unsigned : 1; 469 unsigned : 1; 470 unsigned : 1; 471 } __UEP13bits_t; 472 473 extern __at(0x0F33) volatile __UEP13bits_t UEP13bits; 474 475 #define _UEP13_EPSTALL 0x01 476 #define _UEP13_EPINEN 0x02 477 #define _UEP13_EPOUTEN 0x04 478 #define _UEP13_EPCONDIS 0x08 479 #define _UEP13_EPHSHK 0x10 480 481 //============================================================================== 482 483 484 //============================================================================== 485 // UEP14 Bits 486 487 extern __at(0x0F34) __sfr UEP14; 488 489 typedef struct 490 { 491 unsigned EPSTALL : 1; 492 unsigned EPINEN : 1; 493 unsigned EPOUTEN : 1; 494 unsigned EPCONDIS : 1; 495 unsigned EPHSHK : 1; 496 unsigned : 1; 497 unsigned : 1; 498 unsigned : 1; 499 } __UEP14bits_t; 500 501 extern __at(0x0F34) volatile __UEP14bits_t UEP14bits; 502 503 #define _UEP14_EPSTALL 0x01 504 #define _UEP14_EPINEN 0x02 505 #define _UEP14_EPOUTEN 0x04 506 #define _UEP14_EPCONDIS 0x08 507 #define _UEP14_EPHSHK 0x10 508 509 //============================================================================== 510 511 512 //============================================================================== 513 // UEP15 Bits 514 515 extern __at(0x0F35) __sfr UEP15; 516 517 typedef struct 518 { 519 unsigned EPSTALL : 1; 520 unsigned EPINEN : 1; 521 unsigned EPOUTEN : 1; 522 unsigned EPCONDIS : 1; 523 unsigned EPHSHK : 1; 524 unsigned : 1; 525 unsigned : 1; 526 unsigned : 1; 527 } __UEP15bits_t; 528 529 extern __at(0x0F35) volatile __UEP15bits_t UEP15bits; 530 531 #define _UEP15_EPSTALL 0x01 532 #define _UEP15_EPINEN 0x02 533 #define _UEP15_EPOUTEN 0x04 534 #define _UEP15_EPCONDIS 0x08 535 #define _UEP15_EPHSHK 0x10 536 537 //============================================================================== 538 539 540 //============================================================================== 541 // UIE Bits 542 543 extern __at(0x0F36) __sfr UIE; 544 545 typedef struct 546 { 547 unsigned URSTIE : 1; 548 unsigned UERRIE : 1; 549 unsigned ACTVIE : 1; 550 unsigned TRNIE : 1; 551 unsigned IDLEIE : 1; 552 unsigned STALLIE : 1; 553 unsigned SOFIE : 1; 554 unsigned : 1; 555 } __UIEbits_t; 556 557 extern __at(0x0F36) volatile __UIEbits_t UIEbits; 558 559 #define _URSTIE 0x01 560 #define _UERRIE 0x02 561 #define _ACTVIE 0x04 562 #define _TRNIE 0x08 563 #define _IDLEIE 0x10 564 #define _STALLIE 0x20 565 #define _SOFIE 0x40 566 567 //============================================================================== 568 569 570 //============================================================================== 571 // UEIE Bits 572 573 extern __at(0x0F37) __sfr UEIE; 574 575 typedef struct 576 { 577 unsigned PIDEE : 1; 578 unsigned CRC5EE : 1; 579 unsigned CRC16EE : 1; 580 unsigned DFN8EE : 1; 581 unsigned BTOEE : 1; 582 unsigned : 1; 583 unsigned : 1; 584 unsigned BTSEE : 1; 585 } __UEIEbits_t; 586 587 extern __at(0x0F37) volatile __UEIEbits_t UEIEbits; 588 589 #define _PIDEE 0x01 590 #define _CRC5EE 0x02 591 #define _CRC16EE 0x04 592 #define _DFN8EE 0x08 593 #define _BTOEE 0x10 594 #define _BTSEE 0x80 595 596 //============================================================================== 597 598 599 //============================================================================== 600 // UADDR Bits 601 602 extern __at(0x0F38) __sfr UADDR; 603 604 typedef union 605 { 606 struct 607 { 608 unsigned ADDR0 : 1; 609 unsigned ADDR1 : 1; 610 unsigned ADDR2 : 1; 611 unsigned ADDR3 : 1; 612 unsigned ADDR4 : 1; 613 unsigned ADDR5 : 1; 614 unsigned ADDR6 : 1; 615 unsigned : 1; 616 }; 617 618 struct 619 { 620 unsigned ADDR : 7; 621 unsigned : 1; 622 }; 623 } __UADDRbits_t; 624 625 extern __at(0x0F38) volatile __UADDRbits_t UADDRbits; 626 627 #define _ADDR0 0x01 628 #define _ADDR1 0x02 629 #define _ADDR2 0x04 630 #define _ADDR3 0x08 631 #define _ADDR4 0x10 632 #define _ADDR5 0x20 633 #define _ADDR6 0x40 634 635 //============================================================================== 636 637 638 //============================================================================== 639 // UCFG Bits 640 641 extern __at(0x0F39) __sfr UCFG; 642 643 typedef union 644 { 645 struct 646 { 647 unsigned PPB0 : 1; 648 unsigned PPB1 : 1; 649 unsigned FSEN : 1; 650 unsigned UTRDIS : 1; 651 unsigned UPUEN : 1; 652 unsigned : 1; 653 unsigned UOEMON : 1; 654 unsigned UTEYE : 1; 655 }; 656 657 struct 658 { 659 unsigned PPB : 2; 660 unsigned : 6; 661 }; 662 } __UCFGbits_t; 663 664 extern __at(0x0F39) volatile __UCFGbits_t UCFGbits; 665 666 #define _PPB0 0x01 667 #define _PPB1 0x02 668 #define _FSEN 0x04 669 #define _UTRDIS 0x08 670 #define _UPUEN 0x10 671 #define _UOEMON 0x40 672 #define _UTEYE 0x80 673 674 //============================================================================== 675 676 677 //============================================================================== 678 // PADCFG1 Bits 679 680 extern __at(0x0F3C) __sfr PADCFG1; 681 682 typedef union 683 { 684 struct 685 { 686 unsigned PMPTTL : 1; 687 unsigned RTSECSEL0 : 1; 688 unsigned RTSECSEL1 : 1; 689 unsigned : 1; 690 unsigned : 1; 691 unsigned : 1; 692 unsigned : 1; 693 unsigned : 1; 694 }; 695 696 struct 697 { 698 unsigned : 1; 699 unsigned RTSECSEL : 2; 700 unsigned : 5; 701 }; 702 } __PADCFG1bits_t; 703 704 extern __at(0x0F3C) volatile __PADCFG1bits_t PADCFG1bits; 705 706 #define _PMPTTL 0x01 707 #define _RTSECSEL0 0x02 708 #define _RTSECSEL1 0x04 709 710 //============================================================================== 711 712 713 //============================================================================== 714 // REFOCON Bits 715 716 extern __at(0x0F3D) __sfr REFOCON; 717 718 typedef union 719 { 720 struct 721 { 722 unsigned RODIV0 : 1; 723 unsigned RODIV1 : 1; 724 unsigned RODIV2 : 1; 725 unsigned RODIV3 : 1; 726 unsigned ROSEL : 1; 727 unsigned ROSSLP : 1; 728 unsigned : 1; 729 unsigned ROON : 1; 730 }; 731 732 struct 733 { 734 unsigned RODIV : 4; 735 unsigned : 4; 736 }; 737 } __REFOCONbits_t; 738 739 extern __at(0x0F3D) volatile __REFOCONbits_t REFOCONbits; 740 741 #define _RODIV0 0x01 742 #define _RODIV1 0x02 743 #define _RODIV2 0x04 744 #define _RODIV3 0x08 745 #define _ROSEL 0x10 746 #define _ROSSLP 0x20 747 #define _ROON 0x80 748 749 //============================================================================== 750 751 752 //============================================================================== 753 // RTCCAL Bits 754 755 extern __at(0x0F3E) __sfr RTCCAL; 756 757 typedef struct 758 { 759 unsigned CAL0 : 1; 760 unsigned CAL1 : 1; 761 unsigned CAL2 : 1; 762 unsigned CAL3 : 1; 763 unsigned CAL4 : 1; 764 unsigned CAL5 : 1; 765 unsigned CAL6 : 1; 766 unsigned CAL7 : 1; 767 } __RTCCALbits_t; 768 769 extern __at(0x0F3E) volatile __RTCCALbits_t RTCCALbits; 770 771 #define _CAL0 0x01 772 #define _CAL1 0x02 773 #define _CAL2 0x04 774 #define _CAL3 0x08 775 #define _CAL4 0x10 776 #define _CAL5 0x20 777 #define _CAL6 0x40 778 #define _CAL7 0x80 779 780 //============================================================================== 781 782 783 //============================================================================== 784 // RTCCFG Bits 785 786 extern __at(0x0F3F) __sfr RTCCFG; 787 788 typedef union 789 { 790 struct 791 { 792 unsigned RTCPTR0 : 1; 793 unsigned RTCPTR1 : 1; 794 unsigned RTCOE : 1; 795 unsigned HALFSEC : 1; 796 unsigned RTCSYNC : 1; 797 unsigned RTCWREN : 1; 798 unsigned : 1; 799 unsigned RTCEN : 1; 800 }; 801 802 struct 803 { 804 unsigned RTCPTR : 2; 805 unsigned : 6; 806 }; 807 } __RTCCFGbits_t; 808 809 extern __at(0x0F3F) volatile __RTCCFGbits_t RTCCFGbits; 810 811 #define _RTCPTR0 0x01 812 #define _RTCPTR1 0x02 813 #define _RTCOE 0x04 814 #define _HALFSEC 0x08 815 #define _RTCSYNC 0x10 816 #define _RTCWREN 0x20 817 #define _RTCEN 0x80 818 819 //============================================================================== 820 821 822 //============================================================================== 823 // ODCON3 Bits 824 825 extern __at(0x0F40) __sfr ODCON3; 826 827 typedef struct 828 { 829 unsigned SPI1OD : 1; 830 unsigned SPI2OD : 1; 831 unsigned : 1; 832 unsigned : 1; 833 unsigned : 1; 834 unsigned : 1; 835 unsigned : 1; 836 unsigned : 1; 837 } __ODCON3bits_t; 838 839 extern __at(0x0F40) volatile __ODCON3bits_t ODCON3bits; 840 841 #define _SPI1OD 0x01 842 #define _SPI2OD 0x02 843 844 //============================================================================== 845 846 847 //============================================================================== 848 // ODCON2 Bits 849 850 extern __at(0x0F41) __sfr ODCON2; 851 852 typedef struct 853 { 854 unsigned U1OD : 1; 855 unsigned U2OD : 1; 856 unsigned : 1; 857 unsigned : 1; 858 unsigned : 1; 859 unsigned : 1; 860 unsigned : 1; 861 unsigned : 1; 862 } __ODCON2bits_t; 863 864 extern __at(0x0F41) volatile __ODCON2bits_t ODCON2bits; 865 866 #define _U1OD 0x01 867 #define _U2OD 0x02 868 869 //============================================================================== 870 871 872 //============================================================================== 873 // ODCON1 Bits 874 875 extern __at(0x0F42) __sfr ODCON1; 876 877 typedef struct 878 { 879 unsigned ECCP1OD : 1; 880 unsigned ECCP2OD : 1; 881 unsigned : 1; 882 unsigned : 1; 883 unsigned : 1; 884 unsigned : 1; 885 unsigned : 1; 886 unsigned : 1; 887 } __ODCON1bits_t; 888 889 extern __at(0x0F42) volatile __ODCON1bits_t ODCON1bits; 890 891 #define _ECCP1OD 0x01 892 #define _ECCP2OD 0x02 893 894 //============================================================================== 895 896 897 //============================================================================== 898 // ANCON0 Bits 899 900 extern __at(0x0F48) __sfr ANCON0; 901 902 typedef union 903 { 904 struct 905 { 906 unsigned PCFG0 : 1; 907 unsigned PCFG1 : 1; 908 unsigned PCFG2 : 1; 909 unsigned PCFG3 : 1; 910 unsigned PCFG4 : 1; 911 unsigned : 1; 912 unsigned : 1; 913 unsigned : 1; 914 }; 915 916 struct 917 { 918 unsigned PCFG : 5; 919 unsigned : 3; 920 }; 921 } __ANCON0bits_t; 922 923 extern __at(0x0F48) volatile __ANCON0bits_t ANCON0bits; 924 925 #define _PCFG0 0x01 926 #define _PCFG1 0x02 927 #define _PCFG2 0x04 928 #define _PCFG3 0x08 929 #define _PCFG4 0x10 930 931 //============================================================================== 932 933 934 //============================================================================== 935 // ANCON1 Bits 936 937 extern __at(0x0F49) __sfr ANCON1; 938 939 typedef struct 940 { 941 unsigned PCFG8 : 1; 942 unsigned PCFG9 : 1; 943 unsigned PCFG10 : 1; 944 unsigned PCFG11 : 1; 945 unsigned PCFG12 : 1; 946 unsigned : 1; 947 unsigned : 1; 948 unsigned VBGEN : 1; 949 } __ANCON1bits_t; 950 951 extern __at(0x0F49) volatile __ANCON1bits_t ANCON1bits; 952 953 #define _PCFG8 0x01 954 #define _PCFG9 0x02 955 #define _PCFG10 0x04 956 #define _PCFG11 0x08 957 #define _PCFG12 0x10 958 #define _VBGEN 0x80 959 960 //============================================================================== 961 962 963 //============================================================================== 964 // DSWAKEL Bits 965 966 extern __at(0x0F4A) __sfr DSWAKEL; 967 968 typedef struct 969 { 970 unsigned DSPOR : 1; 971 unsigned : 1; 972 unsigned DSMCLR : 1; 973 unsigned DSRTC : 1; 974 unsigned DSWDT : 1; 975 unsigned DSULP : 1; 976 unsigned : 1; 977 unsigned DSFLT : 1; 978 } __DSWAKELbits_t; 979 980 extern __at(0x0F4A) volatile __DSWAKELbits_t DSWAKELbits; 981 982 #define _DSPOR 0x01 983 #define _DSMCLR 0x04 984 #define _DSRTC 0x08 985 #define _DSWDT 0x10 986 #define _DSULP 0x20 987 #define _DSFLT 0x80 988 989 //============================================================================== 990 991 992 //============================================================================== 993 // DSWAKEH Bits 994 995 extern __at(0x0F4B) __sfr DSWAKEH; 996 997 typedef struct 998 { 999 unsigned DSINT0 : 1; 1000 unsigned : 1; 1001 unsigned : 1; 1002 unsigned : 1; 1003 unsigned : 1; 1004 unsigned : 1; 1005 unsigned : 1; 1006 unsigned : 1; 1007 } __DSWAKEHbits_t; 1008 1009 extern __at(0x0F4B) volatile __DSWAKEHbits_t DSWAKEHbits; 1010 1011 #define _DSINT0 0x01 1012 1013 //============================================================================== 1014 1015 1016 //============================================================================== 1017 // DSCONL Bits 1018 1019 extern __at(0x0F4C) __sfr DSCONL; 1020 1021 typedef struct 1022 { 1023 unsigned RELEASE : 1; 1024 unsigned DSBOR : 1; 1025 unsigned ULPWDIS : 1; 1026 unsigned : 1; 1027 unsigned : 1; 1028 unsigned : 1; 1029 unsigned : 1; 1030 unsigned : 1; 1031 } __DSCONLbits_t; 1032 1033 extern __at(0x0F4C) volatile __DSCONLbits_t DSCONLbits; 1034 1035 #define _RELEASE 0x01 1036 #define _DSBOR 0x02 1037 #define _ULPWDIS 0x04 1038 1039 //============================================================================== 1040 1041 1042 //============================================================================== 1043 // DSCONH Bits 1044 1045 extern __at(0x0F4D) __sfr DSCONH; 1046 1047 typedef struct 1048 { 1049 unsigned RTCWDIS : 1; 1050 unsigned DSULPEN : 1; 1051 unsigned : 1; 1052 unsigned : 1; 1053 unsigned : 1; 1054 unsigned : 1; 1055 unsigned : 1; 1056 unsigned DSEN : 1; 1057 } __DSCONHbits_t; 1058 1059 extern __at(0x0F4D) volatile __DSCONHbits_t DSCONHbits; 1060 1061 #define _RTCWDIS 0x01 1062 #define _DSULPEN 0x02 1063 #define _DSEN 0x80 1064 1065 //============================================================================== 1066 1067 extern __at(0x0F4E) __sfr DSGPR0; 1068 extern __at(0x0F4F) __sfr DSGPR1; 1069 1070 //============================================================================== 1071 // TCLKCON Bits 1072 1073 extern __at(0x0F52) __sfr TCLKCON; 1074 1075 typedef struct 1076 { 1077 unsigned T3CCP1 : 1; 1078 unsigned T3CCP2 : 1; 1079 unsigned : 1; 1080 unsigned : 1; 1081 unsigned T1RUN : 1; 1082 unsigned : 1; 1083 unsigned : 1; 1084 unsigned : 1; 1085 } __TCLKCONbits_t; 1086 1087 extern __at(0x0F52) volatile __TCLKCONbits_t TCLKCONbits; 1088 1089 #define _T3CCP1 0x01 1090 #define _T3CCP2 0x02 1091 #define _T1RUN 0x10 1092 1093 //============================================================================== 1094 1095 1096 //============================================================================== 1097 // CVRCON Bits 1098 1099 extern __at(0x0F53) __sfr CVRCON; 1100 1101 typedef union 1102 { 1103 struct 1104 { 1105 unsigned CVR0 : 1; 1106 unsigned CVR1 : 1; 1107 unsigned CVR2 : 1; 1108 unsigned CVR3 : 1; 1109 unsigned CVRSS : 1; 1110 unsigned CVRR : 1; 1111 unsigned CVROE : 1; 1112 unsigned CVREN : 1; 1113 }; 1114 1115 struct 1116 { 1117 unsigned CVR : 4; 1118 unsigned : 4; 1119 }; 1120 } __CVRCONbits_t; 1121 1122 extern __at(0x0F53) volatile __CVRCONbits_t CVRCONbits; 1123 1124 #define _CVR0 0x01 1125 #define _CVR1 0x02 1126 #define _CVR2 0x04 1127 #define _CVR3 0x08 1128 #define _CVRSS 0x10 1129 #define _CVRR 0x20 1130 #define _CVROE 0x40 1131 #define _CVREN 0x80 1132 1133 //============================================================================== 1134 1135 extern __at(0x0F60) __sfr UFRM; 1136 1137 //============================================================================== 1138 // UFRML Bits 1139 1140 extern __at(0x0F60) __sfr UFRML; 1141 1142 typedef struct 1143 { 1144 unsigned FRM0 : 1; 1145 unsigned FRM1 : 1; 1146 unsigned FRM2 : 1; 1147 unsigned FRM3 : 1; 1148 unsigned FRM4 : 1; 1149 unsigned FRM5 : 1; 1150 unsigned FRM6 : 1; 1151 unsigned FRM7 : 1; 1152 } __UFRMLbits_t; 1153 1154 extern __at(0x0F60) volatile __UFRMLbits_t UFRMLbits; 1155 1156 #define _FRM0 0x01 1157 #define _FRM1 0x02 1158 #define _FRM2 0x04 1159 #define _FRM3 0x08 1160 #define _FRM4 0x10 1161 #define _FRM5 0x20 1162 #define _FRM6 0x40 1163 #define _FRM7 0x80 1164 1165 //============================================================================== 1166 1167 1168 //============================================================================== 1169 // UFRMH Bits 1170 1171 extern __at(0x0F61) __sfr UFRMH; 1172 1173 typedef struct 1174 { 1175 unsigned FRM8 : 1; 1176 unsigned FRM9 : 1; 1177 unsigned FRM10 : 1; 1178 unsigned : 1; 1179 unsigned : 1; 1180 unsigned : 1; 1181 unsigned : 1; 1182 unsigned : 1; 1183 } __UFRMHbits_t; 1184 1185 extern __at(0x0F61) volatile __UFRMHbits_t UFRMHbits; 1186 1187 #define _FRM8 0x01 1188 #define _FRM9 0x02 1189 #define _FRM10 0x04 1190 1191 //============================================================================== 1192 1193 1194 //============================================================================== 1195 // UIR Bits 1196 1197 extern __at(0x0F62) __sfr UIR; 1198 1199 typedef struct 1200 { 1201 unsigned URSTIF : 1; 1202 unsigned UERRIF : 1; 1203 unsigned ACTVIF : 1; 1204 unsigned TRNIF : 1; 1205 unsigned IDLEIF : 1; 1206 unsigned STALLIF : 1; 1207 unsigned SOFIF : 1; 1208 unsigned : 1; 1209 } __UIRbits_t; 1210 1211 extern __at(0x0F62) volatile __UIRbits_t UIRbits; 1212 1213 #define _URSTIF 0x01 1214 #define _UERRIF 0x02 1215 #define _ACTVIF 0x04 1216 #define _TRNIF 0x08 1217 #define _IDLEIF 0x10 1218 #define _STALLIF 0x20 1219 #define _SOFIF 0x40 1220 1221 //============================================================================== 1222 1223 1224 //============================================================================== 1225 // UEIR Bits 1226 1227 extern __at(0x0F63) __sfr UEIR; 1228 1229 typedef struct 1230 { 1231 unsigned PIDEF : 1; 1232 unsigned CRC5EF : 1; 1233 unsigned CRC16EF : 1; 1234 unsigned DFN8EF : 1; 1235 unsigned BTOEF : 1; 1236 unsigned : 1; 1237 unsigned : 1; 1238 unsigned BTSEF : 1; 1239 } __UEIRbits_t; 1240 1241 extern __at(0x0F63) volatile __UEIRbits_t UEIRbits; 1242 1243 #define _PIDEF 0x01 1244 #define _CRC5EF 0x02 1245 #define _CRC16EF 0x04 1246 #define _DFN8EF 0x08 1247 #define _BTOEF 0x10 1248 #define _BTSEF 0x80 1249 1250 //============================================================================== 1251 1252 1253 //============================================================================== 1254 // USTAT Bits 1255 1256 extern __at(0x0F64) __sfr USTAT; 1257 1258 typedef union 1259 { 1260 struct 1261 { 1262 unsigned : 1; 1263 unsigned PPBI : 1; 1264 unsigned DIR : 1; 1265 unsigned ENDP0 : 1; 1266 unsigned ENDP1 : 1; 1267 unsigned ENDP2 : 1; 1268 unsigned ENDP3 : 1; 1269 unsigned : 1; 1270 }; 1271 1272 struct 1273 { 1274 unsigned : 3; 1275 unsigned ENDP : 4; 1276 unsigned : 1; 1277 }; 1278 } __USTATbits_t; 1279 1280 extern __at(0x0F64) volatile __USTATbits_t USTATbits; 1281 1282 #define _PPBI 0x02 1283 #define _DIR 0x04 1284 #define _ENDP0 0x08 1285 #define _ENDP1 0x10 1286 #define _ENDP2 0x20 1287 #define _ENDP3 0x40 1288 1289 //============================================================================== 1290 1291 1292 //============================================================================== 1293 // UCON Bits 1294 1295 extern __at(0x0F65) __sfr UCON; 1296 1297 typedef struct 1298 { 1299 unsigned : 1; 1300 unsigned SUSPND : 1; 1301 unsigned RESUME : 1; 1302 unsigned USBEN : 1; 1303 unsigned PKTDIS : 1; 1304 unsigned SE0 : 1; 1305 unsigned PPBRST : 1; 1306 unsigned : 1; 1307 } __UCONbits_t; 1308 1309 extern __at(0x0F65) volatile __UCONbits_t UCONbits; 1310 1311 #define _SUSPND 0x02 1312 #define _RESUME 0x04 1313 #define _USBEN 0x08 1314 #define _PKTDIS 0x10 1315 #define _SE0 0x20 1316 #define _PPBRST 0x40 1317 1318 //============================================================================== 1319 1320 extern __at(0x0F66) __sfr DMABCH; 1321 extern __at(0x0F67) __sfr DMABCL; 1322 extern __at(0x0F68) __sfr RXADDRH; 1323 extern __at(0x0F69) __sfr RXADDRL; 1324 extern __at(0x0F6A) __sfr TXADDRH; 1325 extern __at(0x0F6B) __sfr TXADDRL; 1326 1327 //============================================================================== 1328 // CMSTAT Bits 1329 1330 extern __at(0x0F70) __sfr CMSTAT; 1331 1332 typedef struct 1333 { 1334 unsigned COUT1 : 1; 1335 unsigned COUT2 : 1; 1336 unsigned : 1; 1337 unsigned : 1; 1338 unsigned : 1; 1339 unsigned : 1; 1340 unsigned : 1; 1341 unsigned : 1; 1342 } __CMSTATbits_t; 1343 1344 extern __at(0x0F70) volatile __CMSTATbits_t CMSTATbits; 1345 1346 #define _COUT1 0x01 1347 #define _COUT2 0x02 1348 1349 //============================================================================== 1350 1351 1352 //============================================================================== 1353 // CMSTATUS Bits 1354 1355 extern __at(0x0F70) __sfr CMSTATUS; 1356 1357 typedef struct 1358 { 1359 unsigned COUT1 : 1; 1360 unsigned COUT2 : 1; 1361 unsigned : 1; 1362 unsigned : 1; 1363 unsigned : 1; 1364 unsigned : 1; 1365 unsigned : 1; 1366 unsigned : 1; 1367 } __CMSTATUSbits_t; 1368 1369 extern __at(0x0F70) volatile __CMSTATUSbits_t CMSTATUSbits; 1370 1371 #define _CMSTATUS_COUT1 0x01 1372 #define _CMSTATUS_COUT2 0x02 1373 1374 //============================================================================== 1375 1376 1377 //============================================================================== 1378 // SSP2CON2 Bits 1379 1380 extern __at(0x0F71) __sfr SSP2CON2; 1381 1382 typedef union 1383 { 1384 struct 1385 { 1386 unsigned SEN : 1; 1387 unsigned RSEN : 1; 1388 unsigned PEN : 1; 1389 unsigned RCEN : 1; 1390 unsigned ACKEN : 1; 1391 unsigned ACKDT : 1; 1392 unsigned ACKSTAT : 1; 1393 unsigned GCEN : 1; 1394 }; 1395 1396 struct 1397 { 1398 unsigned : 1; 1399 unsigned ADMSK1 : 1; 1400 unsigned ADMSK2 : 1; 1401 unsigned ADMSK3 : 1; 1402 unsigned ADMSK4 : 1; 1403 unsigned ADMSK5 : 1; 1404 unsigned : 1; 1405 unsigned : 1; 1406 }; 1407 } __SSP2CON2bits_t; 1408 1409 extern __at(0x0F71) volatile __SSP2CON2bits_t SSP2CON2bits; 1410 1411 #define _SSP2CON2_SEN 0x01 1412 #define _SSP2CON2_RSEN 0x02 1413 #define _SSP2CON2_ADMSK1 0x02 1414 #define _SSP2CON2_PEN 0x04 1415 #define _SSP2CON2_ADMSK2 0x04 1416 #define _SSP2CON2_RCEN 0x08 1417 #define _SSP2CON2_ADMSK3 0x08 1418 #define _SSP2CON2_ACKEN 0x10 1419 #define _SSP2CON2_ADMSK4 0x10 1420 #define _SSP2CON2_ACKDT 0x20 1421 #define _SSP2CON2_ADMSK5 0x20 1422 #define _SSP2CON2_ACKSTAT 0x40 1423 #define _SSP2CON2_GCEN 0x80 1424 1425 //============================================================================== 1426 1427 1428 //============================================================================== 1429 // SSP2CON1 Bits 1430 1431 extern __at(0x0F72) __sfr SSP2CON1; 1432 1433 typedef union 1434 { 1435 struct 1436 { 1437 unsigned SSPM0 : 1; 1438 unsigned SSPM1 : 1; 1439 unsigned SSPM2 : 1; 1440 unsigned SSPM3 : 1; 1441 unsigned CKP : 1; 1442 unsigned SSPEN : 1; 1443 unsigned SSPOV : 1; 1444 unsigned WCOL : 1; 1445 }; 1446 1447 struct 1448 { 1449 unsigned SSPM : 4; 1450 unsigned : 4; 1451 }; 1452 } __SSP2CON1bits_t; 1453 1454 extern __at(0x0F72) volatile __SSP2CON1bits_t SSP2CON1bits; 1455 1456 #define _SSP2CON1_SSPM0 0x01 1457 #define _SSP2CON1_SSPM1 0x02 1458 #define _SSP2CON1_SSPM2 0x04 1459 #define _SSP2CON1_SSPM3 0x08 1460 #define _SSP2CON1_CKP 0x10 1461 #define _SSP2CON1_SSPEN 0x20 1462 #define _SSP2CON1_SSPOV 0x40 1463 #define _SSP2CON1_WCOL 0x80 1464 1465 //============================================================================== 1466 1467 1468 //============================================================================== 1469 // SSP2STAT Bits 1470 1471 extern __at(0x0F73) __sfr SSP2STAT; 1472 1473 typedef struct 1474 { 1475 unsigned BF : 1; 1476 unsigned UA : 1; 1477 unsigned R_NOT_W : 1; 1478 unsigned S : 1; 1479 unsigned P : 1; 1480 unsigned D_NOT_A : 1; 1481 unsigned CKE : 1; 1482 unsigned SMP : 1; 1483 } __SSP2STATbits_t; 1484 1485 extern __at(0x0F73) volatile __SSP2STATbits_t SSP2STATbits; 1486 1487 #define _SSP2STAT_BF 0x01 1488 #define _SSP2STAT_UA 0x02 1489 #define _SSP2STAT_R_NOT_W 0x04 1490 #define _SSP2STAT_S 0x08 1491 #define _SSP2STAT_P 0x10 1492 #define _SSP2STAT_D_NOT_A 0x20 1493 #define _SSP2STAT_CKE 0x40 1494 #define _SSP2STAT_SMP 0x80 1495 1496 //============================================================================== 1497 1498 1499 //============================================================================== 1500 // SSP2ADD Bits 1501 1502 extern __at(0x0F74) __sfr SSP2ADD; 1503 1504 typedef struct 1505 { 1506 unsigned MSK0 : 1; 1507 unsigned MSK1 : 1; 1508 unsigned MSK2 : 1; 1509 unsigned MSK3 : 1; 1510 unsigned MSK4 : 1; 1511 unsigned MSK5 : 1; 1512 unsigned MSK6 : 1; 1513 unsigned MSK7 : 1; 1514 } __SSP2ADDbits_t; 1515 1516 extern __at(0x0F74) volatile __SSP2ADDbits_t SSP2ADDbits; 1517 1518 #define _SSP2ADD_MSK0 0x01 1519 #define _SSP2ADD_MSK1 0x02 1520 #define _SSP2ADD_MSK2 0x04 1521 #define _SSP2ADD_MSK3 0x08 1522 #define _SSP2ADD_MSK4 0x10 1523 #define _SSP2ADD_MSK5 0x20 1524 #define _SSP2ADD_MSK6 0x40 1525 #define _SSP2ADD_MSK7 0x80 1526 1527 //============================================================================== 1528 1529 1530 //============================================================================== 1531 // SSP2MSK Bits 1532 1533 extern __at(0x0F74) __sfr SSP2MSK; 1534 1535 typedef struct 1536 { 1537 unsigned MSK0 : 1; 1538 unsigned MSK1 : 1; 1539 unsigned MSK2 : 1; 1540 unsigned MSK3 : 1; 1541 unsigned MSK4 : 1; 1542 unsigned MSK5 : 1; 1543 unsigned MSK6 : 1; 1544 unsigned MSK7 : 1; 1545 } __SSP2MSKbits_t; 1546 1547 extern __at(0x0F74) volatile __SSP2MSKbits_t SSP2MSKbits; 1548 1549 #define _SSP2MSK_MSK0 0x01 1550 #define _SSP2MSK_MSK1 0x02 1551 #define _SSP2MSK_MSK2 0x04 1552 #define _SSP2MSK_MSK3 0x08 1553 #define _SSP2MSK_MSK4 0x10 1554 #define _SSP2MSK_MSK5 0x20 1555 #define _SSP2MSK_MSK6 0x40 1556 #define _SSP2MSK_MSK7 0x80 1557 1558 //============================================================================== 1559 1560 extern __at(0x0F75) __sfr SSP2BUF; 1561 1562 //============================================================================== 1563 // T4CON Bits 1564 1565 extern __at(0x0F76) __sfr T4CON; 1566 1567 typedef union 1568 { 1569 struct 1570 { 1571 unsigned T4CKPS0 : 1; 1572 unsigned T4CKPS1 : 1; 1573 unsigned TMR4ON : 1; 1574 unsigned T4OUTPS0 : 1; 1575 unsigned T4OUTPS1 : 1; 1576 unsigned T4OUTPS2 : 1; 1577 unsigned T4OUTPS3 : 1; 1578 unsigned : 1; 1579 }; 1580 1581 struct 1582 { 1583 unsigned T4CKPS : 2; 1584 unsigned : 6; 1585 }; 1586 1587 struct 1588 { 1589 unsigned : 3; 1590 unsigned T4OUTPS : 4; 1591 unsigned : 1; 1592 }; 1593 } __T4CONbits_t; 1594 1595 extern __at(0x0F76) volatile __T4CONbits_t T4CONbits; 1596 1597 #define _T4CKPS0 0x01 1598 #define _T4CKPS1 0x02 1599 #define _TMR4ON 0x04 1600 #define _T4OUTPS0 0x08 1601 #define _T4OUTPS1 0x10 1602 #define _T4OUTPS2 0x20 1603 #define _T4OUTPS3 0x40 1604 1605 //============================================================================== 1606 1607 extern __at(0x0F77) __sfr PR4; 1608 extern __at(0x0F78) __sfr TMR4; 1609 1610 //============================================================================== 1611 // T3CON Bits 1612 1613 extern __at(0x0F79) __sfr T3CON; 1614 1615 typedef union 1616 { 1617 struct 1618 { 1619 unsigned TMR3ON : 1; 1620 unsigned RD16 : 1; 1621 unsigned T3SYNC : 1; 1622 unsigned T3OSCEN : 1; 1623 unsigned T3CKPS0 : 1; 1624 unsigned T3CKPS1 : 1; 1625 unsigned TMR3CS0 : 1; 1626 unsigned TMR3CS1 : 1; 1627 }; 1628 1629 struct 1630 { 1631 unsigned : 4; 1632 unsigned T3CKPS : 2; 1633 unsigned : 2; 1634 }; 1635 1636 struct 1637 { 1638 unsigned : 6; 1639 unsigned TMR3CS : 2; 1640 }; 1641 } __T3CONbits_t; 1642 1643 extern __at(0x0F79) volatile __T3CONbits_t T3CONbits; 1644 1645 #define _T3CON_TMR3ON 0x01 1646 #define _T3CON_RD16 0x02 1647 #define _T3CON_T3SYNC 0x04 1648 #define _T3CON_T3OSCEN 0x08 1649 #define _T3CON_T3CKPS0 0x10 1650 #define _T3CON_T3CKPS1 0x20 1651 #define _T3CON_TMR3CS0 0x40 1652 #define _T3CON_TMR3CS1 0x80 1653 1654 //============================================================================== 1655 1656 extern __at(0x0F7A) __sfr TMR3; 1657 extern __at(0x0F7A) __sfr TMR3L; 1658 extern __at(0x0F7B) __sfr TMR3H; 1659 1660 //============================================================================== 1661 // BAUDCON2 Bits 1662 1663 extern __at(0x0F7C) __sfr BAUDCON2; 1664 1665 typedef struct 1666 { 1667 unsigned ABDEN : 1; 1668 unsigned WUE : 1; 1669 unsigned : 1; 1670 unsigned BRG16 : 1; 1671 unsigned TXCKP : 1; 1672 unsigned RXDTP : 1; 1673 unsigned RCIDL : 1; 1674 unsigned ABDOVF : 1; 1675 } __BAUDCON2bits_t; 1676 1677 extern __at(0x0F7C) volatile __BAUDCON2bits_t BAUDCON2bits; 1678 1679 #define _BAUDCON2_ABDEN 0x01 1680 #define _BAUDCON2_WUE 0x02 1681 #define _BAUDCON2_BRG16 0x08 1682 #define _BAUDCON2_TXCKP 0x10 1683 #define _BAUDCON2_RXDTP 0x20 1684 #define _BAUDCON2_RCIDL 0x40 1685 #define _BAUDCON2_ABDOVF 0x80 1686 1687 //============================================================================== 1688 1689 extern __at(0x0F7D) __sfr SPBRGH2; 1690 1691 //============================================================================== 1692 // BAUDCON Bits 1693 1694 extern __at(0x0F7E) __sfr BAUDCON; 1695 1696 typedef struct 1697 { 1698 unsigned ABDEN : 1; 1699 unsigned WUE : 1; 1700 unsigned : 1; 1701 unsigned BRG16 : 1; 1702 unsigned TXCKP : 1; 1703 unsigned RXDTP : 1; 1704 unsigned RCIDL : 1; 1705 unsigned ABDOVF : 1; 1706 } __BAUDCONbits_t; 1707 1708 extern __at(0x0F7E) volatile __BAUDCONbits_t BAUDCONbits; 1709 1710 #define _ABDEN 0x01 1711 #define _WUE 0x02 1712 #define _BRG16 0x08 1713 #define _TXCKP 0x10 1714 #define _RXDTP 0x20 1715 #define _RCIDL 0x40 1716 #define _ABDOVF 0x80 1717 1718 //============================================================================== 1719 1720 1721 //============================================================================== 1722 // BAUDCON1 Bits 1723 1724 extern __at(0x0F7E) __sfr BAUDCON1; 1725 1726 typedef struct 1727 { 1728 unsigned ABDEN : 1; 1729 unsigned WUE : 1; 1730 unsigned : 1; 1731 unsigned BRG16 : 1; 1732 unsigned TXCKP : 1; 1733 unsigned RXDTP : 1; 1734 unsigned RCIDL : 1; 1735 unsigned ABDOVF : 1; 1736 } __BAUDCON1bits_t; 1737 1738 extern __at(0x0F7E) volatile __BAUDCON1bits_t BAUDCON1bits; 1739 1740 #define _BAUDCON1_ABDEN 0x01 1741 #define _BAUDCON1_WUE 0x02 1742 #define _BAUDCON1_BRG16 0x08 1743 #define _BAUDCON1_TXCKP 0x10 1744 #define _BAUDCON1_RXDTP 0x20 1745 #define _BAUDCON1_RCIDL 0x40 1746 #define _BAUDCON1_ABDOVF 0x80 1747 1748 //============================================================================== 1749 1750 1751 //============================================================================== 1752 // BAUDCTL Bits 1753 1754 extern __at(0x0F7E) __sfr BAUDCTL; 1755 1756 typedef struct 1757 { 1758 unsigned ABDEN : 1; 1759 unsigned WUE : 1; 1760 unsigned : 1; 1761 unsigned BRG16 : 1; 1762 unsigned TXCKP : 1; 1763 unsigned RXDTP : 1; 1764 unsigned RCIDL : 1; 1765 unsigned ABDOVF : 1; 1766 } __BAUDCTLbits_t; 1767 1768 extern __at(0x0F7E) volatile __BAUDCTLbits_t BAUDCTLbits; 1769 1770 #define _BAUDCTL_ABDEN 0x01 1771 #define _BAUDCTL_WUE 0x02 1772 #define _BAUDCTL_BRG16 0x08 1773 #define _BAUDCTL_TXCKP 0x10 1774 #define _BAUDCTL_RXDTP 0x20 1775 #define _BAUDCTL_RCIDL 0x40 1776 #define _BAUDCTL_ABDOVF 0x80 1777 1778 //============================================================================== 1779 1780 extern __at(0x0F7F) __sfr SPBRGH; 1781 extern __at(0x0F7F) __sfr SPBRGH1; 1782 1783 //============================================================================== 1784 // PORTA Bits 1785 1786 extern __at(0x0F80) __sfr PORTA; 1787 1788 typedef union 1789 { 1790 struct 1791 { 1792 unsigned RA0 : 1; 1793 unsigned RA1 : 1; 1794 unsigned RA2 : 1; 1795 unsigned RA3 : 1; 1796 unsigned : 1; 1797 unsigned RA5 : 1; 1798 unsigned RA6 : 1; 1799 unsigned RA7 : 1; 1800 }; 1801 1802 struct 1803 { 1804 unsigned AN0 : 1; 1805 unsigned AN1 : 1; 1806 unsigned AN2 : 1; 1807 unsigned AN3 : 1; 1808 unsigned : 1; 1809 unsigned AN4 : 1; 1810 unsigned OSC2 : 1; 1811 unsigned OSC1 : 1; 1812 }; 1813 1814 struct 1815 { 1816 unsigned C1INA : 1; 1817 unsigned C2INA : 1; 1818 unsigned VREF_MINUS : 1; 1819 unsigned VREF_PLUS : 1; 1820 unsigned : 1; 1821 unsigned NOT_SS1 : 1; 1822 unsigned CLKO : 1; 1823 unsigned CLKI : 1; 1824 }; 1825 1826 struct 1827 { 1828 unsigned RP0 : 1; 1829 unsigned RP1 : 1; 1830 unsigned CVREF_MINUS : 1; 1831 unsigned C1INB : 1; 1832 unsigned : 1; 1833 unsigned HLVDIN : 1; 1834 unsigned : 1; 1835 unsigned : 1; 1836 }; 1837 1838 struct 1839 { 1840 unsigned ULPWU : 1; 1841 unsigned : 1; 1842 unsigned C2INB : 1; 1843 unsigned : 1; 1844 unsigned : 1; 1845 unsigned RCV : 1; 1846 unsigned : 1; 1847 unsigned : 1; 1848 }; 1849 1850 struct 1851 { 1852 unsigned : 1; 1853 unsigned : 1; 1854 unsigned : 1; 1855 unsigned : 1; 1856 unsigned : 1; 1857 unsigned RP2 : 1; 1858 unsigned : 1; 1859 unsigned : 1; 1860 }; 1861 } __PORTAbits_t; 1862 1863 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits; 1864 1865 #define _RA0 0x01 1866 #define _AN0 0x01 1867 #define _C1INA 0x01 1868 #define _RP0 0x01 1869 #define _ULPWU 0x01 1870 #define _RA1 0x02 1871 #define _AN1 0x02 1872 #define _C2INA 0x02 1873 #define _RP1 0x02 1874 #define _RA2 0x04 1875 #define _AN2 0x04 1876 #define _VREF_MINUS 0x04 1877 #define _CVREF_MINUS 0x04 1878 #define _C2INB 0x04 1879 #define _RA3 0x08 1880 #define _AN3 0x08 1881 #define _VREF_PLUS 0x08 1882 #define _C1INB 0x08 1883 #define _RA5 0x20 1884 #define _AN4 0x20 1885 #define _NOT_SS1 0x20 1886 #define _HLVDIN 0x20 1887 #define _RCV 0x20 1888 #define _RP2 0x20 1889 #define _RA6 0x40 1890 #define _OSC2 0x40 1891 #define _CLKO 0x40 1892 #define _RA7 0x80 1893 #define _OSC1 0x80 1894 #define _CLKI 0x80 1895 1896 //============================================================================== 1897 1898 1899 //============================================================================== 1900 // PORTB Bits 1901 1902 extern __at(0x0F81) __sfr PORTB; 1903 1904 typedef union 1905 { 1906 struct 1907 { 1908 unsigned RB0 : 1; 1909 unsigned RB1 : 1; 1910 unsigned RB2 : 1; 1911 unsigned RB3 : 1; 1912 unsigned RB4 : 1; 1913 unsigned RB5 : 1; 1914 unsigned RB6 : 1; 1915 unsigned RB7 : 1; 1916 }; 1917 1918 struct 1919 { 1920 unsigned AN12 : 1; 1921 unsigned AN10 : 1; 1922 unsigned AN8 : 1; 1923 unsigned AN9 : 1; 1924 unsigned KBI0 : 1; 1925 unsigned KBI1 : 1; 1926 unsigned KBI2 : 1; 1927 unsigned KBI3 : 1; 1928 }; 1929 1930 struct 1931 { 1932 unsigned INT0 : 1; 1933 unsigned RTCC : 1; 1934 unsigned CTEDG1 : 1; 1935 unsigned CTEDG2 : 1; 1936 unsigned SCK1 : 1; 1937 unsigned SDI1 : 1; 1938 unsigned PGC : 1; 1939 unsigned PGD : 1; 1940 }; 1941 1942 struct 1943 { 1944 unsigned RP3 : 1; 1945 unsigned RP4 : 1; 1946 unsigned VMO : 1; 1947 unsigned VPO : 1; 1948 unsigned SCL1 : 1; 1949 unsigned SDA1 : 1; 1950 unsigned RP9 : 1; 1951 unsigned RP10 : 1; 1952 }; 1953 1954 struct 1955 { 1956 unsigned : 1; 1957 unsigned : 1; 1958 unsigned REFO : 1; 1959 unsigned RP6 : 1; 1960 unsigned RP7 : 1; 1961 unsigned RP8 : 1; 1962 unsigned : 1; 1963 unsigned : 1; 1964 }; 1965 1966 struct 1967 { 1968 unsigned : 1; 1969 unsigned : 1; 1970 unsigned RP5 : 1; 1971 unsigned : 1; 1972 unsigned : 1; 1973 unsigned : 1; 1974 unsigned : 1; 1975 unsigned : 1; 1976 }; 1977 1978 struct 1979 { 1980 unsigned : 4; 1981 unsigned KBI : 4; 1982 }; 1983 } __PORTBbits_t; 1984 1985 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits; 1986 1987 #define _RB0 0x01 1988 #define _AN12 0x01 1989 #define _INT0 0x01 1990 #define _RP3 0x01 1991 #define _RB1 0x02 1992 #define _AN10 0x02 1993 #define _RTCC 0x02 1994 #define _RP4 0x02 1995 #define _RB2 0x04 1996 #define _AN8 0x04 1997 #define _CTEDG1 0x04 1998 #define _VMO 0x04 1999 #define _REFO 0x04 2000 #define _RP5 0x04 2001 #define _RB3 0x08 2002 #define _AN9 0x08 2003 #define _CTEDG2 0x08 2004 #define _VPO 0x08 2005 #define _RP6 0x08 2006 #define _RB4 0x10 2007 #define _KBI0 0x10 2008 #define _SCK1 0x10 2009 #define _SCL1 0x10 2010 #define _RP7 0x10 2011 #define _RB5 0x20 2012 #define _KBI1 0x20 2013 #define _SDI1 0x20 2014 #define _SDA1 0x20 2015 #define _RP8 0x20 2016 #define _RB6 0x40 2017 #define _KBI2 0x40 2018 #define _PGC 0x40 2019 #define _RP9 0x40 2020 #define _RB7 0x80 2021 #define _KBI3 0x80 2022 #define _PGD 0x80 2023 #define _RP10 0x80 2024 2025 //============================================================================== 2026 2027 2028 //============================================================================== 2029 // PORTC Bits 2030 2031 extern __at(0x0F82) __sfr PORTC; 2032 2033 typedef union 2034 { 2035 struct 2036 { 2037 unsigned RC0 : 1; 2038 unsigned RC1 : 1; 2039 unsigned RC2 : 1; 2040 unsigned : 1; 2041 unsigned RC4 : 1; 2042 unsigned RC5 : 1; 2043 unsigned RC6 : 1; 2044 unsigned RC7 : 1; 2045 }; 2046 2047 struct 2048 { 2049 unsigned T1OSO : 1; 2050 unsigned T1OSI : 1; 2051 unsigned AN11 : 1; 2052 unsigned : 1; 2053 unsigned D_MINUS : 1; 2054 unsigned D_PLUS : 1; 2055 unsigned TX1 : 1; 2056 unsigned RX1 : 1; 2057 }; 2058 2059 struct 2060 { 2061 unsigned T1CK : 1; 2062 unsigned NOT_UOE : 1; 2063 unsigned CTPLS : 1; 2064 unsigned : 1; 2065 unsigned VM : 1; 2066 unsigned VP : 1; 2067 unsigned CK1 : 1; 2068 unsigned DT1 : 1; 2069 }; 2070 2071 struct 2072 { 2073 unsigned RP11 : 1; 2074 unsigned RP12 : 1; 2075 unsigned RP13 : 1; 2076 unsigned : 1; 2077 unsigned : 1; 2078 unsigned : 1; 2079 unsigned RP17 : 1; 2080 unsigned SDO1 : 1; 2081 }; 2082 2083 struct 2084 { 2085 unsigned : 1; 2086 unsigned : 1; 2087 unsigned : 1; 2088 unsigned : 1; 2089 unsigned : 1; 2090 unsigned : 1; 2091 unsigned : 1; 2092 unsigned RP18 : 1; 2093 }; 2094 } __PORTCbits_t; 2095 2096 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits; 2097 2098 #define _RC0 0x01 2099 #define _T1OSO 0x01 2100 #define _T1CK 0x01 2101 #define _RP11 0x01 2102 #define _RC1 0x02 2103 #define _T1OSI 0x02 2104 #define _NOT_UOE 0x02 2105 #define _RP12 0x02 2106 #define _RC2 0x04 2107 #define _AN11 0x04 2108 #define _CTPLS 0x04 2109 #define _RP13 0x04 2110 #define _RC4 0x10 2111 #define _D_MINUS 0x10 2112 #define _VM 0x10 2113 #define _RC5 0x20 2114 #define _D_PLUS 0x20 2115 #define _VP 0x20 2116 #define _RC6 0x40 2117 #define _TX1 0x40 2118 #define _CK1 0x40 2119 #define _RP17 0x40 2120 #define _RC7 0x80 2121 #define _RX1 0x80 2122 #define _DT1 0x80 2123 #define _SDO1 0x80 2124 #define _RP18 0x80 2125 2126 //============================================================================== 2127 2128 2129 //============================================================================== 2130 // HLVDCON Bits 2131 2132 extern __at(0x0F85) __sfr HLVDCON; 2133 2134 typedef union 2135 { 2136 struct 2137 { 2138 unsigned HLVDL0 : 1; 2139 unsigned HLVDL1 : 1; 2140 unsigned HLVDL2 : 1; 2141 unsigned HLVDL3 : 1; 2142 unsigned HLVDEN : 1; 2143 unsigned IRVST : 1; 2144 unsigned BGVST : 1; 2145 unsigned VDIRMAG : 1; 2146 }; 2147 2148 struct 2149 { 2150 unsigned HLVDL : 4; 2151 unsigned : 4; 2152 }; 2153 } __HLVDCONbits_t; 2154 2155 extern __at(0x0F85) volatile __HLVDCONbits_t HLVDCONbits; 2156 2157 #define _HLVDL0 0x01 2158 #define _HLVDL1 0x02 2159 #define _HLVDL2 0x04 2160 #define _HLVDL3 0x08 2161 #define _HLVDEN 0x10 2162 #define _IRVST 0x20 2163 #define _BGVST 0x40 2164 #define _VDIRMAG 0x80 2165 2166 //============================================================================== 2167 2168 2169 //============================================================================== 2170 // DMACON2 Bits 2171 2172 extern __at(0x0F86) __sfr DMACON2; 2173 2174 typedef union 2175 { 2176 struct 2177 { 2178 unsigned INTLVL0 : 1; 2179 unsigned INTLVL1 : 1; 2180 unsigned INTLVL2 : 1; 2181 unsigned INTLVL3 : 1; 2182 unsigned DLYCYC0 : 1; 2183 unsigned DLYCYC1 : 1; 2184 unsigned DLYCYC2 : 1; 2185 unsigned DLYCYC3 : 1; 2186 }; 2187 2188 struct 2189 { 2190 unsigned INTLVL : 4; 2191 unsigned : 4; 2192 }; 2193 2194 struct 2195 { 2196 unsigned : 4; 2197 unsigned DLYCYC : 4; 2198 }; 2199 } __DMACON2bits_t; 2200 2201 extern __at(0x0F86) volatile __DMACON2bits_t DMACON2bits; 2202 2203 #define _INTLVL0 0x01 2204 #define _INTLVL1 0x02 2205 #define _INTLVL2 0x04 2206 #define _INTLVL3 0x08 2207 #define _DLYCYC0 0x10 2208 #define _DLYCYC1 0x20 2209 #define _DLYCYC2 0x40 2210 #define _DLYCYC3 0x80 2211 2212 //============================================================================== 2213 2214 2215 //============================================================================== 2216 // DMACON1 Bits 2217 2218 extern __at(0x0F88) __sfr DMACON1; 2219 2220 typedef union 2221 { 2222 struct 2223 { 2224 unsigned DMAEN : 1; 2225 unsigned DLYINTEN : 1; 2226 unsigned DUPLEX0 : 1; 2227 unsigned DUPLEX1 : 1; 2228 unsigned RXINC : 1; 2229 unsigned TXINC : 1; 2230 unsigned SSCON0 : 1; 2231 unsigned SSCON1 : 1; 2232 }; 2233 2234 struct 2235 { 2236 unsigned : 2; 2237 unsigned DUPLEX : 2; 2238 unsigned : 4; 2239 }; 2240 2241 struct 2242 { 2243 unsigned : 6; 2244 unsigned SSCON : 2; 2245 }; 2246 } __DMACON1bits_t; 2247 2248 extern __at(0x0F88) volatile __DMACON1bits_t DMACON1bits; 2249 2250 #define _DMAEN 0x01 2251 #define _DLYINTEN 0x02 2252 #define _DUPLEX0 0x04 2253 #define _DUPLEX1 0x08 2254 #define _RXINC 0x10 2255 #define _TXINC 0x20 2256 #define _SSCON0 0x40 2257 #define _SSCON1 0x80 2258 2259 //============================================================================== 2260 2261 2262 //============================================================================== 2263 // LATA Bits 2264 2265 extern __at(0x0F89) __sfr LATA; 2266 2267 typedef struct 2268 { 2269 unsigned LATA0 : 1; 2270 unsigned LATA1 : 1; 2271 unsigned LATA2 : 1; 2272 unsigned LATA3 : 1; 2273 unsigned : 1; 2274 unsigned LATA5 : 1; 2275 unsigned LATA6 : 1; 2276 unsigned LATA7 : 1; 2277 } __LATAbits_t; 2278 2279 extern __at(0x0F89) volatile __LATAbits_t LATAbits; 2280 2281 #define _LATA0 0x01 2282 #define _LATA1 0x02 2283 #define _LATA2 0x04 2284 #define _LATA3 0x08 2285 #define _LATA5 0x20 2286 #define _LATA6 0x40 2287 #define _LATA7 0x80 2288 2289 //============================================================================== 2290 2291 2292 //============================================================================== 2293 // LATB Bits 2294 2295 extern __at(0x0F8A) __sfr LATB; 2296 2297 typedef struct 2298 { 2299 unsigned LATB0 : 1; 2300 unsigned LATB1 : 1; 2301 unsigned LATB2 : 1; 2302 unsigned LATB3 : 1; 2303 unsigned LATB4 : 1; 2304 unsigned LATB5 : 1; 2305 unsigned LATB6 : 1; 2306 unsigned LATB7 : 1; 2307 } __LATBbits_t; 2308 2309 extern __at(0x0F8A) volatile __LATBbits_t LATBbits; 2310 2311 #define _LATB0 0x01 2312 #define _LATB1 0x02 2313 #define _LATB2 0x04 2314 #define _LATB3 0x08 2315 #define _LATB4 0x10 2316 #define _LATB5 0x20 2317 #define _LATB6 0x40 2318 #define _LATB7 0x80 2319 2320 //============================================================================== 2321 2322 2323 //============================================================================== 2324 // LATC Bits 2325 2326 extern __at(0x0F8B) __sfr LATC; 2327 2328 typedef struct 2329 { 2330 unsigned LATC0 : 1; 2331 unsigned LATC1 : 1; 2332 unsigned LATC2 : 1; 2333 unsigned : 1; 2334 unsigned LATC4 : 1; 2335 unsigned LATC5 : 1; 2336 unsigned LATC6 : 1; 2337 unsigned LATC7 : 1; 2338 } __LATCbits_t; 2339 2340 extern __at(0x0F8B) volatile __LATCbits_t LATCbits; 2341 2342 #define _LATC0 0x01 2343 #define _LATC1 0x02 2344 #define _LATC2 0x04 2345 #define _LATC4 0x10 2346 #define _LATC5 0x20 2347 #define _LATC6 0x40 2348 #define _LATC7 0x80 2349 2350 //============================================================================== 2351 2352 extern __at(0x0F8E) __sfr ALRMVALL; 2353 extern __at(0x0F8F) __sfr ALRMVALH; 2354 2355 //============================================================================== 2356 // ALRMRPT Bits 2357 2358 extern __at(0x0F90) __sfr ALRMRPT; 2359 2360 typedef struct 2361 { 2362 unsigned ARPT0 : 1; 2363 unsigned ARPT1 : 1; 2364 unsigned ARPT2 : 1; 2365 unsigned ARPT3 : 1; 2366 unsigned ARPT4 : 1; 2367 unsigned ARPT5 : 1; 2368 unsigned ARPT6 : 1; 2369 unsigned ARPT7 : 1; 2370 } __ALRMRPTbits_t; 2371 2372 extern __at(0x0F90) volatile __ALRMRPTbits_t ALRMRPTbits; 2373 2374 #define _ARPT0 0x01 2375 #define _ARPT1 0x02 2376 #define _ARPT2 0x04 2377 #define _ARPT3 0x08 2378 #define _ARPT4 0x10 2379 #define _ARPT5 0x20 2380 #define _ARPT6 0x40 2381 #define _ARPT7 0x80 2382 2383 //============================================================================== 2384 2385 2386 //============================================================================== 2387 // ALRMCFG Bits 2388 2389 extern __at(0x0F91) __sfr ALRMCFG; 2390 2391 typedef union 2392 { 2393 struct 2394 { 2395 unsigned ALRMPTR0 : 1; 2396 unsigned ALRMPTR1 : 1; 2397 unsigned AMASK0 : 1; 2398 unsigned AMASK1 : 1; 2399 unsigned AMASK2 : 1; 2400 unsigned AMASK3 : 1; 2401 unsigned CHIME : 1; 2402 unsigned ALRMEN : 1; 2403 }; 2404 2405 struct 2406 { 2407 unsigned ALRMPTR : 2; 2408 unsigned : 6; 2409 }; 2410 2411 struct 2412 { 2413 unsigned : 2; 2414 unsigned AMASK : 4; 2415 unsigned : 2; 2416 }; 2417 } __ALRMCFGbits_t; 2418 2419 extern __at(0x0F91) volatile __ALRMCFGbits_t ALRMCFGbits; 2420 2421 #define _ALRMPTR0 0x01 2422 #define _ALRMPTR1 0x02 2423 #define _AMASK0 0x04 2424 #define _AMASK1 0x08 2425 #define _AMASK2 0x10 2426 #define _AMASK3 0x20 2427 #define _CHIME 0x40 2428 #define _ALRMEN 0x80 2429 2430 //============================================================================== 2431 2432 2433 //============================================================================== 2434 // TRISA Bits 2435 2436 extern __at(0x0F92) __sfr TRISA; 2437 2438 typedef struct 2439 { 2440 unsigned TRISA0 : 1; 2441 unsigned TRISA1 : 1; 2442 unsigned TRISA2 : 1; 2443 unsigned TRISA3 : 1; 2444 unsigned : 1; 2445 unsigned TRISA5 : 1; 2446 unsigned TRISA6 : 1; 2447 unsigned TRISA7 : 1; 2448 } __TRISAbits_t; 2449 2450 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits; 2451 2452 #define _TRISA0 0x01 2453 #define _TRISA1 0x02 2454 #define _TRISA2 0x04 2455 #define _TRISA3 0x08 2456 #define _TRISA5 0x20 2457 #define _TRISA6 0x40 2458 #define _TRISA7 0x80 2459 2460 //============================================================================== 2461 2462 2463 //============================================================================== 2464 // TRISB Bits 2465 2466 extern __at(0x0F93) __sfr TRISB; 2467 2468 typedef struct 2469 { 2470 unsigned TRISB0 : 1; 2471 unsigned TRISB1 : 1; 2472 unsigned TRISB2 : 1; 2473 unsigned TRISB3 : 1; 2474 unsigned TRISB4 : 1; 2475 unsigned TRISB5 : 1; 2476 unsigned TRISB6 : 1; 2477 unsigned TRISB7 : 1; 2478 } __TRISBbits_t; 2479 2480 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits; 2481 2482 #define _TRISB0 0x01 2483 #define _TRISB1 0x02 2484 #define _TRISB2 0x04 2485 #define _TRISB3 0x08 2486 #define _TRISB4 0x10 2487 #define _TRISB5 0x20 2488 #define _TRISB6 0x40 2489 #define _TRISB7 0x80 2490 2491 //============================================================================== 2492 2493 2494 //============================================================================== 2495 // TRISC Bits 2496 2497 extern __at(0x0F94) __sfr TRISC; 2498 2499 typedef struct 2500 { 2501 unsigned TRISC0 : 1; 2502 unsigned TRISC1 : 1; 2503 unsigned TRISC2 : 1; 2504 unsigned : 1; 2505 unsigned TRISC4 : 1; 2506 unsigned TRISC5 : 1; 2507 unsigned TRISC6 : 1; 2508 unsigned TRISC7 : 1; 2509 } __TRISCbits_t; 2510 2511 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits; 2512 2513 #define _TRISC0 0x01 2514 #define _TRISC1 0x02 2515 #define _TRISC2 0x04 2516 #define _TRISC4 0x10 2517 #define _TRISC5 0x20 2518 #define _TRISC6 0x40 2519 #define _TRISC7 0x80 2520 2521 //============================================================================== 2522 2523 2524 //============================================================================== 2525 // T3GCON Bits 2526 2527 extern __at(0x0F97) __sfr T3GCON; 2528 2529 typedef union 2530 { 2531 struct 2532 { 2533 unsigned T3GSS0 : 1; 2534 unsigned T3GSS1 : 1; 2535 unsigned T3GVAL : 1; 2536 unsigned T3GGO_T3DONE : 1; 2537 unsigned T3GSPM : 1; 2538 unsigned T3GTM : 1; 2539 unsigned T3GPOL : 1; 2540 unsigned TMR3GE : 1; 2541 }; 2542 2543 struct 2544 { 2545 unsigned : 1; 2546 unsigned : 1; 2547 unsigned : 1; 2548 unsigned T3GGO : 1; 2549 unsigned : 1; 2550 unsigned : 1; 2551 unsigned : 1; 2552 unsigned : 1; 2553 }; 2554 2555 struct 2556 { 2557 unsigned : 1; 2558 unsigned : 1; 2559 unsigned : 1; 2560 unsigned T3DONE : 1; 2561 unsigned : 1; 2562 unsigned : 1; 2563 unsigned : 1; 2564 unsigned : 1; 2565 }; 2566 2567 struct 2568 { 2569 unsigned T3GSS : 2; 2570 unsigned : 6; 2571 }; 2572 } __T3GCONbits_t; 2573 2574 extern __at(0x0F97) volatile __T3GCONbits_t T3GCONbits; 2575 2576 #define _T3GSS0 0x01 2577 #define _T3GSS1 0x02 2578 #define _T3GVAL 0x04 2579 #define _T3GGO_T3DONE 0x08 2580 #define _T3GGO 0x08 2581 #define _T3DONE 0x08 2582 #define _T3GSPM 0x10 2583 #define _T3GTM 0x20 2584 #define _T3GPOL 0x40 2585 #define _TMR3GE 0x80 2586 2587 //============================================================================== 2588 2589 extern __at(0x0F98) __sfr RTCVALL; 2590 extern __at(0x0F99) __sfr RTCVALH; 2591 2592 //============================================================================== 2593 // T1GCON Bits 2594 2595 extern __at(0x0F9A) __sfr T1GCON; 2596 2597 typedef union 2598 { 2599 struct 2600 { 2601 unsigned T1GSS0 : 1; 2602 unsigned T1GSS1 : 1; 2603 unsigned T1GVAL : 1; 2604 unsigned T1GGO_T1DONE : 1; 2605 unsigned T1GSPM : 1; 2606 unsigned T1GTM : 1; 2607 unsigned T1GPOL : 1; 2608 unsigned TMR1GE : 1; 2609 }; 2610 2611 struct 2612 { 2613 unsigned : 1; 2614 unsigned : 1; 2615 unsigned : 1; 2616 unsigned T1GGO : 1; 2617 unsigned : 1; 2618 unsigned : 1; 2619 unsigned : 1; 2620 unsigned : 1; 2621 }; 2622 2623 struct 2624 { 2625 unsigned : 1; 2626 unsigned : 1; 2627 unsigned : 1; 2628 unsigned T1DONE : 1; 2629 unsigned : 1; 2630 unsigned : 1; 2631 unsigned : 1; 2632 unsigned : 1; 2633 }; 2634 2635 struct 2636 { 2637 unsigned T1GSS : 2; 2638 unsigned : 6; 2639 }; 2640 } __T1GCONbits_t; 2641 2642 extern __at(0x0F9A) volatile __T1GCONbits_t T1GCONbits; 2643 2644 #define _T1GSS0 0x01 2645 #define _T1GSS1 0x02 2646 #define _T1GVAL 0x04 2647 #define _T1GGO_T1DONE 0x08 2648 #define _T1GGO 0x08 2649 #define _T1DONE 0x08 2650 #define _T1GSPM 0x10 2651 #define _T1GTM 0x20 2652 #define _T1GPOL 0x40 2653 #define _TMR1GE 0x80 2654 2655 //============================================================================== 2656 2657 2658 //============================================================================== 2659 // OSCTUNE Bits 2660 2661 extern __at(0x0F9B) __sfr OSCTUNE; 2662 2663 typedef union 2664 { 2665 struct 2666 { 2667 unsigned TUN0 : 1; 2668 unsigned TUN1 : 1; 2669 unsigned TUN2 : 1; 2670 unsigned TUN3 : 1; 2671 unsigned TUN4 : 1; 2672 unsigned TUN5 : 1; 2673 unsigned PLLEN : 1; 2674 unsigned INTSRC : 1; 2675 }; 2676 2677 struct 2678 { 2679 unsigned TUN : 6; 2680 unsigned : 2; 2681 }; 2682 } __OSCTUNEbits_t; 2683 2684 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits; 2685 2686 #define _TUN0 0x01 2687 #define _TUN1 0x02 2688 #define _TUN2 0x04 2689 #define _TUN3 0x08 2690 #define _TUN4 0x10 2691 #define _TUN5 0x20 2692 #define _PLLEN 0x40 2693 #define _INTSRC 0x80 2694 2695 //============================================================================== 2696 2697 2698 //============================================================================== 2699 // RCSTA2 Bits 2700 2701 extern __at(0x0F9C) __sfr RCSTA2; 2702 2703 typedef union 2704 { 2705 struct 2706 { 2707 unsigned RX9D : 1; 2708 unsigned OERR : 1; 2709 unsigned FERR : 1; 2710 unsigned ADDEN : 1; 2711 unsigned CREN : 1; 2712 unsigned SREN : 1; 2713 unsigned RX9 : 1; 2714 unsigned SPEN : 1; 2715 }; 2716 2717 struct 2718 { 2719 unsigned RX9D2 : 1; 2720 unsigned OERR2 : 1; 2721 unsigned FERR2 : 1; 2722 unsigned ADDEN2 : 1; 2723 unsigned CREN2 : 1; 2724 unsigned SREN2 : 1; 2725 unsigned RX92 : 1; 2726 unsigned SPEN2 : 1; 2727 }; 2728 } __RCSTA2bits_t; 2729 2730 extern __at(0x0F9C) volatile __RCSTA2bits_t RCSTA2bits; 2731 2732 #define _RCSTA2_RX9D 0x01 2733 #define _RCSTA2_RX9D2 0x01 2734 #define _RCSTA2_OERR 0x02 2735 #define _RCSTA2_OERR2 0x02 2736 #define _RCSTA2_FERR 0x04 2737 #define _RCSTA2_FERR2 0x04 2738 #define _RCSTA2_ADDEN 0x08 2739 #define _RCSTA2_ADDEN2 0x08 2740 #define _RCSTA2_CREN 0x10 2741 #define _RCSTA2_CREN2 0x10 2742 #define _RCSTA2_SREN 0x20 2743 #define _RCSTA2_SREN2 0x20 2744 #define _RCSTA2_RX9 0x40 2745 #define _RCSTA2_RX92 0x40 2746 #define _RCSTA2_SPEN 0x80 2747 #define _RCSTA2_SPEN2 0x80 2748 2749 //============================================================================== 2750 2751 2752 //============================================================================== 2753 // PIE1 Bits 2754 2755 extern __at(0x0F9D) __sfr PIE1; 2756 2757 typedef union 2758 { 2759 struct 2760 { 2761 unsigned TMR1IE : 1; 2762 unsigned TMR2IE : 1; 2763 unsigned CCP1IE : 1; 2764 unsigned SSP1IE : 1; 2765 unsigned TX1IE : 1; 2766 unsigned RC1IE : 1; 2767 unsigned ADIE : 1; 2768 unsigned : 1; 2769 }; 2770 2771 struct 2772 { 2773 unsigned : 1; 2774 unsigned : 1; 2775 unsigned : 1; 2776 unsigned SSPIE : 1; 2777 unsigned TXIE : 1; 2778 unsigned RCIE : 1; 2779 unsigned : 1; 2780 unsigned : 1; 2781 }; 2782 } __PIE1bits_t; 2783 2784 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits; 2785 2786 #define _TMR1IE 0x01 2787 #define _TMR2IE 0x02 2788 #define _CCP1IE 0x04 2789 #define _SSP1IE 0x08 2790 #define _SSPIE 0x08 2791 #define _TX1IE 0x10 2792 #define _TXIE 0x10 2793 #define _RC1IE 0x20 2794 #define _RCIE 0x20 2795 #define _ADIE 0x40 2796 2797 //============================================================================== 2798 2799 2800 //============================================================================== 2801 // PIR1 Bits 2802 2803 extern __at(0x0F9E) __sfr PIR1; 2804 2805 typedef union 2806 { 2807 struct 2808 { 2809 unsigned TMR1IF : 1; 2810 unsigned TMR2IF : 1; 2811 unsigned CCP1IF : 1; 2812 unsigned SSP1IF : 1; 2813 unsigned TX1IF : 1; 2814 unsigned RC1IF : 1; 2815 unsigned ADIF : 1; 2816 unsigned : 1; 2817 }; 2818 2819 struct 2820 { 2821 unsigned : 1; 2822 unsigned : 1; 2823 unsigned : 1; 2824 unsigned SSPIF : 1; 2825 unsigned TXIF : 1; 2826 unsigned RCIF : 1; 2827 unsigned : 1; 2828 unsigned : 1; 2829 }; 2830 } __PIR1bits_t; 2831 2832 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits; 2833 2834 #define _TMR1IF 0x01 2835 #define _TMR2IF 0x02 2836 #define _CCP1IF 0x04 2837 #define _SSP1IF 0x08 2838 #define _SSPIF 0x08 2839 #define _TX1IF 0x10 2840 #define _TXIF 0x10 2841 #define _RC1IF 0x20 2842 #define _RCIF 0x20 2843 #define _ADIF 0x40 2844 2845 //============================================================================== 2846 2847 2848 //============================================================================== 2849 // IPR1 Bits 2850 2851 extern __at(0x0F9F) __sfr IPR1; 2852 2853 typedef union 2854 { 2855 struct 2856 { 2857 unsigned TMR1IP : 1; 2858 unsigned TMR2IP : 1; 2859 unsigned CCP1IP : 1; 2860 unsigned SSP1IP : 1; 2861 unsigned TX1IP : 1; 2862 unsigned RC1IP : 1; 2863 unsigned ADIP : 1; 2864 unsigned : 1; 2865 }; 2866 2867 struct 2868 { 2869 unsigned : 1; 2870 unsigned : 1; 2871 unsigned : 1; 2872 unsigned SSPIP : 1; 2873 unsigned TXIP : 1; 2874 unsigned RCIP : 1; 2875 unsigned : 1; 2876 unsigned : 1; 2877 }; 2878 } __IPR1bits_t; 2879 2880 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits; 2881 2882 #define _TMR1IP 0x01 2883 #define _TMR2IP 0x02 2884 #define _CCP1IP 0x04 2885 #define _SSP1IP 0x08 2886 #define _SSPIP 0x08 2887 #define _TX1IP 0x10 2888 #define _TXIP 0x10 2889 #define _RC1IP 0x20 2890 #define _RCIP 0x20 2891 #define _ADIP 0x40 2892 2893 //============================================================================== 2894 2895 2896 //============================================================================== 2897 // PIE2 Bits 2898 2899 extern __at(0x0FA0) __sfr PIE2; 2900 2901 typedef union 2902 { 2903 struct 2904 { 2905 unsigned CCP2IE : 1; 2906 unsigned TMR3IE : 1; 2907 unsigned LVDIE : 1; 2908 unsigned BCL1IE : 1; 2909 unsigned USBIE : 1; 2910 unsigned CM1IE : 1; 2911 unsigned CM2IE : 1; 2912 unsigned OSCFIE : 1; 2913 }; 2914 2915 struct 2916 { 2917 unsigned : 1; 2918 unsigned : 1; 2919 unsigned : 1; 2920 unsigned BCLIE : 1; 2921 unsigned : 1; 2922 unsigned : 1; 2923 unsigned : 1; 2924 unsigned : 1; 2925 }; 2926 } __PIE2bits_t; 2927 2928 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits; 2929 2930 #define _CCP2IE 0x01 2931 #define _TMR3IE 0x02 2932 #define _LVDIE 0x04 2933 #define _BCL1IE 0x08 2934 #define _BCLIE 0x08 2935 #define _USBIE 0x10 2936 #define _CM1IE 0x20 2937 #define _CM2IE 0x40 2938 #define _OSCFIE 0x80 2939 2940 //============================================================================== 2941 2942 2943 //============================================================================== 2944 // PIR2 Bits 2945 2946 extern __at(0x0FA1) __sfr PIR2; 2947 2948 typedef union 2949 { 2950 struct 2951 { 2952 unsigned CCP2IF : 1; 2953 unsigned TMR3IF : 1; 2954 unsigned LVDIF : 1; 2955 unsigned BCL1IF : 1; 2956 unsigned USBIF : 1; 2957 unsigned CM1IF : 1; 2958 unsigned CM2IF : 1; 2959 unsigned OSCFIF : 1; 2960 }; 2961 2962 struct 2963 { 2964 unsigned : 1; 2965 unsigned : 1; 2966 unsigned : 1; 2967 unsigned BCLIF : 1; 2968 unsigned : 1; 2969 unsigned : 1; 2970 unsigned : 1; 2971 unsigned : 1; 2972 }; 2973 } __PIR2bits_t; 2974 2975 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits; 2976 2977 #define _CCP2IF 0x01 2978 #define _TMR3IF 0x02 2979 #define _LVDIF 0x04 2980 #define _BCL1IF 0x08 2981 #define _BCLIF 0x08 2982 #define _USBIF 0x10 2983 #define _CM1IF 0x20 2984 #define _CM2IF 0x40 2985 #define _OSCFIF 0x80 2986 2987 //============================================================================== 2988 2989 2990 //============================================================================== 2991 // IPR2 Bits 2992 2993 extern __at(0x0FA2) __sfr IPR2; 2994 2995 typedef union 2996 { 2997 struct 2998 { 2999 unsigned CCP2IP : 1; 3000 unsigned TMR3IP : 1; 3001 unsigned LVDIP : 1; 3002 unsigned BCL1IP : 1; 3003 unsigned USBIP : 1; 3004 unsigned CM1IP : 1; 3005 unsigned CM2IP : 1; 3006 unsigned OSCFIP : 1; 3007 }; 3008 3009 struct 3010 { 3011 unsigned : 1; 3012 unsigned : 1; 3013 unsigned : 1; 3014 unsigned BCLIP : 1; 3015 unsigned : 1; 3016 unsigned : 1; 3017 unsigned : 1; 3018 unsigned : 1; 3019 }; 3020 } __IPR2bits_t; 3021 3022 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits; 3023 3024 #define _CCP2IP 0x01 3025 #define _TMR3IP 0x02 3026 #define _LVDIP 0x04 3027 #define _BCL1IP 0x08 3028 #define _BCLIP 0x08 3029 #define _USBIP 0x10 3030 #define _CM1IP 0x20 3031 #define _CM2IP 0x40 3032 #define _OSCFIP 0x80 3033 3034 //============================================================================== 3035 3036 3037 //============================================================================== 3038 // PIE3 Bits 3039 3040 extern __at(0x0FA3) __sfr PIE3; 3041 3042 typedef struct 3043 { 3044 unsigned RTCCIE : 1; 3045 unsigned TMR3GIE : 1; 3046 unsigned CTMUIE : 1; 3047 unsigned TMR4IE : 1; 3048 unsigned TX2IE : 1; 3049 unsigned RC2IE : 1; 3050 unsigned BCL2IE : 1; 3051 unsigned SSP2IE : 1; 3052 } __PIE3bits_t; 3053 3054 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits; 3055 3056 #define _RTCCIE 0x01 3057 #define _TMR3GIE 0x02 3058 #define _CTMUIE 0x04 3059 #define _TMR4IE 0x08 3060 #define _TX2IE 0x10 3061 #define _RC2IE 0x20 3062 #define _BCL2IE 0x40 3063 #define _SSP2IE 0x80 3064 3065 //============================================================================== 3066 3067 3068 //============================================================================== 3069 // PIR3 Bits 3070 3071 extern __at(0x0FA4) __sfr PIR3; 3072 3073 typedef struct 3074 { 3075 unsigned RTCCIF : 1; 3076 unsigned TMR3GIF : 1; 3077 unsigned CTMUIF : 1; 3078 unsigned TMR4IF : 1; 3079 unsigned TX2IF : 1; 3080 unsigned RC2IF : 1; 3081 unsigned BCL2IF : 1; 3082 unsigned SSP2IF : 1; 3083 } __PIR3bits_t; 3084 3085 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits; 3086 3087 #define _RTCCIF 0x01 3088 #define _TMR3GIF 0x02 3089 #define _CTMUIF 0x04 3090 #define _TMR4IF 0x08 3091 #define _TX2IF 0x10 3092 #define _RC2IF 0x20 3093 #define _BCL2IF 0x40 3094 #define _SSP2IF 0x80 3095 3096 //============================================================================== 3097 3098 3099 //============================================================================== 3100 // IPR3 Bits 3101 3102 extern __at(0x0FA5) __sfr IPR3; 3103 3104 typedef struct 3105 { 3106 unsigned RTCCIP : 1; 3107 unsigned TMR3GIP : 1; 3108 unsigned CTMUIP : 1; 3109 unsigned TMR4IP : 1; 3110 unsigned TX2IP : 1; 3111 unsigned RC2IP : 1; 3112 unsigned BCL2IP : 1; 3113 unsigned SSP2IP : 1; 3114 } __IPR3bits_t; 3115 3116 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits; 3117 3118 #define _RTCCIP 0x01 3119 #define _TMR3GIP 0x02 3120 #define _CTMUIP 0x04 3121 #define _TMR4IP 0x08 3122 #define _TX2IP 0x10 3123 #define _RC2IP 0x20 3124 #define _BCL2IP 0x40 3125 #define _SSP2IP 0x80 3126 3127 //============================================================================== 3128 3129 3130 //============================================================================== 3131 // EECON1 Bits 3132 3133 extern __at(0x0FA6) __sfr EECON1; 3134 3135 typedef struct 3136 { 3137 unsigned : 1; 3138 unsigned WR : 1; 3139 unsigned WREN : 1; 3140 unsigned WRERR : 1; 3141 unsigned FREE : 1; 3142 unsigned WPROG : 1; 3143 unsigned : 1; 3144 unsigned : 1; 3145 } __EECON1bits_t; 3146 3147 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits; 3148 3149 #define _WR 0x02 3150 #define _WREN 0x04 3151 #define _WRERR 0x08 3152 #define _FREE 0x10 3153 #define _WPROG 0x20 3154 3155 //============================================================================== 3156 3157 extern __at(0x0FA7) __sfr EECON2; 3158 3159 //============================================================================== 3160 // TXSTA2 Bits 3161 3162 extern __at(0x0FA8) __sfr TXSTA2; 3163 3164 typedef union 3165 { 3166 struct 3167 { 3168 unsigned TX9D : 1; 3169 unsigned TRMT : 1; 3170 unsigned BRGH : 1; 3171 unsigned SENDB : 1; 3172 unsigned SYNC : 1; 3173 unsigned TXEN : 1; 3174 unsigned TX9 : 1; 3175 unsigned CSRC : 1; 3176 }; 3177 3178 struct 3179 { 3180 unsigned TX9D2 : 1; 3181 unsigned TRMT2 : 1; 3182 unsigned BRGH2 : 1; 3183 unsigned SENDB2 : 1; 3184 unsigned SYNC2 : 1; 3185 unsigned TXEN2 : 1; 3186 unsigned TX92 : 1; 3187 unsigned CSRC2 : 1; 3188 }; 3189 } __TXSTA2bits_t; 3190 3191 extern __at(0x0FA8) volatile __TXSTA2bits_t TXSTA2bits; 3192 3193 #define _TXSTA2_TX9D 0x01 3194 #define _TXSTA2_TX9D2 0x01 3195 #define _TXSTA2_TRMT 0x02 3196 #define _TXSTA2_TRMT2 0x02 3197 #define _TXSTA2_BRGH 0x04 3198 #define _TXSTA2_BRGH2 0x04 3199 #define _TXSTA2_SENDB 0x08 3200 #define _TXSTA2_SENDB2 0x08 3201 #define _TXSTA2_SYNC 0x10 3202 #define _TXSTA2_SYNC2 0x10 3203 #define _TXSTA2_TXEN 0x20 3204 #define _TXSTA2_TXEN2 0x20 3205 #define _TXSTA2_TX9 0x40 3206 #define _TXSTA2_TX92 0x40 3207 #define _TXSTA2_CSRC 0x80 3208 #define _TXSTA2_CSRC2 0x80 3209 3210 //============================================================================== 3211 3212 extern __at(0x0FA9) __sfr TXREG2; 3213 extern __at(0x0FAA) __sfr RCREG2; 3214 extern __at(0x0FAB) __sfr SPBRG2; 3215 3216 //============================================================================== 3217 // RCSTA Bits 3218 3219 extern __at(0x0FAC) __sfr RCSTA; 3220 3221 typedef union 3222 { 3223 struct 3224 { 3225 unsigned RX9D : 1; 3226 unsigned OERR : 1; 3227 unsigned FERR : 1; 3228 unsigned ADDEN : 1; 3229 unsigned CREN : 1; 3230 unsigned SREN : 1; 3231 unsigned RX9 : 1; 3232 unsigned SPEN : 1; 3233 }; 3234 3235 struct 3236 { 3237 unsigned RCD8 : 1; 3238 unsigned OERR1 : 1; 3239 unsigned FERR1 : 1; 3240 unsigned ADEN : 1; 3241 unsigned CREN1 : 1; 3242 unsigned SREN1 : 1; 3243 unsigned RC9 : 1; 3244 unsigned SPEN1 : 1; 3245 }; 3246 3247 struct 3248 { 3249 unsigned RX9D1 : 1; 3250 unsigned : 1; 3251 unsigned : 1; 3252 unsigned ADDEN1 : 1; 3253 unsigned : 1; 3254 unsigned : 1; 3255 unsigned NOT_RC8 : 1; 3256 unsigned : 1; 3257 }; 3258 3259 struct 3260 { 3261 unsigned : 1; 3262 unsigned : 1; 3263 unsigned : 1; 3264 unsigned : 1; 3265 unsigned : 1; 3266 unsigned : 1; 3267 unsigned RC8_9 : 1; 3268 unsigned : 1; 3269 }; 3270 3271 struct 3272 { 3273 unsigned : 1; 3274 unsigned : 1; 3275 unsigned : 1; 3276 unsigned : 1; 3277 unsigned : 1; 3278 unsigned : 1; 3279 unsigned RX91 : 1; 3280 unsigned : 1; 3281 }; 3282 } __RCSTAbits_t; 3283 3284 extern __at(0x0FAC) volatile __RCSTAbits_t RCSTAbits; 3285 3286 #define _RX9D 0x01 3287 #define _RCD8 0x01 3288 #define _RX9D1 0x01 3289 #define _OERR 0x02 3290 #define _OERR1 0x02 3291 #define _FERR 0x04 3292 #define _FERR1 0x04 3293 #define _ADDEN 0x08 3294 #define _ADEN 0x08 3295 #define _ADDEN1 0x08 3296 #define _CREN 0x10 3297 #define _CREN1 0x10 3298 #define _SREN 0x20 3299 #define _SREN1 0x20 3300 #define _RX9 0x40 3301 #define _RC9 0x40 3302 #define _NOT_RC8 0x40 3303 #define _RC8_9 0x40 3304 #define _RX91 0x40 3305 #define _SPEN 0x80 3306 #define _SPEN1 0x80 3307 3308 //============================================================================== 3309 3310 3311 //============================================================================== 3312 // RCSTA1 Bits 3313 3314 extern __at(0x0FAC) __sfr RCSTA1; 3315 3316 typedef union 3317 { 3318 struct 3319 { 3320 unsigned RX9D : 1; 3321 unsigned OERR : 1; 3322 unsigned FERR : 1; 3323 unsigned ADDEN : 1; 3324 unsigned CREN : 1; 3325 unsigned SREN : 1; 3326 unsigned RX9 : 1; 3327 unsigned SPEN : 1; 3328 }; 3329 3330 struct 3331 { 3332 unsigned RCD8 : 1; 3333 unsigned OERR1 : 1; 3334 unsigned FERR1 : 1; 3335 unsigned ADEN : 1; 3336 unsigned CREN1 : 1; 3337 unsigned SREN1 : 1; 3338 unsigned RC9 : 1; 3339 unsigned SPEN1 : 1; 3340 }; 3341 3342 struct 3343 { 3344 unsigned RX9D1 : 1; 3345 unsigned : 1; 3346 unsigned : 1; 3347 unsigned ADDEN1 : 1; 3348 unsigned : 1; 3349 unsigned : 1; 3350 unsigned NOT_RC8 : 1; 3351 unsigned : 1; 3352 }; 3353 3354 struct 3355 { 3356 unsigned : 1; 3357 unsigned : 1; 3358 unsigned : 1; 3359 unsigned : 1; 3360 unsigned : 1; 3361 unsigned : 1; 3362 unsigned RC8_9 : 1; 3363 unsigned : 1; 3364 }; 3365 3366 struct 3367 { 3368 unsigned : 1; 3369 unsigned : 1; 3370 unsigned : 1; 3371 unsigned : 1; 3372 unsigned : 1; 3373 unsigned : 1; 3374 unsigned RX91 : 1; 3375 unsigned : 1; 3376 }; 3377 } __RCSTA1bits_t; 3378 3379 extern __at(0x0FAC) volatile __RCSTA1bits_t RCSTA1bits; 3380 3381 #define _RCSTA1_RX9D 0x01 3382 #define _RCSTA1_RCD8 0x01 3383 #define _RCSTA1_RX9D1 0x01 3384 #define _RCSTA1_OERR 0x02 3385 #define _RCSTA1_OERR1 0x02 3386 #define _RCSTA1_FERR 0x04 3387 #define _RCSTA1_FERR1 0x04 3388 #define _RCSTA1_ADDEN 0x08 3389 #define _RCSTA1_ADEN 0x08 3390 #define _RCSTA1_ADDEN1 0x08 3391 #define _RCSTA1_CREN 0x10 3392 #define _RCSTA1_CREN1 0x10 3393 #define _RCSTA1_SREN 0x20 3394 #define _RCSTA1_SREN1 0x20 3395 #define _RCSTA1_RX9 0x40 3396 #define _RCSTA1_RC9 0x40 3397 #define _RCSTA1_NOT_RC8 0x40 3398 #define _RCSTA1_RC8_9 0x40 3399 #define _RCSTA1_RX91 0x40 3400 #define _RCSTA1_SPEN 0x80 3401 #define _RCSTA1_SPEN1 0x80 3402 3403 //============================================================================== 3404 3405 3406 //============================================================================== 3407 // TXSTA Bits 3408 3409 extern __at(0x0FAD) __sfr TXSTA; 3410 3411 typedef union 3412 { 3413 struct 3414 { 3415 unsigned TX9D : 1; 3416 unsigned TRMT : 1; 3417 unsigned BRGH : 1; 3418 unsigned SENDB : 1; 3419 unsigned SYNC : 1; 3420 unsigned TXEN : 1; 3421 unsigned TX9 : 1; 3422 unsigned CSRC : 1; 3423 }; 3424 3425 struct 3426 { 3427 unsigned TXD8 : 1; 3428 unsigned TRMT1 : 1; 3429 unsigned BRGH1 : 1; 3430 unsigned SENDB1 : 1; 3431 unsigned SYNC1 : 1; 3432 unsigned TXEN1 : 1; 3433 unsigned TX8_9 : 1; 3434 unsigned CSRC1 : 1; 3435 }; 3436 3437 struct 3438 { 3439 unsigned TX9D1 : 1; 3440 unsigned : 1; 3441 unsigned : 1; 3442 unsigned : 1; 3443 unsigned : 1; 3444 unsigned : 1; 3445 unsigned NOT_TX8 : 1; 3446 unsigned : 1; 3447 }; 3448 3449 struct 3450 { 3451 unsigned : 1; 3452 unsigned : 1; 3453 unsigned : 1; 3454 unsigned : 1; 3455 unsigned : 1; 3456 unsigned : 1; 3457 unsigned TX91 : 1; 3458 unsigned : 1; 3459 }; 3460 } __TXSTAbits_t; 3461 3462 extern __at(0x0FAD) volatile __TXSTAbits_t TXSTAbits; 3463 3464 #define _TX9D 0x01 3465 #define _TXD8 0x01 3466 #define _TX9D1 0x01 3467 #define _TRMT 0x02 3468 #define _TRMT1 0x02 3469 #define _BRGH 0x04 3470 #define _BRGH1 0x04 3471 #define _SENDB 0x08 3472 #define _SENDB1 0x08 3473 #define _SYNC 0x10 3474 #define _SYNC1 0x10 3475 #define _TXEN 0x20 3476 #define _TXEN1 0x20 3477 #define _TX9 0x40 3478 #define _TX8_9 0x40 3479 #define _NOT_TX8 0x40 3480 #define _TX91 0x40 3481 #define _CSRC 0x80 3482 #define _CSRC1 0x80 3483 3484 //============================================================================== 3485 3486 3487 //============================================================================== 3488 // TXSTA1 Bits 3489 3490 extern __at(0x0FAD) __sfr TXSTA1; 3491 3492 typedef union 3493 { 3494 struct 3495 { 3496 unsigned TX9D : 1; 3497 unsigned TRMT : 1; 3498 unsigned BRGH : 1; 3499 unsigned SENDB : 1; 3500 unsigned SYNC : 1; 3501 unsigned TXEN : 1; 3502 unsigned TX9 : 1; 3503 unsigned CSRC : 1; 3504 }; 3505 3506 struct 3507 { 3508 unsigned TXD8 : 1; 3509 unsigned TRMT1 : 1; 3510 unsigned BRGH1 : 1; 3511 unsigned SENDB1 : 1; 3512 unsigned SYNC1 : 1; 3513 unsigned TXEN1 : 1; 3514 unsigned TX8_9 : 1; 3515 unsigned CSRC1 : 1; 3516 }; 3517 3518 struct 3519 { 3520 unsigned TX9D1 : 1; 3521 unsigned : 1; 3522 unsigned : 1; 3523 unsigned : 1; 3524 unsigned : 1; 3525 unsigned : 1; 3526 unsigned NOT_TX8 : 1; 3527 unsigned : 1; 3528 }; 3529 3530 struct 3531 { 3532 unsigned : 1; 3533 unsigned : 1; 3534 unsigned : 1; 3535 unsigned : 1; 3536 unsigned : 1; 3537 unsigned : 1; 3538 unsigned TX91 : 1; 3539 unsigned : 1; 3540 }; 3541 } __TXSTA1bits_t; 3542 3543 extern __at(0x0FAD) volatile __TXSTA1bits_t TXSTA1bits; 3544 3545 #define _TXSTA1_TX9D 0x01 3546 #define _TXSTA1_TXD8 0x01 3547 #define _TXSTA1_TX9D1 0x01 3548 #define _TXSTA1_TRMT 0x02 3549 #define _TXSTA1_TRMT1 0x02 3550 #define _TXSTA1_BRGH 0x04 3551 #define _TXSTA1_BRGH1 0x04 3552 #define _TXSTA1_SENDB 0x08 3553 #define _TXSTA1_SENDB1 0x08 3554 #define _TXSTA1_SYNC 0x10 3555 #define _TXSTA1_SYNC1 0x10 3556 #define _TXSTA1_TXEN 0x20 3557 #define _TXSTA1_TXEN1 0x20 3558 #define _TXSTA1_TX9 0x40 3559 #define _TXSTA1_TX8_9 0x40 3560 #define _TXSTA1_NOT_TX8 0x40 3561 #define _TXSTA1_TX91 0x40 3562 #define _TXSTA1_CSRC 0x80 3563 #define _TXSTA1_CSRC1 0x80 3564 3565 //============================================================================== 3566 3567 extern __at(0x0FAE) __sfr TXREG; 3568 extern __at(0x0FAE) __sfr TXREG1; 3569 extern __at(0x0FAF) __sfr RCREG; 3570 extern __at(0x0FAF) __sfr RCREG1; 3571 extern __at(0x0FB0) __sfr SPBRG; 3572 extern __at(0x0FB0) __sfr SPBRG1; 3573 3574 //============================================================================== 3575 // CTMUICON Bits 3576 3577 extern __at(0x0FB1) __sfr CTMUICON; 3578 3579 typedef union 3580 { 3581 struct 3582 { 3583 unsigned IRNG0 : 1; 3584 unsigned IRNG1 : 1; 3585 unsigned ITRIM0 : 1; 3586 unsigned ITRIM1 : 1; 3587 unsigned ITRIM2 : 1; 3588 unsigned ITRIM3 : 1; 3589 unsigned ITRIM4 : 1; 3590 unsigned ITRIM5 : 1; 3591 }; 3592 3593 struct 3594 { 3595 unsigned IRNG : 2; 3596 unsigned : 6; 3597 }; 3598 3599 struct 3600 { 3601 unsigned : 2; 3602 unsigned ITRIM : 6; 3603 }; 3604 } __CTMUICONbits_t; 3605 3606 extern __at(0x0FB1) volatile __CTMUICONbits_t CTMUICONbits; 3607 3608 #define _IRNG0 0x01 3609 #define _IRNG1 0x02 3610 #define _ITRIM0 0x04 3611 #define _ITRIM1 0x08 3612 #define _ITRIM2 0x10 3613 #define _ITRIM3 0x20 3614 #define _ITRIM4 0x40 3615 #define _ITRIM5 0x80 3616 3617 //============================================================================== 3618 3619 3620 //============================================================================== 3621 // CTMUCONL Bits 3622 3623 extern __at(0x0FB2) __sfr CTMUCONL; 3624 3625 typedef union 3626 { 3627 struct 3628 { 3629 unsigned EDG1STAT : 1; 3630 unsigned EDG2STAT : 1; 3631 unsigned EDG1SEL0 : 1; 3632 unsigned EDG1SEL1 : 1; 3633 unsigned EDG1POL : 1; 3634 unsigned EDG2SEL0 : 1; 3635 unsigned EDG2SEL1 : 1; 3636 unsigned EDG2POL : 1; 3637 }; 3638 3639 struct 3640 { 3641 unsigned : 2; 3642 unsigned EDG1SEL : 2; 3643 unsigned : 4; 3644 }; 3645 3646 struct 3647 { 3648 unsigned : 5; 3649 unsigned EDG2SEL : 2; 3650 unsigned : 1; 3651 }; 3652 } __CTMUCONLbits_t; 3653 3654 extern __at(0x0FB2) volatile __CTMUCONLbits_t CTMUCONLbits; 3655 3656 #define _EDG1STAT 0x01 3657 #define _EDG2STAT 0x02 3658 #define _EDG1SEL0 0x04 3659 #define _EDG1SEL1 0x08 3660 #define _EDG1POL 0x10 3661 #define _EDG2SEL0 0x20 3662 #define _EDG2SEL1 0x40 3663 #define _EDG2POL 0x80 3664 3665 //============================================================================== 3666 3667 3668 //============================================================================== 3669 // CTMUCONH Bits 3670 3671 extern __at(0x0FB3) __sfr CTMUCONH; 3672 3673 typedef struct 3674 { 3675 unsigned CTTRIG : 1; 3676 unsigned IDISSEN : 1; 3677 unsigned EDGSEQEN : 1; 3678 unsigned EDGEN : 1; 3679 unsigned TGEN : 1; 3680 unsigned CTMUSIDL : 1; 3681 unsigned : 1; 3682 unsigned CTMUEN : 1; 3683 } __CTMUCONHbits_t; 3684 3685 extern __at(0x0FB3) volatile __CTMUCONHbits_t CTMUCONHbits; 3686 3687 #define _CTTRIG 0x01 3688 #define _IDISSEN 0x02 3689 #define _EDGSEQEN 0x04 3690 #define _EDGEN 0x08 3691 #define _TGEN 0x10 3692 #define _CTMUSIDL 0x20 3693 #define _CTMUEN 0x80 3694 3695 //============================================================================== 3696 3697 3698 //============================================================================== 3699 // CCP2CON Bits 3700 3701 extern __at(0x0FB4) __sfr CCP2CON; 3702 3703 typedef union 3704 { 3705 struct 3706 { 3707 unsigned CCP2M0 : 1; 3708 unsigned CCP2M1 : 1; 3709 unsigned CCP2M2 : 1; 3710 unsigned CCP2M3 : 1; 3711 unsigned DC2B0 : 1; 3712 unsigned DC2B1 : 1; 3713 unsigned P2M0 : 1; 3714 unsigned P2M1 : 1; 3715 }; 3716 3717 struct 3718 { 3719 unsigned : 1; 3720 unsigned : 1; 3721 unsigned : 1; 3722 unsigned : 1; 3723 unsigned CCP2Y : 1; 3724 unsigned CCP2X : 1; 3725 unsigned : 1; 3726 unsigned : 1; 3727 }; 3728 3729 struct 3730 { 3731 unsigned CCP2M : 4; 3732 unsigned : 4; 3733 }; 3734 3735 struct 3736 { 3737 unsigned : 4; 3738 unsigned DC2B : 2; 3739 unsigned : 2; 3740 }; 3741 3742 struct 3743 { 3744 unsigned : 6; 3745 unsigned P2M : 2; 3746 }; 3747 } __CCP2CONbits_t; 3748 3749 extern __at(0x0FB4) volatile __CCP2CONbits_t CCP2CONbits; 3750 3751 #define _CCP2M0 0x01 3752 #define _CCP2M1 0x02 3753 #define _CCP2M2 0x04 3754 #define _CCP2M3 0x08 3755 #define _DC2B0 0x10 3756 #define _CCP2Y 0x10 3757 #define _DC2B1 0x20 3758 #define _CCP2X 0x20 3759 #define _P2M0 0x40 3760 #define _P2M1 0x80 3761 3762 //============================================================================== 3763 3764 3765 //============================================================================== 3766 // ECCP2CON Bits 3767 3768 extern __at(0x0FB4) __sfr ECCP2CON; 3769 3770 typedef union 3771 { 3772 struct 3773 { 3774 unsigned CCP2M0 : 1; 3775 unsigned CCP2M1 : 1; 3776 unsigned CCP2M2 : 1; 3777 unsigned CCP2M3 : 1; 3778 unsigned DC2B0 : 1; 3779 unsigned DC2B1 : 1; 3780 unsigned P2M0 : 1; 3781 unsigned P2M1 : 1; 3782 }; 3783 3784 struct 3785 { 3786 unsigned : 1; 3787 unsigned : 1; 3788 unsigned : 1; 3789 unsigned : 1; 3790 unsigned CCP2Y : 1; 3791 unsigned CCP2X : 1; 3792 unsigned : 1; 3793 unsigned : 1; 3794 }; 3795 3796 struct 3797 { 3798 unsigned CCP2M : 4; 3799 unsigned : 4; 3800 }; 3801 3802 struct 3803 { 3804 unsigned : 4; 3805 unsigned DC2B : 2; 3806 unsigned : 2; 3807 }; 3808 3809 struct 3810 { 3811 unsigned : 6; 3812 unsigned P2M : 2; 3813 }; 3814 } __ECCP2CONbits_t; 3815 3816 extern __at(0x0FB4) volatile __ECCP2CONbits_t ECCP2CONbits; 3817 3818 #define _ECCP2CON_CCP2M0 0x01 3819 #define _ECCP2CON_CCP2M1 0x02 3820 #define _ECCP2CON_CCP2M2 0x04 3821 #define _ECCP2CON_CCP2M3 0x08 3822 #define _ECCP2CON_DC2B0 0x10 3823 #define _ECCP2CON_CCP2Y 0x10 3824 #define _ECCP2CON_DC2B1 0x20 3825 #define _ECCP2CON_CCP2X 0x20 3826 #define _ECCP2CON_P2M0 0x40 3827 #define _ECCP2CON_P2M1 0x80 3828 3829 //============================================================================== 3830 3831 extern __at(0x0FB5) __sfr CCPR2; 3832 extern __at(0x0FB5) __sfr CCPR2L; 3833 extern __at(0x0FB6) __sfr CCPR2H; 3834 3835 //============================================================================== 3836 // ECCP2DEL Bits 3837 3838 extern __at(0x0FB7) __sfr ECCP2DEL; 3839 3840 typedef union 3841 { 3842 struct 3843 { 3844 unsigned P2DC0 : 1; 3845 unsigned P2DC1 : 1; 3846 unsigned P2DC2 : 1; 3847 unsigned P2DC3 : 1; 3848 unsigned P2DC4 : 1; 3849 unsigned P2DC5 : 1; 3850 unsigned P2DC6 : 1; 3851 unsigned P2RSEN : 1; 3852 }; 3853 3854 struct 3855 { 3856 unsigned P2DC : 7; 3857 unsigned : 1; 3858 }; 3859 } __ECCP2DELbits_t; 3860 3861 extern __at(0x0FB7) volatile __ECCP2DELbits_t ECCP2DELbits; 3862 3863 #define _P2DC0 0x01 3864 #define _P2DC1 0x02 3865 #define _P2DC2 0x04 3866 #define _P2DC3 0x08 3867 #define _P2DC4 0x10 3868 #define _P2DC5 0x20 3869 #define _P2DC6 0x40 3870 #define _P2RSEN 0x80 3871 3872 //============================================================================== 3873 3874 3875 //============================================================================== 3876 // PWM2CON Bits 3877 3878 extern __at(0x0FB7) __sfr PWM2CON; 3879 3880 typedef union 3881 { 3882 struct 3883 { 3884 unsigned P2DC0 : 1; 3885 unsigned P2DC1 : 1; 3886 unsigned P2DC2 : 1; 3887 unsigned P2DC3 : 1; 3888 unsigned P2DC4 : 1; 3889 unsigned P2DC5 : 1; 3890 unsigned P2DC6 : 1; 3891 unsigned P2RSEN : 1; 3892 }; 3893 3894 struct 3895 { 3896 unsigned P2DC : 7; 3897 unsigned : 1; 3898 }; 3899 } __PWM2CONbits_t; 3900 3901 extern __at(0x0FB7) volatile __PWM2CONbits_t PWM2CONbits; 3902 3903 #define _PWM2CON_P2DC0 0x01 3904 #define _PWM2CON_P2DC1 0x02 3905 #define _PWM2CON_P2DC2 0x04 3906 #define _PWM2CON_P2DC3 0x08 3907 #define _PWM2CON_P2DC4 0x10 3908 #define _PWM2CON_P2DC5 0x20 3909 #define _PWM2CON_P2DC6 0x40 3910 #define _PWM2CON_P2RSEN 0x80 3911 3912 //============================================================================== 3913 3914 3915 //============================================================================== 3916 // ECCP2AS Bits 3917 3918 extern __at(0x0FB8) __sfr ECCP2AS; 3919 3920 typedef union 3921 { 3922 struct 3923 { 3924 unsigned PSS2BD0 : 1; 3925 unsigned PSS2BD1 : 1; 3926 unsigned PSS2AC0 : 1; 3927 unsigned PSS2AC1 : 1; 3928 unsigned ECCP2AS0 : 1; 3929 unsigned ECCP2AS1 : 1; 3930 unsigned ECCP2AS2 : 1; 3931 unsigned ECCP2ASE : 1; 3932 }; 3933 3934 struct 3935 { 3936 unsigned PSS2BD : 2; 3937 unsigned : 6; 3938 }; 3939 3940 struct 3941 { 3942 unsigned : 2; 3943 unsigned PSS2AC : 2; 3944 unsigned : 4; 3945 }; 3946 3947 struct 3948 { 3949 unsigned : 4; 3950 unsigned ECCP2AS : 3; 3951 unsigned : 1; 3952 }; 3953 } __ECCP2ASbits_t; 3954 3955 extern __at(0x0FB8) volatile __ECCP2ASbits_t ECCP2ASbits; 3956 3957 #define _PSS2BD0 0x01 3958 #define _PSS2BD1 0x02 3959 #define _PSS2AC0 0x04 3960 #define _PSS2AC1 0x08 3961 #define _ECCP2AS0 0x10 3962 #define _ECCP2AS1 0x20 3963 #define _ECCP2AS2 0x40 3964 #define _ECCP2ASE 0x80 3965 3966 //============================================================================== 3967 3968 3969 //============================================================================== 3970 // PSTR2CON Bits 3971 3972 extern __at(0x0FB9) __sfr PSTR2CON; 3973 3974 typedef union 3975 { 3976 struct 3977 { 3978 unsigned STRA : 1; 3979 unsigned STRB : 1; 3980 unsigned STRC : 1; 3981 unsigned STRD : 1; 3982 unsigned STRSYNC : 1; 3983 unsigned P2DC5 : 1; 3984 unsigned CMPL0 : 1; 3985 unsigned CMPL1 : 1; 3986 }; 3987 3988 struct 3989 { 3990 unsigned P2DC0 : 1; 3991 unsigned P2DC1 : 1; 3992 unsigned P2DC2 : 1; 3993 unsigned P2DC3 : 1; 3994 unsigned P2DC4 : 1; 3995 unsigned : 1; 3996 unsigned P2DC6 : 1; 3997 unsigned : 1; 3998 }; 3999 4000 struct 4001 { 4002 unsigned P2DC : 7; 4003 unsigned : 1; 4004 }; 4005 4006 struct 4007 { 4008 unsigned : 6; 4009 unsigned CMPL : 2; 4010 }; 4011 } __PSTR2CONbits_t; 4012 4013 extern __at(0x0FB9) volatile __PSTR2CONbits_t PSTR2CONbits; 4014 4015 #define _PSTR2CON_STRA 0x01 4016 #define _PSTR2CON_P2DC0 0x01 4017 #define _PSTR2CON_STRB 0x02 4018 #define _PSTR2CON_P2DC1 0x02 4019 #define _PSTR2CON_STRC 0x04 4020 #define _PSTR2CON_P2DC2 0x04 4021 #define _PSTR2CON_STRD 0x08 4022 #define _PSTR2CON_P2DC3 0x08 4023 #define _PSTR2CON_STRSYNC 0x10 4024 #define _PSTR2CON_P2DC4 0x10 4025 #define _PSTR2CON_P2DC5 0x20 4026 #define _PSTR2CON_CMPL0 0x40 4027 #define _PSTR2CON_P2DC6 0x40 4028 #define _PSTR2CON_CMPL1 0x80 4029 4030 //============================================================================== 4031 4032 4033 //============================================================================== 4034 // CCP1CON Bits 4035 4036 extern __at(0x0FBA) __sfr CCP1CON; 4037 4038 typedef union 4039 { 4040 struct 4041 { 4042 unsigned CCP1M0 : 1; 4043 unsigned CCP1M1 : 1; 4044 unsigned CCP1M2 : 1; 4045 unsigned CCP1M3 : 1; 4046 unsigned DC1B0 : 1; 4047 unsigned DC1B1 : 1; 4048 unsigned P1M0 : 1; 4049 unsigned P1M1 : 1; 4050 }; 4051 4052 struct 4053 { 4054 unsigned : 1; 4055 unsigned : 1; 4056 unsigned : 1; 4057 unsigned : 1; 4058 unsigned CCP1Y : 1; 4059 unsigned CCP1X : 1; 4060 unsigned : 1; 4061 unsigned : 1; 4062 }; 4063 4064 struct 4065 { 4066 unsigned CCP1M : 4; 4067 unsigned : 4; 4068 }; 4069 4070 struct 4071 { 4072 unsigned : 4; 4073 unsigned DC1B : 2; 4074 unsigned : 2; 4075 }; 4076 4077 struct 4078 { 4079 unsigned : 6; 4080 unsigned P1M : 2; 4081 }; 4082 } __CCP1CONbits_t; 4083 4084 extern __at(0x0FBA) volatile __CCP1CONbits_t CCP1CONbits; 4085 4086 #define _CCP1M0 0x01 4087 #define _CCP1M1 0x02 4088 #define _CCP1M2 0x04 4089 #define _CCP1M3 0x08 4090 #define _DC1B0 0x10 4091 #define _CCP1Y 0x10 4092 #define _DC1B1 0x20 4093 #define _CCP1X 0x20 4094 #define _P1M0 0x40 4095 #define _P1M1 0x80 4096 4097 //============================================================================== 4098 4099 4100 //============================================================================== 4101 // ECCP1CON Bits 4102 4103 extern __at(0x0FBA) __sfr ECCP1CON; 4104 4105 typedef union 4106 { 4107 struct 4108 { 4109 unsigned CCP1M0 : 1; 4110 unsigned CCP1M1 : 1; 4111 unsigned CCP1M2 : 1; 4112 unsigned CCP1M3 : 1; 4113 unsigned DC1B0 : 1; 4114 unsigned DC1B1 : 1; 4115 unsigned P1M0 : 1; 4116 unsigned P1M1 : 1; 4117 }; 4118 4119 struct 4120 { 4121 unsigned : 1; 4122 unsigned : 1; 4123 unsigned : 1; 4124 unsigned : 1; 4125 unsigned CCP1Y : 1; 4126 unsigned CCP1X : 1; 4127 unsigned : 1; 4128 unsigned : 1; 4129 }; 4130 4131 struct 4132 { 4133 unsigned CCP1M : 4; 4134 unsigned : 4; 4135 }; 4136 4137 struct 4138 { 4139 unsigned : 4; 4140 unsigned DC1B : 2; 4141 unsigned : 2; 4142 }; 4143 4144 struct 4145 { 4146 unsigned : 6; 4147 unsigned P1M : 2; 4148 }; 4149 } __ECCP1CONbits_t; 4150 4151 extern __at(0x0FBA) volatile __ECCP1CONbits_t ECCP1CONbits; 4152 4153 #define _ECCP1CON_CCP1M0 0x01 4154 #define _ECCP1CON_CCP1M1 0x02 4155 #define _ECCP1CON_CCP1M2 0x04 4156 #define _ECCP1CON_CCP1M3 0x08 4157 #define _ECCP1CON_DC1B0 0x10 4158 #define _ECCP1CON_CCP1Y 0x10 4159 #define _ECCP1CON_DC1B1 0x20 4160 #define _ECCP1CON_CCP1X 0x20 4161 #define _ECCP1CON_P1M0 0x40 4162 #define _ECCP1CON_P1M1 0x80 4163 4164 //============================================================================== 4165 4166 extern __at(0x0FBB) __sfr CCPR1; 4167 extern __at(0x0FBB) __sfr CCPR1L; 4168 extern __at(0x0FBC) __sfr CCPR1H; 4169 4170 //============================================================================== 4171 // ECCP1DEL Bits 4172 4173 extern __at(0x0FBD) __sfr ECCP1DEL; 4174 4175 typedef union 4176 { 4177 struct 4178 { 4179 unsigned P1DC0 : 1; 4180 unsigned P1DC1 : 1; 4181 unsigned P1DC2 : 1; 4182 unsigned P1DC3 : 1; 4183 unsigned P1DC4 : 1; 4184 unsigned P1DC5 : 1; 4185 unsigned P1DC6 : 1; 4186 unsigned P1RSEN : 1; 4187 }; 4188 4189 struct 4190 { 4191 unsigned P1DC : 7; 4192 unsigned : 1; 4193 }; 4194 } __ECCP1DELbits_t; 4195 4196 extern __at(0x0FBD) volatile __ECCP1DELbits_t ECCP1DELbits; 4197 4198 #define _P1DC0 0x01 4199 #define _P1DC1 0x02 4200 #define _P1DC2 0x04 4201 #define _P1DC3 0x08 4202 #define _P1DC4 0x10 4203 #define _P1DC5 0x20 4204 #define _P1DC6 0x40 4205 #define _P1RSEN 0x80 4206 4207 //============================================================================== 4208 4209 4210 //============================================================================== 4211 // PWM1CON Bits 4212 4213 extern __at(0x0FBD) __sfr PWM1CON; 4214 4215 typedef union 4216 { 4217 struct 4218 { 4219 unsigned P1DC0 : 1; 4220 unsigned P1DC1 : 1; 4221 unsigned P1DC2 : 1; 4222 unsigned P1DC3 : 1; 4223 unsigned P1DC4 : 1; 4224 unsigned P1DC5 : 1; 4225 unsigned P1DC6 : 1; 4226 unsigned P1RSEN : 1; 4227 }; 4228 4229 struct 4230 { 4231 unsigned P1DC : 7; 4232 unsigned : 1; 4233 }; 4234 } __PWM1CONbits_t; 4235 4236 extern __at(0x0FBD) volatile __PWM1CONbits_t PWM1CONbits; 4237 4238 #define _PWM1CON_P1DC0 0x01 4239 #define _PWM1CON_P1DC1 0x02 4240 #define _PWM1CON_P1DC2 0x04 4241 #define _PWM1CON_P1DC3 0x08 4242 #define _PWM1CON_P1DC4 0x10 4243 #define _PWM1CON_P1DC5 0x20 4244 #define _PWM1CON_P1DC6 0x40 4245 #define _PWM1CON_P1RSEN 0x80 4246 4247 //============================================================================== 4248 4249 4250 //============================================================================== 4251 // ECCP1AS Bits 4252 4253 extern __at(0x0FBE) __sfr ECCP1AS; 4254 4255 typedef union 4256 { 4257 struct 4258 { 4259 unsigned PSS1BD0 : 1; 4260 unsigned PSS1BD1 : 1; 4261 unsigned PSS1AC0 : 1; 4262 unsigned PSS1AC1 : 1; 4263 unsigned ECCP1AS0 : 1; 4264 unsigned ECCP1AS1 : 1; 4265 unsigned ECCP1AS2 : 1; 4266 unsigned ECCP1ASE : 1; 4267 }; 4268 4269 struct 4270 { 4271 unsigned PSS1BD : 2; 4272 unsigned : 6; 4273 }; 4274 4275 struct 4276 { 4277 unsigned : 2; 4278 unsigned PSS1AC : 2; 4279 unsigned : 4; 4280 }; 4281 4282 struct 4283 { 4284 unsigned : 4; 4285 unsigned ECCP1AS : 3; 4286 unsigned : 1; 4287 }; 4288 } __ECCP1ASbits_t; 4289 4290 extern __at(0x0FBE) volatile __ECCP1ASbits_t ECCP1ASbits; 4291 4292 #define _PSS1BD0 0x01 4293 #define _PSS1BD1 0x02 4294 #define _PSS1AC0 0x04 4295 #define _PSS1AC1 0x08 4296 #define _ECCP1AS0 0x10 4297 #define _ECCP1AS1 0x20 4298 #define _ECCP1AS2 0x40 4299 #define _ECCP1ASE 0x80 4300 4301 //============================================================================== 4302 4303 4304 //============================================================================== 4305 // PSTR1CON Bits 4306 4307 extern __at(0x0FBF) __sfr PSTR1CON; 4308 4309 typedef union 4310 { 4311 struct 4312 { 4313 unsigned STRA : 1; 4314 unsigned STRB : 1; 4315 unsigned STRC : 1; 4316 unsigned STRD : 1; 4317 unsigned STRSYNC : 1; 4318 unsigned : 1; 4319 unsigned CMPL0 : 1; 4320 unsigned CMPL1 : 1; 4321 }; 4322 4323 struct 4324 { 4325 unsigned : 6; 4326 unsigned CMPL : 2; 4327 }; 4328 } __PSTR1CONbits_t; 4329 4330 extern __at(0x0FBF) volatile __PSTR1CONbits_t PSTR1CONbits; 4331 4332 #define _STRA 0x01 4333 #define _STRB 0x02 4334 #define _STRC 0x04 4335 #define _STRD 0x08 4336 #define _STRSYNC 0x10 4337 #define _CMPL0 0x40 4338 #define _CMPL1 0x80 4339 4340 //============================================================================== 4341 4342 4343 //============================================================================== 4344 // WDTCON Bits 4345 4346 extern __at(0x0FC0) __sfr WDTCON; 4347 4348 typedef union 4349 { 4350 struct 4351 { 4352 unsigned SWDTEN : 1; 4353 unsigned ULPSINK : 1; 4354 unsigned ULPEN : 1; 4355 unsigned DS : 1; 4356 unsigned : 1; 4357 unsigned ULPLVL : 1; 4358 unsigned LVDSTAT : 1; 4359 unsigned REGSLP : 1; 4360 }; 4361 4362 struct 4363 { 4364 unsigned SWDTE : 1; 4365 unsigned : 1; 4366 unsigned : 1; 4367 unsigned : 1; 4368 unsigned : 1; 4369 unsigned : 1; 4370 unsigned : 1; 4371 unsigned : 1; 4372 }; 4373 } __WDTCONbits_t; 4374 4375 extern __at(0x0FC0) volatile __WDTCONbits_t WDTCONbits; 4376 4377 #define _SWDTEN 0x01 4378 #define _SWDTE 0x01 4379 #define _ULPSINK 0x02 4380 #define _ULPEN 0x04 4381 #define _DS 0x08 4382 #define _ULPLVL 0x20 4383 #define _LVDSTAT 0x40 4384 #define _REGSLP 0x80 4385 4386 //============================================================================== 4387 4388 4389 //============================================================================== 4390 // ADCON1 Bits 4391 4392 extern __at(0x0FC1) __sfr ADCON1; 4393 4394 typedef union 4395 { 4396 struct 4397 { 4398 unsigned ADCS0 : 1; 4399 unsigned ADCS1 : 1; 4400 unsigned ADCS2 : 1; 4401 unsigned ACQT0 : 1; 4402 unsigned ACQT1 : 1; 4403 unsigned ACQT2 : 1; 4404 unsigned ADCAL : 1; 4405 unsigned ADFM : 1; 4406 }; 4407 4408 struct 4409 { 4410 unsigned ADCS : 3; 4411 unsigned : 5; 4412 }; 4413 4414 struct 4415 { 4416 unsigned : 3; 4417 unsigned ACQT : 3; 4418 unsigned : 2; 4419 }; 4420 } __ADCON1bits_t; 4421 4422 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits; 4423 4424 #define _ADCS0 0x01 4425 #define _ADCS1 0x02 4426 #define _ADCS2 0x04 4427 #define _ACQT0 0x08 4428 #define _ACQT1 0x10 4429 #define _ACQT2 0x20 4430 #define _ADCAL 0x40 4431 #define _ADFM 0x80 4432 4433 //============================================================================== 4434 4435 4436 //============================================================================== 4437 // ADCON0 Bits 4438 4439 extern __at(0x0FC2) __sfr ADCON0; 4440 4441 typedef union 4442 { 4443 struct 4444 { 4445 unsigned ADON : 1; 4446 unsigned GO_NOT_DONE : 1; 4447 unsigned CHS0 : 1; 4448 unsigned CHS1 : 1; 4449 unsigned CHS2 : 1; 4450 unsigned CHS3 : 1; 4451 unsigned VCFG0 : 1; 4452 unsigned VCFG1 : 1; 4453 }; 4454 4455 struct 4456 { 4457 unsigned : 1; 4458 unsigned GO_DONE : 1; 4459 unsigned : 1; 4460 unsigned : 1; 4461 unsigned : 1; 4462 unsigned : 1; 4463 unsigned : 1; 4464 unsigned : 1; 4465 }; 4466 4467 struct 4468 { 4469 unsigned : 1; 4470 unsigned DONE : 1; 4471 unsigned : 1; 4472 unsigned : 1; 4473 unsigned : 1; 4474 unsigned : 1; 4475 unsigned : 1; 4476 unsigned : 1; 4477 }; 4478 4479 struct 4480 { 4481 unsigned : 1; 4482 unsigned GO : 1; 4483 unsigned : 1; 4484 unsigned : 1; 4485 unsigned : 1; 4486 unsigned : 1; 4487 unsigned : 1; 4488 unsigned : 1; 4489 }; 4490 4491 struct 4492 { 4493 unsigned : 1; 4494 unsigned NOT_DONE : 1; 4495 unsigned : 1; 4496 unsigned : 1; 4497 unsigned : 1; 4498 unsigned : 1; 4499 unsigned : 1; 4500 unsigned : 1; 4501 }; 4502 4503 struct 4504 { 4505 unsigned : 2; 4506 unsigned CHS : 4; 4507 unsigned : 2; 4508 }; 4509 4510 struct 4511 { 4512 unsigned : 6; 4513 unsigned VCFG : 2; 4514 }; 4515 } __ADCON0bits_t; 4516 4517 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits; 4518 4519 #define _ADON 0x01 4520 #define _GO_NOT_DONE 0x02 4521 #define _GO_DONE 0x02 4522 #define _DONE 0x02 4523 #define _GO 0x02 4524 #define _NOT_DONE 0x02 4525 #define _CHS0 0x04 4526 #define _CHS1 0x08 4527 #define _CHS2 0x10 4528 #define _CHS3 0x20 4529 #define _VCFG0 0x40 4530 #define _VCFG1 0x80 4531 4532 //============================================================================== 4533 4534 extern __at(0x0FC3) __sfr ADRES; 4535 extern __at(0x0FC3) __sfr ADRESL; 4536 extern __at(0x0FC4) __sfr ADRESH; 4537 4538 //============================================================================== 4539 // SSP1CON2 Bits 4540 4541 extern __at(0x0FC5) __sfr SSP1CON2; 4542 4543 typedef union 4544 { 4545 struct 4546 { 4547 unsigned SEN : 1; 4548 unsigned RSEN : 1; 4549 unsigned PEN : 1; 4550 unsigned RCEN : 1; 4551 unsigned ACKEN : 1; 4552 unsigned ACKDT : 1; 4553 unsigned ACKSTAT : 1; 4554 unsigned GCEN : 1; 4555 }; 4556 4557 struct 4558 { 4559 unsigned : 1; 4560 unsigned ADMSK1 : 1; 4561 unsigned ADMSK2 : 1; 4562 unsigned ADMSK3 : 1; 4563 unsigned ADMSK4 : 1; 4564 unsigned ADMSK5 : 1; 4565 unsigned : 1; 4566 unsigned : 1; 4567 }; 4568 } __SSP1CON2bits_t; 4569 4570 extern __at(0x0FC5) volatile __SSP1CON2bits_t SSP1CON2bits; 4571 4572 #define _SEN 0x01 4573 #define _RSEN 0x02 4574 #define _ADMSK1 0x02 4575 #define _PEN 0x04 4576 #define _ADMSK2 0x04 4577 #define _RCEN 0x08 4578 #define _ADMSK3 0x08 4579 #define _ACKEN 0x10 4580 #define _ADMSK4 0x10 4581 #define _ACKDT 0x20 4582 #define _ADMSK5 0x20 4583 #define _ACKSTAT 0x40 4584 #define _GCEN 0x80 4585 4586 //============================================================================== 4587 4588 4589 //============================================================================== 4590 // SSPCON2 Bits 4591 4592 extern __at(0x0FC5) __sfr SSPCON2; 4593 4594 typedef union 4595 { 4596 struct 4597 { 4598 unsigned SEN : 1; 4599 unsigned RSEN : 1; 4600 unsigned PEN : 1; 4601 unsigned RCEN : 1; 4602 unsigned ACKEN : 1; 4603 unsigned ACKDT : 1; 4604 unsigned ACKSTAT : 1; 4605 unsigned GCEN : 1; 4606 }; 4607 4608 struct 4609 { 4610 unsigned : 1; 4611 unsigned ADMSK1 : 1; 4612 unsigned ADMSK2 : 1; 4613 unsigned ADMSK3 : 1; 4614 unsigned ADMSK4 : 1; 4615 unsigned ADMSK5 : 1; 4616 unsigned : 1; 4617 unsigned : 1; 4618 }; 4619 } __SSPCON2bits_t; 4620 4621 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits; 4622 4623 #define _SSPCON2_SEN 0x01 4624 #define _SSPCON2_RSEN 0x02 4625 #define _SSPCON2_ADMSK1 0x02 4626 #define _SSPCON2_PEN 0x04 4627 #define _SSPCON2_ADMSK2 0x04 4628 #define _SSPCON2_RCEN 0x08 4629 #define _SSPCON2_ADMSK3 0x08 4630 #define _SSPCON2_ACKEN 0x10 4631 #define _SSPCON2_ADMSK4 0x10 4632 #define _SSPCON2_ACKDT 0x20 4633 #define _SSPCON2_ADMSK5 0x20 4634 #define _SSPCON2_ACKSTAT 0x40 4635 #define _SSPCON2_GCEN 0x80 4636 4637 //============================================================================== 4638 4639 4640 //============================================================================== 4641 // SSP1CON1 Bits 4642 4643 extern __at(0x0FC6) __sfr SSP1CON1; 4644 4645 typedef union 4646 { 4647 struct 4648 { 4649 unsigned SSPM0 : 1; 4650 unsigned SSPM1 : 1; 4651 unsigned SSPM2 : 1; 4652 unsigned SSPM3 : 1; 4653 unsigned CKP : 1; 4654 unsigned SSPEN : 1; 4655 unsigned SSPOV : 1; 4656 unsigned WCOL : 1; 4657 }; 4658 4659 struct 4660 { 4661 unsigned SSPM01 : 1; 4662 unsigned SSPM11 : 1; 4663 unsigned SSPM21 : 1; 4664 unsigned SSPM31 : 1; 4665 unsigned CKP1 : 1; 4666 unsigned SSPEN1 : 1; 4667 unsigned SSPOV1 : 1; 4668 unsigned WCOL1 : 1; 4669 }; 4670 } __SSP1CON1bits_t; 4671 4672 extern __at(0x0FC6) volatile __SSP1CON1bits_t SSP1CON1bits; 4673 4674 #define _SSPM0 0x01 4675 #define _SSPM01 0x01 4676 #define _SSPM1 0x02 4677 #define _SSPM11 0x02 4678 #define _SSPM2 0x04 4679 #define _SSPM21 0x04 4680 #define _SSPM3 0x08 4681 #define _SSPM31 0x08 4682 #define _CKP 0x10 4683 #define _CKP1 0x10 4684 #define _SSPEN 0x20 4685 #define _SSPEN1 0x20 4686 #define _SSPOV 0x40 4687 #define _SSPOV1 0x40 4688 #define _WCOL 0x80 4689 #define _WCOL1 0x80 4690 4691 //============================================================================== 4692 4693 4694 //============================================================================== 4695 // SSPCON1 Bits 4696 4697 extern __at(0x0FC6) __sfr SSPCON1; 4698 4699 typedef union 4700 { 4701 struct 4702 { 4703 unsigned SSPM0 : 1; 4704 unsigned SSPM1 : 1; 4705 unsigned SSPM2 : 1; 4706 unsigned SSPM3 : 1; 4707 unsigned CKP : 1; 4708 unsigned SSPEN : 1; 4709 unsigned SSPOV : 1; 4710 unsigned WCOL : 1; 4711 }; 4712 4713 struct 4714 { 4715 unsigned SSPM01 : 1; 4716 unsigned SSPM11 : 1; 4717 unsigned SSPM21 : 1; 4718 unsigned SSPM31 : 1; 4719 unsigned CKP1 : 1; 4720 unsigned SSPEN1 : 1; 4721 unsigned SSPOV1 : 1; 4722 unsigned WCOL1 : 1; 4723 }; 4724 } __SSPCON1bits_t; 4725 4726 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits; 4727 4728 #define _SSPCON1_SSPM0 0x01 4729 #define _SSPCON1_SSPM01 0x01 4730 #define _SSPCON1_SSPM1 0x02 4731 #define _SSPCON1_SSPM11 0x02 4732 #define _SSPCON1_SSPM2 0x04 4733 #define _SSPCON1_SSPM21 0x04 4734 #define _SSPCON1_SSPM3 0x08 4735 #define _SSPCON1_SSPM31 0x08 4736 #define _SSPCON1_CKP 0x10 4737 #define _SSPCON1_CKP1 0x10 4738 #define _SSPCON1_SSPEN 0x20 4739 #define _SSPCON1_SSPEN1 0x20 4740 #define _SSPCON1_SSPOV 0x40 4741 #define _SSPCON1_SSPOV1 0x40 4742 #define _SSPCON1_WCOL 0x80 4743 #define _SSPCON1_WCOL1 0x80 4744 4745 //============================================================================== 4746 4747 4748 //============================================================================== 4749 // SSP1STAT Bits 4750 4751 extern __at(0x0FC7) __sfr SSP1STAT; 4752 4753 typedef union 4754 { 4755 struct 4756 { 4757 unsigned BF : 1; 4758 unsigned UA : 1; 4759 unsigned R_NOT_W : 1; 4760 unsigned S : 1; 4761 unsigned P : 1; 4762 unsigned D_NOT_A : 1; 4763 unsigned CKE : 1; 4764 unsigned SMP : 1; 4765 }; 4766 4767 struct 4768 { 4769 unsigned BF1 : 1; 4770 unsigned UA1 : 1; 4771 unsigned R : 1; 4772 unsigned I2C_START : 1; 4773 unsigned I2C_STOP : 1; 4774 unsigned D : 1; 4775 unsigned CKE1 : 1; 4776 unsigned SMP1 : 1; 4777 }; 4778 4779 struct 4780 { 4781 unsigned : 1; 4782 unsigned : 1; 4783 unsigned R_W : 1; 4784 unsigned S1 : 1; 4785 unsigned P1 : 1; 4786 unsigned D_A : 1; 4787 unsigned : 1; 4788 unsigned : 1; 4789 }; 4790 4791 struct 4792 { 4793 unsigned : 1; 4794 unsigned : 1; 4795 unsigned NOT_W : 1; 4796 unsigned I2C_START1 : 1; 4797 unsigned I2C_STOP1 : 1; 4798 unsigned NOT_A : 1; 4799 unsigned : 1; 4800 unsigned : 1; 4801 }; 4802 4803 struct 4804 { 4805 unsigned : 1; 4806 unsigned : 1; 4807 unsigned NOT_WRITE : 1; 4808 unsigned : 1; 4809 unsigned : 1; 4810 unsigned NOT_ADDRESS : 1; 4811 unsigned : 1; 4812 unsigned : 1; 4813 }; 4814 4815 struct 4816 { 4817 unsigned : 1; 4818 unsigned : 1; 4819 unsigned READ_WRITE : 1; 4820 unsigned : 1; 4821 unsigned : 1; 4822 unsigned DATA_ADDRESS : 1; 4823 unsigned : 1; 4824 unsigned : 1; 4825 }; 4826 4827 struct 4828 { 4829 unsigned : 1; 4830 unsigned : 1; 4831 unsigned I2C_READ : 1; 4832 unsigned : 1; 4833 unsigned : 1; 4834 unsigned I2C_DAT : 1; 4835 unsigned : 1; 4836 unsigned : 1; 4837 }; 4838 4839 struct 4840 { 4841 unsigned : 1; 4842 unsigned : 1; 4843 unsigned R_NOT_W1 : 1; 4844 unsigned : 1; 4845 unsigned : 1; 4846 unsigned D_NOT_A1 : 1; 4847 unsigned : 1; 4848 unsigned : 1; 4849 }; 4850 4851 struct 4852 { 4853 unsigned : 1; 4854 unsigned : 1; 4855 unsigned R1 : 1; 4856 unsigned : 1; 4857 unsigned : 1; 4858 unsigned D1 : 1; 4859 unsigned : 1; 4860 unsigned : 1; 4861 }; 4862 4863 struct 4864 { 4865 unsigned : 1; 4866 unsigned : 1; 4867 unsigned D_A1 : 1; 4868 unsigned : 1; 4869 unsigned : 1; 4870 unsigned R_W1 : 1; 4871 unsigned : 1; 4872 unsigned : 1; 4873 }; 4874 4875 struct 4876 { 4877 unsigned : 1; 4878 unsigned : 1; 4879 unsigned NOT_W1 : 1; 4880 unsigned : 1; 4881 unsigned : 1; 4882 unsigned NOT_A1 : 1; 4883 unsigned : 1; 4884 unsigned : 1; 4885 }; 4886 4887 struct 4888 { 4889 unsigned : 1; 4890 unsigned : 1; 4891 unsigned NOT_WRITE1 : 1; 4892 unsigned : 1; 4893 unsigned : 1; 4894 unsigned NOT_ADDRESS1 : 1; 4895 unsigned : 1; 4896 unsigned : 1; 4897 }; 4898 4899 struct 4900 { 4901 unsigned : 1; 4902 unsigned : 1; 4903 unsigned READ_WRITE1 : 1; 4904 unsigned : 1; 4905 unsigned : 1; 4906 unsigned DATA_ADDRESS1 : 1; 4907 unsigned : 1; 4908 unsigned : 1; 4909 }; 4910 4911 struct 4912 { 4913 unsigned : 1; 4914 unsigned : 1; 4915 unsigned I2C_READ1 : 1; 4916 unsigned : 1; 4917 unsigned : 1; 4918 unsigned I2C_DAT1 : 1; 4919 unsigned : 1; 4920 unsigned : 1; 4921 }; 4922 } __SSP1STATbits_t; 4923 4924 extern __at(0x0FC7) volatile __SSP1STATbits_t SSP1STATbits; 4925 4926 #define _BF 0x01 4927 #define _BF1 0x01 4928 #define _UA 0x02 4929 #define _UA1 0x02 4930 #define _R_NOT_W 0x04 4931 #define _R 0x04 4932 #define _R_W 0x04 4933 #define _NOT_W 0x04 4934 #define _NOT_WRITE 0x04 4935 #define _READ_WRITE 0x04 4936 #define _I2C_READ 0x04 4937 #define _R_NOT_W1 0x04 4938 #define _R1 0x04 4939 #define _D_A1 0x04 4940 #define _NOT_W1 0x04 4941 #define _NOT_WRITE1 0x04 4942 #define _READ_WRITE1 0x04 4943 #define _I2C_READ1 0x04 4944 #define _S 0x08 4945 #define _I2C_START 0x08 4946 #define _S1 0x08 4947 #define _I2C_START1 0x08 4948 #define _P 0x10 4949 #define _I2C_STOP 0x10 4950 #define _P1 0x10 4951 #define _I2C_STOP1 0x10 4952 #define _D_NOT_A 0x20 4953 #define _D 0x20 4954 #define _D_A 0x20 4955 #define _NOT_A 0x20 4956 #define _NOT_ADDRESS 0x20 4957 #define _DATA_ADDRESS 0x20 4958 #define _I2C_DAT 0x20 4959 #define _D_NOT_A1 0x20 4960 #define _D1 0x20 4961 #define _R_W1 0x20 4962 #define _NOT_A1 0x20 4963 #define _NOT_ADDRESS1 0x20 4964 #define _DATA_ADDRESS1 0x20 4965 #define _I2C_DAT1 0x20 4966 #define _CKE 0x40 4967 #define _CKE1 0x40 4968 #define _SMP 0x80 4969 #define _SMP1 0x80 4970 4971 //============================================================================== 4972 4973 4974 //============================================================================== 4975 // SSPSTAT Bits 4976 4977 extern __at(0x0FC7) __sfr SSPSTAT; 4978 4979 typedef union 4980 { 4981 struct 4982 { 4983 unsigned BF : 1; 4984 unsigned UA : 1; 4985 unsigned R_NOT_W : 1; 4986 unsigned S : 1; 4987 unsigned P : 1; 4988 unsigned D_NOT_A : 1; 4989 unsigned CKE : 1; 4990 unsigned SMP : 1; 4991 }; 4992 4993 struct 4994 { 4995 unsigned BF1 : 1; 4996 unsigned UA1 : 1; 4997 unsigned R : 1; 4998 unsigned I2C_START : 1; 4999 unsigned I2C_STOP : 1; 5000 unsigned D : 1; 5001 unsigned CKE1 : 1; 5002 unsigned SMP1 : 1; 5003 }; 5004 5005 struct 5006 { 5007 unsigned : 1; 5008 unsigned : 1; 5009 unsigned R_W : 1; 5010 unsigned S1 : 1; 5011 unsigned P1 : 1; 5012 unsigned D_A : 1; 5013 unsigned : 1; 5014 unsigned : 1; 5015 }; 5016 5017 struct 5018 { 5019 unsigned : 1; 5020 unsigned : 1; 5021 unsigned NOT_W : 1; 5022 unsigned I2C_START1 : 1; 5023 unsigned I2C_STOP1 : 1; 5024 unsigned NOT_A : 1; 5025 unsigned : 1; 5026 unsigned : 1; 5027 }; 5028 5029 struct 5030 { 5031 unsigned : 1; 5032 unsigned : 1; 5033 unsigned NOT_WRITE : 1; 5034 unsigned : 1; 5035 unsigned : 1; 5036 unsigned NOT_ADDRESS : 1; 5037 unsigned : 1; 5038 unsigned : 1; 5039 }; 5040 5041 struct 5042 { 5043 unsigned : 1; 5044 unsigned : 1; 5045 unsigned READ_WRITE : 1; 5046 unsigned : 1; 5047 unsigned : 1; 5048 unsigned DATA_ADDRESS : 1; 5049 unsigned : 1; 5050 unsigned : 1; 5051 }; 5052 5053 struct 5054 { 5055 unsigned : 1; 5056 unsigned : 1; 5057 unsigned I2C_READ : 1; 5058 unsigned : 1; 5059 unsigned : 1; 5060 unsigned I2C_DAT : 1; 5061 unsigned : 1; 5062 unsigned : 1; 5063 }; 5064 5065 struct 5066 { 5067 unsigned : 1; 5068 unsigned : 1; 5069 unsigned R_NOT_W1 : 1; 5070 unsigned : 1; 5071 unsigned : 1; 5072 unsigned D_NOT_A1 : 1; 5073 unsigned : 1; 5074 unsigned : 1; 5075 }; 5076 5077 struct 5078 { 5079 unsigned : 1; 5080 unsigned : 1; 5081 unsigned R1 : 1; 5082 unsigned : 1; 5083 unsigned : 1; 5084 unsigned D1 : 1; 5085 unsigned : 1; 5086 unsigned : 1; 5087 }; 5088 5089 struct 5090 { 5091 unsigned : 1; 5092 unsigned : 1; 5093 unsigned D_A1 : 1; 5094 unsigned : 1; 5095 unsigned : 1; 5096 unsigned R_W1 : 1; 5097 unsigned : 1; 5098 unsigned : 1; 5099 }; 5100 5101 struct 5102 { 5103 unsigned : 1; 5104 unsigned : 1; 5105 unsigned NOT_W1 : 1; 5106 unsigned : 1; 5107 unsigned : 1; 5108 unsigned NOT_A1 : 1; 5109 unsigned : 1; 5110 unsigned : 1; 5111 }; 5112 5113 struct 5114 { 5115 unsigned : 1; 5116 unsigned : 1; 5117 unsigned NOT_WRITE1 : 1; 5118 unsigned : 1; 5119 unsigned : 1; 5120 unsigned NOT_ADDRESS1 : 1; 5121 unsigned : 1; 5122 unsigned : 1; 5123 }; 5124 5125 struct 5126 { 5127 unsigned : 1; 5128 unsigned : 1; 5129 unsigned READ_WRITE1 : 1; 5130 unsigned : 1; 5131 unsigned : 1; 5132 unsigned DATA_ADDRESS1 : 1; 5133 unsigned : 1; 5134 unsigned : 1; 5135 }; 5136 5137 struct 5138 { 5139 unsigned : 1; 5140 unsigned : 1; 5141 unsigned I2C_READ1 : 1; 5142 unsigned : 1; 5143 unsigned : 1; 5144 unsigned I2C_DAT1 : 1; 5145 unsigned : 1; 5146 unsigned : 1; 5147 }; 5148 } __SSPSTATbits_t; 5149 5150 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits; 5151 5152 #define _SSPSTAT_BF 0x01 5153 #define _SSPSTAT_BF1 0x01 5154 #define _SSPSTAT_UA 0x02 5155 #define _SSPSTAT_UA1 0x02 5156 #define _SSPSTAT_R_NOT_W 0x04 5157 #define _SSPSTAT_R 0x04 5158 #define _SSPSTAT_R_W 0x04 5159 #define _SSPSTAT_NOT_W 0x04 5160 #define _SSPSTAT_NOT_WRITE 0x04 5161 #define _SSPSTAT_READ_WRITE 0x04 5162 #define _SSPSTAT_I2C_READ 0x04 5163 #define _SSPSTAT_R_NOT_W1 0x04 5164 #define _SSPSTAT_R1 0x04 5165 #define _SSPSTAT_D_A1 0x04 5166 #define _SSPSTAT_NOT_W1 0x04 5167 #define _SSPSTAT_NOT_WRITE1 0x04 5168 #define _SSPSTAT_READ_WRITE1 0x04 5169 #define _SSPSTAT_I2C_READ1 0x04 5170 #define _SSPSTAT_S 0x08 5171 #define _SSPSTAT_I2C_START 0x08 5172 #define _SSPSTAT_S1 0x08 5173 #define _SSPSTAT_I2C_START1 0x08 5174 #define _SSPSTAT_P 0x10 5175 #define _SSPSTAT_I2C_STOP 0x10 5176 #define _SSPSTAT_P1 0x10 5177 #define _SSPSTAT_I2C_STOP1 0x10 5178 #define _SSPSTAT_D_NOT_A 0x20 5179 #define _SSPSTAT_D 0x20 5180 #define _SSPSTAT_D_A 0x20 5181 #define _SSPSTAT_NOT_A 0x20 5182 #define _SSPSTAT_NOT_ADDRESS 0x20 5183 #define _SSPSTAT_DATA_ADDRESS 0x20 5184 #define _SSPSTAT_I2C_DAT 0x20 5185 #define _SSPSTAT_D_NOT_A1 0x20 5186 #define _SSPSTAT_D1 0x20 5187 #define _SSPSTAT_R_W1 0x20 5188 #define _SSPSTAT_NOT_A1 0x20 5189 #define _SSPSTAT_NOT_ADDRESS1 0x20 5190 #define _SSPSTAT_DATA_ADDRESS1 0x20 5191 #define _SSPSTAT_I2C_DAT1 0x20 5192 #define _SSPSTAT_CKE 0x40 5193 #define _SSPSTAT_CKE1 0x40 5194 #define _SSPSTAT_SMP 0x80 5195 #define _SSPSTAT_SMP1 0x80 5196 5197 //============================================================================== 5198 5199 5200 //============================================================================== 5201 // SSP1ADD Bits 5202 5203 extern __at(0x0FC8) __sfr SSP1ADD; 5204 5205 typedef union 5206 { 5207 struct 5208 { 5209 unsigned MSK0 : 1; 5210 unsigned MSK1 : 1; 5211 unsigned MSK2 : 1; 5212 unsigned MSK3 : 1; 5213 unsigned MSK4 : 1; 5214 unsigned MSK5 : 1; 5215 unsigned MSK6 : 1; 5216 unsigned MSK7 : 1; 5217 }; 5218 5219 struct 5220 { 5221 unsigned MSK01 : 1; 5222 unsigned MSK11 : 1; 5223 unsigned MSK21 : 1; 5224 unsigned MSK31 : 1; 5225 unsigned MSK41 : 1; 5226 unsigned MSK51 : 1; 5227 unsigned MSK61 : 1; 5228 unsigned MSK71 : 1; 5229 }; 5230 } __SSP1ADDbits_t; 5231 5232 extern __at(0x0FC8) volatile __SSP1ADDbits_t SSP1ADDbits; 5233 5234 #define _MSK0 0x01 5235 #define _MSK01 0x01 5236 #define _MSK1 0x02 5237 #define _MSK11 0x02 5238 #define _MSK2 0x04 5239 #define _MSK21 0x04 5240 #define _MSK3 0x08 5241 #define _MSK31 0x08 5242 #define _MSK4 0x10 5243 #define _MSK41 0x10 5244 #define _MSK5 0x20 5245 #define _MSK51 0x20 5246 #define _MSK6 0x40 5247 #define _MSK61 0x40 5248 #define _MSK7 0x80 5249 #define _MSK71 0x80 5250 5251 //============================================================================== 5252 5253 5254 //============================================================================== 5255 // SSP1MSK Bits 5256 5257 extern __at(0x0FC8) __sfr SSP1MSK; 5258 5259 typedef union 5260 { 5261 struct 5262 { 5263 unsigned MSK0 : 1; 5264 unsigned MSK1 : 1; 5265 unsigned MSK2 : 1; 5266 unsigned MSK3 : 1; 5267 unsigned MSK4 : 1; 5268 unsigned MSK5 : 1; 5269 unsigned MSK6 : 1; 5270 unsigned MSK7 : 1; 5271 }; 5272 5273 struct 5274 { 5275 unsigned MSK01 : 1; 5276 unsigned MSK11 : 1; 5277 unsigned MSK21 : 1; 5278 unsigned MSK31 : 1; 5279 unsigned MSK41 : 1; 5280 unsigned MSK51 : 1; 5281 unsigned MSK61 : 1; 5282 unsigned MSK71 : 1; 5283 }; 5284 } __SSP1MSKbits_t; 5285 5286 extern __at(0x0FC8) volatile __SSP1MSKbits_t SSP1MSKbits; 5287 5288 #define _SSP1MSK_MSK0 0x01 5289 #define _SSP1MSK_MSK01 0x01 5290 #define _SSP1MSK_MSK1 0x02 5291 #define _SSP1MSK_MSK11 0x02 5292 #define _SSP1MSK_MSK2 0x04 5293 #define _SSP1MSK_MSK21 0x04 5294 #define _SSP1MSK_MSK3 0x08 5295 #define _SSP1MSK_MSK31 0x08 5296 #define _SSP1MSK_MSK4 0x10 5297 #define _SSP1MSK_MSK41 0x10 5298 #define _SSP1MSK_MSK5 0x20 5299 #define _SSP1MSK_MSK51 0x20 5300 #define _SSP1MSK_MSK6 0x40 5301 #define _SSP1MSK_MSK61 0x40 5302 #define _SSP1MSK_MSK7 0x80 5303 #define _SSP1MSK_MSK71 0x80 5304 5305 //============================================================================== 5306 5307 5308 //============================================================================== 5309 // SSPADD Bits 5310 5311 extern __at(0x0FC8) __sfr SSPADD; 5312 5313 typedef union 5314 { 5315 struct 5316 { 5317 unsigned MSK0 : 1; 5318 unsigned MSK1 : 1; 5319 unsigned MSK2 : 1; 5320 unsigned MSK3 : 1; 5321 unsigned MSK4 : 1; 5322 unsigned MSK5 : 1; 5323 unsigned MSK6 : 1; 5324 unsigned MSK7 : 1; 5325 }; 5326 5327 struct 5328 { 5329 unsigned MSK01 : 1; 5330 unsigned MSK11 : 1; 5331 unsigned MSK21 : 1; 5332 unsigned MSK31 : 1; 5333 unsigned MSK41 : 1; 5334 unsigned MSK51 : 1; 5335 unsigned MSK61 : 1; 5336 unsigned MSK71 : 1; 5337 }; 5338 } __SSPADDbits_t; 5339 5340 extern __at(0x0FC8) volatile __SSPADDbits_t SSPADDbits; 5341 5342 #define _SSPADD_MSK0 0x01 5343 #define _SSPADD_MSK01 0x01 5344 #define _SSPADD_MSK1 0x02 5345 #define _SSPADD_MSK11 0x02 5346 #define _SSPADD_MSK2 0x04 5347 #define _SSPADD_MSK21 0x04 5348 #define _SSPADD_MSK3 0x08 5349 #define _SSPADD_MSK31 0x08 5350 #define _SSPADD_MSK4 0x10 5351 #define _SSPADD_MSK41 0x10 5352 #define _SSPADD_MSK5 0x20 5353 #define _SSPADD_MSK51 0x20 5354 #define _SSPADD_MSK6 0x40 5355 #define _SSPADD_MSK61 0x40 5356 #define _SSPADD_MSK7 0x80 5357 #define _SSPADD_MSK71 0x80 5358 5359 //============================================================================== 5360 5361 extern __at(0x0FC9) __sfr SSP1BUF; 5362 extern __at(0x0FC9) __sfr SSPBUF; 5363 5364 //============================================================================== 5365 // T2CON Bits 5366 5367 extern __at(0x0FCA) __sfr T2CON; 5368 5369 typedef union 5370 { 5371 struct 5372 { 5373 unsigned T2CKPS0 : 1; 5374 unsigned T2CKPS1 : 1; 5375 unsigned TMR2ON : 1; 5376 unsigned T2OUTPS0 : 1; 5377 unsigned T2OUTPS1 : 1; 5378 unsigned T2OUTPS2 : 1; 5379 unsigned T2OUTPS3 : 1; 5380 unsigned : 1; 5381 }; 5382 5383 struct 5384 { 5385 unsigned T2CKPS : 2; 5386 unsigned : 6; 5387 }; 5388 5389 struct 5390 { 5391 unsigned : 3; 5392 unsigned T2OUTPS : 4; 5393 unsigned : 1; 5394 }; 5395 } __T2CONbits_t; 5396 5397 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits; 5398 5399 #define _T2CKPS0 0x01 5400 #define _T2CKPS1 0x02 5401 #define _TMR2ON 0x04 5402 #define _T2OUTPS0 0x08 5403 #define _T2OUTPS1 0x10 5404 #define _T2OUTPS2 0x20 5405 #define _T2OUTPS3 0x40 5406 5407 //============================================================================== 5408 5409 extern __at(0x0FCB) __sfr PR2; 5410 extern __at(0x0FCC) __sfr TMR2; 5411 5412 //============================================================================== 5413 // T1CON Bits 5414 5415 extern __at(0x0FCD) __sfr T1CON; 5416 5417 typedef union 5418 { 5419 struct 5420 { 5421 unsigned TMR1ON : 1; 5422 unsigned RD16 : 1; 5423 unsigned T1SYNC : 1; 5424 unsigned T1OSCEN : 1; 5425 unsigned T1CKPS0 : 1; 5426 unsigned T1CKPS1 : 1; 5427 unsigned TMR1CS0 : 1; 5428 unsigned TMR1CS1 : 1; 5429 }; 5430 5431 struct 5432 { 5433 unsigned : 1; 5434 unsigned RD161 : 1; 5435 unsigned T1SYNC1 : 1; 5436 unsigned T1OSCEN1 : 1; 5437 unsigned T1CKPS01 : 1; 5438 unsigned T1CKPS11 : 1; 5439 unsigned TMR1CS01 : 1; 5440 unsigned TMR1CS11 : 1; 5441 }; 5442 } __T1CONbits_t; 5443 5444 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits; 5445 5446 #define _TMR1ON 0x01 5447 #define _RD16 0x02 5448 #define _RD161 0x02 5449 #define _T1SYNC 0x04 5450 #define _T1SYNC1 0x04 5451 #define _T1OSCEN 0x08 5452 #define _T1OSCEN1 0x08 5453 #define _T1CKPS0 0x10 5454 #define _T1CKPS01 0x10 5455 #define _T1CKPS1 0x20 5456 #define _T1CKPS11 0x20 5457 #define _TMR1CS0 0x40 5458 #define _TMR1CS01 0x40 5459 #define _TMR1CS1 0x80 5460 #define _TMR1CS11 0x80 5461 5462 //============================================================================== 5463 5464 extern __at(0x0FCE) __sfr TMR1; 5465 extern __at(0x0FCE) __sfr TMR1L; 5466 extern __at(0x0FCF) __sfr TMR1H; 5467 5468 //============================================================================== 5469 // RCON Bits 5470 5471 extern __at(0x0FD0) __sfr RCON; 5472 5473 typedef union 5474 { 5475 struct 5476 { 5477 unsigned NOT_BOR : 1; 5478 unsigned NOT_POR : 1; 5479 unsigned NOT_PD : 1; 5480 unsigned NOT_TO : 1; 5481 unsigned NOT_RI : 1; 5482 unsigned NOT_CM : 1; 5483 unsigned : 1; 5484 unsigned IPEN : 1; 5485 }; 5486 5487 struct 5488 { 5489 unsigned BOR : 1; 5490 unsigned POR : 1; 5491 unsigned PD : 1; 5492 unsigned TO : 1; 5493 unsigned RI : 1; 5494 unsigned CM : 1; 5495 unsigned : 1; 5496 unsigned : 1; 5497 }; 5498 } __RCONbits_t; 5499 5500 extern __at(0x0FD0) volatile __RCONbits_t RCONbits; 5501 5502 #define _NOT_BOR 0x01 5503 #define _BOR 0x01 5504 #define _NOT_POR 0x02 5505 #define _POR 0x02 5506 #define _NOT_PD 0x04 5507 #define _PD 0x04 5508 #define _NOT_TO 0x08 5509 #define _TO 0x08 5510 #define _NOT_RI 0x10 5511 #define _RI 0x10 5512 #define _NOT_CM 0x20 5513 #define _CM 0x20 5514 #define _IPEN 0x80 5515 5516 //============================================================================== 5517 5518 5519 //============================================================================== 5520 // CM2CON Bits 5521 5522 extern __at(0x0FD1) __sfr CM2CON; 5523 5524 typedef union 5525 { 5526 struct 5527 { 5528 unsigned CCH0 : 1; 5529 unsigned CCH1 : 1; 5530 unsigned CREF : 1; 5531 unsigned EVPOL0 : 1; 5532 unsigned EVPOL1 : 1; 5533 unsigned CPOL : 1; 5534 unsigned COE : 1; 5535 unsigned CON : 1; 5536 }; 5537 5538 struct 5539 { 5540 unsigned CCH : 2; 5541 unsigned : 6; 5542 }; 5543 5544 struct 5545 { 5546 unsigned : 3; 5547 unsigned EVPOL : 2; 5548 unsigned : 3; 5549 }; 5550 } __CM2CONbits_t; 5551 5552 extern __at(0x0FD1) volatile __CM2CONbits_t CM2CONbits; 5553 5554 #define _CM2CON_CCH0 0x01 5555 #define _CM2CON_CCH1 0x02 5556 #define _CM2CON_CREF 0x04 5557 #define _CM2CON_EVPOL0 0x08 5558 #define _CM2CON_EVPOL1 0x10 5559 #define _CM2CON_CPOL 0x20 5560 #define _CM2CON_COE 0x40 5561 #define _CM2CON_CON 0x80 5562 5563 //============================================================================== 5564 5565 5566 //============================================================================== 5567 // CM2CON1 Bits 5568 5569 extern __at(0x0FD1) __sfr CM2CON1; 5570 5571 typedef union 5572 { 5573 struct 5574 { 5575 unsigned CCH0 : 1; 5576 unsigned CCH1 : 1; 5577 unsigned CREF : 1; 5578 unsigned EVPOL0 : 1; 5579 unsigned EVPOL1 : 1; 5580 unsigned CPOL : 1; 5581 unsigned COE : 1; 5582 unsigned CON : 1; 5583 }; 5584 5585 struct 5586 { 5587 unsigned CCH : 2; 5588 unsigned : 6; 5589 }; 5590 5591 struct 5592 { 5593 unsigned : 3; 5594 unsigned EVPOL : 2; 5595 unsigned : 3; 5596 }; 5597 } __CM2CON1bits_t; 5598 5599 extern __at(0x0FD1) volatile __CM2CON1bits_t CM2CON1bits; 5600 5601 #define _CM2CON1_CCH0 0x01 5602 #define _CM2CON1_CCH1 0x02 5603 #define _CM2CON1_CREF 0x04 5604 #define _CM2CON1_EVPOL0 0x08 5605 #define _CM2CON1_EVPOL1 0x10 5606 #define _CM2CON1_CPOL 0x20 5607 #define _CM2CON1_COE 0x40 5608 #define _CM2CON1_CON 0x80 5609 5610 //============================================================================== 5611 5612 5613 //============================================================================== 5614 // CM1CON Bits 5615 5616 extern __at(0x0FD2) __sfr CM1CON; 5617 5618 typedef union 5619 { 5620 struct 5621 { 5622 unsigned CCH0 : 1; 5623 unsigned CCH1 : 1; 5624 unsigned CREF : 1; 5625 unsigned EVPOL0 : 1; 5626 unsigned EVPOL1 : 1; 5627 unsigned CPOL : 1; 5628 unsigned COE : 1; 5629 unsigned CON : 1; 5630 }; 5631 5632 struct 5633 { 5634 unsigned CCH01 : 1; 5635 unsigned CCH11 : 1; 5636 unsigned CREF1 : 1; 5637 unsigned EVPOL01 : 1; 5638 unsigned EVPOL11 : 1; 5639 unsigned CPOL1 : 1; 5640 unsigned COE1 : 1; 5641 unsigned CON1 : 1; 5642 }; 5643 } __CM1CONbits_t; 5644 5645 extern __at(0x0FD2) volatile __CM1CONbits_t CM1CONbits; 5646 5647 #define _CCH0 0x01 5648 #define _CCH01 0x01 5649 #define _CCH1 0x02 5650 #define _CCH11 0x02 5651 #define _CREF 0x04 5652 #define _CREF1 0x04 5653 #define _EVPOL0 0x08 5654 #define _EVPOL01 0x08 5655 #define _EVPOL1 0x10 5656 #define _EVPOL11 0x10 5657 #define _CPOL 0x20 5658 #define _CPOL1 0x20 5659 #define _COE 0x40 5660 #define _COE1 0x40 5661 #define _CON 0x80 5662 #define _CON1 0x80 5663 5664 //============================================================================== 5665 5666 5667 //============================================================================== 5668 // CM1CON1 Bits 5669 5670 extern __at(0x0FD2) __sfr CM1CON1; 5671 5672 typedef union 5673 { 5674 struct 5675 { 5676 unsigned CCH0 : 1; 5677 unsigned CCH1 : 1; 5678 unsigned CREF : 1; 5679 unsigned EVPOL0 : 1; 5680 unsigned EVPOL1 : 1; 5681 unsigned CPOL : 1; 5682 unsigned COE : 1; 5683 unsigned CON : 1; 5684 }; 5685 5686 struct 5687 { 5688 unsigned CCH01 : 1; 5689 unsigned CCH11 : 1; 5690 unsigned CREF1 : 1; 5691 unsigned EVPOL01 : 1; 5692 unsigned EVPOL11 : 1; 5693 unsigned CPOL1 : 1; 5694 unsigned COE1 : 1; 5695 unsigned CON1 : 1; 5696 }; 5697 } __CM1CON1bits_t; 5698 5699 extern __at(0x0FD2) volatile __CM1CON1bits_t CM1CON1bits; 5700 5701 #define _CM1CON1_CCH0 0x01 5702 #define _CM1CON1_CCH01 0x01 5703 #define _CM1CON1_CCH1 0x02 5704 #define _CM1CON1_CCH11 0x02 5705 #define _CM1CON1_CREF 0x04 5706 #define _CM1CON1_CREF1 0x04 5707 #define _CM1CON1_EVPOL0 0x08 5708 #define _CM1CON1_EVPOL01 0x08 5709 #define _CM1CON1_EVPOL1 0x10 5710 #define _CM1CON1_EVPOL11 0x10 5711 #define _CM1CON1_CPOL 0x20 5712 #define _CM1CON1_CPOL1 0x20 5713 #define _CM1CON1_COE 0x40 5714 #define _CM1CON1_COE1 0x40 5715 #define _CM1CON1_CON 0x80 5716 #define _CM1CON1_CON1 0x80 5717 5718 //============================================================================== 5719 5720 5721 //============================================================================== 5722 // OSCCON Bits 5723 5724 extern __at(0x0FD3) __sfr OSCCON; 5725 5726 typedef union 5727 { 5728 struct 5729 { 5730 unsigned SCS0 : 1; 5731 unsigned SCS1 : 1; 5732 unsigned : 1; 5733 unsigned OSTS : 1; 5734 unsigned IRCF0 : 1; 5735 unsigned IRCF1 : 1; 5736 unsigned IRCF2 : 1; 5737 unsigned IDLEN : 1; 5738 }; 5739 5740 struct 5741 { 5742 unsigned SCS : 2; 5743 unsigned : 6; 5744 }; 5745 5746 struct 5747 { 5748 unsigned : 4; 5749 unsigned IRCF : 3; 5750 unsigned : 1; 5751 }; 5752 } __OSCCONbits_t; 5753 5754 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits; 5755 5756 #define _SCS0 0x01 5757 #define _SCS1 0x02 5758 #define _OSTS 0x08 5759 #define _IRCF0 0x10 5760 #define _IRCF1 0x20 5761 #define _IRCF2 0x40 5762 #define _IDLEN 0x80 5763 5764 //============================================================================== 5765 5766 5767 //============================================================================== 5768 // T0CON Bits 5769 5770 extern __at(0x0FD5) __sfr T0CON; 5771 5772 typedef union 5773 { 5774 struct 5775 { 5776 unsigned T0PS0 : 1; 5777 unsigned T0PS1 : 1; 5778 unsigned T0PS2 : 1; 5779 unsigned PSA : 1; 5780 unsigned T0SE : 1; 5781 unsigned T0CS : 1; 5782 unsigned T08BIT : 1; 5783 unsigned TMR0ON : 1; 5784 }; 5785 5786 struct 5787 { 5788 unsigned T0PS : 3; 5789 unsigned : 5; 5790 }; 5791 } __T0CONbits_t; 5792 5793 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits; 5794 5795 #define _T0PS0 0x01 5796 #define _T0PS1 0x02 5797 #define _T0PS2 0x04 5798 #define _PSA 0x08 5799 #define _T0SE 0x10 5800 #define _T0CS 0x20 5801 #define _T08BIT 0x40 5802 #define _TMR0ON 0x80 5803 5804 //============================================================================== 5805 5806 extern __at(0x0FD6) __sfr TMR0; 5807 extern __at(0x0FD6) __sfr TMR0L; 5808 extern __at(0x0FD7) __sfr TMR0H; 5809 5810 //============================================================================== 5811 // STATUS Bits 5812 5813 extern __at(0x0FD8) __sfr STATUS; 5814 5815 typedef struct 5816 { 5817 unsigned C : 1; 5818 unsigned DC : 1; 5819 unsigned Z : 1; 5820 unsigned OV : 1; 5821 unsigned N : 1; 5822 unsigned : 1; 5823 unsigned : 1; 5824 unsigned : 1; 5825 } __STATUSbits_t; 5826 5827 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits; 5828 5829 #define _C 0x01 5830 #define _DC 0x02 5831 #define _Z 0x04 5832 #define _OV 0x08 5833 #define _N 0x10 5834 5835 //============================================================================== 5836 5837 extern __at(0x0FD9) __sfr FSR2L; 5838 extern __at(0x0FDA) __sfr FSR2H; 5839 extern __at(0x0FDB) __sfr PLUSW2; 5840 extern __at(0x0FDC) __sfr PREINC2; 5841 extern __at(0x0FDD) __sfr POSTDEC2; 5842 extern __at(0x0FDE) __sfr POSTINC2; 5843 extern __at(0x0FDF) __sfr INDF2; 5844 extern __at(0x0FE0) __sfr BSR; 5845 extern __at(0x0FE1) __sfr FSR1L; 5846 extern __at(0x0FE2) __sfr FSR1H; 5847 extern __at(0x0FE3) __sfr PLUSW1; 5848 extern __at(0x0FE4) __sfr PREINC1; 5849 extern __at(0x0FE5) __sfr POSTDEC1; 5850 extern __at(0x0FE6) __sfr POSTINC1; 5851 extern __at(0x0FE7) __sfr INDF1; 5852 extern __at(0x0FE8) __sfr WREG; 5853 extern __at(0x0FE9) __sfr FSR0L; 5854 extern __at(0x0FEA) __sfr FSR0H; 5855 extern __at(0x0FEB) __sfr PLUSW0; 5856 extern __at(0x0FEC) __sfr PREINC0; 5857 extern __at(0x0FED) __sfr POSTDEC0; 5858 extern __at(0x0FEE) __sfr POSTINC0; 5859 extern __at(0x0FEF) __sfr INDF0; 5860 5861 //============================================================================== 5862 // INTCON3 Bits 5863 5864 extern __at(0x0FF0) __sfr INTCON3; 5865 5866 typedef union 5867 { 5868 struct 5869 { 5870 unsigned INT1IF : 1; 5871 unsigned INT2IF : 1; 5872 unsigned INT3IF : 1; 5873 unsigned INT1IE : 1; 5874 unsigned INT2IE : 1; 5875 unsigned INT3IE : 1; 5876 unsigned INT1IP : 1; 5877 unsigned INT2IP : 1; 5878 }; 5879 5880 struct 5881 { 5882 unsigned INT1F : 1; 5883 unsigned INT2F : 1; 5884 unsigned INT3F : 1; 5885 unsigned INT1E : 1; 5886 unsigned INT2E : 1; 5887 unsigned INT3E : 1; 5888 unsigned INT1P : 1; 5889 unsigned INT2P : 1; 5890 }; 5891 } __INTCON3bits_t; 5892 5893 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits; 5894 5895 #define _INT1IF 0x01 5896 #define _INT1F 0x01 5897 #define _INT2IF 0x02 5898 #define _INT2F 0x02 5899 #define _INT3IF 0x04 5900 #define _INT3F 0x04 5901 #define _INT1IE 0x08 5902 #define _INT1E 0x08 5903 #define _INT2IE 0x10 5904 #define _INT2E 0x10 5905 #define _INT3IE 0x20 5906 #define _INT3E 0x20 5907 #define _INT1IP 0x40 5908 #define _INT1P 0x40 5909 #define _INT2IP 0x80 5910 #define _INT2P 0x80 5911 5912 //============================================================================== 5913 5914 5915 //============================================================================== 5916 // INTCON2 Bits 5917 5918 extern __at(0x0FF1) __sfr INTCON2; 5919 5920 typedef union 5921 { 5922 struct 5923 { 5924 unsigned RBIP : 1; 5925 unsigned INT3IP : 1; 5926 unsigned TMR0IP : 1; 5927 unsigned INTEDG3 : 1; 5928 unsigned INTEDG2 : 1; 5929 unsigned INTEDG1 : 1; 5930 unsigned INTEDG0 : 1; 5931 unsigned NOT_RBPU : 1; 5932 }; 5933 5934 struct 5935 { 5936 unsigned : 1; 5937 unsigned INT3P : 1; 5938 unsigned T0IP : 1; 5939 unsigned : 1; 5940 unsigned : 1; 5941 unsigned : 1; 5942 unsigned : 1; 5943 unsigned RBPU : 1; 5944 }; 5945 } __INTCON2bits_t; 5946 5947 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits; 5948 5949 #define _RBIP 0x01 5950 #define _INT3IP 0x02 5951 #define _INT3P 0x02 5952 #define _TMR0IP 0x04 5953 #define _T0IP 0x04 5954 #define _INTEDG3 0x08 5955 #define _INTEDG2 0x10 5956 #define _INTEDG1 0x20 5957 #define _INTEDG0 0x40 5958 #define _NOT_RBPU 0x80 5959 #define _RBPU 0x80 5960 5961 //============================================================================== 5962 5963 5964 //============================================================================== 5965 // INTCON Bits 5966 5967 extern __at(0x0FF2) __sfr INTCON; 5968 5969 typedef union 5970 { 5971 struct 5972 { 5973 unsigned RBIF : 1; 5974 unsigned INT0IF : 1; 5975 unsigned TMR0IF : 1; 5976 unsigned RBIE : 1; 5977 unsigned INT0IE : 1; 5978 unsigned TMR0IE : 1; 5979 unsigned PEIE_GIEL : 1; 5980 unsigned GIE_GIEH : 1; 5981 }; 5982 5983 struct 5984 { 5985 unsigned : 1; 5986 unsigned INT0F : 1; 5987 unsigned T0IF : 1; 5988 unsigned : 1; 5989 unsigned INT0E : 1; 5990 unsigned T0IE : 1; 5991 unsigned PEIE : 1; 5992 unsigned GIE : 1; 5993 }; 5994 5995 struct 5996 { 5997 unsigned : 1; 5998 unsigned : 1; 5999 unsigned : 1; 6000 unsigned : 1; 6001 unsigned : 1; 6002 unsigned : 1; 6003 unsigned GIEL : 1; 6004 unsigned GIEH : 1; 6005 }; 6006 } __INTCONbits_t; 6007 6008 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits; 6009 6010 #define _RBIF 0x01 6011 #define _INT0IF 0x02 6012 #define _INT0F 0x02 6013 #define _TMR0IF 0x04 6014 #define _T0IF 0x04 6015 #define _RBIE 0x08 6016 #define _INT0IE 0x10 6017 #define _INT0E 0x10 6018 #define _TMR0IE 0x20 6019 #define _T0IE 0x20 6020 #define _PEIE_GIEL 0x40 6021 #define _PEIE 0x40 6022 #define _GIEL 0x40 6023 #define _GIE_GIEH 0x80 6024 #define _GIE 0x80 6025 #define _GIEH 0x80 6026 6027 //============================================================================== 6028 6029 extern __at(0x0FF3) __sfr PROD; 6030 extern __at(0x0FF3) __sfr PRODL; 6031 extern __at(0x0FF4) __sfr PRODH; 6032 extern __at(0x0FF5) __sfr TABLAT; 6033 extern __at(0x0FF6) __sfr TBLPTR; 6034 extern __at(0x0FF6) __sfr TBLPTRL; 6035 extern __at(0x0FF7) __sfr TBLPTRH; 6036 extern __at(0x0FF8) __sfr TBLPTRU; 6037 extern __at(0x0FF9) __sfr PC; 6038 extern __at(0x0FF9) __sfr PCL; 6039 extern __at(0x0FFA) __sfr PCLATH; 6040 extern __at(0x0FFB) __sfr PCLATU; 6041 6042 //============================================================================== 6043 // STKPTR Bits 6044 6045 extern __at(0x0FFC) __sfr STKPTR; 6046 6047 typedef union 6048 { 6049 struct 6050 { 6051 unsigned SP0 : 1; 6052 unsigned SP1 : 1; 6053 unsigned SP2 : 1; 6054 unsigned SP3 : 1; 6055 unsigned SP4 : 1; 6056 unsigned : 1; 6057 unsigned STKUNF : 1; 6058 unsigned STKFUL : 1; 6059 }; 6060 6061 struct 6062 { 6063 unsigned : 1; 6064 unsigned : 1; 6065 unsigned : 1; 6066 unsigned : 1; 6067 unsigned : 1; 6068 unsigned : 1; 6069 unsigned : 1; 6070 unsigned STKOVF : 1; 6071 }; 6072 6073 struct 6074 { 6075 unsigned SP : 5; 6076 unsigned : 3; 6077 }; 6078 } __STKPTRbits_t; 6079 6080 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits; 6081 6082 #define _SP0 0x01 6083 #define _SP1 0x02 6084 #define _SP2 0x04 6085 #define _SP3 0x08 6086 #define _SP4 0x10 6087 #define _STKUNF 0x40 6088 #define _STKFUL 0x80 6089 #define _STKOVF 0x80 6090 6091 //============================================================================== 6092 6093 extern __at(0x0FFD) __sfr TOS; 6094 extern __at(0x0FFD) __sfr TOSL; 6095 extern __at(0x0FFE) __sfr TOSH; 6096 extern __at(0x0FFF) __sfr TOSU; 6097 6098 //============================================================================== 6099 // 6100 // Configuration Addresses 6101 // 6102 //============================================================================== 6103 6104 #define __CONFIG1L 0x00FFF8 6105 #define __CONFIG1H 0x00FFF9 6106 #define __CONFIG2L 0x00FFFA 6107 #define __CONFIG2H 0x00FFFB 6108 #define __CONFIG3L 0x00FFFC 6109 #define __CONFIG3H 0x00FFFD 6110 #define __CONFIG4L 0x00FFFE 6111 #define __CONFIG4H 0x00FFFF 6112 6113 //============================================================================== 6114 6115 #endif // #ifndef __PIC18F26J50_H__ 6116