1 /* 2 * This declarations of the PIC18LF46J13 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:57 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 __PIC18LF46J13_H__ 26 #define __PIC18LF46J13_H__ 27 28 //============================================================================== 29 30 //============================================================================== 31 // 32 // Register Definitions 33 // 34 //============================================================================== 35 36 37 //============================================================================== 38 // ADCTRIG Bits 39 40 extern __at(0x0EB8) __sfr ADCTRIG; 41 42 typedef union 43 { 44 struct 45 { 46 unsigned SRC0 : 1; 47 unsigned SRC1 : 1; 48 unsigned : 1; 49 unsigned : 1; 50 unsigned : 1; 51 unsigned : 1; 52 unsigned : 1; 53 unsigned : 1; 54 }; 55 56 struct 57 { 58 unsigned TRIGSEL0 : 1; 59 unsigned TRIGSEL1 : 1; 60 unsigned : 1; 61 unsigned : 1; 62 unsigned : 1; 63 unsigned : 1; 64 unsigned : 1; 65 unsigned : 1; 66 }; 67 68 struct 69 { 70 unsigned SRC : 2; 71 unsigned : 6; 72 }; 73 74 struct 75 { 76 unsigned TRIGSEL : 2; 77 unsigned : 6; 78 }; 79 } __ADCTRIGbits_t; 80 81 extern __at(0x0EB8) volatile __ADCTRIGbits_t ADCTRIGbits; 82 83 #define _SRC0 0x01 84 #define _TRIGSEL0 0x01 85 #define _SRC1 0x02 86 #define _TRIGSEL1 0x02 87 88 //============================================================================== 89 90 91 //============================================================================== 92 // PD0 Bits 93 94 extern __at(0x0EB9) __sfr PD0; 95 96 typedef union 97 { 98 struct 99 { 100 unsigned ADCMD : 1; 101 unsigned SPI1MD : 1; 102 unsigned SPI2MD : 1; 103 unsigned UART1MD : 1; 104 unsigned UART2MD : 1; 105 unsigned ECCP1MD : 1; 106 unsigned ECCP2MD : 1; 107 unsigned ECCP3MD : 1; 108 }; 109 110 struct 111 { 112 unsigned PMDADC : 1; 113 unsigned PMDMSSP1 : 1; 114 unsigned PMDMSSP2 : 1; 115 unsigned PMDUART1 : 1; 116 unsigned PMDUART2 : 1; 117 unsigned PMDECCP1 : 1; 118 unsigned PMDECCP2 : 1; 119 unsigned PMDECCP3 : 1; 120 }; 121 } __PD0bits_t; 122 123 extern __at(0x0EB9) volatile __PD0bits_t PD0bits; 124 125 #define _ADCMD 0x01 126 #define _PMDADC 0x01 127 #define _SPI1MD 0x02 128 #define _PMDMSSP1 0x02 129 #define _SPI2MD 0x04 130 #define _PMDMSSP2 0x04 131 #define _UART1MD 0x08 132 #define _PMDUART1 0x08 133 #define _UART2MD 0x10 134 #define _PMDUART2 0x10 135 #define _ECCP1MD 0x20 136 #define _PMDECCP1 0x20 137 #define _ECCP2MD 0x40 138 #define _PMDECCP2 0x40 139 #define _ECCP3MD 0x80 140 #define _PMDECCP3 0x80 141 142 //============================================================================== 143 144 145 //============================================================================== 146 // PMDIS0 Bits 147 148 extern __at(0x0EB9) __sfr PMDIS0; 149 150 typedef union 151 { 152 struct 153 { 154 unsigned ADCMD : 1; 155 unsigned SPI1MD : 1; 156 unsigned SPI2MD : 1; 157 unsigned UART1MD : 1; 158 unsigned UART2MD : 1; 159 unsigned ECCP1MD : 1; 160 unsigned ECCP2MD : 1; 161 unsigned ECCP3MD : 1; 162 }; 163 164 struct 165 { 166 unsigned PMDADC : 1; 167 unsigned PMDMSSP1 : 1; 168 unsigned PMDMSSP2 : 1; 169 unsigned PMDUART1 : 1; 170 unsigned PMDUART2 : 1; 171 unsigned PMDECCP1 : 1; 172 unsigned PMDECCP2 : 1; 173 unsigned PMDECCP3 : 1; 174 }; 175 } __PMDIS0bits_t; 176 177 extern __at(0x0EB9) volatile __PMDIS0bits_t PMDIS0bits; 178 179 #define _PMDIS0_ADCMD 0x01 180 #define _PMDIS0_PMDADC 0x01 181 #define _PMDIS0_SPI1MD 0x02 182 #define _PMDIS0_PMDMSSP1 0x02 183 #define _PMDIS0_SPI2MD 0x04 184 #define _PMDIS0_PMDMSSP2 0x04 185 #define _PMDIS0_UART1MD 0x08 186 #define _PMDIS0_PMDUART1 0x08 187 #define _PMDIS0_UART2MD 0x10 188 #define _PMDIS0_PMDUART2 0x10 189 #define _PMDIS0_ECCP1MD 0x20 190 #define _PMDIS0_PMDECCP1 0x20 191 #define _PMDIS0_ECCP2MD 0x40 192 #define _PMDIS0_PMDECCP2 0x40 193 #define _PMDIS0_ECCP3MD 0x80 194 #define _PMDIS0_PMDECCP3 0x80 195 196 //============================================================================== 197 198 199 //============================================================================== 200 // PD1 Bits 201 202 extern __at(0x0EBA) __sfr PD1; 203 204 typedef union 205 { 206 struct 207 { 208 unsigned : 1; 209 unsigned TMR1MD : 1; 210 unsigned TMR2MD : 1; 211 unsigned TMR3MD : 1; 212 unsigned TMR4MD : 1; 213 unsigned RTCCMD : 1; 214 unsigned CTMUMD : 1; 215 unsigned PSPMD : 1; 216 }; 217 218 struct 219 { 220 unsigned : 1; 221 unsigned PMDTMR1 : 1; 222 unsigned PMDTMR2 : 1; 223 unsigned PMDTMR3 : 1; 224 unsigned PMDTMR4 : 1; 225 unsigned PMDRTCC : 1; 226 unsigned PMDCTMU : 1; 227 unsigned PMDPSP : 1; 228 }; 229 } __PD1bits_t; 230 231 extern __at(0x0EBA) volatile __PD1bits_t PD1bits; 232 233 #define _TMR1MD 0x02 234 #define _PMDTMR1 0x02 235 #define _TMR2MD 0x04 236 #define _PMDTMR2 0x04 237 #define _TMR3MD 0x08 238 #define _PMDTMR3 0x08 239 #define _TMR4MD 0x10 240 #define _PMDTMR4 0x10 241 #define _RTCCMD 0x20 242 #define _PMDRTCC 0x20 243 #define _CTMUMD 0x40 244 #define _PMDCTMU 0x40 245 #define _PSPMD 0x80 246 #define _PMDPSP 0x80 247 248 //============================================================================== 249 250 251 //============================================================================== 252 // PMDIS1 Bits 253 254 extern __at(0x0EBA) __sfr PMDIS1; 255 256 typedef union 257 { 258 struct 259 { 260 unsigned : 1; 261 unsigned TMR1MD : 1; 262 unsigned TMR2MD : 1; 263 unsigned TMR3MD : 1; 264 unsigned TMR4MD : 1; 265 unsigned RTCCMD : 1; 266 unsigned CTMUMD : 1; 267 unsigned PSPMD : 1; 268 }; 269 270 struct 271 { 272 unsigned : 1; 273 unsigned PMDTMR1 : 1; 274 unsigned PMDTMR2 : 1; 275 unsigned PMDTMR3 : 1; 276 unsigned PMDTMR4 : 1; 277 unsigned PMDRTCC : 1; 278 unsigned PMDCTMU : 1; 279 unsigned PMDPSP : 1; 280 }; 281 } __PMDIS1bits_t; 282 283 extern __at(0x0EBA) volatile __PMDIS1bits_t PMDIS1bits; 284 285 #define _PMDIS1_TMR1MD 0x02 286 #define _PMDIS1_PMDTMR1 0x02 287 #define _PMDIS1_TMR2MD 0x04 288 #define _PMDIS1_PMDTMR2 0x04 289 #define _PMDIS1_TMR3MD 0x08 290 #define _PMDIS1_PMDTMR3 0x08 291 #define _PMDIS1_TMR4MD 0x10 292 #define _PMDIS1_PMDTMR4 0x10 293 #define _PMDIS1_RTCCMD 0x20 294 #define _PMDIS1_PMDRTCC 0x20 295 #define _PMDIS1_CTMUMD 0x40 296 #define _PMDIS1_PMDCTMU 0x40 297 #define _PMDIS1_PSPMD 0x80 298 #define _PMDIS1_PMDPSP 0x80 299 300 //============================================================================== 301 302 303 //============================================================================== 304 // PD2 Bits 305 306 extern __at(0x0EBB) __sfr PD2; 307 308 typedef union 309 { 310 struct 311 { 312 unsigned CMP1MD : 1; 313 unsigned CMP2MD : 1; 314 unsigned CMP3MD : 1; 315 unsigned TMR5MD : 1; 316 unsigned TMR6MD : 1; 317 unsigned : 1; 318 unsigned TMR8MD : 1; 319 unsigned : 1; 320 }; 321 322 struct 323 { 324 unsigned PMDCMP1 : 1; 325 unsigned PMDCMP2 : 1; 326 unsigned PMDCMP3 : 1; 327 unsigned PMDTMR5 : 1; 328 unsigned PMDTMR6 : 1; 329 unsigned : 1; 330 unsigned PMDTMR8 : 1; 331 unsigned : 1; 332 }; 333 } __PD2bits_t; 334 335 extern __at(0x0EBB) volatile __PD2bits_t PD2bits; 336 337 #define _CMP1MD 0x01 338 #define _PMDCMP1 0x01 339 #define _CMP2MD 0x02 340 #define _PMDCMP2 0x02 341 #define _CMP3MD 0x04 342 #define _PMDCMP3 0x04 343 #define _TMR5MD 0x08 344 #define _PMDTMR5 0x08 345 #define _TMR6MD 0x10 346 #define _PMDTMR6 0x10 347 #define _TMR8MD 0x40 348 #define _PMDTMR8 0x40 349 350 //============================================================================== 351 352 353 //============================================================================== 354 // PMDIS2 Bits 355 356 extern __at(0x0EBB) __sfr PMDIS2; 357 358 typedef union 359 { 360 struct 361 { 362 unsigned CMP1MD : 1; 363 unsigned CMP2MD : 1; 364 unsigned CMP3MD : 1; 365 unsigned TMR5MD : 1; 366 unsigned TMR6MD : 1; 367 unsigned : 1; 368 unsigned TMR8MD : 1; 369 unsigned : 1; 370 }; 371 372 struct 373 { 374 unsigned PMDCMP1 : 1; 375 unsigned PMDCMP2 : 1; 376 unsigned PMDCMP3 : 1; 377 unsigned PMDTMR5 : 1; 378 unsigned PMDTMR6 : 1; 379 unsigned : 1; 380 unsigned PMDTMR8 : 1; 381 unsigned : 1; 382 }; 383 } __PMDIS2bits_t; 384 385 extern __at(0x0EBB) volatile __PMDIS2bits_t PMDIS2bits; 386 387 #define _PMDIS2_CMP1MD 0x01 388 #define _PMDIS2_PMDCMP1 0x01 389 #define _PMDIS2_CMP2MD 0x02 390 #define _PMDIS2_PMDCMP2 0x02 391 #define _PMDIS2_CMP3MD 0x04 392 #define _PMDIS2_PMDCMP3 0x04 393 #define _PMDIS2_TMR5MD 0x08 394 #define _PMDIS2_PMDTMR5 0x08 395 #define _PMDIS2_TMR6MD 0x10 396 #define _PMDIS2_PMDTMR6 0x10 397 #define _PMDIS2_TMR8MD 0x40 398 #define _PMDIS2_PMDTMR8 0x40 399 400 //============================================================================== 401 402 403 //============================================================================== 404 // PD3 Bits 405 406 extern __at(0x0EBC) __sfr PD3; 407 408 typedef union 409 { 410 struct 411 { 412 unsigned : 1; 413 unsigned CCP4MD : 1; 414 unsigned CCP5MD : 1; 415 unsigned CCP6MD : 1; 416 unsigned CCP7MD : 1; 417 unsigned CCP8MD : 1; 418 unsigned CCP9MD : 1; 419 unsigned CCP10MD : 1; 420 }; 421 422 struct 423 { 424 unsigned : 1; 425 unsigned PMDCCP4 : 1; 426 unsigned PMDCCP5 : 1; 427 unsigned PMDCCP6 : 1; 428 unsigned PMDCCP7 : 1; 429 unsigned PMDCCP8 : 1; 430 unsigned PMDCCP9 : 1; 431 unsigned PMDCCP10 : 1; 432 }; 433 } __PD3bits_t; 434 435 extern __at(0x0EBC) volatile __PD3bits_t PD3bits; 436 437 #define _CCP4MD 0x02 438 #define _PMDCCP4 0x02 439 #define _CCP5MD 0x04 440 #define _PMDCCP5 0x04 441 #define _CCP6MD 0x08 442 #define _PMDCCP6 0x08 443 #define _CCP7MD 0x10 444 #define _PMDCCP7 0x10 445 #define _CCP8MD 0x20 446 #define _PMDCCP8 0x20 447 #define _CCP9MD 0x40 448 #define _PMDCCP9 0x40 449 #define _CCP10MD 0x80 450 #define _PMDCCP10 0x80 451 452 //============================================================================== 453 454 455 //============================================================================== 456 // PMDIS3 Bits 457 458 extern __at(0x0EBC) __sfr PMDIS3; 459 460 typedef union 461 { 462 struct 463 { 464 unsigned : 1; 465 unsigned CCP4MD : 1; 466 unsigned CCP5MD : 1; 467 unsigned CCP6MD : 1; 468 unsigned CCP7MD : 1; 469 unsigned CCP8MD : 1; 470 unsigned CCP9MD : 1; 471 unsigned CCP10MD : 1; 472 }; 473 474 struct 475 { 476 unsigned : 1; 477 unsigned PMDCCP4 : 1; 478 unsigned PMDCCP5 : 1; 479 unsigned PMDCCP6 : 1; 480 unsigned PMDCCP7 : 1; 481 unsigned PMDCCP8 : 1; 482 unsigned PMDCCP9 : 1; 483 unsigned PMDCCP10 : 1; 484 }; 485 } __PMDIS3bits_t; 486 487 extern __at(0x0EBC) volatile __PMDIS3bits_t PMDIS3bits; 488 489 #define _PMDIS3_CCP4MD 0x02 490 #define _PMDIS3_PMDCCP4 0x02 491 #define _PMDIS3_CCP5MD 0x04 492 #define _PMDIS3_PMDCCP5 0x04 493 #define _PMDIS3_CCP6MD 0x08 494 #define _PMDIS3_PMDCCP6 0x08 495 #define _PMDIS3_CCP7MD 0x10 496 #define _PMDIS3_PMDCCP7 0x10 497 #define _PMDIS3_CCP8MD 0x20 498 #define _PMDIS3_PMDCCP8 0x20 499 #define _PMDIS3_CCP9MD 0x40 500 #define _PMDIS3_PMDCCP9 0x40 501 #define _PMDIS3_CCP10MD 0x80 502 #define _PMDIS3_PMDCCP10 0x80 503 504 //============================================================================== 505 506 507 //============================================================================== 508 // PPSCON Bits 509 510 extern __at(0x0EBF) __sfr PPSCON; 511 512 typedef struct 513 { 514 unsigned IOLOCK : 1; 515 unsigned : 1; 516 unsigned : 1; 517 unsigned : 1; 518 unsigned : 1; 519 unsigned : 1; 520 unsigned : 1; 521 unsigned : 1; 522 } __PPSCONbits_t; 523 524 extern __at(0x0EBF) volatile __PPSCONbits_t PPSCONbits; 525 526 #define _IOLOCK 0x01 527 528 //============================================================================== 529 530 extern __at(0x0EC0) __sfr RPOR0; 531 extern __at(0x0EC1) __sfr RPOR1; 532 extern __at(0x0EC2) __sfr RPOR2; 533 extern __at(0x0EC3) __sfr RPOR3; 534 extern __at(0x0EC4) __sfr RPOR4; 535 extern __at(0x0EC5) __sfr RPOR5; 536 extern __at(0x0EC6) __sfr RPOR6; 537 extern __at(0x0EC7) __sfr RPOR7; 538 extern __at(0x0EC8) __sfr RPOR8; 539 extern __at(0x0EC9) __sfr RPOR9; 540 extern __at(0x0ECA) __sfr RPOR10; 541 extern __at(0x0ECB) __sfr RPOR11; 542 extern __at(0x0ECC) __sfr RPOR12; 543 extern __at(0x0ECD) __sfr RPOR13; 544 extern __at(0x0ECE) __sfr RPOR14; 545 extern __at(0x0ECF) __sfr RPOR15; 546 extern __at(0x0ED0) __sfr RPOR16; 547 extern __at(0x0ED1) __sfr RPOR17; 548 extern __at(0x0ED2) __sfr RPOR18; 549 extern __at(0x0ED3) __sfr RPOR19; 550 extern __at(0x0ED4) __sfr RPOR20; 551 extern __at(0x0ED5) __sfr RPOR21; 552 extern __at(0x0ED6) __sfr RPOR22; 553 extern __at(0x0ED7) __sfr RPOR23; 554 extern __at(0x0ED8) __sfr RPOR24; 555 extern __at(0x0EE1) __sfr RPINR1; 556 extern __at(0x0EE2) __sfr RPINR2; 557 extern __at(0x0EE3) __sfr RPINR3; 558 extern __at(0x0EE4) __sfr RPINR4; 559 extern __at(0x0EE6) __sfr RPINR6; 560 extern __at(0x0EE7) __sfr RPINR15; 561 extern __at(0x0EE8) __sfr RPINR7; 562 extern __at(0x0EE9) __sfr RPINR8; 563 extern __at(0x0EEA) __sfr RPINR9; 564 extern __at(0x0EF2) __sfr RPINR12; 565 extern __at(0x0EF3) __sfr RPINR13; 566 extern __at(0x0EF4) __sfr RPINR14; 567 extern __at(0x0EF7) __sfr RPINR16; 568 extern __at(0x0EF8) __sfr RPINR17; 569 extern __at(0x0EFC) __sfr RPINR21; 570 extern __at(0x0EFD) __sfr RPINR22; 571 extern __at(0x0EFE) __sfr RPINR23; 572 extern __at(0x0EFF) __sfr RPINR24; 573 574 //============================================================================== 575 // CCP10CON Bits 576 577 extern __at(0x0F00) __sfr CCP10CON; 578 579 typedef union 580 { 581 struct 582 { 583 unsigned CCP10M0 : 1; 584 unsigned CCP10M1 : 1; 585 unsigned CCP10M2 : 1; 586 unsigned CCP10M3 : 1; 587 unsigned DC10B0 : 1; 588 unsigned DC10B1 : 1; 589 unsigned : 1; 590 unsigned : 1; 591 }; 592 593 struct 594 { 595 unsigned CCP10M : 4; 596 unsigned : 4; 597 }; 598 599 struct 600 { 601 unsigned : 4; 602 unsigned DC10B : 2; 603 unsigned : 2; 604 }; 605 } __CCP10CONbits_t; 606 607 extern __at(0x0F00) volatile __CCP10CONbits_t CCP10CONbits; 608 609 #define _CCP10M0 0x01 610 #define _CCP10M1 0x02 611 #define _CCP10M2 0x04 612 #define _CCP10M3 0x08 613 #define _DC10B0 0x10 614 #define _DC10B1 0x20 615 616 //============================================================================== 617 618 extern __at(0x0F01) __sfr CCPR10L; 619 extern __at(0x0F02) __sfr CCPR10H; 620 621 //============================================================================== 622 // CCP9CON Bits 623 624 extern __at(0x0F03) __sfr CCP9CON; 625 626 typedef union 627 { 628 struct 629 { 630 unsigned CCP9M0 : 1; 631 unsigned CCP9M1 : 1; 632 unsigned CCP9M2 : 1; 633 unsigned CCP9M3 : 1; 634 unsigned DC9B0 : 1; 635 unsigned DC9B1 : 1; 636 unsigned : 1; 637 unsigned : 1; 638 }; 639 640 struct 641 { 642 unsigned CCP9M : 4; 643 unsigned : 4; 644 }; 645 646 struct 647 { 648 unsigned : 4; 649 unsigned DC9B : 2; 650 unsigned : 2; 651 }; 652 } __CCP9CONbits_t; 653 654 extern __at(0x0F03) volatile __CCP9CONbits_t CCP9CONbits; 655 656 #define _CCP9M0 0x01 657 #define _CCP9M1 0x02 658 #define _CCP9M2 0x04 659 #define _CCP9M3 0x08 660 #define _DC9B0 0x10 661 #define _DC9B1 0x20 662 663 //============================================================================== 664 665 extern __at(0x0F04) __sfr CCPR9L; 666 extern __at(0x0F05) __sfr CCPR9H; 667 668 //============================================================================== 669 // CCP8CON Bits 670 671 extern __at(0x0F06) __sfr CCP8CON; 672 673 typedef union 674 { 675 struct 676 { 677 unsigned CCP8M0 : 1; 678 unsigned CCP8M1 : 1; 679 unsigned CCP8M2 : 1; 680 unsigned CCP8M3 : 1; 681 unsigned DC8B0 : 1; 682 unsigned DC8B1 : 1; 683 unsigned : 1; 684 unsigned : 1; 685 }; 686 687 struct 688 { 689 unsigned CCP8M : 4; 690 unsigned : 4; 691 }; 692 693 struct 694 { 695 unsigned : 4; 696 unsigned DC8B : 2; 697 unsigned : 2; 698 }; 699 } __CCP8CONbits_t; 700 701 extern __at(0x0F06) volatile __CCP8CONbits_t CCP8CONbits; 702 703 #define _CCP8M0 0x01 704 #define _CCP8M1 0x02 705 #define _CCP8M2 0x04 706 #define _CCP8M3 0x08 707 #define _DC8B0 0x10 708 #define _DC8B1 0x20 709 710 //============================================================================== 711 712 extern __at(0x0F07) __sfr CCPR8L; 713 extern __at(0x0F08) __sfr CCPR8H; 714 715 //============================================================================== 716 // CCP7CON Bits 717 718 extern __at(0x0F09) __sfr CCP7CON; 719 720 typedef union 721 { 722 struct 723 { 724 unsigned CCP7M0 : 1; 725 unsigned CCP7M1 : 1; 726 unsigned CCP7M2 : 1; 727 unsigned CCP7M3 : 1; 728 unsigned DC7B0 : 1; 729 unsigned DC7B1 : 1; 730 unsigned : 1; 731 unsigned : 1; 732 }; 733 734 struct 735 { 736 unsigned CCP7M : 4; 737 unsigned : 4; 738 }; 739 740 struct 741 { 742 unsigned : 4; 743 unsigned DC7B : 2; 744 unsigned : 2; 745 }; 746 } __CCP7CONbits_t; 747 748 extern __at(0x0F09) volatile __CCP7CONbits_t CCP7CONbits; 749 750 #define _CCP7M0 0x01 751 #define _CCP7M1 0x02 752 #define _CCP7M2 0x04 753 #define _CCP7M3 0x08 754 #define _DC7B0 0x10 755 #define _DC7B1 0x20 756 757 //============================================================================== 758 759 extern __at(0x0F0A) __sfr CCPR7L; 760 extern __at(0x0F0B) __sfr CCPR7H; 761 762 //============================================================================== 763 // CCP6CON Bits 764 765 extern __at(0x0F0C) __sfr CCP6CON; 766 767 typedef union 768 { 769 struct 770 { 771 unsigned CCP6M0 : 1; 772 unsigned CCP6M1 : 1; 773 unsigned CCP6M2 : 1; 774 unsigned CCP6M3 : 1; 775 unsigned DC6B0 : 1; 776 unsigned DC6B1 : 1; 777 unsigned : 1; 778 unsigned : 1; 779 }; 780 781 struct 782 { 783 unsigned CCP6M : 4; 784 unsigned : 4; 785 }; 786 787 struct 788 { 789 unsigned : 4; 790 unsigned DC6B : 2; 791 unsigned : 2; 792 }; 793 } __CCP6CONbits_t; 794 795 extern __at(0x0F0C) volatile __CCP6CONbits_t CCP6CONbits; 796 797 #define _CCP6M0 0x01 798 #define _CCP6M1 0x02 799 #define _CCP6M2 0x04 800 #define _CCP6M3 0x08 801 #define _DC6B0 0x10 802 #define _DC6B1 0x20 803 804 //============================================================================== 805 806 extern __at(0x0F0D) __sfr CCPR6L; 807 extern __at(0x0F0E) __sfr CCPR6H; 808 809 //============================================================================== 810 // CCP5CON Bits 811 812 extern __at(0x0F0F) __sfr CCP5CON; 813 814 typedef union 815 { 816 struct 817 { 818 unsigned CCP5M0 : 1; 819 unsigned CCP5M1 : 1; 820 unsigned CCP5M2 : 1; 821 unsigned CCP5M3 : 1; 822 unsigned DC5B0 : 1; 823 unsigned DC5B1 : 1; 824 unsigned : 1; 825 unsigned : 1; 826 }; 827 828 struct 829 { 830 unsigned CCP5M : 4; 831 unsigned : 4; 832 }; 833 834 struct 835 { 836 unsigned : 4; 837 unsigned DC5B : 2; 838 unsigned : 2; 839 }; 840 } __CCP5CONbits_t; 841 842 extern __at(0x0F0F) volatile __CCP5CONbits_t CCP5CONbits; 843 844 #define _CCP5M0 0x01 845 #define _CCP5M1 0x02 846 #define _CCP5M2 0x04 847 #define _CCP5M3 0x08 848 #define _DC5B0 0x10 849 #define _DC5B1 0x20 850 851 //============================================================================== 852 853 extern __at(0x0F10) __sfr CCPR5L; 854 extern __at(0x0F11) __sfr CCPR5H; 855 856 //============================================================================== 857 // CCP4CON Bits 858 859 extern __at(0x0F12) __sfr CCP4CON; 860 861 typedef union 862 { 863 struct 864 { 865 unsigned CCP4M0 : 1; 866 unsigned CCP4M1 : 1; 867 unsigned CCP4M2 : 1; 868 unsigned CCP4M3 : 1; 869 unsigned DC4B0 : 1; 870 unsigned DC4B1 : 1; 871 unsigned : 1; 872 unsigned : 1; 873 }; 874 875 struct 876 { 877 unsigned CCP4M : 4; 878 unsigned : 4; 879 }; 880 881 struct 882 { 883 unsigned : 4; 884 unsigned DC4B : 2; 885 unsigned : 2; 886 }; 887 } __CCP4CONbits_t; 888 889 extern __at(0x0F12) volatile __CCP4CONbits_t CCP4CONbits; 890 891 #define _CCP4M0 0x01 892 #define _CCP4M1 0x02 893 #define _CCP4M2 0x04 894 #define _CCP4M3 0x08 895 #define _DC4B0 0x10 896 #define _DC4B1 0x20 897 898 //============================================================================== 899 900 extern __at(0x0F13) __sfr CCPR4L; 901 extern __at(0x0F14) __sfr CCPR4H; 902 903 //============================================================================== 904 // CCP3CON Bits 905 906 extern __at(0x0F15) __sfr CCP3CON; 907 908 typedef union 909 { 910 struct 911 { 912 unsigned CCP3M0 : 1; 913 unsigned CCP3M1 : 1; 914 unsigned CCP3M2 : 1; 915 unsigned CCP3M3 : 1; 916 unsigned DC3B0 : 1; 917 unsigned DC3B1 : 1; 918 unsigned P3M0 : 1; 919 unsigned P3M1 : 1; 920 }; 921 922 struct 923 { 924 unsigned CCP3M : 4; 925 unsigned : 4; 926 }; 927 928 struct 929 { 930 unsigned : 4; 931 unsigned DC3B : 2; 932 unsigned : 2; 933 }; 934 935 struct 936 { 937 unsigned : 6; 938 unsigned P3M : 2; 939 }; 940 } __CCP3CONbits_t; 941 942 extern __at(0x0F15) volatile __CCP3CONbits_t CCP3CONbits; 943 944 #define _CCP3M0 0x01 945 #define _CCP3M1 0x02 946 #define _CCP3M2 0x04 947 #define _CCP3M3 0x08 948 #define _DC3B0 0x10 949 #define _DC3B1 0x20 950 #define _P3M0 0x40 951 #define _P3M1 0x80 952 953 //============================================================================== 954 955 extern __at(0x0F16) __sfr CCPR3L; 956 extern __at(0x0F17) __sfr CCPR3H; 957 958 //============================================================================== 959 // ECCP3DEL Bits 960 961 extern __at(0x0F18) __sfr ECCP3DEL; 962 963 typedef union 964 { 965 struct 966 { 967 unsigned P3DC0 : 1; 968 unsigned P3DC1 : 1; 969 unsigned P3DC2 : 1; 970 unsigned P3DC3 : 1; 971 unsigned P3DC4 : 1; 972 unsigned P3DC5 : 1; 973 unsigned P3DC6 : 1; 974 unsigned P3RSEN : 1; 975 }; 976 977 struct 978 { 979 unsigned P3DC : 7; 980 unsigned : 1; 981 }; 982 } __ECCP3DELbits_t; 983 984 extern __at(0x0F18) volatile __ECCP3DELbits_t ECCP3DELbits; 985 986 #define _P3DC0 0x01 987 #define _P3DC1 0x02 988 #define _P3DC2 0x04 989 #define _P3DC3 0x08 990 #define _P3DC4 0x10 991 #define _P3DC5 0x20 992 #define _P3DC6 0x40 993 #define _P3RSEN 0x80 994 995 //============================================================================== 996 997 998 //============================================================================== 999 // ECCP3AS Bits 1000 1001 extern __at(0x0F19) __sfr ECCP3AS; 1002 1003 typedef union 1004 { 1005 struct 1006 { 1007 unsigned PSS3BD0 : 1; 1008 unsigned PSS3BD1 : 1; 1009 unsigned PSS3AC0 : 1; 1010 unsigned PSS3AC1 : 1; 1011 unsigned ECCP3AS0 : 1; 1012 unsigned ECCP3AS1 : 1; 1013 unsigned ECCP3AS2 : 1; 1014 unsigned ECCP3ASE : 1; 1015 }; 1016 1017 struct 1018 { 1019 unsigned PSS3BD : 2; 1020 unsigned : 6; 1021 }; 1022 1023 struct 1024 { 1025 unsigned : 2; 1026 unsigned PSS3AC : 2; 1027 unsigned : 4; 1028 }; 1029 1030 struct 1031 { 1032 unsigned : 4; 1033 unsigned ECCP3AS : 3; 1034 unsigned : 1; 1035 }; 1036 } __ECCP3ASbits_t; 1037 1038 extern __at(0x0F19) volatile __ECCP3ASbits_t ECCP3ASbits; 1039 1040 #define _PSS3BD0 0x01 1041 #define _PSS3BD1 0x02 1042 #define _PSS3AC0 0x04 1043 #define _PSS3AC1 0x08 1044 #define _ECCP3AS0 0x10 1045 #define _ECCP3AS1 0x20 1046 #define _ECCP3AS2 0x40 1047 #define _ECCP3ASE 0x80 1048 1049 //============================================================================== 1050 1051 1052 //============================================================================== 1053 // PSTR3CON Bits 1054 1055 extern __at(0x0F1A) __sfr PSTR3CON; 1056 1057 typedef union 1058 { 1059 struct 1060 { 1061 unsigned STRA : 1; 1062 unsigned STRB : 1; 1063 unsigned STRC : 1; 1064 unsigned STRD : 1; 1065 unsigned STRSYNC : 1; 1066 unsigned : 1; 1067 unsigned CMPL0 : 1; 1068 unsigned CMPL1 : 1; 1069 }; 1070 1071 struct 1072 { 1073 unsigned : 6; 1074 unsigned CMPL : 2; 1075 }; 1076 } __PSTR3CONbits_t; 1077 1078 extern __at(0x0F1A) volatile __PSTR3CONbits_t PSTR3CONbits; 1079 1080 #define _PSTR3CON_STRA 0x01 1081 #define _PSTR3CON_STRB 0x02 1082 #define _PSTR3CON_STRC 0x04 1083 #define _PSTR3CON_STRD 0x08 1084 #define _PSTR3CON_STRSYNC 0x10 1085 #define _PSTR3CON_CMPL0 0x40 1086 #define _PSTR3CON_CMPL1 0x80 1087 1088 //============================================================================== 1089 1090 1091 //============================================================================== 1092 // T8CON Bits 1093 1094 extern __at(0x0F1B) __sfr T8CON; 1095 1096 typedef union 1097 { 1098 struct 1099 { 1100 unsigned T8CKPS0 : 1; 1101 unsigned T8CKPS1 : 1; 1102 unsigned TMR8ON : 1; 1103 unsigned T8OUTPS0 : 1; 1104 unsigned T8OUTPS1 : 1; 1105 unsigned T8OUTPS2 : 1; 1106 unsigned T8OUTPS3 : 1; 1107 unsigned : 1; 1108 }; 1109 1110 struct 1111 { 1112 unsigned T8CKPS : 2; 1113 unsigned : 6; 1114 }; 1115 1116 struct 1117 { 1118 unsigned : 3; 1119 unsigned T8OUTPS : 4; 1120 unsigned : 1; 1121 }; 1122 } __T8CONbits_t; 1123 1124 extern __at(0x0F1B) volatile __T8CONbits_t T8CONbits; 1125 1126 #define _T8CKPS0 0x01 1127 #define _T8CKPS1 0x02 1128 #define _TMR8ON 0x04 1129 #define _T8OUTPS0 0x08 1130 #define _T8OUTPS1 0x10 1131 #define _T8OUTPS2 0x20 1132 #define _T8OUTPS3 0x40 1133 1134 //============================================================================== 1135 1136 extern __at(0x0F1C) __sfr PR8; 1137 extern __at(0x0F1D) __sfr TMR8; 1138 1139 //============================================================================== 1140 // T6CON Bits 1141 1142 extern __at(0x0F1E) __sfr T6CON; 1143 1144 typedef union 1145 { 1146 struct 1147 { 1148 unsigned T6CKPS0 : 1; 1149 unsigned T6CKPS1 : 1; 1150 unsigned TMR6ON : 1; 1151 unsigned T6OUTPS0 : 1; 1152 unsigned T6OUTPS1 : 1; 1153 unsigned T6OUTPS2 : 1; 1154 unsigned T6OUTPS3 : 1; 1155 unsigned : 1; 1156 }; 1157 1158 struct 1159 { 1160 unsigned T6CKPS : 2; 1161 unsigned : 6; 1162 }; 1163 1164 struct 1165 { 1166 unsigned : 3; 1167 unsigned T6OUTPS : 4; 1168 unsigned : 1; 1169 }; 1170 } __T6CONbits_t; 1171 1172 extern __at(0x0F1E) volatile __T6CONbits_t T6CONbits; 1173 1174 #define _T6CKPS0 0x01 1175 #define _T6CKPS1 0x02 1176 #define _TMR6ON 0x04 1177 #define _T6OUTPS0 0x08 1178 #define _T6OUTPS1 0x10 1179 #define _T6OUTPS2 0x20 1180 #define _T6OUTPS3 0x40 1181 1182 //============================================================================== 1183 1184 extern __at(0x0F1F) __sfr PR6; 1185 extern __at(0x0F20) __sfr TMR6; 1186 1187 //============================================================================== 1188 // T5GCON Bits 1189 1190 extern __at(0x0F21) __sfr T5GCON; 1191 1192 typedef union 1193 { 1194 struct 1195 { 1196 unsigned T5GSS0 : 1; 1197 unsigned T5GSS1 : 1; 1198 unsigned T5GVAL : 1; 1199 unsigned T5GGO_NOT_T5DONE : 1; 1200 unsigned T5GSPM : 1; 1201 unsigned T5GTM : 1; 1202 unsigned T5GPOL : 1; 1203 unsigned TMR5GE : 1; 1204 }; 1205 1206 struct 1207 { 1208 unsigned : 1; 1209 unsigned : 1; 1210 unsigned : 1; 1211 unsigned T5GGO : 1; 1212 unsigned : 1; 1213 unsigned : 1; 1214 unsigned : 1; 1215 unsigned : 1; 1216 }; 1217 1218 struct 1219 { 1220 unsigned : 1; 1221 unsigned : 1; 1222 unsigned : 1; 1223 unsigned NOT_T5DONE : 1; 1224 unsigned : 1; 1225 unsigned : 1; 1226 unsigned : 1; 1227 unsigned : 1; 1228 }; 1229 1230 struct 1231 { 1232 unsigned : 1; 1233 unsigned : 1; 1234 unsigned : 1; 1235 unsigned T5DONE : 1; 1236 unsigned : 1; 1237 unsigned : 1; 1238 unsigned : 1; 1239 unsigned : 1; 1240 }; 1241 1242 struct 1243 { 1244 unsigned T5GSS : 2; 1245 unsigned : 6; 1246 }; 1247 } __T5GCONbits_t; 1248 1249 extern __at(0x0F21) volatile __T5GCONbits_t T5GCONbits; 1250 1251 #define _T5GSS0 0x01 1252 #define _T5GSS1 0x02 1253 #define _T5GVAL 0x04 1254 #define _T5GGO_NOT_T5DONE 0x08 1255 #define _T5GGO 0x08 1256 #define _NOT_T5DONE 0x08 1257 #define _T5DONE 0x08 1258 #define _T5GSPM 0x10 1259 #define _T5GTM 0x20 1260 #define _T5GPOL 0x40 1261 #define _TMR5GE 0x80 1262 1263 //============================================================================== 1264 1265 1266 //============================================================================== 1267 // T5CON Bits 1268 1269 extern __at(0x0F22) __sfr T5CON; 1270 1271 typedef union 1272 { 1273 struct 1274 { 1275 unsigned TMR5ON : 1; 1276 unsigned RD16 : 1; 1277 unsigned NOT_T5SYNC : 1; 1278 unsigned T5OSCEN : 1; 1279 unsigned T5CKPS0 : 1; 1280 unsigned T5CKPS1 : 1; 1281 unsigned TMR5CS0 : 1; 1282 unsigned TMR5CS1 : 1; 1283 }; 1284 1285 struct 1286 { 1287 unsigned : 4; 1288 unsigned T5CKPS : 2; 1289 unsigned : 2; 1290 }; 1291 1292 struct 1293 { 1294 unsigned : 6; 1295 unsigned TMR5CS : 2; 1296 }; 1297 } __T5CONbits_t; 1298 1299 extern __at(0x0F22) volatile __T5CONbits_t T5CONbits; 1300 1301 #define _T5CON_TMR5ON 0x01 1302 #define _T5CON_RD16 0x02 1303 #define _T5CON_NOT_T5SYNC 0x04 1304 #define _T5CON_T5OSCEN 0x08 1305 #define _T5CON_T5CKPS0 0x10 1306 #define _T5CON_T5CKPS1 0x20 1307 #define _T5CON_TMR5CS0 0x40 1308 #define _T5CON_TMR5CS1 0x80 1309 1310 //============================================================================== 1311 1312 extern __at(0x0F23) __sfr TMR5L; 1313 extern __at(0x0F24) __sfr TMR5H; 1314 1315 //============================================================================== 1316 // CM3CON Bits 1317 1318 extern __at(0x0F25) __sfr CM3CON; 1319 1320 typedef union 1321 { 1322 struct 1323 { 1324 unsigned CCH0 : 1; 1325 unsigned CCH1 : 1; 1326 unsigned CREF : 1; 1327 unsigned EVPOL0 : 1; 1328 unsigned EVPOL1 : 1; 1329 unsigned CPOL : 1; 1330 unsigned COE : 1; 1331 unsigned CON : 1; 1332 }; 1333 1334 struct 1335 { 1336 unsigned CCH : 2; 1337 unsigned : 6; 1338 }; 1339 1340 struct 1341 { 1342 unsigned : 3; 1343 unsigned EVPOL : 2; 1344 unsigned : 3; 1345 }; 1346 } __CM3CONbits_t; 1347 1348 extern __at(0x0F25) volatile __CM3CONbits_t CM3CONbits; 1349 1350 #define _CM3CON_CCH0 0x01 1351 #define _CM3CON_CCH1 0x02 1352 #define _CM3CON_CREF 0x04 1353 #define _CM3CON_EVPOL0 0x08 1354 #define _CM3CON_EVPOL1 0x10 1355 #define _CM3CON_CPOL 0x20 1356 #define _CM3CON_COE 0x40 1357 #define _CM3CON_CON 0x80 1358 1359 //============================================================================== 1360 1361 extern __at(0x0F3A) __sfr RTCVALL; 1362 extern __at(0x0F3B) __sfr RTCVALH; 1363 1364 //============================================================================== 1365 // PADCFG1 Bits 1366 1367 extern __at(0x0F3C) __sfr PADCFG1; 1368 1369 typedef union 1370 { 1371 struct 1372 { 1373 unsigned PMPTTL : 1; 1374 unsigned RTSECSEL0 : 1; 1375 unsigned RTSECSEL1 : 1; 1376 unsigned : 1; 1377 unsigned : 1; 1378 unsigned : 1; 1379 unsigned : 1; 1380 unsigned : 1; 1381 }; 1382 1383 struct 1384 { 1385 unsigned : 1; 1386 unsigned RTSECSEL : 2; 1387 unsigned : 5; 1388 }; 1389 } __PADCFG1bits_t; 1390 1391 extern __at(0x0F3C) volatile __PADCFG1bits_t PADCFG1bits; 1392 1393 #define _PMPTTL 0x01 1394 #define _RTSECSEL0 0x02 1395 #define _RTSECSEL1 0x04 1396 1397 //============================================================================== 1398 1399 1400 //============================================================================== 1401 // REFOCON Bits 1402 1403 extern __at(0x0F3D) __sfr REFOCON; 1404 1405 typedef union 1406 { 1407 struct 1408 { 1409 unsigned RODIV0 : 1; 1410 unsigned RODIV1 : 1; 1411 unsigned RODIV2 : 1; 1412 unsigned RODIV3 : 1; 1413 unsigned ROSEL : 1; 1414 unsigned ROSSLP : 1; 1415 unsigned : 1; 1416 unsigned ROON : 1; 1417 }; 1418 1419 struct 1420 { 1421 unsigned RODIV : 4; 1422 unsigned : 4; 1423 }; 1424 } __REFOCONbits_t; 1425 1426 extern __at(0x0F3D) volatile __REFOCONbits_t REFOCONbits; 1427 1428 #define _RODIV0 0x01 1429 #define _RODIV1 0x02 1430 #define _RODIV2 0x04 1431 #define _RODIV3 0x08 1432 #define _ROSEL 0x10 1433 #define _ROSSLP 0x20 1434 #define _ROON 0x80 1435 1436 //============================================================================== 1437 1438 1439 //============================================================================== 1440 // RTCCAL Bits 1441 1442 extern __at(0x0F3E) __sfr RTCCAL; 1443 1444 typedef struct 1445 { 1446 unsigned CAL0 : 1; 1447 unsigned CAL1 : 1; 1448 unsigned CAL2 : 1; 1449 unsigned CAL3 : 1; 1450 unsigned CAL4 : 1; 1451 unsigned CAL5 : 1; 1452 unsigned CAL6 : 1; 1453 unsigned CAL7 : 1; 1454 } __RTCCALbits_t; 1455 1456 extern __at(0x0F3E) volatile __RTCCALbits_t RTCCALbits; 1457 1458 #define _CAL0 0x01 1459 #define _CAL1 0x02 1460 #define _CAL2 0x04 1461 #define _CAL3 0x08 1462 #define _CAL4 0x10 1463 #define _CAL5 0x20 1464 #define _CAL6 0x40 1465 #define _CAL7 0x80 1466 1467 //============================================================================== 1468 1469 1470 //============================================================================== 1471 // RTCCFG Bits 1472 1473 extern __at(0x0F3F) __sfr RTCCFG; 1474 1475 typedef union 1476 { 1477 struct 1478 { 1479 unsigned RTCPTR0 : 1; 1480 unsigned RTCPTR1 : 1; 1481 unsigned RTCOE : 1; 1482 unsigned HALFSEC : 1; 1483 unsigned RTCSYNC : 1; 1484 unsigned RTCWREN : 1; 1485 unsigned : 1; 1486 unsigned RTCEN : 1; 1487 }; 1488 1489 struct 1490 { 1491 unsigned RTCPTR : 2; 1492 unsigned : 6; 1493 }; 1494 } __RTCCFGbits_t; 1495 1496 extern __at(0x0F3F) volatile __RTCCFGbits_t RTCCFGbits; 1497 1498 #define _RTCPTR0 0x01 1499 #define _RTCPTR1 0x02 1500 #define _RTCOE 0x04 1501 #define _HALFSEC 0x08 1502 #define _RTCSYNC 0x10 1503 #define _RTCWREN 0x20 1504 #define _RTCEN 0x80 1505 1506 //============================================================================== 1507 1508 1509 //============================================================================== 1510 // ODCON3 Bits 1511 1512 extern __at(0x0F40) __sfr ODCON3; 1513 1514 typedef struct 1515 { 1516 unsigned SPI1OD : 1; 1517 unsigned SPI2OD : 1; 1518 unsigned : 1; 1519 unsigned : 1; 1520 unsigned : 1; 1521 unsigned : 1; 1522 unsigned : 1; 1523 unsigned CTMUDS : 1; 1524 } __ODCON3bits_t; 1525 1526 extern __at(0x0F40) volatile __ODCON3bits_t ODCON3bits; 1527 1528 #define _SPI1OD 0x01 1529 #define _SPI2OD 0x02 1530 #define _CTMUDS 0x80 1531 1532 //============================================================================== 1533 1534 1535 //============================================================================== 1536 // ODCON2 Bits 1537 1538 extern __at(0x0F41) __sfr ODCON2; 1539 1540 typedef struct 1541 { 1542 unsigned U1OD : 1; 1543 unsigned U2OD : 1; 1544 unsigned CCP9OD : 1; 1545 unsigned CCP10OD : 1; 1546 unsigned : 1; 1547 unsigned : 1; 1548 unsigned : 1; 1549 unsigned : 1; 1550 } __ODCON2bits_t; 1551 1552 extern __at(0x0F41) volatile __ODCON2bits_t ODCON2bits; 1553 1554 #define _U1OD 0x01 1555 #define _U2OD 0x02 1556 #define _CCP9OD 0x04 1557 #define _CCP10OD 0x08 1558 1559 //============================================================================== 1560 1561 1562 //============================================================================== 1563 // ODCON1 Bits 1564 1565 extern __at(0x0F42) __sfr ODCON1; 1566 1567 typedef struct 1568 { 1569 unsigned ECCP1OD : 1; 1570 unsigned ECCP2OD : 1; 1571 unsigned ECCP3OD : 1; 1572 unsigned CCP4OD : 1; 1573 unsigned CCP5OD : 1; 1574 unsigned CCP6OD : 1; 1575 unsigned CCP7OD : 1; 1576 unsigned CCP8OD : 1; 1577 } __ODCON1bits_t; 1578 1579 extern __at(0x0F42) volatile __ODCON1bits_t ODCON1bits; 1580 1581 #define _ECCP1OD 0x01 1582 #define _ECCP2OD 0x02 1583 #define _ECCP3OD 0x04 1584 #define _CCP4OD 0x08 1585 #define _CCP5OD 0x10 1586 #define _CCP6OD 0x20 1587 #define _CCP7OD 0x40 1588 #define _CCP8OD 0x80 1589 1590 //============================================================================== 1591 1592 extern __at(0x0F44) __sfr ALRMVALL; 1593 extern __at(0x0F45) __sfr ALRMVALH; 1594 1595 //============================================================================== 1596 // ALRMRPT Bits 1597 1598 extern __at(0x0F46) __sfr ALRMRPT; 1599 1600 typedef struct 1601 { 1602 unsigned ARPT0 : 1; 1603 unsigned ARPT1 : 1; 1604 unsigned ARPT2 : 1; 1605 unsigned ARPT3 : 1; 1606 unsigned ARPT4 : 1; 1607 unsigned ARPT5 : 1; 1608 unsigned ARPT6 : 1; 1609 unsigned ARPT7 : 1; 1610 } __ALRMRPTbits_t; 1611 1612 extern __at(0x0F46) volatile __ALRMRPTbits_t ALRMRPTbits; 1613 1614 #define _ARPT0 0x01 1615 #define _ARPT1 0x02 1616 #define _ARPT2 0x04 1617 #define _ARPT3 0x08 1618 #define _ARPT4 0x10 1619 #define _ARPT5 0x20 1620 #define _ARPT6 0x40 1621 #define _ARPT7 0x80 1622 1623 //============================================================================== 1624 1625 1626 //============================================================================== 1627 // ALRMCFG Bits 1628 1629 extern __at(0x0F47) __sfr ALRMCFG; 1630 1631 typedef union 1632 { 1633 struct 1634 { 1635 unsigned ALRMPTR0 : 1; 1636 unsigned ALRMPTR1 : 1; 1637 unsigned AMASK0 : 1; 1638 unsigned AMASK1 : 1; 1639 unsigned AMASK2 : 1; 1640 unsigned AMASK3 : 1; 1641 unsigned CHIME : 1; 1642 unsigned ALRMEN : 1; 1643 }; 1644 1645 struct 1646 { 1647 unsigned ALRMPTR : 2; 1648 unsigned : 6; 1649 }; 1650 1651 struct 1652 { 1653 unsigned : 2; 1654 unsigned AMASK : 4; 1655 unsigned : 2; 1656 }; 1657 } __ALRMCFGbits_t; 1658 1659 extern __at(0x0F47) volatile __ALRMCFGbits_t ALRMCFGbits; 1660 1661 #define _ALRMPTR0 0x01 1662 #define _ALRMPTR1 0x02 1663 #define _AMASK0 0x04 1664 #define _AMASK1 0x08 1665 #define _AMASK2 0x10 1666 #define _AMASK3 0x20 1667 #define _CHIME 0x40 1668 #define _ALRMEN 0x80 1669 1670 //============================================================================== 1671 1672 1673 //============================================================================== 1674 // ANCON0 Bits 1675 1676 extern __at(0x0F48) __sfr ANCON0; 1677 1678 typedef struct 1679 { 1680 unsigned PCFG0 : 1; 1681 unsigned PCFG1 : 1; 1682 unsigned PCFG2 : 1; 1683 unsigned PCFG3 : 1; 1684 unsigned PCFG4 : 1; 1685 unsigned PCFG5 : 1; 1686 unsigned PCFG6 : 1; 1687 unsigned PCFG7 : 1; 1688 } __ANCON0bits_t; 1689 1690 extern __at(0x0F48) volatile __ANCON0bits_t ANCON0bits; 1691 1692 #define _PCFG0 0x01 1693 #define _PCFG1 0x02 1694 #define _PCFG2 0x04 1695 #define _PCFG3 0x08 1696 #define _PCFG4 0x10 1697 #define _PCFG5 0x20 1698 #define _PCFG6 0x40 1699 #define _PCFG7 0x80 1700 1701 //============================================================================== 1702 1703 1704 //============================================================================== 1705 // ANCON1 Bits 1706 1707 extern __at(0x0F49) __sfr ANCON1; 1708 1709 typedef struct 1710 { 1711 unsigned PCFG8 : 1; 1712 unsigned PCFG9 : 1; 1713 unsigned PCFG10 : 1; 1714 unsigned PCFG11 : 1; 1715 unsigned PCFG12 : 1; 1716 unsigned : 1; 1717 unsigned : 1; 1718 unsigned VBGEN : 1; 1719 } __ANCON1bits_t; 1720 1721 extern __at(0x0F49) volatile __ANCON1bits_t ANCON1bits; 1722 1723 #define _PCFG8 0x01 1724 #define _PCFG9 0x02 1725 #define _PCFG10 0x04 1726 #define _PCFG11 0x08 1727 #define _PCFG12 0x10 1728 #define _VBGEN 0x80 1729 1730 //============================================================================== 1731 1732 1733 //============================================================================== 1734 // DSWAKEL Bits 1735 1736 extern __at(0x0F4A) __sfr DSWAKEL; 1737 1738 typedef struct 1739 { 1740 unsigned DSPOR : 1; 1741 unsigned : 1; 1742 unsigned DSMCLR : 1; 1743 unsigned DSRTC : 1; 1744 unsigned DSWDT : 1; 1745 unsigned DSULP : 1; 1746 unsigned : 1; 1747 unsigned DSFLT : 1; 1748 } __DSWAKELbits_t; 1749 1750 extern __at(0x0F4A) volatile __DSWAKELbits_t DSWAKELbits; 1751 1752 #define _DSPOR 0x01 1753 #define _DSMCLR 0x04 1754 #define _DSRTC 0x08 1755 #define _DSWDT 0x10 1756 #define _DSULP 0x20 1757 #define _DSFLT 0x80 1758 1759 //============================================================================== 1760 1761 1762 //============================================================================== 1763 // DSWAKEH Bits 1764 1765 extern __at(0x0F4B) __sfr DSWAKEH; 1766 1767 typedef struct 1768 { 1769 unsigned DSINT0 : 1; 1770 unsigned : 1; 1771 unsigned : 1; 1772 unsigned : 1; 1773 unsigned : 1; 1774 unsigned : 1; 1775 unsigned : 1; 1776 unsigned : 1; 1777 } __DSWAKEHbits_t; 1778 1779 extern __at(0x0F4B) volatile __DSWAKEHbits_t DSWAKEHbits; 1780 1781 #define _DSINT0 0x01 1782 1783 //============================================================================== 1784 1785 1786 //============================================================================== 1787 // DSCONL Bits 1788 1789 extern __at(0x0F4C) __sfr DSCONL; 1790 1791 typedef struct 1792 { 1793 unsigned RELEASE : 1; 1794 unsigned DSBOR : 1; 1795 unsigned ULPWDIS : 1; 1796 unsigned : 1; 1797 unsigned : 1; 1798 unsigned : 1; 1799 unsigned : 1; 1800 unsigned : 1; 1801 } __DSCONLbits_t; 1802 1803 extern __at(0x0F4C) volatile __DSCONLbits_t DSCONLbits; 1804 1805 #define _RELEASE 0x01 1806 #define _DSBOR 0x02 1807 #define _ULPWDIS 0x04 1808 1809 //============================================================================== 1810 1811 1812 //============================================================================== 1813 // DSCONH Bits 1814 1815 extern __at(0x0F4D) __sfr DSCONH; 1816 1817 typedef struct 1818 { 1819 unsigned RTCWDIS : 1; 1820 unsigned DSULPEN : 1; 1821 unsigned : 1; 1822 unsigned : 1; 1823 unsigned : 1; 1824 unsigned : 1; 1825 unsigned : 1; 1826 unsigned DSEN : 1; 1827 } __DSCONHbits_t; 1828 1829 extern __at(0x0F4D) volatile __DSCONHbits_t DSCONHbits; 1830 1831 #define _RTCWDIS 0x01 1832 #define _DSULPEN 0x02 1833 #define _DSEN 0x80 1834 1835 //============================================================================== 1836 1837 extern __at(0x0F4E) __sfr DSGPR0; 1838 extern __at(0x0F4F) __sfr DSGPR1; 1839 1840 //============================================================================== 1841 // CCPTMRS2 Bits 1842 1843 extern __at(0x0F50) __sfr CCPTMRS2; 1844 1845 typedef union 1846 { 1847 struct 1848 { 1849 unsigned C8TSEL0 : 1; 1850 unsigned C8TSEL1 : 1; 1851 unsigned C9TSEL0 : 1; 1852 unsigned : 1; 1853 unsigned C10TSEL0 : 1; 1854 unsigned : 1; 1855 unsigned : 1; 1856 unsigned : 1; 1857 }; 1858 1859 struct 1860 { 1861 unsigned C8TSEL : 2; 1862 unsigned : 6; 1863 }; 1864 } __CCPTMRS2bits_t; 1865 1866 extern __at(0x0F50) volatile __CCPTMRS2bits_t CCPTMRS2bits; 1867 1868 #define _C8TSEL0 0x01 1869 #define _C8TSEL1 0x02 1870 #define _C9TSEL0 0x04 1871 #define _C10TSEL0 0x10 1872 1873 //============================================================================== 1874 1875 1876 //============================================================================== 1877 // CCPTMRS1 Bits 1878 1879 extern __at(0x0F51) __sfr CCPTMRS1; 1880 1881 typedef union 1882 { 1883 struct 1884 { 1885 unsigned C4TSEL0 : 1; 1886 unsigned C4TSEL1 : 1; 1887 unsigned C5TSEL0 : 1; 1888 unsigned : 1; 1889 unsigned C6TSEL0 : 1; 1890 unsigned : 1; 1891 unsigned C7TSEL0 : 1; 1892 unsigned C7TSEL1 : 1; 1893 }; 1894 1895 struct 1896 { 1897 unsigned C4TSEL : 2; 1898 unsigned : 6; 1899 }; 1900 1901 struct 1902 { 1903 unsigned : 6; 1904 unsigned C7TSEL : 2; 1905 }; 1906 } __CCPTMRS1bits_t; 1907 1908 extern __at(0x0F51) volatile __CCPTMRS1bits_t CCPTMRS1bits; 1909 1910 #define _C4TSEL0 0x01 1911 #define _C4TSEL1 0x02 1912 #define _C5TSEL0 0x04 1913 #define _C6TSEL0 0x10 1914 #define _C7TSEL0 0x40 1915 #define _C7TSEL1 0x80 1916 1917 //============================================================================== 1918 1919 1920 //============================================================================== 1921 // CCPTMRS0 Bits 1922 1923 extern __at(0x0F52) __sfr CCPTMRS0; 1924 1925 typedef union 1926 { 1927 struct 1928 { 1929 unsigned C1TSEL0 : 1; 1930 unsigned C1TSEL1 : 1; 1931 unsigned C1TSEL2 : 1; 1932 unsigned C2TSEL0 : 1; 1933 unsigned C2TSEL1 : 1; 1934 unsigned C2TSEL2 : 1; 1935 unsigned C3TSEL0 : 1; 1936 unsigned C3TSEL1 : 1; 1937 }; 1938 1939 struct 1940 { 1941 unsigned C1TSEL : 3; 1942 unsigned : 5; 1943 }; 1944 1945 struct 1946 { 1947 unsigned : 3; 1948 unsigned C2TSEL : 3; 1949 unsigned : 2; 1950 }; 1951 1952 struct 1953 { 1954 unsigned : 6; 1955 unsigned C3TSEL : 2; 1956 }; 1957 } __CCPTMRS0bits_t; 1958 1959 extern __at(0x0F52) volatile __CCPTMRS0bits_t CCPTMRS0bits; 1960 1961 #define _C1TSEL0 0x01 1962 #define _C1TSEL1 0x02 1963 #define _C1TSEL2 0x04 1964 #define _C2TSEL0 0x08 1965 #define _C2TSEL1 0x10 1966 #define _C2TSEL2 0x20 1967 #define _C3TSEL0 0x40 1968 #define _C3TSEL1 0x80 1969 1970 //============================================================================== 1971 1972 1973 //============================================================================== 1974 // CVRCON Bits 1975 1976 extern __at(0x0F53) __sfr CVRCON; 1977 1978 typedef union 1979 { 1980 struct 1981 { 1982 unsigned CVR0 : 1; 1983 unsigned CVR1 : 1; 1984 unsigned CVR2 : 1; 1985 unsigned CVR3 : 1; 1986 unsigned CVRSS : 1; 1987 unsigned CVRR : 1; 1988 unsigned CVROE : 1; 1989 unsigned CVREN : 1; 1990 }; 1991 1992 struct 1993 { 1994 unsigned CVR : 4; 1995 unsigned : 4; 1996 }; 1997 } __CVRCONbits_t; 1998 1999 extern __at(0x0F53) volatile __CVRCONbits_t CVRCONbits; 2000 2001 #define _CVR0 0x01 2002 #define _CVR1 0x02 2003 #define _CVR2 0x04 2004 #define _CVR3 0x08 2005 #define _CVRSS 0x10 2006 #define _CVRR 0x20 2007 #define _CVROE 0x40 2008 #define _CVREN 0x80 2009 2010 //============================================================================== 2011 2012 2013 //============================================================================== 2014 // PMSTATL Bits 2015 2016 extern __at(0x0F54) __sfr PMSTATL; 2017 2018 typedef struct 2019 { 2020 unsigned OB0E : 1; 2021 unsigned OB1E : 1; 2022 unsigned OB2E : 1; 2023 unsigned OB3E : 1; 2024 unsigned : 1; 2025 unsigned : 1; 2026 unsigned OBUF : 1; 2027 unsigned OBE : 1; 2028 } __PMSTATLbits_t; 2029 2030 extern __at(0x0F54) volatile __PMSTATLbits_t PMSTATLbits; 2031 2032 #define _OB0E 0x01 2033 #define _OB1E 0x02 2034 #define _OB2E 0x04 2035 #define _OB3E 0x08 2036 #define _OBUF 0x40 2037 #define _OBE 0x80 2038 2039 //============================================================================== 2040 2041 2042 //============================================================================== 2043 // PMSTATH Bits 2044 2045 extern __at(0x0F55) __sfr PMSTATH; 2046 2047 typedef struct 2048 { 2049 unsigned IB0F : 1; 2050 unsigned IB1F : 1; 2051 unsigned IB2F : 1; 2052 unsigned IB3F : 1; 2053 unsigned : 1; 2054 unsigned : 1; 2055 unsigned IBOV : 1; 2056 unsigned IBF : 1; 2057 } __PMSTATHbits_t; 2058 2059 extern __at(0x0F55) volatile __PMSTATHbits_t PMSTATHbits; 2060 2061 #define _IB0F 0x01 2062 #define _IB1F 0x02 2063 #define _IB2F 0x04 2064 #define _IB3F 0x08 2065 #define _IBOV 0x40 2066 #define _IBF 0x80 2067 2068 //============================================================================== 2069 2070 2071 //============================================================================== 2072 // PMEL Bits 2073 2074 extern __at(0x0F56) __sfr PMEL; 2075 2076 typedef struct 2077 { 2078 unsigned PTEN0 : 1; 2079 unsigned PTEN1 : 1; 2080 unsigned PTEN2 : 1; 2081 unsigned PTEN3 : 1; 2082 unsigned PTEN4 : 1; 2083 unsigned PTEN5 : 1; 2084 unsigned PTEN6 : 1; 2085 unsigned PTEN7 : 1; 2086 } __PMELbits_t; 2087 2088 extern __at(0x0F56) volatile __PMELbits_t PMELbits; 2089 2090 #define _PTEN0 0x01 2091 #define _PTEN1 0x02 2092 #define _PTEN2 0x04 2093 #define _PTEN3 0x08 2094 #define _PTEN4 0x10 2095 #define _PTEN5 0x20 2096 #define _PTEN6 0x40 2097 #define _PTEN7 0x80 2098 2099 //============================================================================== 2100 2101 2102 //============================================================================== 2103 // PMEH Bits 2104 2105 extern __at(0x0F57) __sfr PMEH; 2106 2107 typedef struct 2108 { 2109 unsigned PTEN8 : 1; 2110 unsigned PTEN9 : 1; 2111 unsigned PTEN10 : 1; 2112 unsigned PTEN11 : 1; 2113 unsigned PTEN12 : 1; 2114 unsigned PTEN13 : 1; 2115 unsigned PTEN14 : 1; 2116 unsigned PTEN15 : 1; 2117 } __PMEHbits_t; 2118 2119 extern __at(0x0F57) volatile __PMEHbits_t PMEHbits; 2120 2121 #define _PTEN8 0x01 2122 #define _PTEN9 0x02 2123 #define _PTEN10 0x04 2124 #define _PTEN11 0x08 2125 #define _PTEN12 0x10 2126 #define _PTEN13 0x20 2127 #define _PTEN14 0x40 2128 #define _PTEN15 0x80 2129 2130 //============================================================================== 2131 2132 extern __at(0x0F58) __sfr PMDIN2L; 2133 extern __at(0x0F59) __sfr PMDIN2H; 2134 extern __at(0x0F5A) __sfr PMDOUT2L; 2135 extern __at(0x0F5B) __sfr PMDOUT2H; 2136 2137 //============================================================================== 2138 // PMMODEL Bits 2139 2140 extern __at(0x0F5C) __sfr PMMODEL; 2141 2142 typedef union 2143 { 2144 struct 2145 { 2146 unsigned WAITE0 : 1; 2147 unsigned WAITE1 : 1; 2148 unsigned WAITM0 : 1; 2149 unsigned WAITM1 : 1; 2150 unsigned WAITM2 : 1; 2151 unsigned WAITM3 : 1; 2152 unsigned WAITB0 : 1; 2153 unsigned WAITB1 : 1; 2154 }; 2155 2156 struct 2157 { 2158 unsigned WAITE : 2; 2159 unsigned : 6; 2160 }; 2161 2162 struct 2163 { 2164 unsigned : 2; 2165 unsigned WAITM : 4; 2166 unsigned : 2; 2167 }; 2168 2169 struct 2170 { 2171 unsigned : 6; 2172 unsigned WAITB : 2; 2173 }; 2174 } __PMMODELbits_t; 2175 2176 extern __at(0x0F5C) volatile __PMMODELbits_t PMMODELbits; 2177 2178 #define _WAITE0 0x01 2179 #define _WAITE1 0x02 2180 #define _WAITM0 0x04 2181 #define _WAITM1 0x08 2182 #define _WAITM2 0x10 2183 #define _WAITM3 0x20 2184 #define _WAITB0 0x40 2185 #define _WAITB1 0x80 2186 2187 //============================================================================== 2188 2189 2190 //============================================================================== 2191 // PMMODEH Bits 2192 2193 extern __at(0x0F5D) __sfr PMMODEH; 2194 2195 typedef union 2196 { 2197 struct 2198 { 2199 unsigned MODE0 : 1; 2200 unsigned MODE1 : 1; 2201 unsigned MODE16 : 1; 2202 unsigned INCM0 : 1; 2203 unsigned INCM1 : 1; 2204 unsigned IRQM0 : 1; 2205 unsigned IRQM1 : 1; 2206 unsigned BUSY : 1; 2207 }; 2208 2209 struct 2210 { 2211 unsigned : 3; 2212 unsigned INCM : 2; 2213 unsigned : 3; 2214 }; 2215 2216 struct 2217 { 2218 unsigned : 5; 2219 unsigned IRQM : 2; 2220 unsigned : 1; 2221 }; 2222 } __PMMODEHbits_t; 2223 2224 extern __at(0x0F5D) volatile __PMMODEHbits_t PMMODEHbits; 2225 2226 #define _MODE0 0x01 2227 #define _MODE1 0x02 2228 #define _MODE16 0x04 2229 #define _INCM0 0x08 2230 #define _INCM1 0x10 2231 #define _IRQM0 0x20 2232 #define _IRQM1 0x40 2233 #define _BUSY 0x80 2234 2235 //============================================================================== 2236 2237 2238 //============================================================================== 2239 // PMCONL Bits 2240 2241 extern __at(0x0F5E) __sfr PMCONL; 2242 2243 typedef union 2244 { 2245 struct 2246 { 2247 unsigned RDSP : 1; 2248 unsigned WRSP : 1; 2249 unsigned BEP : 1; 2250 unsigned CS1P : 1; 2251 unsigned Reserved : 1; 2252 unsigned ALP : 1; 2253 unsigned CSF0 : 1; 2254 unsigned CSF1 : 1; 2255 }; 2256 2257 struct 2258 { 2259 unsigned : 6; 2260 unsigned CSF : 2; 2261 }; 2262 } __PMCONLbits_t; 2263 2264 extern __at(0x0F5E) volatile __PMCONLbits_t PMCONLbits; 2265 2266 #define _RDSP 0x01 2267 #define _WRSP 0x02 2268 #define _BEP 0x04 2269 #define _CS1P 0x08 2270 #define _Reserved 0x10 2271 #define _ALP 0x20 2272 #define _CSF0 0x40 2273 #define _CSF1 0x80 2274 2275 //============================================================================== 2276 2277 2278 //============================================================================== 2279 // PMCONH Bits 2280 2281 extern __at(0x0F5F) __sfr PMCONH; 2282 2283 typedef union 2284 { 2285 struct 2286 { 2287 unsigned PTRDEN : 1; 2288 unsigned PTWREN : 1; 2289 unsigned PTBEEN : 1; 2290 unsigned ADRMUX0 : 1; 2291 unsigned ADRMUX1 : 1; 2292 unsigned : 1; 2293 unsigned : 1; 2294 unsigned PMPEN : 1; 2295 }; 2296 2297 struct 2298 { 2299 unsigned : 3; 2300 unsigned ADRMUX : 2; 2301 unsigned : 3; 2302 }; 2303 } __PMCONHbits_t; 2304 2305 extern __at(0x0F5F) volatile __PMCONHbits_t PMCONHbits; 2306 2307 #define _PTRDEN 0x01 2308 #define _PTWREN 0x02 2309 #define _PTBEEN 0x04 2310 #define _ADRMUX0 0x08 2311 #define _ADRMUX1 0x10 2312 #define _PMPEN 0x80 2313 2314 //============================================================================== 2315 2316 extern __at(0x0F66) __sfr DMABCH; 2317 extern __at(0x0F67) __sfr DMABCL; 2318 extern __at(0x0F68) __sfr RXADDRH; 2319 extern __at(0x0F69) __sfr RXADDRL; 2320 extern __at(0x0F6A) __sfr TXADDRH; 2321 extern __at(0x0F6B) __sfr TXADDRL; 2322 extern __at(0x0F6C) __sfr PMDIN1L; 2323 extern __at(0x0F6D) __sfr PMDIN1H; 2324 extern __at(0x0F6E) __sfr PMADDRL; 2325 extern __at(0x0F6E) __sfr PMDOUT1L; 2326 2327 //============================================================================== 2328 // PMADDRH Bits 2329 2330 extern __at(0x0F6F) __sfr PMADDRH; 2331 2332 typedef struct 2333 { 2334 unsigned : 1; 2335 unsigned : 1; 2336 unsigned : 1; 2337 unsigned : 1; 2338 unsigned : 1; 2339 unsigned : 1; 2340 unsigned CS1 : 1; 2341 unsigned : 1; 2342 } __PMADDRHbits_t; 2343 2344 extern __at(0x0F6F) volatile __PMADDRHbits_t PMADDRHbits; 2345 2346 #define _CS1 0x40 2347 2348 //============================================================================== 2349 2350 extern __at(0x0F6F) __sfr PMDOUT1H; 2351 2352 //============================================================================== 2353 // CMSTAT Bits 2354 2355 extern __at(0x0F70) __sfr CMSTAT; 2356 2357 typedef struct 2358 { 2359 unsigned COUT1 : 1; 2360 unsigned COUT2 : 1; 2361 unsigned COUT3 : 1; 2362 unsigned : 1; 2363 unsigned : 1; 2364 unsigned : 1; 2365 unsigned : 1; 2366 unsigned : 1; 2367 } __CMSTATbits_t; 2368 2369 extern __at(0x0F70) volatile __CMSTATbits_t CMSTATbits; 2370 2371 #define _COUT1 0x01 2372 #define _COUT2 0x02 2373 #define _COUT3 0x04 2374 2375 //============================================================================== 2376 2377 2378 //============================================================================== 2379 // CMSTATUS Bits 2380 2381 extern __at(0x0F70) __sfr CMSTATUS; 2382 2383 typedef struct 2384 { 2385 unsigned COUT1 : 1; 2386 unsigned COUT2 : 1; 2387 unsigned COUT3 : 1; 2388 unsigned : 1; 2389 unsigned : 1; 2390 unsigned : 1; 2391 unsigned : 1; 2392 unsigned : 1; 2393 } __CMSTATUSbits_t; 2394 2395 extern __at(0x0F70) volatile __CMSTATUSbits_t CMSTATUSbits; 2396 2397 #define _CMSTATUS_COUT1 0x01 2398 #define _CMSTATUS_COUT2 0x02 2399 #define _CMSTATUS_COUT3 0x04 2400 2401 //============================================================================== 2402 2403 2404 //============================================================================== 2405 // SSP2CON2 Bits 2406 2407 extern __at(0x0F71) __sfr SSP2CON2; 2408 2409 typedef union 2410 { 2411 struct 2412 { 2413 unsigned SEN : 1; 2414 unsigned RSEN : 1; 2415 unsigned PEN : 1; 2416 unsigned RCEN : 1; 2417 unsigned ACKEN : 1; 2418 unsigned ACKDT : 1; 2419 unsigned ACKSTAT : 1; 2420 unsigned GCEN : 1; 2421 }; 2422 2423 struct 2424 { 2425 unsigned : 1; 2426 unsigned ADMSK1 : 1; 2427 unsigned ADMSK2 : 1; 2428 unsigned ADMSK3 : 1; 2429 unsigned ADMSK4 : 1; 2430 unsigned ADMSK5 : 1; 2431 unsigned : 1; 2432 unsigned : 1; 2433 }; 2434 } __SSP2CON2bits_t; 2435 2436 extern __at(0x0F71) volatile __SSP2CON2bits_t SSP2CON2bits; 2437 2438 #define _SSP2CON2_SEN 0x01 2439 #define _SSP2CON2_RSEN 0x02 2440 #define _SSP2CON2_ADMSK1 0x02 2441 #define _SSP2CON2_PEN 0x04 2442 #define _SSP2CON2_ADMSK2 0x04 2443 #define _SSP2CON2_RCEN 0x08 2444 #define _SSP2CON2_ADMSK3 0x08 2445 #define _SSP2CON2_ACKEN 0x10 2446 #define _SSP2CON2_ADMSK4 0x10 2447 #define _SSP2CON2_ACKDT 0x20 2448 #define _SSP2CON2_ADMSK5 0x20 2449 #define _SSP2CON2_ACKSTAT 0x40 2450 #define _SSP2CON2_GCEN 0x80 2451 2452 //============================================================================== 2453 2454 2455 //============================================================================== 2456 // SSP2CON1 Bits 2457 2458 extern __at(0x0F72) __sfr SSP2CON1; 2459 2460 typedef union 2461 { 2462 struct 2463 { 2464 unsigned SSPM0 : 1; 2465 unsigned SSPM1 : 1; 2466 unsigned SSPM2 : 1; 2467 unsigned SSPM3 : 1; 2468 unsigned CKP : 1; 2469 unsigned SSPEN : 1; 2470 unsigned SSPOV : 1; 2471 unsigned WCOL : 1; 2472 }; 2473 2474 struct 2475 { 2476 unsigned SSPM : 4; 2477 unsigned : 4; 2478 }; 2479 } __SSP2CON1bits_t; 2480 2481 extern __at(0x0F72) volatile __SSP2CON1bits_t SSP2CON1bits; 2482 2483 #define _SSP2CON1_SSPM0 0x01 2484 #define _SSP2CON1_SSPM1 0x02 2485 #define _SSP2CON1_SSPM2 0x04 2486 #define _SSP2CON1_SSPM3 0x08 2487 #define _SSP2CON1_CKP 0x10 2488 #define _SSP2CON1_SSPEN 0x20 2489 #define _SSP2CON1_SSPOV 0x40 2490 #define _SSP2CON1_WCOL 0x80 2491 2492 //============================================================================== 2493 2494 2495 //============================================================================== 2496 // SSP2STAT Bits 2497 2498 extern __at(0x0F73) __sfr SSP2STAT; 2499 2500 typedef struct 2501 { 2502 unsigned BF : 1; 2503 unsigned UA : 1; 2504 unsigned R_NOT_W : 1; 2505 unsigned S : 1; 2506 unsigned P : 1; 2507 unsigned D_NOT_A : 1; 2508 unsigned CKE : 1; 2509 unsigned SMP : 1; 2510 } __SSP2STATbits_t; 2511 2512 extern __at(0x0F73) volatile __SSP2STATbits_t SSP2STATbits; 2513 2514 #define _SSP2STAT_BF 0x01 2515 #define _SSP2STAT_UA 0x02 2516 #define _SSP2STAT_R_NOT_W 0x04 2517 #define _SSP2STAT_S 0x08 2518 #define _SSP2STAT_P 0x10 2519 #define _SSP2STAT_D_NOT_A 0x20 2520 #define _SSP2STAT_CKE 0x40 2521 #define _SSP2STAT_SMP 0x80 2522 2523 //============================================================================== 2524 2525 extern __at(0x0F74) __sfr SSP2ADD; 2526 2527 //============================================================================== 2528 // SSP2MSK Bits 2529 2530 extern __at(0x0F74) __sfr SSP2MSK; 2531 2532 typedef struct 2533 { 2534 unsigned MSK0 : 1; 2535 unsigned MSK1 : 1; 2536 unsigned MSK2 : 1; 2537 unsigned MSK3 : 1; 2538 unsigned MSK4 : 1; 2539 unsigned MSK5 : 1; 2540 unsigned MSK6 : 1; 2541 unsigned MSK7 : 1; 2542 } __SSP2MSKbits_t; 2543 2544 extern __at(0x0F74) volatile __SSP2MSKbits_t SSP2MSKbits; 2545 2546 #define _SSP2MSK_MSK0 0x01 2547 #define _SSP2MSK_MSK1 0x02 2548 #define _SSP2MSK_MSK2 0x04 2549 #define _SSP2MSK_MSK3 0x08 2550 #define _SSP2MSK_MSK4 0x10 2551 #define _SSP2MSK_MSK5 0x20 2552 #define _SSP2MSK_MSK6 0x40 2553 #define _SSP2MSK_MSK7 0x80 2554 2555 //============================================================================== 2556 2557 extern __at(0x0F75) __sfr SSP2BUF; 2558 2559 //============================================================================== 2560 // T4CON Bits 2561 2562 extern __at(0x0F76) __sfr T4CON; 2563 2564 typedef union 2565 { 2566 struct 2567 { 2568 unsigned T4CKPS0 : 1; 2569 unsigned T4CKPS1 : 1; 2570 unsigned TMR4ON : 1; 2571 unsigned T4OUTPS0 : 1; 2572 unsigned T4OUTPS1 : 1; 2573 unsigned T4OUTPS2 : 1; 2574 unsigned T4OUTPS3 : 1; 2575 unsigned : 1; 2576 }; 2577 2578 struct 2579 { 2580 unsigned T4CKPS : 2; 2581 unsigned : 6; 2582 }; 2583 2584 struct 2585 { 2586 unsigned : 3; 2587 unsigned T4OUTPS : 4; 2588 unsigned : 1; 2589 }; 2590 } __T4CONbits_t; 2591 2592 extern __at(0x0F76) volatile __T4CONbits_t T4CONbits; 2593 2594 #define _T4CKPS0 0x01 2595 #define _T4CKPS1 0x02 2596 #define _TMR4ON 0x04 2597 #define _T4OUTPS0 0x08 2598 #define _T4OUTPS1 0x10 2599 #define _T4OUTPS2 0x20 2600 #define _T4OUTPS3 0x40 2601 2602 //============================================================================== 2603 2604 extern __at(0x0F77) __sfr PR4; 2605 extern __at(0x0F78) __sfr TMR4; 2606 2607 //============================================================================== 2608 // T3CON Bits 2609 2610 extern __at(0x0F79) __sfr T3CON; 2611 2612 typedef union 2613 { 2614 struct 2615 { 2616 unsigned TMR3ON : 1; 2617 unsigned RD16 : 1; 2618 unsigned NOT_T3SYNC : 1; 2619 unsigned T3OSCEN : 1; 2620 unsigned T3CKPS0 : 1; 2621 unsigned T3CKPS1 : 1; 2622 unsigned TMR3CS0 : 1; 2623 unsigned TMR3CS1 : 1; 2624 }; 2625 2626 struct 2627 { 2628 unsigned : 4; 2629 unsigned T3CKPS : 2; 2630 unsigned : 2; 2631 }; 2632 2633 struct 2634 { 2635 unsigned : 6; 2636 unsigned TMR3CS : 2; 2637 }; 2638 } __T3CONbits_t; 2639 2640 extern __at(0x0F79) volatile __T3CONbits_t T3CONbits; 2641 2642 #define _T3CON_TMR3ON 0x01 2643 #define _T3CON_RD16 0x02 2644 #define _T3CON_NOT_T3SYNC 0x04 2645 #define _T3CON_T3OSCEN 0x08 2646 #define _T3CON_T3CKPS0 0x10 2647 #define _T3CON_T3CKPS1 0x20 2648 #define _T3CON_TMR3CS0 0x40 2649 #define _T3CON_TMR3CS1 0x80 2650 2651 //============================================================================== 2652 2653 extern __at(0x0F7A) __sfr TMR3; 2654 extern __at(0x0F7A) __sfr TMR3L; 2655 extern __at(0x0F7B) __sfr TMR3H; 2656 2657 //============================================================================== 2658 // BAUDCON2 Bits 2659 2660 extern __at(0x0F7C) __sfr BAUDCON2; 2661 2662 typedef struct 2663 { 2664 unsigned ABDEN : 1; 2665 unsigned WUE : 1; 2666 unsigned : 1; 2667 unsigned BRG16 : 1; 2668 unsigned TXCKP : 1; 2669 unsigned RXDTP : 1; 2670 unsigned RCIDL : 1; 2671 unsigned ABDOVF : 1; 2672 } __BAUDCON2bits_t; 2673 2674 extern __at(0x0F7C) volatile __BAUDCON2bits_t BAUDCON2bits; 2675 2676 #define _BAUDCON2_ABDEN 0x01 2677 #define _BAUDCON2_WUE 0x02 2678 #define _BAUDCON2_BRG16 0x08 2679 #define _BAUDCON2_TXCKP 0x10 2680 #define _BAUDCON2_RXDTP 0x20 2681 #define _BAUDCON2_RCIDL 0x40 2682 #define _BAUDCON2_ABDOVF 0x80 2683 2684 //============================================================================== 2685 2686 extern __at(0x0F7D) __sfr SPBRGH2; 2687 2688 //============================================================================== 2689 // BAUDCON Bits 2690 2691 extern __at(0x0F7E) __sfr BAUDCON; 2692 2693 typedef struct 2694 { 2695 unsigned ABDEN : 1; 2696 unsigned WUE : 1; 2697 unsigned : 1; 2698 unsigned BRG16 : 1; 2699 unsigned TXCKP : 1; 2700 unsigned RXDTP : 1; 2701 unsigned RCIDL : 1; 2702 unsigned ABDOVF : 1; 2703 } __BAUDCONbits_t; 2704 2705 extern __at(0x0F7E) volatile __BAUDCONbits_t BAUDCONbits; 2706 2707 #define _ABDEN 0x01 2708 #define _WUE 0x02 2709 #define _BRG16 0x08 2710 #define _TXCKP 0x10 2711 #define _RXDTP 0x20 2712 #define _RCIDL 0x40 2713 #define _ABDOVF 0x80 2714 2715 //============================================================================== 2716 2717 2718 //============================================================================== 2719 // BAUDCON1 Bits 2720 2721 extern __at(0x0F7E) __sfr BAUDCON1; 2722 2723 typedef struct 2724 { 2725 unsigned ABDEN : 1; 2726 unsigned WUE : 1; 2727 unsigned : 1; 2728 unsigned BRG16 : 1; 2729 unsigned TXCKP : 1; 2730 unsigned RXDTP : 1; 2731 unsigned RCIDL : 1; 2732 unsigned ABDOVF : 1; 2733 } __BAUDCON1bits_t; 2734 2735 extern __at(0x0F7E) volatile __BAUDCON1bits_t BAUDCON1bits; 2736 2737 #define _BAUDCON1_ABDEN 0x01 2738 #define _BAUDCON1_WUE 0x02 2739 #define _BAUDCON1_BRG16 0x08 2740 #define _BAUDCON1_TXCKP 0x10 2741 #define _BAUDCON1_RXDTP 0x20 2742 #define _BAUDCON1_RCIDL 0x40 2743 #define _BAUDCON1_ABDOVF 0x80 2744 2745 //============================================================================== 2746 2747 2748 //============================================================================== 2749 // BAUDCTL Bits 2750 2751 extern __at(0x0F7E) __sfr BAUDCTL; 2752 2753 typedef struct 2754 { 2755 unsigned ABDEN : 1; 2756 unsigned WUE : 1; 2757 unsigned : 1; 2758 unsigned BRG16 : 1; 2759 unsigned TXCKP : 1; 2760 unsigned RXDTP : 1; 2761 unsigned RCIDL : 1; 2762 unsigned ABDOVF : 1; 2763 } __BAUDCTLbits_t; 2764 2765 extern __at(0x0F7E) volatile __BAUDCTLbits_t BAUDCTLbits; 2766 2767 #define _BAUDCTL_ABDEN 0x01 2768 #define _BAUDCTL_WUE 0x02 2769 #define _BAUDCTL_BRG16 0x08 2770 #define _BAUDCTL_TXCKP 0x10 2771 #define _BAUDCTL_RXDTP 0x20 2772 #define _BAUDCTL_RCIDL 0x40 2773 #define _BAUDCTL_ABDOVF 0x80 2774 2775 //============================================================================== 2776 2777 extern __at(0x0F7F) __sfr SPBRGH; 2778 extern __at(0x0F7F) __sfr SPBRGH1; 2779 2780 //============================================================================== 2781 // PORTA Bits 2782 2783 extern __at(0x0F80) __sfr PORTA; 2784 2785 typedef union 2786 { 2787 struct 2788 { 2789 unsigned RA0 : 1; 2790 unsigned RA1 : 1; 2791 unsigned RA2 : 1; 2792 unsigned RA3 : 1; 2793 unsigned : 1; 2794 unsigned RA5 : 1; 2795 unsigned RA6 : 1; 2796 unsigned RA7 : 1; 2797 }; 2798 2799 struct 2800 { 2801 unsigned AN0 : 1; 2802 unsigned AN1 : 1; 2803 unsigned AN2 : 1; 2804 unsigned AN3 : 1; 2805 unsigned : 1; 2806 unsigned AN4 : 1; 2807 unsigned OSC2 : 1; 2808 unsigned OSC1 : 1; 2809 }; 2810 2811 struct 2812 { 2813 unsigned C1INA : 1; 2814 unsigned C2INA : 1; 2815 unsigned VREF_MINUS : 1; 2816 unsigned VREF_PLUS : 1; 2817 unsigned : 1; 2818 unsigned NOT_SS1 : 1; 2819 unsigned CLKO : 1; 2820 unsigned CLKI : 1; 2821 }; 2822 2823 struct 2824 { 2825 unsigned PMA6 : 1; 2826 unsigned PMA7 : 1; 2827 unsigned CVREF : 1; 2828 unsigned C1INB : 1; 2829 unsigned : 1; 2830 unsigned HLVDIN : 1; 2831 unsigned : 1; 2832 unsigned : 1; 2833 }; 2834 2835 struct 2836 { 2837 unsigned RP0 : 1; 2838 unsigned RP1 : 1; 2839 unsigned C2INB : 1; 2840 unsigned : 1; 2841 unsigned : 1; 2842 unsigned C1INC : 1; 2843 unsigned : 1; 2844 unsigned : 1; 2845 }; 2846 2847 struct 2848 { 2849 unsigned ULPWU : 1; 2850 unsigned VBG : 1; 2851 unsigned C1IND : 1; 2852 unsigned : 1; 2853 unsigned : 1; 2854 unsigned RP2 : 1; 2855 unsigned : 1; 2856 unsigned : 1; 2857 }; 2858 2859 struct 2860 { 2861 unsigned : 1; 2862 unsigned : 1; 2863 unsigned C3INB : 1; 2864 unsigned : 1; 2865 unsigned : 1; 2866 unsigned : 1; 2867 unsigned : 1; 2868 unsigned : 1; 2869 }; 2870 } __PORTAbits_t; 2871 2872 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits; 2873 2874 #define _RA0 0x01 2875 #define _AN0 0x01 2876 #define _C1INA 0x01 2877 #define _PMA6 0x01 2878 #define _RP0 0x01 2879 #define _ULPWU 0x01 2880 #define _RA1 0x02 2881 #define _AN1 0x02 2882 #define _C2INA 0x02 2883 #define _PMA7 0x02 2884 #define _RP1 0x02 2885 #define _VBG 0x02 2886 #define _RA2 0x04 2887 #define _AN2 0x04 2888 #define _VREF_MINUS 0x04 2889 #define _CVREF 0x04 2890 #define _C2INB 0x04 2891 #define _C1IND 0x04 2892 #define _C3INB 0x04 2893 #define _RA3 0x08 2894 #define _AN3 0x08 2895 #define _VREF_PLUS 0x08 2896 #define _C1INB 0x08 2897 #define _RA5 0x20 2898 #define _AN4 0x20 2899 #define _NOT_SS1 0x20 2900 #define _HLVDIN 0x20 2901 #define _C1INC 0x20 2902 #define _RP2 0x20 2903 #define _RA6 0x40 2904 #define _OSC2 0x40 2905 #define _CLKO 0x40 2906 #define _RA7 0x80 2907 #define _OSC1 0x80 2908 #define _CLKI 0x80 2909 2910 //============================================================================== 2911 2912 2913 //============================================================================== 2914 // PORTB Bits 2915 2916 extern __at(0x0F81) __sfr PORTB; 2917 2918 typedef union 2919 { 2920 struct 2921 { 2922 unsigned RB0 : 1; 2923 unsigned RB1 : 1; 2924 unsigned RB2 : 1; 2925 unsigned RB3 : 1; 2926 unsigned RB4 : 1; 2927 unsigned RB5 : 1; 2928 unsigned RB6 : 1; 2929 unsigned RB7 : 1; 2930 }; 2931 2932 struct 2933 { 2934 unsigned AN12 : 1; 2935 unsigned AN10 : 1; 2936 unsigned AN8 : 1; 2937 unsigned AN9 : 1; 2938 unsigned PMA1 : 1; 2939 unsigned PMA0 : 1; 2940 unsigned KBI2 : 1; 2941 unsigned KBI3 : 1; 2942 }; 2943 2944 struct 2945 { 2946 unsigned INT0 : 1; 2947 unsigned PMPBE : 1; 2948 unsigned CTED1 : 1; 2949 unsigned CTED2 : 1; 2950 unsigned KBI0 : 1; 2951 unsigned KBI1 : 1; 2952 unsigned PGC : 1; 2953 unsigned PGD : 1; 2954 }; 2955 2956 struct 2957 { 2958 unsigned RP3 : 1; 2959 unsigned RTCC : 1; 2960 unsigned PMA3 : 1; 2961 unsigned PMA2 : 1; 2962 unsigned RP7 : 1; 2963 unsigned RP8 : 1; 2964 unsigned RP9 : 1; 2965 unsigned RP10 : 1; 2966 }; 2967 2968 struct 2969 { 2970 unsigned C3IND : 1; 2971 unsigned PMBE : 1; 2972 unsigned REFO : 1; 2973 unsigned RP6 : 1; 2974 unsigned CCP4 : 1; 2975 unsigned CCP5 : 1; 2976 unsigned CCP6 : 1; 2977 unsigned CCP7 : 1; 2978 }; 2979 2980 struct 2981 { 2982 unsigned : 1; 2983 unsigned RP4 : 1; 2984 unsigned RP5 : 1; 2985 unsigned C3INA : 1; 2986 unsigned : 1; 2987 unsigned : 1; 2988 unsigned : 1; 2989 unsigned : 1; 2990 }; 2991 2992 struct 2993 { 2994 unsigned : 1; 2995 unsigned C3INC : 1; 2996 unsigned C2INC : 1; 2997 unsigned : 1; 2998 unsigned : 1; 2999 unsigned : 1; 3000 unsigned : 1; 3001 unsigned : 1; 3002 }; 3003 3004 struct 3005 { 3006 unsigned : 4; 3007 unsigned KBI : 4; 3008 }; 3009 } __PORTBbits_t; 3010 3011 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits; 3012 3013 #define _RB0 0x01 3014 #define _AN12 0x01 3015 #define _INT0 0x01 3016 #define _RP3 0x01 3017 #define _C3IND 0x01 3018 #define _RB1 0x02 3019 #define _AN10 0x02 3020 #define _PMPBE 0x02 3021 #define _RTCC 0x02 3022 #define _PMBE 0x02 3023 #define _RP4 0x02 3024 #define _C3INC 0x02 3025 #define _RB2 0x04 3026 #define _AN8 0x04 3027 #define _CTED1 0x04 3028 #define _PMA3 0x04 3029 #define _REFO 0x04 3030 #define _RP5 0x04 3031 #define _C2INC 0x04 3032 #define _RB3 0x08 3033 #define _AN9 0x08 3034 #define _CTED2 0x08 3035 #define _PMA2 0x08 3036 #define _RP6 0x08 3037 #define _C3INA 0x08 3038 #define _RB4 0x10 3039 #define _PMA1 0x10 3040 #define _KBI0 0x10 3041 #define _RP7 0x10 3042 #define _CCP4 0x10 3043 #define _RB5 0x20 3044 #define _PMA0 0x20 3045 #define _KBI1 0x20 3046 #define _RP8 0x20 3047 #define _CCP5 0x20 3048 #define _RB6 0x40 3049 #define _KBI2 0x40 3050 #define _PGC 0x40 3051 #define _RP9 0x40 3052 #define _CCP6 0x40 3053 #define _RB7 0x80 3054 #define _KBI3 0x80 3055 #define _PGD 0x80 3056 #define _RP10 0x80 3057 #define _CCP7 0x80 3058 3059 //============================================================================== 3060 3061 3062 //============================================================================== 3063 // PORTC Bits 3064 3065 extern __at(0x0F82) __sfr PORTC; 3066 3067 typedef union 3068 { 3069 struct 3070 { 3071 unsigned RC0 : 1; 3072 unsigned RC1 : 1; 3073 unsigned RC2 : 1; 3074 unsigned RC3 : 1; 3075 unsigned RC4 : 1; 3076 unsigned RC5 : 1; 3077 unsigned RC6 : 1; 3078 unsigned RC7 : 1; 3079 }; 3080 3081 struct 3082 { 3083 unsigned T1OSO : 1; 3084 unsigned T1OSI : 1; 3085 unsigned AN11 : 1; 3086 unsigned SCL1 : 1; 3087 unsigned SDA1 : 1; 3088 unsigned RP16 : 1; 3089 unsigned PMA5 : 1; 3090 unsigned PMA4 : 1; 3091 }; 3092 3093 struct 3094 { 3095 unsigned T1CKI : 1; 3096 unsigned RP12 : 1; 3097 unsigned CTPLS : 1; 3098 unsigned RP14 : 1; 3099 unsigned RP15 : 1; 3100 unsigned SDO1 : 1; 3101 unsigned TX1 : 1; 3102 unsigned RX1 : 1; 3103 }; 3104 3105 struct 3106 { 3107 unsigned RP11 : 1; 3108 unsigned CCP8 : 1; 3109 unsigned RP13 : 1; 3110 unsigned SCK1 : 1; 3111 unsigned SDI1 : 1; 3112 unsigned : 1; 3113 unsigned CK1 : 1; 3114 unsigned DT1 : 1; 3115 }; 3116 3117 struct 3118 { 3119 unsigned : 1; 3120 unsigned : 1; 3121 unsigned C2IND : 1; 3122 unsigned : 1; 3123 unsigned : 1; 3124 unsigned : 1; 3125 unsigned RP17 : 1; 3126 unsigned RP18 : 1; 3127 }; 3128 3129 struct 3130 { 3131 unsigned : 1; 3132 unsigned : 1; 3133 unsigned : 1; 3134 unsigned : 1; 3135 unsigned : 1; 3136 unsigned : 1; 3137 unsigned CCP9 : 1; 3138 unsigned CCP10 : 1; 3139 }; 3140 } __PORTCbits_t; 3141 3142 extern __at(0x0F82) volatile __PORTCbits_t PORTCbits; 3143 3144 #define _RC0 0x01 3145 #define _T1OSO 0x01 3146 #define _T1CKI 0x01 3147 #define _RP11 0x01 3148 #define _RC1 0x02 3149 #define _T1OSI 0x02 3150 #define _RP12 0x02 3151 #define _CCP8 0x02 3152 #define _RC2 0x04 3153 #define _AN11 0x04 3154 #define _CTPLS 0x04 3155 #define _RP13 0x04 3156 #define _C2IND 0x04 3157 #define _RC3 0x08 3158 #define _SCL1 0x08 3159 #define _RP14 0x08 3160 #define _SCK1 0x08 3161 #define _RC4 0x10 3162 #define _SDA1 0x10 3163 #define _RP15 0x10 3164 #define _SDI1 0x10 3165 #define _RC5 0x20 3166 #define _RP16 0x20 3167 #define _SDO1 0x20 3168 #define _RC6 0x40 3169 #define _PMA5 0x40 3170 #define _TX1 0x40 3171 #define _CK1 0x40 3172 #define _RP17 0x40 3173 #define _CCP9 0x40 3174 #define _RC7 0x80 3175 #define _PMA4 0x80 3176 #define _RX1 0x80 3177 #define _DT1 0x80 3178 #define _RP18 0x80 3179 #define _CCP10 0x80 3180 3181 //============================================================================== 3182 3183 3184 //============================================================================== 3185 // PORTD Bits 3186 3187 extern __at(0x0F83) __sfr PORTD; 3188 3189 typedef union 3190 { 3191 struct 3192 { 3193 unsigned RD0 : 1; 3194 unsigned RD1 : 1; 3195 unsigned RD2 : 1; 3196 unsigned RD3 : 1; 3197 unsigned RD4 : 1; 3198 unsigned RD5 : 1; 3199 unsigned RD6 : 1; 3200 unsigned RD7 : 1; 3201 }; 3202 3203 struct 3204 { 3205 unsigned PMD0 : 1; 3206 unsigned PMD1 : 1; 3207 unsigned PMD2 : 1; 3208 unsigned PMD3 : 1; 3209 unsigned PMD4 : 1; 3210 unsigned PMD5 : 1; 3211 unsigned PMD6 : 1; 3212 unsigned PMD7 : 1; 3213 }; 3214 3215 struct 3216 { 3217 unsigned SCL2 : 1; 3218 unsigned SDA2 : 1; 3219 unsigned RP19 : 1; 3220 unsigned RP20 : 1; 3221 unsigned RP21 : 1; 3222 unsigned RP22 : 1; 3223 unsigned RP23 : 1; 3224 unsigned RP24 : 1; 3225 }; 3226 } __PORTDbits_t; 3227 3228 extern __at(0x0F83) volatile __PORTDbits_t PORTDbits; 3229 3230 #define _RD0 0x01 3231 #define _PMD0 0x01 3232 #define _SCL2 0x01 3233 #define _RD1 0x02 3234 #define _PMD1 0x02 3235 #define _SDA2 0x02 3236 #define _RD2 0x04 3237 #define _PMD2 0x04 3238 #define _RP19 0x04 3239 #define _RD3 0x08 3240 #define _PMD3 0x08 3241 #define _RP20 0x08 3242 #define _RD4 0x10 3243 #define _PMD4 0x10 3244 #define _RP21 0x10 3245 #define _RD5 0x20 3246 #define _PMD5 0x20 3247 #define _RP22 0x20 3248 #define _RD6 0x40 3249 #define _PMD6 0x40 3250 #define _RP23 0x40 3251 #define _RD7 0x80 3252 #define _PMD7 0x80 3253 #define _RP24 0x80 3254 3255 //============================================================================== 3256 3257 3258 //============================================================================== 3259 // PORTE Bits 3260 3261 extern __at(0x0F84) __sfr PORTE; 3262 3263 typedef union 3264 { 3265 struct 3266 { 3267 unsigned RE0 : 1; 3268 unsigned RE1 : 1; 3269 unsigned RE2 : 1; 3270 unsigned : 1; 3271 unsigned : 1; 3272 unsigned : 1; 3273 unsigned : 1; 3274 unsigned : 1; 3275 }; 3276 3277 struct 3278 { 3279 unsigned AN5 : 1; 3280 unsigned AN6 : 1; 3281 unsigned AN7 : 1; 3282 unsigned : 1; 3283 unsigned : 1; 3284 unsigned : 1; 3285 unsigned : 1; 3286 unsigned : 1; 3287 }; 3288 3289 struct 3290 { 3291 unsigned PMPRD : 1; 3292 unsigned PMPWR : 1; 3293 unsigned PMPCS : 1; 3294 unsigned : 1; 3295 unsigned : 1; 3296 unsigned : 1; 3297 unsigned : 1; 3298 unsigned : 1; 3299 }; 3300 3301 struct 3302 { 3303 unsigned PMRD : 1; 3304 unsigned PMWR : 1; 3305 unsigned PMCS : 1; 3306 unsigned : 1; 3307 unsigned : 1; 3308 unsigned : 1; 3309 unsigned : 1; 3310 unsigned : 1; 3311 }; 3312 3313 struct 3314 { 3315 unsigned RE : 3; 3316 unsigned : 5; 3317 }; 3318 } __PORTEbits_t; 3319 3320 extern __at(0x0F84) volatile __PORTEbits_t PORTEbits; 3321 3322 #define _RE0 0x01 3323 #define _AN5 0x01 3324 #define _PMPRD 0x01 3325 #define _PMRD 0x01 3326 #define _RE1 0x02 3327 #define _AN6 0x02 3328 #define _PMPWR 0x02 3329 #define _PMWR 0x02 3330 #define _RE2 0x04 3331 #define _AN7 0x04 3332 #define _PMPCS 0x04 3333 #define _PMCS 0x04 3334 3335 //============================================================================== 3336 3337 3338 //============================================================================== 3339 // HLVDCON Bits 3340 3341 extern __at(0x0F85) __sfr HLVDCON; 3342 3343 typedef union 3344 { 3345 struct 3346 { 3347 unsigned HLVDL0 : 1; 3348 unsigned HLVDL1 : 1; 3349 unsigned HLVDL2 : 1; 3350 unsigned HLVDL3 : 1; 3351 unsigned HLVDEN : 1; 3352 unsigned IRVST : 1; 3353 unsigned BGVST : 1; 3354 unsigned VDIRMAG : 1; 3355 }; 3356 3357 struct 3358 { 3359 unsigned HLVDL : 4; 3360 unsigned : 4; 3361 }; 3362 } __HLVDCONbits_t; 3363 3364 extern __at(0x0F85) volatile __HLVDCONbits_t HLVDCONbits; 3365 3366 #define _HLVDL0 0x01 3367 #define _HLVDL1 0x02 3368 #define _HLVDL2 0x04 3369 #define _HLVDL3 0x08 3370 #define _HLVDEN 0x10 3371 #define _IRVST 0x20 3372 #define _BGVST 0x40 3373 #define _VDIRMAG 0x80 3374 3375 //============================================================================== 3376 3377 3378 //============================================================================== 3379 // DMACON2 Bits 3380 3381 extern __at(0x0F86) __sfr DMACON2; 3382 3383 typedef union 3384 { 3385 struct 3386 { 3387 unsigned INTLVL0 : 1; 3388 unsigned INTLVL1 : 1; 3389 unsigned INTLVL2 : 1; 3390 unsigned INTLVL3 : 1; 3391 unsigned DLYCYC0 : 1; 3392 unsigned DLYCYC1 : 1; 3393 unsigned DLYCYC2 : 1; 3394 unsigned DLYCYC3 : 1; 3395 }; 3396 3397 struct 3398 { 3399 unsigned INTLVL : 4; 3400 unsigned : 4; 3401 }; 3402 3403 struct 3404 { 3405 unsigned : 4; 3406 unsigned DLYCYC : 4; 3407 }; 3408 } __DMACON2bits_t; 3409 3410 extern __at(0x0F86) volatile __DMACON2bits_t DMACON2bits; 3411 3412 #define _INTLVL0 0x01 3413 #define _INTLVL1 0x02 3414 #define _INTLVL2 0x04 3415 #define _INTLVL3 0x08 3416 #define _DLYCYC0 0x10 3417 #define _DLYCYC1 0x20 3418 #define _DLYCYC2 0x40 3419 #define _DLYCYC3 0x80 3420 3421 //============================================================================== 3422 3423 3424 //============================================================================== 3425 // OSCCON2 Bits 3426 3427 extern __at(0x0F87) __sfr OSCCON2; 3428 3429 typedef struct 3430 { 3431 unsigned : 1; 3432 unsigned : 1; 3433 unsigned PRISD : 1; 3434 unsigned SOSCGO : 1; 3435 unsigned SOSCDRV : 1; 3436 unsigned : 1; 3437 unsigned SOSCRUN : 1; 3438 unsigned : 1; 3439 } __OSCCON2bits_t; 3440 3441 extern __at(0x0F87) volatile __OSCCON2bits_t OSCCON2bits; 3442 3443 #define _PRISD 0x04 3444 #define _SOSCGO 0x08 3445 #define _SOSCDRV 0x10 3446 #define _SOSCRUN 0x40 3447 3448 //============================================================================== 3449 3450 3451 //============================================================================== 3452 // DMACON1 Bits 3453 3454 extern __at(0x0F88) __sfr DMACON1; 3455 3456 typedef union 3457 { 3458 struct 3459 { 3460 unsigned DMAEN : 1; 3461 unsigned DLYINTEN : 1; 3462 unsigned DUPLEX0 : 1; 3463 unsigned DUPLEX1 : 1; 3464 unsigned RXINC : 1; 3465 unsigned TXINC : 1; 3466 unsigned SSCON0 : 1; 3467 unsigned SSCON1 : 1; 3468 }; 3469 3470 struct 3471 { 3472 unsigned : 2; 3473 unsigned DUPLEX : 2; 3474 unsigned : 4; 3475 }; 3476 3477 struct 3478 { 3479 unsigned : 6; 3480 unsigned SSCON : 2; 3481 }; 3482 } __DMACON1bits_t; 3483 3484 extern __at(0x0F88) volatile __DMACON1bits_t DMACON1bits; 3485 3486 #define _DMAEN 0x01 3487 #define _DLYINTEN 0x02 3488 #define _DUPLEX0 0x04 3489 #define _DUPLEX1 0x08 3490 #define _RXINC 0x10 3491 #define _TXINC 0x20 3492 #define _SSCON0 0x40 3493 #define _SSCON1 0x80 3494 3495 //============================================================================== 3496 3497 3498 //============================================================================== 3499 // LATA Bits 3500 3501 extern __at(0x0F89) __sfr LATA; 3502 3503 typedef struct 3504 { 3505 unsigned LATA0 : 1; 3506 unsigned LATA1 : 1; 3507 unsigned LATA2 : 1; 3508 unsigned LATA3 : 1; 3509 unsigned : 1; 3510 unsigned LATA5 : 1; 3511 unsigned LATA6 : 1; 3512 unsigned LATA7 : 1; 3513 } __LATAbits_t; 3514 3515 extern __at(0x0F89) volatile __LATAbits_t LATAbits; 3516 3517 #define _LATA0 0x01 3518 #define _LATA1 0x02 3519 #define _LATA2 0x04 3520 #define _LATA3 0x08 3521 #define _LATA5 0x20 3522 #define _LATA6 0x40 3523 #define _LATA7 0x80 3524 3525 //============================================================================== 3526 3527 3528 //============================================================================== 3529 // LATB Bits 3530 3531 extern __at(0x0F8A) __sfr LATB; 3532 3533 typedef struct 3534 { 3535 unsigned LATB0 : 1; 3536 unsigned LATB1 : 1; 3537 unsigned LATB2 : 1; 3538 unsigned LATB3 : 1; 3539 unsigned LATB4 : 1; 3540 unsigned LATB5 : 1; 3541 unsigned LATB6 : 1; 3542 unsigned LATB7 : 1; 3543 } __LATBbits_t; 3544 3545 extern __at(0x0F8A) volatile __LATBbits_t LATBbits; 3546 3547 #define _LATB0 0x01 3548 #define _LATB1 0x02 3549 #define _LATB2 0x04 3550 #define _LATB3 0x08 3551 #define _LATB4 0x10 3552 #define _LATB5 0x20 3553 #define _LATB6 0x40 3554 #define _LATB7 0x80 3555 3556 //============================================================================== 3557 3558 3559 //============================================================================== 3560 // LATC Bits 3561 3562 extern __at(0x0F8B) __sfr LATC; 3563 3564 typedef struct 3565 { 3566 unsigned LATC0 : 1; 3567 unsigned LATC1 : 1; 3568 unsigned LATC2 : 1; 3569 unsigned LATC3 : 1; 3570 unsigned LATC4 : 1; 3571 unsigned LATC5 : 1; 3572 unsigned LATC6 : 1; 3573 unsigned LATC7 : 1; 3574 } __LATCbits_t; 3575 3576 extern __at(0x0F8B) volatile __LATCbits_t LATCbits; 3577 3578 #define _LATC0 0x01 3579 #define _LATC1 0x02 3580 #define _LATC2 0x04 3581 #define _LATC3 0x08 3582 #define _LATC4 0x10 3583 #define _LATC5 0x20 3584 #define _LATC6 0x40 3585 #define _LATC7 0x80 3586 3587 //============================================================================== 3588 3589 3590 //============================================================================== 3591 // LATD Bits 3592 3593 extern __at(0x0F8C) __sfr LATD; 3594 3595 typedef struct 3596 { 3597 unsigned LATD0 : 1; 3598 unsigned LATD1 : 1; 3599 unsigned LATD2 : 1; 3600 unsigned LATD3 : 1; 3601 unsigned LATD4 : 1; 3602 unsigned LATD5 : 1; 3603 unsigned LATD6 : 1; 3604 unsigned LATD7 : 1; 3605 } __LATDbits_t; 3606 3607 extern __at(0x0F8C) volatile __LATDbits_t LATDbits; 3608 3609 #define _LATD0 0x01 3610 #define _LATD1 0x02 3611 #define _LATD2 0x04 3612 #define _LATD3 0x08 3613 #define _LATD4 0x10 3614 #define _LATD5 0x20 3615 #define _LATD6 0x40 3616 #define _LATD7 0x80 3617 3618 //============================================================================== 3619 3620 3621 //============================================================================== 3622 // LATE Bits 3623 3624 extern __at(0x0F8D) __sfr LATE; 3625 3626 typedef union 3627 { 3628 struct 3629 { 3630 unsigned LATE0 : 1; 3631 unsigned LATE1 : 1; 3632 unsigned LATE2 : 1; 3633 unsigned : 1; 3634 unsigned : 1; 3635 unsigned : 1; 3636 unsigned : 1; 3637 unsigned : 1; 3638 }; 3639 3640 struct 3641 { 3642 unsigned LATE : 3; 3643 unsigned : 5; 3644 }; 3645 } __LATEbits_t; 3646 3647 extern __at(0x0F8D) volatile __LATEbits_t LATEbits; 3648 3649 #define _LATE0 0x01 3650 #define _LATE1 0x02 3651 #define _LATE2 0x04 3652 3653 //============================================================================== 3654 3655 3656 //============================================================================== 3657 // PIE4 Bits 3658 3659 extern __at(0x0F8E) __sfr PIE4; 3660 3661 typedef struct 3662 { 3663 unsigned CCP3IE : 1; 3664 unsigned CCP4IE : 1; 3665 unsigned CCP5IE : 1; 3666 unsigned CCP6IE : 1; 3667 unsigned CCP7IE : 1; 3668 unsigned CCP8IE : 1; 3669 unsigned CCP9IE : 1; 3670 unsigned CCP10IE : 1; 3671 } __PIE4bits_t; 3672 3673 extern __at(0x0F8E) volatile __PIE4bits_t PIE4bits; 3674 3675 #define _CCP3IE 0x01 3676 #define _CCP4IE 0x02 3677 #define _CCP5IE 0x04 3678 #define _CCP6IE 0x08 3679 #define _CCP7IE 0x10 3680 #define _CCP8IE 0x20 3681 #define _CCP9IE 0x40 3682 #define _CCP10IE 0x80 3683 3684 //============================================================================== 3685 3686 3687 //============================================================================== 3688 // PIR4 Bits 3689 3690 extern __at(0x0F8F) __sfr PIR4; 3691 3692 typedef struct 3693 { 3694 unsigned CCP3IF : 1; 3695 unsigned CCP4IF : 1; 3696 unsigned CCP5IF : 1; 3697 unsigned CCP6IF : 1; 3698 unsigned CCP7IF : 1; 3699 unsigned CCP8IF : 1; 3700 unsigned CCP9IF : 1; 3701 unsigned CCP10IF : 1; 3702 } __PIR4bits_t; 3703 3704 extern __at(0x0F8F) volatile __PIR4bits_t PIR4bits; 3705 3706 #define _CCP3IF 0x01 3707 #define _CCP4IF 0x02 3708 #define _CCP5IF 0x04 3709 #define _CCP6IF 0x08 3710 #define _CCP7IF 0x10 3711 #define _CCP8IF 0x20 3712 #define _CCP9IF 0x40 3713 #define _CCP10IF 0x80 3714 3715 //============================================================================== 3716 3717 3718 //============================================================================== 3719 // IPR4 Bits 3720 3721 extern __at(0x0F90) __sfr IPR4; 3722 3723 typedef struct 3724 { 3725 unsigned CCP3IP : 1; 3726 unsigned CCP4IP : 1; 3727 unsigned CCP5IP : 1; 3728 unsigned CCP6IP : 1; 3729 unsigned CCP7IP : 1; 3730 unsigned CCP8IP : 1; 3731 unsigned CCP9IP : 1; 3732 unsigned CCP10IP : 1; 3733 } __IPR4bits_t; 3734 3735 extern __at(0x0F90) volatile __IPR4bits_t IPR4bits; 3736 3737 #define _CCP3IP 0x01 3738 #define _CCP4IP 0x02 3739 #define _CCP5IP 0x04 3740 #define _CCP6IP 0x08 3741 #define _CCP7IP 0x10 3742 #define _CCP8IP 0x20 3743 #define _CCP9IP 0x40 3744 #define _CCP10IP 0x80 3745 3746 //============================================================================== 3747 3748 3749 //============================================================================== 3750 // PIE5 Bits 3751 3752 extern __at(0x0F91) __sfr PIE5; 3753 3754 typedef struct 3755 { 3756 unsigned TMR1GIE : 1; 3757 unsigned TMR5GIE : 1; 3758 unsigned TMR5IE : 1; 3759 unsigned TMR6IE : 1; 3760 unsigned TMR8IE : 1; 3761 unsigned CM3IE : 1; 3762 unsigned : 1; 3763 unsigned : 1; 3764 } __PIE5bits_t; 3765 3766 extern __at(0x0F91) volatile __PIE5bits_t PIE5bits; 3767 3768 #define _TMR1GIE 0x01 3769 #define _TMR5GIE 0x02 3770 #define _TMR5IE 0x04 3771 #define _TMR6IE 0x08 3772 #define _TMR8IE 0x10 3773 #define _CM3IE 0x20 3774 3775 //============================================================================== 3776 3777 3778 //============================================================================== 3779 // TRISA Bits 3780 3781 extern __at(0x0F92) __sfr TRISA; 3782 3783 typedef struct 3784 { 3785 unsigned TRISA0 : 1; 3786 unsigned TRISA1 : 1; 3787 unsigned TRISA2 : 1; 3788 unsigned TRISA3 : 1; 3789 unsigned : 1; 3790 unsigned TRISA5 : 1; 3791 unsigned TRISA6 : 1; 3792 unsigned TRISA7 : 1; 3793 } __TRISAbits_t; 3794 3795 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits; 3796 3797 #define _TRISA0 0x01 3798 #define _TRISA1 0x02 3799 #define _TRISA2 0x04 3800 #define _TRISA3 0x08 3801 #define _TRISA5 0x20 3802 #define _TRISA6 0x40 3803 #define _TRISA7 0x80 3804 3805 //============================================================================== 3806 3807 3808 //============================================================================== 3809 // TRISB Bits 3810 3811 extern __at(0x0F93) __sfr TRISB; 3812 3813 typedef struct 3814 { 3815 unsigned TRISB0 : 1; 3816 unsigned TRISB1 : 1; 3817 unsigned TRISB2 : 1; 3818 unsigned TRISB3 : 1; 3819 unsigned TRISB4 : 1; 3820 unsigned TRISB5 : 1; 3821 unsigned TRISB6 : 1; 3822 unsigned TRISB7 : 1; 3823 } __TRISBbits_t; 3824 3825 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits; 3826 3827 #define _TRISB0 0x01 3828 #define _TRISB1 0x02 3829 #define _TRISB2 0x04 3830 #define _TRISB3 0x08 3831 #define _TRISB4 0x10 3832 #define _TRISB5 0x20 3833 #define _TRISB6 0x40 3834 #define _TRISB7 0x80 3835 3836 //============================================================================== 3837 3838 3839 //============================================================================== 3840 // TRISC Bits 3841 3842 extern __at(0x0F94) __sfr TRISC; 3843 3844 typedef struct 3845 { 3846 unsigned TRISC0 : 1; 3847 unsigned TRISC1 : 1; 3848 unsigned TRISC2 : 1; 3849 unsigned TRISC3 : 1; 3850 unsigned TRISC4 : 1; 3851 unsigned TRISC5 : 1; 3852 unsigned TRISC6 : 1; 3853 unsigned TRISC7 : 1; 3854 } __TRISCbits_t; 3855 3856 extern __at(0x0F94) volatile __TRISCbits_t TRISCbits; 3857 3858 #define _TRISC0 0x01 3859 #define _TRISC1 0x02 3860 #define _TRISC2 0x04 3861 #define _TRISC3 0x08 3862 #define _TRISC4 0x10 3863 #define _TRISC5 0x20 3864 #define _TRISC6 0x40 3865 #define _TRISC7 0x80 3866 3867 //============================================================================== 3868 3869 3870 //============================================================================== 3871 // TRISD Bits 3872 3873 extern __at(0x0F95) __sfr TRISD; 3874 3875 typedef struct 3876 { 3877 unsigned TRISD0 : 1; 3878 unsigned TRISD1 : 1; 3879 unsigned TRISD2 : 1; 3880 unsigned TRISD3 : 1; 3881 unsigned TRISD4 : 1; 3882 unsigned TRISD5 : 1; 3883 unsigned TRISD6 : 1; 3884 unsigned TRISD7 : 1; 3885 } __TRISDbits_t; 3886 3887 extern __at(0x0F95) volatile __TRISDbits_t TRISDbits; 3888 3889 #define _TRISD0 0x01 3890 #define _TRISD1 0x02 3891 #define _TRISD2 0x04 3892 #define _TRISD3 0x08 3893 #define _TRISD4 0x10 3894 #define _TRISD5 0x20 3895 #define _TRISD6 0x40 3896 #define _TRISD7 0x80 3897 3898 //============================================================================== 3899 3900 3901 //============================================================================== 3902 // TRISE Bits 3903 3904 extern __at(0x0F96) __sfr TRISE; 3905 3906 typedef union 3907 { 3908 struct 3909 { 3910 unsigned TRISE0 : 1; 3911 unsigned TRISE1 : 1; 3912 unsigned TRISE2 : 1; 3913 unsigned : 1; 3914 unsigned : 1; 3915 unsigned : 1; 3916 unsigned REPU : 1; 3917 unsigned RDPU : 1; 3918 }; 3919 3920 struct 3921 { 3922 unsigned TRISE : 3; 3923 unsigned : 5; 3924 }; 3925 } __TRISEbits_t; 3926 3927 extern __at(0x0F96) volatile __TRISEbits_t TRISEbits; 3928 3929 #define _TRISE0 0x01 3930 #define _TRISE1 0x02 3931 #define _TRISE2 0x04 3932 #define _REPU 0x40 3933 #define _RDPU 0x80 3934 3935 //============================================================================== 3936 3937 3938 //============================================================================== 3939 // T3GCON Bits 3940 3941 extern __at(0x0F97) __sfr T3GCON; 3942 3943 typedef union 3944 { 3945 struct 3946 { 3947 unsigned T3GSS0 : 1; 3948 unsigned T3GSS1 : 1; 3949 unsigned T3GVAL : 1; 3950 unsigned T3GGO_T3DONE : 1; 3951 unsigned T3GSPM : 1; 3952 unsigned T3GTM : 1; 3953 unsigned T3GPOL : 1; 3954 unsigned TMR3GE : 1; 3955 }; 3956 3957 struct 3958 { 3959 unsigned : 1; 3960 unsigned : 1; 3961 unsigned : 1; 3962 unsigned T3GGO : 1; 3963 unsigned : 1; 3964 unsigned : 1; 3965 unsigned : 1; 3966 unsigned : 1; 3967 }; 3968 3969 struct 3970 { 3971 unsigned : 1; 3972 unsigned : 1; 3973 unsigned : 1; 3974 unsigned T3DONE : 1; 3975 unsigned : 1; 3976 unsigned : 1; 3977 unsigned : 1; 3978 unsigned : 1; 3979 }; 3980 3981 struct 3982 { 3983 unsigned T3GSS : 2; 3984 unsigned : 6; 3985 }; 3986 } __T3GCONbits_t; 3987 3988 extern __at(0x0F97) volatile __T3GCONbits_t T3GCONbits; 3989 3990 #define _T3GSS0 0x01 3991 #define _T3GSS1 0x02 3992 #define _T3GVAL 0x04 3993 #define _T3GGO_T3DONE 0x08 3994 #define _T3GGO 0x08 3995 #define _T3DONE 0x08 3996 #define _T3GSPM 0x10 3997 #define _T3GTM 0x20 3998 #define _T3GPOL 0x40 3999 #define _TMR3GE 0x80 4000 4001 //============================================================================== 4002 4003 4004 //============================================================================== 4005 // PIR5 Bits 4006 4007 extern __at(0x0F98) __sfr PIR5; 4008 4009 typedef struct 4010 { 4011 unsigned TMR1GIF : 1; 4012 unsigned TMR5GIF : 1; 4013 unsigned TMR5IF : 1; 4014 unsigned TMR6IF : 1; 4015 unsigned TMR8IF : 1; 4016 unsigned CM3IF : 1; 4017 unsigned : 1; 4018 unsigned : 1; 4019 } __PIR5bits_t; 4020 4021 extern __at(0x0F98) volatile __PIR5bits_t PIR5bits; 4022 4023 #define _TMR1GIF 0x01 4024 #define _TMR5GIF 0x02 4025 #define _TMR5IF 0x04 4026 #define _TMR6IF 0x08 4027 #define _TMR8IF 0x10 4028 #define _CM3IF 0x20 4029 4030 //============================================================================== 4031 4032 4033 //============================================================================== 4034 // IPR5 Bits 4035 4036 extern __at(0x0F99) __sfr IPR5; 4037 4038 typedef struct 4039 { 4040 unsigned TMR1GIP : 1; 4041 unsigned TMR5GIP : 1; 4042 unsigned TMR5IP : 1; 4043 unsigned TMR6IP : 1; 4044 unsigned TMR8IP : 1; 4045 unsigned CM3IP : 1; 4046 unsigned : 1; 4047 unsigned : 1; 4048 } __IPR5bits_t; 4049 4050 extern __at(0x0F99) volatile __IPR5bits_t IPR5bits; 4051 4052 #define _TMR1GIP 0x01 4053 #define _TMR5GIP 0x02 4054 #define _TMR5IP 0x04 4055 #define _TMR6IP 0x08 4056 #define _TMR8IP 0x10 4057 #define _CM3IP 0x20 4058 4059 //============================================================================== 4060 4061 4062 //============================================================================== 4063 // T1GCON Bits 4064 4065 extern __at(0x0F9A) __sfr T1GCON; 4066 4067 typedef union 4068 { 4069 struct 4070 { 4071 unsigned T1GSS0 : 1; 4072 unsigned T1GSS1 : 1; 4073 unsigned T1GVAL : 1; 4074 unsigned T1GGO_NOT_T1DONE : 1; 4075 unsigned T1GSPM : 1; 4076 unsigned T1GTM : 1; 4077 unsigned T1GPOL : 1; 4078 unsigned TMR1GE : 1; 4079 }; 4080 4081 struct 4082 { 4083 unsigned : 1; 4084 unsigned : 1; 4085 unsigned : 1; 4086 unsigned T1GGO : 1; 4087 unsigned : 1; 4088 unsigned : 1; 4089 unsigned : 1; 4090 unsigned : 1; 4091 }; 4092 4093 struct 4094 { 4095 unsigned : 1; 4096 unsigned : 1; 4097 unsigned : 1; 4098 unsigned NOT_T1DONE : 1; 4099 unsigned : 1; 4100 unsigned : 1; 4101 unsigned : 1; 4102 unsigned : 1; 4103 }; 4104 4105 struct 4106 { 4107 unsigned : 1; 4108 unsigned : 1; 4109 unsigned : 1; 4110 unsigned T1DONE : 1; 4111 unsigned : 1; 4112 unsigned : 1; 4113 unsigned : 1; 4114 unsigned : 1; 4115 }; 4116 4117 struct 4118 { 4119 unsigned T1GSS : 2; 4120 unsigned : 6; 4121 }; 4122 } __T1GCONbits_t; 4123 4124 extern __at(0x0F9A) volatile __T1GCONbits_t T1GCONbits; 4125 4126 #define _T1GSS0 0x01 4127 #define _T1GSS1 0x02 4128 #define _T1GVAL 0x04 4129 #define _T1GGO_NOT_T1DONE 0x08 4130 #define _T1GGO 0x08 4131 #define _NOT_T1DONE 0x08 4132 #define _T1DONE 0x08 4133 #define _T1GSPM 0x10 4134 #define _T1GTM 0x20 4135 #define _T1GPOL 0x40 4136 #define _TMR1GE 0x80 4137 4138 //============================================================================== 4139 4140 4141 //============================================================================== 4142 // OSCTUNE Bits 4143 4144 extern __at(0x0F9B) __sfr OSCTUNE; 4145 4146 typedef union 4147 { 4148 struct 4149 { 4150 unsigned TUN0 : 1; 4151 unsigned TUN1 : 1; 4152 unsigned TUN2 : 1; 4153 unsigned TUN3 : 1; 4154 unsigned TUN4 : 1; 4155 unsigned TUN5 : 1; 4156 unsigned PLLEN : 1; 4157 unsigned INTSRC : 1; 4158 }; 4159 4160 struct 4161 { 4162 unsigned TUN : 6; 4163 unsigned : 2; 4164 }; 4165 } __OSCTUNEbits_t; 4166 4167 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits; 4168 4169 #define _TUN0 0x01 4170 #define _TUN1 0x02 4171 #define _TUN2 0x04 4172 #define _TUN3 0x08 4173 #define _TUN4 0x10 4174 #define _TUN5 0x20 4175 #define _PLLEN 0x40 4176 #define _INTSRC 0x80 4177 4178 //============================================================================== 4179 4180 4181 //============================================================================== 4182 // RCSTA2 Bits 4183 4184 extern __at(0x0F9C) __sfr RCSTA2; 4185 4186 typedef union 4187 { 4188 struct 4189 { 4190 unsigned RX9D : 1; 4191 unsigned OERR : 1; 4192 unsigned FERR : 1; 4193 unsigned ADDEN : 1; 4194 unsigned CREN : 1; 4195 unsigned SREN : 1; 4196 unsigned RX9 : 1; 4197 unsigned SPEN : 1; 4198 }; 4199 4200 struct 4201 { 4202 unsigned RX9D2 : 1; 4203 unsigned OERR2 : 1; 4204 unsigned FERR2 : 1; 4205 unsigned ADDEN2 : 1; 4206 unsigned CREN2 : 1; 4207 unsigned SREN2 : 1; 4208 unsigned RX92 : 1; 4209 unsigned SPEN2 : 1; 4210 }; 4211 } __RCSTA2bits_t; 4212 4213 extern __at(0x0F9C) volatile __RCSTA2bits_t RCSTA2bits; 4214 4215 #define _RCSTA2_RX9D 0x01 4216 #define _RCSTA2_RX9D2 0x01 4217 #define _RCSTA2_OERR 0x02 4218 #define _RCSTA2_OERR2 0x02 4219 #define _RCSTA2_FERR 0x04 4220 #define _RCSTA2_FERR2 0x04 4221 #define _RCSTA2_ADDEN 0x08 4222 #define _RCSTA2_ADDEN2 0x08 4223 #define _RCSTA2_CREN 0x10 4224 #define _RCSTA2_CREN2 0x10 4225 #define _RCSTA2_SREN 0x20 4226 #define _RCSTA2_SREN2 0x20 4227 #define _RCSTA2_RX9 0x40 4228 #define _RCSTA2_RX92 0x40 4229 #define _RCSTA2_SPEN 0x80 4230 #define _RCSTA2_SPEN2 0x80 4231 4232 //============================================================================== 4233 4234 4235 //============================================================================== 4236 // PIE1 Bits 4237 4238 extern __at(0x0F9D) __sfr PIE1; 4239 4240 typedef union 4241 { 4242 struct 4243 { 4244 unsigned TMR1IE : 1; 4245 unsigned TMR2IE : 1; 4246 unsigned CCP1IE : 1; 4247 unsigned SSP1IE : 1; 4248 unsigned TX1IE : 1; 4249 unsigned RC1IE : 1; 4250 unsigned ADIE : 1; 4251 unsigned PMPIE : 1; 4252 }; 4253 4254 struct 4255 { 4256 unsigned : 1; 4257 unsigned : 1; 4258 unsigned : 1; 4259 unsigned SSPIE : 1; 4260 unsigned TXIE : 1; 4261 unsigned RCIE : 1; 4262 unsigned : 1; 4263 unsigned : 1; 4264 }; 4265 } __PIE1bits_t; 4266 4267 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits; 4268 4269 #define _TMR1IE 0x01 4270 #define _TMR2IE 0x02 4271 #define _CCP1IE 0x04 4272 #define _SSP1IE 0x08 4273 #define _SSPIE 0x08 4274 #define _TX1IE 0x10 4275 #define _TXIE 0x10 4276 #define _RC1IE 0x20 4277 #define _RCIE 0x20 4278 #define _ADIE 0x40 4279 #define _PMPIE 0x80 4280 4281 //============================================================================== 4282 4283 4284 //============================================================================== 4285 // PIR1 Bits 4286 4287 extern __at(0x0F9E) __sfr PIR1; 4288 4289 typedef union 4290 { 4291 struct 4292 { 4293 unsigned TMR1IF : 1; 4294 unsigned TMR2IF : 1; 4295 unsigned CCP1IF : 1; 4296 unsigned SSP1IF : 1; 4297 unsigned TX1IF : 1; 4298 unsigned RC1IF : 1; 4299 unsigned ADIF : 1; 4300 unsigned PMPIF : 1; 4301 }; 4302 4303 struct 4304 { 4305 unsigned : 1; 4306 unsigned : 1; 4307 unsigned : 1; 4308 unsigned SSPIF : 1; 4309 unsigned TXIF : 1; 4310 unsigned RCIF : 1; 4311 unsigned : 1; 4312 unsigned : 1; 4313 }; 4314 } __PIR1bits_t; 4315 4316 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits; 4317 4318 #define _TMR1IF 0x01 4319 #define _TMR2IF 0x02 4320 #define _CCP1IF 0x04 4321 #define _SSP1IF 0x08 4322 #define _SSPIF 0x08 4323 #define _TX1IF 0x10 4324 #define _TXIF 0x10 4325 #define _RC1IF 0x20 4326 #define _RCIF 0x20 4327 #define _ADIF 0x40 4328 #define _PMPIF 0x80 4329 4330 //============================================================================== 4331 4332 4333 //============================================================================== 4334 // IPR1 Bits 4335 4336 extern __at(0x0F9F) __sfr IPR1; 4337 4338 typedef union 4339 { 4340 struct 4341 { 4342 unsigned TMR1IP : 1; 4343 unsigned TMR2IP : 1; 4344 unsigned CCP1IP : 1; 4345 unsigned SSP1IP : 1; 4346 unsigned TX1IP : 1; 4347 unsigned RC1IP : 1; 4348 unsigned ADIP : 1; 4349 unsigned PMPIP : 1; 4350 }; 4351 4352 struct 4353 { 4354 unsigned : 1; 4355 unsigned : 1; 4356 unsigned : 1; 4357 unsigned SSPIP : 1; 4358 unsigned TXIP : 1; 4359 unsigned RCIP : 1; 4360 unsigned : 1; 4361 unsigned : 1; 4362 }; 4363 } __IPR1bits_t; 4364 4365 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits; 4366 4367 #define _TMR1IP 0x01 4368 #define _TMR2IP 0x02 4369 #define _CCP1IP 0x04 4370 #define _SSP1IP 0x08 4371 #define _SSPIP 0x08 4372 #define _TX1IP 0x10 4373 #define _TXIP 0x10 4374 #define _RC1IP 0x20 4375 #define _RCIP 0x20 4376 #define _ADIP 0x40 4377 #define _PMPIP 0x80 4378 4379 //============================================================================== 4380 4381 4382 //============================================================================== 4383 // PIE2 Bits 4384 4385 extern __at(0x0FA0) __sfr PIE2; 4386 4387 typedef union 4388 { 4389 struct 4390 { 4391 unsigned CCP2IE : 1; 4392 unsigned TMR3IE : 1; 4393 unsigned LVDIE : 1; 4394 unsigned BCL1IE : 1; 4395 unsigned : 1; 4396 unsigned CM1IE : 1; 4397 unsigned CM2IE : 1; 4398 unsigned OSCFIE : 1; 4399 }; 4400 4401 struct 4402 { 4403 unsigned : 1; 4404 unsigned : 1; 4405 unsigned HLVDIE : 1; 4406 unsigned BCLIE : 1; 4407 unsigned : 1; 4408 unsigned : 1; 4409 unsigned : 1; 4410 unsigned : 1; 4411 }; 4412 } __PIE2bits_t; 4413 4414 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits; 4415 4416 #define _CCP2IE 0x01 4417 #define _TMR3IE 0x02 4418 #define _LVDIE 0x04 4419 #define _HLVDIE 0x04 4420 #define _BCL1IE 0x08 4421 #define _BCLIE 0x08 4422 #define _CM1IE 0x20 4423 #define _CM2IE 0x40 4424 #define _OSCFIE 0x80 4425 4426 //============================================================================== 4427 4428 4429 //============================================================================== 4430 // PIR2 Bits 4431 4432 extern __at(0x0FA1) __sfr PIR2; 4433 4434 typedef union 4435 { 4436 struct 4437 { 4438 unsigned CCP2IF : 1; 4439 unsigned TMR3IF : 1; 4440 unsigned LVDIF : 1; 4441 unsigned BCL1IF : 1; 4442 unsigned : 1; 4443 unsigned CM1IF : 1; 4444 unsigned CM2IF : 1; 4445 unsigned OSCFIF : 1; 4446 }; 4447 4448 struct 4449 { 4450 unsigned : 1; 4451 unsigned : 1; 4452 unsigned HLVDIF : 1; 4453 unsigned BCLIF : 1; 4454 unsigned : 1; 4455 unsigned : 1; 4456 unsigned : 1; 4457 unsigned : 1; 4458 }; 4459 } __PIR2bits_t; 4460 4461 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits; 4462 4463 #define _CCP2IF 0x01 4464 #define _TMR3IF 0x02 4465 #define _LVDIF 0x04 4466 #define _HLVDIF 0x04 4467 #define _BCL1IF 0x08 4468 #define _BCLIF 0x08 4469 #define _CM1IF 0x20 4470 #define _CM2IF 0x40 4471 #define _OSCFIF 0x80 4472 4473 //============================================================================== 4474 4475 4476 //============================================================================== 4477 // IPR2 Bits 4478 4479 extern __at(0x0FA2) __sfr IPR2; 4480 4481 typedef union 4482 { 4483 struct 4484 { 4485 unsigned CCP2IP : 1; 4486 unsigned TMR3IP : 1; 4487 unsigned LVDIP : 1; 4488 unsigned BCL1IP : 1; 4489 unsigned : 1; 4490 unsigned CM1IP : 1; 4491 unsigned CM2IP : 1; 4492 unsigned OSCFIP : 1; 4493 }; 4494 4495 struct 4496 { 4497 unsigned : 1; 4498 unsigned : 1; 4499 unsigned HLVDIP : 1; 4500 unsigned BCLIP : 1; 4501 unsigned : 1; 4502 unsigned : 1; 4503 unsigned : 1; 4504 unsigned : 1; 4505 }; 4506 } __IPR2bits_t; 4507 4508 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits; 4509 4510 #define _CCP2IP 0x01 4511 #define _TMR3IP 0x02 4512 #define _LVDIP 0x04 4513 #define _HLVDIP 0x04 4514 #define _BCL1IP 0x08 4515 #define _BCLIP 0x08 4516 #define _CM1IP 0x20 4517 #define _CM2IP 0x40 4518 #define _OSCFIP 0x80 4519 4520 //============================================================================== 4521 4522 4523 //============================================================================== 4524 // PIE3 Bits 4525 4526 extern __at(0x0FA3) __sfr PIE3; 4527 4528 typedef struct 4529 { 4530 unsigned RTCCIE : 1; 4531 unsigned TMR3GIE : 1; 4532 unsigned CTMUIE : 1; 4533 unsigned TMR4IE : 1; 4534 unsigned TX2IE : 1; 4535 unsigned RC2IE : 1; 4536 unsigned BCL2IE : 1; 4537 unsigned SSP2IE : 1; 4538 } __PIE3bits_t; 4539 4540 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits; 4541 4542 #define _RTCCIE 0x01 4543 #define _TMR3GIE 0x02 4544 #define _CTMUIE 0x04 4545 #define _TMR4IE 0x08 4546 #define _TX2IE 0x10 4547 #define _RC2IE 0x20 4548 #define _BCL2IE 0x40 4549 #define _SSP2IE 0x80 4550 4551 //============================================================================== 4552 4553 4554 //============================================================================== 4555 // PIR3 Bits 4556 4557 extern __at(0x0FA4) __sfr PIR3; 4558 4559 typedef struct 4560 { 4561 unsigned RTCCIF : 1; 4562 unsigned TMR3GIF : 1; 4563 unsigned CTMUIF : 1; 4564 unsigned TMR4IF : 1; 4565 unsigned TX2IF : 1; 4566 unsigned RC2IF : 1; 4567 unsigned BCL2IF : 1; 4568 unsigned SSP2IF : 1; 4569 } __PIR3bits_t; 4570 4571 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits; 4572 4573 #define _RTCCIF 0x01 4574 #define _TMR3GIF 0x02 4575 #define _CTMUIF 0x04 4576 #define _TMR4IF 0x08 4577 #define _TX2IF 0x10 4578 #define _RC2IF 0x20 4579 #define _BCL2IF 0x40 4580 #define _SSP2IF 0x80 4581 4582 //============================================================================== 4583 4584 4585 //============================================================================== 4586 // IPR3 Bits 4587 4588 extern __at(0x0FA5) __sfr IPR3; 4589 4590 typedef struct 4591 { 4592 unsigned RTCCIP : 1; 4593 unsigned TMR3GIP : 1; 4594 unsigned CTMUIP : 1; 4595 unsigned TMR4IP : 1; 4596 unsigned TX2IP : 1; 4597 unsigned RC2IP : 1; 4598 unsigned BCL2IP : 1; 4599 unsigned SSP2IP : 1; 4600 } __IPR3bits_t; 4601 4602 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits; 4603 4604 #define _RTCCIP 0x01 4605 #define _TMR3GIP 0x02 4606 #define _CTMUIP 0x04 4607 #define _TMR4IP 0x08 4608 #define _TX2IP 0x10 4609 #define _RC2IP 0x20 4610 #define _BCL2IP 0x40 4611 #define _SSP2IP 0x80 4612 4613 //============================================================================== 4614 4615 4616 //============================================================================== 4617 // EECON1 Bits 4618 4619 extern __at(0x0FA6) __sfr EECON1; 4620 4621 typedef struct 4622 { 4623 unsigned : 1; 4624 unsigned WR : 1; 4625 unsigned WREN : 1; 4626 unsigned WRERR : 1; 4627 unsigned FREE : 1; 4628 unsigned WPROG : 1; 4629 unsigned : 1; 4630 unsigned : 1; 4631 } __EECON1bits_t; 4632 4633 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits; 4634 4635 #define _WR 0x02 4636 #define _WREN 0x04 4637 #define _WRERR 0x08 4638 #define _FREE 0x10 4639 #define _WPROG 0x20 4640 4641 //============================================================================== 4642 4643 extern __at(0x0FA7) __sfr EECON2; 4644 4645 //============================================================================== 4646 // TXSTA2 Bits 4647 4648 extern __at(0x0FA8) __sfr TXSTA2; 4649 4650 typedef union 4651 { 4652 struct 4653 { 4654 unsigned TX9D : 1; 4655 unsigned TRMT : 1; 4656 unsigned BRGH : 1; 4657 unsigned SENDB : 1; 4658 unsigned SYNC : 1; 4659 unsigned TXEN : 1; 4660 unsigned TX9 : 1; 4661 unsigned CSRC : 1; 4662 }; 4663 4664 struct 4665 { 4666 unsigned TX9D2 : 1; 4667 unsigned TRMT2 : 1; 4668 unsigned BRGH2 : 1; 4669 unsigned SENDB2 : 1; 4670 unsigned SYNC2 : 1; 4671 unsigned TXEN2 : 1; 4672 unsigned TX92 : 1; 4673 unsigned CSRC2 : 1; 4674 }; 4675 } __TXSTA2bits_t; 4676 4677 extern __at(0x0FA8) volatile __TXSTA2bits_t TXSTA2bits; 4678 4679 #define _TXSTA2_TX9D 0x01 4680 #define _TXSTA2_TX9D2 0x01 4681 #define _TXSTA2_TRMT 0x02 4682 #define _TXSTA2_TRMT2 0x02 4683 #define _TXSTA2_BRGH 0x04 4684 #define _TXSTA2_BRGH2 0x04 4685 #define _TXSTA2_SENDB 0x08 4686 #define _TXSTA2_SENDB2 0x08 4687 #define _TXSTA2_SYNC 0x10 4688 #define _TXSTA2_SYNC2 0x10 4689 #define _TXSTA2_TXEN 0x20 4690 #define _TXSTA2_TXEN2 0x20 4691 #define _TXSTA2_TX9 0x40 4692 #define _TXSTA2_TX92 0x40 4693 #define _TXSTA2_CSRC 0x80 4694 #define _TXSTA2_CSRC2 0x80 4695 4696 //============================================================================== 4697 4698 extern __at(0x0FA9) __sfr TXREG2; 4699 extern __at(0x0FAA) __sfr RCREG2; 4700 extern __at(0x0FAB) __sfr SPBRG2; 4701 4702 //============================================================================== 4703 // RCSTA Bits 4704 4705 extern __at(0x0FAC) __sfr RCSTA; 4706 4707 typedef union 4708 { 4709 struct 4710 { 4711 unsigned RX9D : 1; 4712 unsigned OERR : 1; 4713 unsigned FERR : 1; 4714 unsigned ADDEN : 1; 4715 unsigned CREN : 1; 4716 unsigned SREN : 1; 4717 unsigned RX9 : 1; 4718 unsigned SPEN : 1; 4719 }; 4720 4721 struct 4722 { 4723 unsigned RCD8 : 1; 4724 unsigned OERR1 : 1; 4725 unsigned FERR1 : 1; 4726 unsigned ADEN : 1; 4727 unsigned CREN1 : 1; 4728 unsigned SREN1 : 1; 4729 unsigned RC9 : 1; 4730 unsigned SPEN1 : 1; 4731 }; 4732 4733 struct 4734 { 4735 unsigned RX9D1 : 1; 4736 unsigned : 1; 4737 unsigned : 1; 4738 unsigned ADDEN1 : 1; 4739 unsigned : 1; 4740 unsigned : 1; 4741 unsigned NOT_RC8 : 1; 4742 unsigned : 1; 4743 }; 4744 4745 struct 4746 { 4747 unsigned : 1; 4748 unsigned : 1; 4749 unsigned : 1; 4750 unsigned : 1; 4751 unsigned : 1; 4752 unsigned : 1; 4753 unsigned RC8_9 : 1; 4754 unsigned : 1; 4755 }; 4756 4757 struct 4758 { 4759 unsigned : 1; 4760 unsigned : 1; 4761 unsigned : 1; 4762 unsigned : 1; 4763 unsigned : 1; 4764 unsigned : 1; 4765 unsigned RX91 : 1; 4766 unsigned : 1; 4767 }; 4768 } __RCSTAbits_t; 4769 4770 extern __at(0x0FAC) volatile __RCSTAbits_t RCSTAbits; 4771 4772 #define _RX9D 0x01 4773 #define _RCD8 0x01 4774 #define _RX9D1 0x01 4775 #define _OERR 0x02 4776 #define _OERR1 0x02 4777 #define _FERR 0x04 4778 #define _FERR1 0x04 4779 #define _ADDEN 0x08 4780 #define _ADEN 0x08 4781 #define _ADDEN1 0x08 4782 #define _CREN 0x10 4783 #define _CREN1 0x10 4784 #define _SREN 0x20 4785 #define _SREN1 0x20 4786 #define _RX9 0x40 4787 #define _RC9 0x40 4788 #define _NOT_RC8 0x40 4789 #define _RC8_9 0x40 4790 #define _RX91 0x40 4791 #define _SPEN 0x80 4792 #define _SPEN1 0x80 4793 4794 //============================================================================== 4795 4796 4797 //============================================================================== 4798 // RCSTA1 Bits 4799 4800 extern __at(0x0FAC) __sfr RCSTA1; 4801 4802 typedef union 4803 { 4804 struct 4805 { 4806 unsigned RX9D : 1; 4807 unsigned OERR : 1; 4808 unsigned FERR : 1; 4809 unsigned ADDEN : 1; 4810 unsigned CREN : 1; 4811 unsigned SREN : 1; 4812 unsigned RX9 : 1; 4813 unsigned SPEN : 1; 4814 }; 4815 4816 struct 4817 { 4818 unsigned RCD8 : 1; 4819 unsigned OERR1 : 1; 4820 unsigned FERR1 : 1; 4821 unsigned ADEN : 1; 4822 unsigned CREN1 : 1; 4823 unsigned SREN1 : 1; 4824 unsigned RC9 : 1; 4825 unsigned SPEN1 : 1; 4826 }; 4827 4828 struct 4829 { 4830 unsigned RX9D1 : 1; 4831 unsigned : 1; 4832 unsigned : 1; 4833 unsigned ADDEN1 : 1; 4834 unsigned : 1; 4835 unsigned : 1; 4836 unsigned NOT_RC8 : 1; 4837 unsigned : 1; 4838 }; 4839 4840 struct 4841 { 4842 unsigned : 1; 4843 unsigned : 1; 4844 unsigned : 1; 4845 unsigned : 1; 4846 unsigned : 1; 4847 unsigned : 1; 4848 unsigned RC8_9 : 1; 4849 unsigned : 1; 4850 }; 4851 4852 struct 4853 { 4854 unsigned : 1; 4855 unsigned : 1; 4856 unsigned : 1; 4857 unsigned : 1; 4858 unsigned : 1; 4859 unsigned : 1; 4860 unsigned RX91 : 1; 4861 unsigned : 1; 4862 }; 4863 } __RCSTA1bits_t; 4864 4865 extern __at(0x0FAC) volatile __RCSTA1bits_t RCSTA1bits; 4866 4867 #define _RCSTA1_RX9D 0x01 4868 #define _RCSTA1_RCD8 0x01 4869 #define _RCSTA1_RX9D1 0x01 4870 #define _RCSTA1_OERR 0x02 4871 #define _RCSTA1_OERR1 0x02 4872 #define _RCSTA1_FERR 0x04 4873 #define _RCSTA1_FERR1 0x04 4874 #define _RCSTA1_ADDEN 0x08 4875 #define _RCSTA1_ADEN 0x08 4876 #define _RCSTA1_ADDEN1 0x08 4877 #define _RCSTA1_CREN 0x10 4878 #define _RCSTA1_CREN1 0x10 4879 #define _RCSTA1_SREN 0x20 4880 #define _RCSTA1_SREN1 0x20 4881 #define _RCSTA1_RX9 0x40 4882 #define _RCSTA1_RC9 0x40 4883 #define _RCSTA1_NOT_RC8 0x40 4884 #define _RCSTA1_RC8_9 0x40 4885 #define _RCSTA1_RX91 0x40 4886 #define _RCSTA1_SPEN 0x80 4887 #define _RCSTA1_SPEN1 0x80 4888 4889 //============================================================================== 4890 4891 4892 //============================================================================== 4893 // TXSTA Bits 4894 4895 extern __at(0x0FAD) __sfr TXSTA; 4896 4897 typedef union 4898 { 4899 struct 4900 { 4901 unsigned TX9D : 1; 4902 unsigned TRMT : 1; 4903 unsigned BRGH : 1; 4904 unsigned SENDB : 1; 4905 unsigned SYNC : 1; 4906 unsigned TXEN : 1; 4907 unsigned TX9 : 1; 4908 unsigned CSRC : 1; 4909 }; 4910 4911 struct 4912 { 4913 unsigned TXD8 : 1; 4914 unsigned TRMT1 : 1; 4915 unsigned BRGH1 : 1; 4916 unsigned SENDB1 : 1; 4917 unsigned SYNC1 : 1; 4918 unsigned TXEN1 : 1; 4919 unsigned TX8_9 : 1; 4920 unsigned CSRC1 : 1; 4921 }; 4922 4923 struct 4924 { 4925 unsigned TX9D1 : 1; 4926 unsigned : 1; 4927 unsigned : 1; 4928 unsigned : 1; 4929 unsigned : 1; 4930 unsigned : 1; 4931 unsigned NOT_TX8 : 1; 4932 unsigned : 1; 4933 }; 4934 4935 struct 4936 { 4937 unsigned : 1; 4938 unsigned : 1; 4939 unsigned : 1; 4940 unsigned : 1; 4941 unsigned : 1; 4942 unsigned : 1; 4943 unsigned TX91 : 1; 4944 unsigned : 1; 4945 }; 4946 } __TXSTAbits_t; 4947 4948 extern __at(0x0FAD) volatile __TXSTAbits_t TXSTAbits; 4949 4950 #define _TX9D 0x01 4951 #define _TXD8 0x01 4952 #define _TX9D1 0x01 4953 #define _TRMT 0x02 4954 #define _TRMT1 0x02 4955 #define _BRGH 0x04 4956 #define _BRGH1 0x04 4957 #define _SENDB 0x08 4958 #define _SENDB1 0x08 4959 #define _SYNC 0x10 4960 #define _SYNC1 0x10 4961 #define _TXEN 0x20 4962 #define _TXEN1 0x20 4963 #define _TX9 0x40 4964 #define _TX8_9 0x40 4965 #define _NOT_TX8 0x40 4966 #define _TX91 0x40 4967 #define _CSRC 0x80 4968 #define _CSRC1 0x80 4969 4970 //============================================================================== 4971 4972 4973 //============================================================================== 4974 // TXSTA1 Bits 4975 4976 extern __at(0x0FAD) __sfr TXSTA1; 4977 4978 typedef union 4979 { 4980 struct 4981 { 4982 unsigned TX9D : 1; 4983 unsigned TRMT : 1; 4984 unsigned BRGH : 1; 4985 unsigned SENDB : 1; 4986 unsigned SYNC : 1; 4987 unsigned TXEN : 1; 4988 unsigned TX9 : 1; 4989 unsigned CSRC : 1; 4990 }; 4991 4992 struct 4993 { 4994 unsigned TXD8 : 1; 4995 unsigned TRMT1 : 1; 4996 unsigned BRGH1 : 1; 4997 unsigned SENDB1 : 1; 4998 unsigned SYNC1 : 1; 4999 unsigned TXEN1 : 1; 5000 unsigned TX8_9 : 1; 5001 unsigned CSRC1 : 1; 5002 }; 5003 5004 struct 5005 { 5006 unsigned TX9D1 : 1; 5007 unsigned : 1; 5008 unsigned : 1; 5009 unsigned : 1; 5010 unsigned : 1; 5011 unsigned : 1; 5012 unsigned NOT_TX8 : 1; 5013 unsigned : 1; 5014 }; 5015 5016 struct 5017 { 5018 unsigned : 1; 5019 unsigned : 1; 5020 unsigned : 1; 5021 unsigned : 1; 5022 unsigned : 1; 5023 unsigned : 1; 5024 unsigned TX91 : 1; 5025 unsigned : 1; 5026 }; 5027 } __TXSTA1bits_t; 5028 5029 extern __at(0x0FAD) volatile __TXSTA1bits_t TXSTA1bits; 5030 5031 #define _TXSTA1_TX9D 0x01 5032 #define _TXSTA1_TXD8 0x01 5033 #define _TXSTA1_TX9D1 0x01 5034 #define _TXSTA1_TRMT 0x02 5035 #define _TXSTA1_TRMT1 0x02 5036 #define _TXSTA1_BRGH 0x04 5037 #define _TXSTA1_BRGH1 0x04 5038 #define _TXSTA1_SENDB 0x08 5039 #define _TXSTA1_SENDB1 0x08 5040 #define _TXSTA1_SYNC 0x10 5041 #define _TXSTA1_SYNC1 0x10 5042 #define _TXSTA1_TXEN 0x20 5043 #define _TXSTA1_TXEN1 0x20 5044 #define _TXSTA1_TX9 0x40 5045 #define _TXSTA1_TX8_9 0x40 5046 #define _TXSTA1_NOT_TX8 0x40 5047 #define _TXSTA1_TX91 0x40 5048 #define _TXSTA1_CSRC 0x80 5049 #define _TXSTA1_CSRC1 0x80 5050 5051 //============================================================================== 5052 5053 extern __at(0x0FAE) __sfr TXREG; 5054 extern __at(0x0FAE) __sfr TXREG1; 5055 extern __at(0x0FAF) __sfr RCREG; 5056 extern __at(0x0FAF) __sfr RCREG1; 5057 extern __at(0x0FB0) __sfr SPBRG; 5058 extern __at(0x0FB0) __sfr SPBRG1; 5059 5060 //============================================================================== 5061 // CTMUICON Bits 5062 5063 extern __at(0x0FB1) __sfr CTMUICON; 5064 5065 typedef union 5066 { 5067 struct 5068 { 5069 unsigned IRNG0 : 1; 5070 unsigned IRNG1 : 1; 5071 unsigned ITRIM0 : 1; 5072 unsigned ITRIM1 : 1; 5073 unsigned ITRIM2 : 1; 5074 unsigned ITRIM3 : 1; 5075 unsigned ITRIM4 : 1; 5076 unsigned ITRIM5 : 1; 5077 }; 5078 5079 struct 5080 { 5081 unsigned IRNG : 2; 5082 unsigned : 6; 5083 }; 5084 5085 struct 5086 { 5087 unsigned : 2; 5088 unsigned ITRIM : 6; 5089 }; 5090 } __CTMUICONbits_t; 5091 5092 extern __at(0x0FB1) volatile __CTMUICONbits_t CTMUICONbits; 5093 5094 #define _IRNG0 0x01 5095 #define _IRNG1 0x02 5096 #define _ITRIM0 0x04 5097 #define _ITRIM1 0x08 5098 #define _ITRIM2 0x10 5099 #define _ITRIM3 0x20 5100 #define _ITRIM4 0x40 5101 #define _ITRIM5 0x80 5102 5103 //============================================================================== 5104 5105 5106 //============================================================================== 5107 // CTMUCONL Bits 5108 5109 extern __at(0x0FB2) __sfr CTMUCONL; 5110 5111 typedef union 5112 { 5113 struct 5114 { 5115 unsigned EDG1STAT : 1; 5116 unsigned EDG2STAT : 1; 5117 unsigned EDG1SEL0 : 1; 5118 unsigned EDG1SEL1 : 1; 5119 unsigned EDG1POL : 1; 5120 unsigned EDG2SEL0 : 1; 5121 unsigned EDG2SEL1 : 1; 5122 unsigned EDG2POL : 1; 5123 }; 5124 5125 struct 5126 { 5127 unsigned : 2; 5128 unsigned EDG1SEL : 2; 5129 unsigned : 4; 5130 }; 5131 5132 struct 5133 { 5134 unsigned : 5; 5135 unsigned EDG2SEL : 2; 5136 unsigned : 1; 5137 }; 5138 } __CTMUCONLbits_t; 5139 5140 extern __at(0x0FB2) volatile __CTMUCONLbits_t CTMUCONLbits; 5141 5142 #define _EDG1STAT 0x01 5143 #define _EDG2STAT 0x02 5144 #define _EDG1SEL0 0x04 5145 #define _EDG1SEL1 0x08 5146 #define _EDG1POL 0x10 5147 #define _EDG2SEL0 0x20 5148 #define _EDG2SEL1 0x40 5149 #define _EDG2POL 0x80 5150 5151 //============================================================================== 5152 5153 5154 //============================================================================== 5155 // CTMUCONH Bits 5156 5157 extern __at(0x0FB3) __sfr CTMUCONH; 5158 5159 typedef struct 5160 { 5161 unsigned CTTRIG : 1; 5162 unsigned IDISSEN : 1; 5163 unsigned EDGSEQEN : 1; 5164 unsigned EDGEN : 1; 5165 unsigned TGEN : 1; 5166 unsigned CTMUSIDL : 1; 5167 unsigned : 1; 5168 unsigned CTMUEN : 1; 5169 } __CTMUCONHbits_t; 5170 5171 extern __at(0x0FB3) volatile __CTMUCONHbits_t CTMUCONHbits; 5172 5173 #define _CTTRIG 0x01 5174 #define _IDISSEN 0x02 5175 #define _EDGSEQEN 0x04 5176 #define _EDGEN 0x08 5177 #define _TGEN 0x10 5178 #define _CTMUSIDL 0x20 5179 #define _CTMUEN 0x80 5180 5181 //============================================================================== 5182 5183 5184 //============================================================================== 5185 // CCP2CON Bits 5186 5187 extern __at(0x0FB4) __sfr CCP2CON; 5188 5189 typedef union 5190 { 5191 struct 5192 { 5193 unsigned CCP2M0 : 1; 5194 unsigned CCP2M1 : 1; 5195 unsigned CCP2M2 : 1; 5196 unsigned CCP2M3 : 1; 5197 unsigned DC2B0 : 1; 5198 unsigned DC2B1 : 1; 5199 unsigned P2M0 : 1; 5200 unsigned P2M1 : 1; 5201 }; 5202 5203 struct 5204 { 5205 unsigned : 1; 5206 unsigned : 1; 5207 unsigned : 1; 5208 unsigned : 1; 5209 unsigned CCP2Y : 1; 5210 unsigned CCP2X : 1; 5211 unsigned : 1; 5212 unsigned : 1; 5213 }; 5214 5215 struct 5216 { 5217 unsigned CCP2M : 4; 5218 unsigned : 4; 5219 }; 5220 5221 struct 5222 { 5223 unsigned : 4; 5224 unsigned DC2B : 2; 5225 unsigned : 2; 5226 }; 5227 5228 struct 5229 { 5230 unsigned : 6; 5231 unsigned P2M : 2; 5232 }; 5233 } __CCP2CONbits_t; 5234 5235 extern __at(0x0FB4) volatile __CCP2CONbits_t CCP2CONbits; 5236 5237 #define _CCP2M0 0x01 5238 #define _CCP2M1 0x02 5239 #define _CCP2M2 0x04 5240 #define _CCP2M3 0x08 5241 #define _DC2B0 0x10 5242 #define _CCP2Y 0x10 5243 #define _DC2B1 0x20 5244 #define _CCP2X 0x20 5245 #define _P2M0 0x40 5246 #define _P2M1 0x80 5247 5248 //============================================================================== 5249 5250 5251 //============================================================================== 5252 // ECCP2CON Bits 5253 5254 extern __at(0x0FB4) __sfr ECCP2CON; 5255 5256 typedef union 5257 { 5258 struct 5259 { 5260 unsigned CCP2M0 : 1; 5261 unsigned CCP2M1 : 1; 5262 unsigned CCP2M2 : 1; 5263 unsigned CCP2M3 : 1; 5264 unsigned DC2B0 : 1; 5265 unsigned DC2B1 : 1; 5266 unsigned P2M0 : 1; 5267 unsigned P2M1 : 1; 5268 }; 5269 5270 struct 5271 { 5272 unsigned : 1; 5273 unsigned : 1; 5274 unsigned : 1; 5275 unsigned : 1; 5276 unsigned CCP2Y : 1; 5277 unsigned CCP2X : 1; 5278 unsigned : 1; 5279 unsigned : 1; 5280 }; 5281 5282 struct 5283 { 5284 unsigned CCP2M : 4; 5285 unsigned : 4; 5286 }; 5287 5288 struct 5289 { 5290 unsigned : 4; 5291 unsigned DC2B : 2; 5292 unsigned : 2; 5293 }; 5294 5295 struct 5296 { 5297 unsigned : 6; 5298 unsigned P2M : 2; 5299 }; 5300 } __ECCP2CONbits_t; 5301 5302 extern __at(0x0FB4) volatile __ECCP2CONbits_t ECCP2CONbits; 5303 5304 #define _ECCP2CON_CCP2M0 0x01 5305 #define _ECCP2CON_CCP2M1 0x02 5306 #define _ECCP2CON_CCP2M2 0x04 5307 #define _ECCP2CON_CCP2M3 0x08 5308 #define _ECCP2CON_DC2B0 0x10 5309 #define _ECCP2CON_CCP2Y 0x10 5310 #define _ECCP2CON_DC2B1 0x20 5311 #define _ECCP2CON_CCP2X 0x20 5312 #define _ECCP2CON_P2M0 0x40 5313 #define _ECCP2CON_P2M1 0x80 5314 5315 //============================================================================== 5316 5317 extern __at(0x0FB5) __sfr CCPR2; 5318 extern __at(0x0FB5) __sfr CCPR2L; 5319 extern __at(0x0FB6) __sfr CCPR2H; 5320 5321 //============================================================================== 5322 // ECCP2DEL Bits 5323 5324 extern __at(0x0FB7) __sfr ECCP2DEL; 5325 5326 typedef union 5327 { 5328 struct 5329 { 5330 unsigned P2DC0 : 1; 5331 unsigned P2DC1 : 1; 5332 unsigned P2DC2 : 1; 5333 unsigned P2DC3 : 1; 5334 unsigned P2DC4 : 1; 5335 unsigned P2DC5 : 1; 5336 unsigned P2DC6 : 1; 5337 unsigned P2RSEN : 1; 5338 }; 5339 5340 struct 5341 { 5342 unsigned P2DC : 7; 5343 unsigned : 1; 5344 }; 5345 } __ECCP2DELbits_t; 5346 5347 extern __at(0x0FB7) volatile __ECCP2DELbits_t ECCP2DELbits; 5348 5349 #define _P2DC0 0x01 5350 #define _P2DC1 0x02 5351 #define _P2DC2 0x04 5352 #define _P2DC3 0x08 5353 #define _P2DC4 0x10 5354 #define _P2DC5 0x20 5355 #define _P2DC6 0x40 5356 #define _P2RSEN 0x80 5357 5358 //============================================================================== 5359 5360 5361 //============================================================================== 5362 // PWM2CON Bits 5363 5364 extern __at(0x0FB7) __sfr PWM2CON; 5365 5366 typedef union 5367 { 5368 struct 5369 { 5370 unsigned P2DC0 : 1; 5371 unsigned P2DC1 : 1; 5372 unsigned P2DC2 : 1; 5373 unsigned P2DC3 : 1; 5374 unsigned P2DC4 : 1; 5375 unsigned P2DC5 : 1; 5376 unsigned P2DC6 : 1; 5377 unsigned P2RSEN : 1; 5378 }; 5379 5380 struct 5381 { 5382 unsigned P2DC : 7; 5383 unsigned : 1; 5384 }; 5385 } __PWM2CONbits_t; 5386 5387 extern __at(0x0FB7) volatile __PWM2CONbits_t PWM2CONbits; 5388 5389 #define _PWM2CON_P2DC0 0x01 5390 #define _PWM2CON_P2DC1 0x02 5391 #define _PWM2CON_P2DC2 0x04 5392 #define _PWM2CON_P2DC3 0x08 5393 #define _PWM2CON_P2DC4 0x10 5394 #define _PWM2CON_P2DC5 0x20 5395 #define _PWM2CON_P2DC6 0x40 5396 #define _PWM2CON_P2RSEN 0x80 5397 5398 //============================================================================== 5399 5400 5401 //============================================================================== 5402 // ECCP2AS Bits 5403 5404 extern __at(0x0FB8) __sfr ECCP2AS; 5405 5406 typedef union 5407 { 5408 struct 5409 { 5410 unsigned PSS2BD0 : 1; 5411 unsigned PSS2BD1 : 1; 5412 unsigned PSS2AC0 : 1; 5413 unsigned PSS2AC1 : 1; 5414 unsigned ECCP2AS0 : 1; 5415 unsigned ECCP2AS1 : 1; 5416 unsigned ECCP2AS2 : 1; 5417 unsigned ECCP2ASE : 1; 5418 }; 5419 5420 struct 5421 { 5422 unsigned PSS2BD : 2; 5423 unsigned : 6; 5424 }; 5425 5426 struct 5427 { 5428 unsigned : 2; 5429 unsigned PSS2AC : 2; 5430 unsigned : 4; 5431 }; 5432 5433 struct 5434 { 5435 unsigned : 4; 5436 unsigned ECCP2AS : 3; 5437 unsigned : 1; 5438 }; 5439 } __ECCP2ASbits_t; 5440 5441 extern __at(0x0FB8) volatile __ECCP2ASbits_t ECCP2ASbits; 5442 5443 #define _PSS2BD0 0x01 5444 #define _PSS2BD1 0x02 5445 #define _PSS2AC0 0x04 5446 #define _PSS2AC1 0x08 5447 #define _ECCP2AS0 0x10 5448 #define _ECCP2AS1 0x20 5449 #define _ECCP2AS2 0x40 5450 #define _ECCP2ASE 0x80 5451 5452 //============================================================================== 5453 5454 5455 //============================================================================== 5456 // PSTR2CON Bits 5457 5458 extern __at(0x0FB9) __sfr PSTR2CON; 5459 5460 typedef union 5461 { 5462 struct 5463 { 5464 unsigned STRA : 1; 5465 unsigned STRB : 1; 5466 unsigned STRC : 1; 5467 unsigned STRD : 1; 5468 unsigned STRSYNC : 1; 5469 unsigned P2DC5 : 1; 5470 unsigned CMPL0 : 1; 5471 unsigned CMPL1 : 1; 5472 }; 5473 5474 struct 5475 { 5476 unsigned P2DC0 : 1; 5477 unsigned P2DC1 : 1; 5478 unsigned P2DC2 : 1; 5479 unsigned P2DC3 : 1; 5480 unsigned P2DC4 : 1; 5481 unsigned : 1; 5482 unsigned P2DC6 : 1; 5483 unsigned : 1; 5484 }; 5485 5486 struct 5487 { 5488 unsigned P2DC : 7; 5489 unsigned : 1; 5490 }; 5491 5492 struct 5493 { 5494 unsigned : 6; 5495 unsigned CMPL : 2; 5496 }; 5497 } __PSTR2CONbits_t; 5498 5499 extern __at(0x0FB9) volatile __PSTR2CONbits_t PSTR2CONbits; 5500 5501 #define _PSTR2CON_STRA 0x01 5502 #define _PSTR2CON_P2DC0 0x01 5503 #define _PSTR2CON_STRB 0x02 5504 #define _PSTR2CON_P2DC1 0x02 5505 #define _PSTR2CON_STRC 0x04 5506 #define _PSTR2CON_P2DC2 0x04 5507 #define _PSTR2CON_STRD 0x08 5508 #define _PSTR2CON_P2DC3 0x08 5509 #define _PSTR2CON_STRSYNC 0x10 5510 #define _PSTR2CON_P2DC4 0x10 5511 #define _PSTR2CON_P2DC5 0x20 5512 #define _PSTR2CON_CMPL0 0x40 5513 #define _PSTR2CON_P2DC6 0x40 5514 #define _PSTR2CON_CMPL1 0x80 5515 5516 //============================================================================== 5517 5518 5519 //============================================================================== 5520 // CCP1CON Bits 5521 5522 extern __at(0x0FBA) __sfr CCP1CON; 5523 5524 typedef union 5525 { 5526 struct 5527 { 5528 unsigned CCP1M0 : 1; 5529 unsigned CCP1M1 : 1; 5530 unsigned CCP1M2 : 1; 5531 unsigned CCP1M3 : 1; 5532 unsigned DC1B0 : 1; 5533 unsigned DC1B1 : 1; 5534 unsigned P1M0 : 1; 5535 unsigned P1M1 : 1; 5536 }; 5537 5538 struct 5539 { 5540 unsigned : 1; 5541 unsigned : 1; 5542 unsigned : 1; 5543 unsigned : 1; 5544 unsigned CCP1Y : 1; 5545 unsigned CCP1X : 1; 5546 unsigned : 1; 5547 unsigned : 1; 5548 }; 5549 5550 struct 5551 { 5552 unsigned CCP1M : 4; 5553 unsigned : 4; 5554 }; 5555 5556 struct 5557 { 5558 unsigned : 4; 5559 unsigned DC1B : 2; 5560 unsigned : 2; 5561 }; 5562 5563 struct 5564 { 5565 unsigned : 6; 5566 unsigned P1M : 2; 5567 }; 5568 } __CCP1CONbits_t; 5569 5570 extern __at(0x0FBA) volatile __CCP1CONbits_t CCP1CONbits; 5571 5572 #define _CCP1M0 0x01 5573 #define _CCP1M1 0x02 5574 #define _CCP1M2 0x04 5575 #define _CCP1M3 0x08 5576 #define _DC1B0 0x10 5577 #define _CCP1Y 0x10 5578 #define _DC1B1 0x20 5579 #define _CCP1X 0x20 5580 #define _P1M0 0x40 5581 #define _P1M1 0x80 5582 5583 //============================================================================== 5584 5585 5586 //============================================================================== 5587 // ECCP1CON Bits 5588 5589 extern __at(0x0FBA) __sfr ECCP1CON; 5590 5591 typedef union 5592 { 5593 struct 5594 { 5595 unsigned CCP1M0 : 1; 5596 unsigned CCP1M1 : 1; 5597 unsigned CCP1M2 : 1; 5598 unsigned CCP1M3 : 1; 5599 unsigned DC1B0 : 1; 5600 unsigned DC1B1 : 1; 5601 unsigned P1M0 : 1; 5602 unsigned P1M1 : 1; 5603 }; 5604 5605 struct 5606 { 5607 unsigned : 1; 5608 unsigned : 1; 5609 unsigned : 1; 5610 unsigned : 1; 5611 unsigned CCP1Y : 1; 5612 unsigned CCP1X : 1; 5613 unsigned : 1; 5614 unsigned : 1; 5615 }; 5616 5617 struct 5618 { 5619 unsigned CCP1M : 4; 5620 unsigned : 4; 5621 }; 5622 5623 struct 5624 { 5625 unsigned : 4; 5626 unsigned DC1B : 2; 5627 unsigned : 2; 5628 }; 5629 5630 struct 5631 { 5632 unsigned : 6; 5633 unsigned P1M : 2; 5634 }; 5635 } __ECCP1CONbits_t; 5636 5637 extern __at(0x0FBA) volatile __ECCP1CONbits_t ECCP1CONbits; 5638 5639 #define _ECCP1CON_CCP1M0 0x01 5640 #define _ECCP1CON_CCP1M1 0x02 5641 #define _ECCP1CON_CCP1M2 0x04 5642 #define _ECCP1CON_CCP1M3 0x08 5643 #define _ECCP1CON_DC1B0 0x10 5644 #define _ECCP1CON_CCP1Y 0x10 5645 #define _ECCP1CON_DC1B1 0x20 5646 #define _ECCP1CON_CCP1X 0x20 5647 #define _ECCP1CON_P1M0 0x40 5648 #define _ECCP1CON_P1M1 0x80 5649 5650 //============================================================================== 5651 5652 extern __at(0x0FBB) __sfr CCPR1; 5653 extern __at(0x0FBB) __sfr CCPR1L; 5654 extern __at(0x0FBC) __sfr CCPR1H; 5655 5656 //============================================================================== 5657 // ECCP1DEL Bits 5658 5659 extern __at(0x0FBD) __sfr ECCP1DEL; 5660 5661 typedef union 5662 { 5663 struct 5664 { 5665 unsigned P1DC0 : 1; 5666 unsigned P1DC1 : 1; 5667 unsigned P1DC2 : 1; 5668 unsigned P1DC3 : 1; 5669 unsigned P1DC4 : 1; 5670 unsigned P1DC5 : 1; 5671 unsigned P1DC6 : 1; 5672 unsigned P1RSEN : 1; 5673 }; 5674 5675 struct 5676 { 5677 unsigned P1DC : 7; 5678 unsigned : 1; 5679 }; 5680 } __ECCP1DELbits_t; 5681 5682 extern __at(0x0FBD) volatile __ECCP1DELbits_t ECCP1DELbits; 5683 5684 #define _P1DC0 0x01 5685 #define _P1DC1 0x02 5686 #define _P1DC2 0x04 5687 #define _P1DC3 0x08 5688 #define _P1DC4 0x10 5689 #define _P1DC5 0x20 5690 #define _P1DC6 0x40 5691 #define _P1RSEN 0x80 5692 5693 //============================================================================== 5694 5695 5696 //============================================================================== 5697 // PWM1CON Bits 5698 5699 extern __at(0x0FBD) __sfr PWM1CON; 5700 5701 typedef union 5702 { 5703 struct 5704 { 5705 unsigned P1DC0 : 1; 5706 unsigned P1DC1 : 1; 5707 unsigned P1DC2 : 1; 5708 unsigned P1DC3 : 1; 5709 unsigned P1DC4 : 1; 5710 unsigned P1DC5 : 1; 5711 unsigned P1DC6 : 1; 5712 unsigned P1RSEN : 1; 5713 }; 5714 5715 struct 5716 { 5717 unsigned P1DC : 7; 5718 unsigned : 1; 5719 }; 5720 } __PWM1CONbits_t; 5721 5722 extern __at(0x0FBD) volatile __PWM1CONbits_t PWM1CONbits; 5723 5724 #define _PWM1CON_P1DC0 0x01 5725 #define _PWM1CON_P1DC1 0x02 5726 #define _PWM1CON_P1DC2 0x04 5727 #define _PWM1CON_P1DC3 0x08 5728 #define _PWM1CON_P1DC4 0x10 5729 #define _PWM1CON_P1DC5 0x20 5730 #define _PWM1CON_P1DC6 0x40 5731 #define _PWM1CON_P1RSEN 0x80 5732 5733 //============================================================================== 5734 5735 5736 //============================================================================== 5737 // ECCP1AS Bits 5738 5739 extern __at(0x0FBE) __sfr ECCP1AS; 5740 5741 typedef union 5742 { 5743 struct 5744 { 5745 unsigned PSS1BD0 : 1; 5746 unsigned PSS1BD1 : 1; 5747 unsigned PSS1AC0 : 1; 5748 unsigned PSS1AC1 : 1; 5749 unsigned ECCP1AS0 : 1; 5750 unsigned ECCP1AS1 : 1; 5751 unsigned ECCP1AS2 : 1; 5752 unsigned ECCP1ASE : 1; 5753 }; 5754 5755 struct 5756 { 5757 unsigned PSS1BD : 2; 5758 unsigned : 6; 5759 }; 5760 5761 struct 5762 { 5763 unsigned : 2; 5764 unsigned PSS1AC : 2; 5765 unsigned : 4; 5766 }; 5767 5768 struct 5769 { 5770 unsigned : 4; 5771 unsigned ECCP1AS : 3; 5772 unsigned : 1; 5773 }; 5774 } __ECCP1ASbits_t; 5775 5776 extern __at(0x0FBE) volatile __ECCP1ASbits_t ECCP1ASbits; 5777 5778 #define _PSS1BD0 0x01 5779 #define _PSS1BD1 0x02 5780 #define _PSS1AC0 0x04 5781 #define _PSS1AC1 0x08 5782 #define _ECCP1AS0 0x10 5783 #define _ECCP1AS1 0x20 5784 #define _ECCP1AS2 0x40 5785 #define _ECCP1ASE 0x80 5786 5787 //============================================================================== 5788 5789 5790 //============================================================================== 5791 // PSTR1CON Bits 5792 5793 extern __at(0x0FBF) __sfr PSTR1CON; 5794 5795 typedef union 5796 { 5797 struct 5798 { 5799 unsigned STRA : 1; 5800 unsigned STRB : 1; 5801 unsigned STRC : 1; 5802 unsigned STRD : 1; 5803 unsigned STRSYNC : 1; 5804 unsigned : 1; 5805 unsigned CMPL0 : 1; 5806 unsigned CMPL1 : 1; 5807 }; 5808 5809 struct 5810 { 5811 unsigned : 6; 5812 unsigned CMPL : 2; 5813 }; 5814 } __PSTR1CONbits_t; 5815 5816 extern __at(0x0FBF) volatile __PSTR1CONbits_t PSTR1CONbits; 5817 5818 #define _STRA 0x01 5819 #define _STRB 0x02 5820 #define _STRC 0x04 5821 #define _STRD 0x08 5822 #define _STRSYNC 0x10 5823 #define _CMPL0 0x40 5824 #define _CMPL1 0x80 5825 5826 //============================================================================== 5827 5828 5829 //============================================================================== 5830 // WDTCON Bits 5831 5832 extern __at(0x0FC0) __sfr WDTCON; 5833 5834 typedef union 5835 { 5836 struct 5837 { 5838 unsigned SWDTEN : 1; 5839 unsigned ULPSINK : 1; 5840 unsigned ULPEN : 1; 5841 unsigned DS : 1; 5842 unsigned VBGOE : 1; 5843 unsigned ULPLVL : 1; 5844 unsigned LVDSTAT : 1; 5845 unsigned REGSLP : 1; 5846 }; 5847 5848 struct 5849 { 5850 unsigned SWDTE : 1; 5851 unsigned : 1; 5852 unsigned : 1; 5853 unsigned : 1; 5854 unsigned : 1; 5855 unsigned : 1; 5856 unsigned : 1; 5857 unsigned : 1; 5858 }; 5859 } __WDTCONbits_t; 5860 5861 extern __at(0x0FC0) volatile __WDTCONbits_t WDTCONbits; 5862 5863 #define _SWDTEN 0x01 5864 #define _SWDTE 0x01 5865 #define _ULPSINK 0x02 5866 #define _ULPEN 0x04 5867 #define _DS 0x08 5868 #define _VBGOE 0x10 5869 #define _ULPLVL 0x20 5870 #define _LVDSTAT 0x40 5871 #define _REGSLP 0x80 5872 5873 //============================================================================== 5874 5875 5876 //============================================================================== 5877 // ADCON1 Bits 5878 5879 extern __at(0x0FC1) __sfr ADCON1; 5880 5881 typedef union 5882 { 5883 struct 5884 { 5885 unsigned ADCS0 : 1; 5886 unsigned ADCS1 : 1; 5887 unsigned ADCS2 : 1; 5888 unsigned ACQT0 : 1; 5889 unsigned ACQT1 : 1; 5890 unsigned ACQT2 : 1; 5891 unsigned ADCAL : 1; 5892 unsigned ADFM : 1; 5893 }; 5894 5895 struct 5896 { 5897 unsigned ADCS : 3; 5898 unsigned : 5; 5899 }; 5900 5901 struct 5902 { 5903 unsigned : 3; 5904 unsigned ACQT : 3; 5905 unsigned : 2; 5906 }; 5907 } __ADCON1bits_t; 5908 5909 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits; 5910 5911 #define _ADCS0 0x01 5912 #define _ADCS1 0x02 5913 #define _ADCS2 0x04 5914 #define _ACQT0 0x08 5915 #define _ACQT1 0x10 5916 #define _ACQT2 0x20 5917 #define _ADCAL 0x40 5918 #define _ADFM 0x80 5919 5920 //============================================================================== 5921 5922 5923 //============================================================================== 5924 // ADCON0 Bits 5925 5926 extern __at(0x0FC2) __sfr ADCON0; 5927 5928 typedef union 5929 { 5930 struct 5931 { 5932 unsigned ADON : 1; 5933 unsigned GO_NOT_DONE : 1; 5934 unsigned CHS0 : 1; 5935 unsigned CHS1 : 1; 5936 unsigned CHS2 : 1; 5937 unsigned CHS3 : 1; 5938 unsigned VCFG0 : 1; 5939 unsigned VCFG1 : 1; 5940 }; 5941 5942 struct 5943 { 5944 unsigned : 1; 5945 unsigned GO_DONE : 1; 5946 unsigned : 1; 5947 unsigned : 1; 5948 unsigned : 1; 5949 unsigned : 1; 5950 unsigned : 1; 5951 unsigned : 1; 5952 }; 5953 5954 struct 5955 { 5956 unsigned : 1; 5957 unsigned DONE : 1; 5958 unsigned : 1; 5959 unsigned : 1; 5960 unsigned : 1; 5961 unsigned : 1; 5962 unsigned : 1; 5963 unsigned : 1; 5964 }; 5965 5966 struct 5967 { 5968 unsigned : 1; 5969 unsigned GO : 1; 5970 unsigned : 1; 5971 unsigned : 1; 5972 unsigned : 1; 5973 unsigned : 1; 5974 unsigned : 1; 5975 unsigned : 1; 5976 }; 5977 5978 struct 5979 { 5980 unsigned : 1; 5981 unsigned NOT_DONE : 1; 5982 unsigned : 1; 5983 unsigned : 1; 5984 unsigned : 1; 5985 unsigned : 1; 5986 unsigned : 1; 5987 unsigned : 1; 5988 }; 5989 5990 struct 5991 { 5992 unsigned : 2; 5993 unsigned CHS : 4; 5994 unsigned : 2; 5995 }; 5996 5997 struct 5998 { 5999 unsigned : 6; 6000 unsigned VCFG : 2; 6001 }; 6002 } __ADCON0bits_t; 6003 6004 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits; 6005 6006 #define _ADON 0x01 6007 #define _GO_NOT_DONE 0x02 6008 #define _GO_DONE 0x02 6009 #define _DONE 0x02 6010 #define _GO 0x02 6011 #define _NOT_DONE 0x02 6012 #define _CHS0 0x04 6013 #define _CHS1 0x08 6014 #define _CHS2 0x10 6015 #define _CHS3 0x20 6016 #define _VCFG0 0x40 6017 #define _VCFG1 0x80 6018 6019 //============================================================================== 6020 6021 extern __at(0x0FC3) __sfr ADRES; 6022 extern __at(0x0FC3) __sfr ADRESL; 6023 extern __at(0x0FC4) __sfr ADRESH; 6024 6025 //============================================================================== 6026 // SSP1CON2 Bits 6027 6028 extern __at(0x0FC5) __sfr SSP1CON2; 6029 6030 typedef union 6031 { 6032 struct 6033 { 6034 unsigned SEN : 1; 6035 unsigned RSEN : 1; 6036 unsigned PEN : 1; 6037 unsigned RCEN : 1; 6038 unsigned ACKEN : 1; 6039 unsigned ACKDT : 1; 6040 unsigned ACKSTAT : 1; 6041 unsigned GCEN : 1; 6042 }; 6043 6044 struct 6045 { 6046 unsigned : 1; 6047 unsigned ADMSK1 : 1; 6048 unsigned ADMSK2 : 1; 6049 unsigned ADMSK3 : 1; 6050 unsigned ADMSK4 : 1; 6051 unsigned ADMSK5 : 1; 6052 unsigned : 1; 6053 unsigned : 1; 6054 }; 6055 } __SSP1CON2bits_t; 6056 6057 extern __at(0x0FC5) volatile __SSP1CON2bits_t SSP1CON2bits; 6058 6059 #define _SEN 0x01 6060 #define _RSEN 0x02 6061 #define _ADMSK1 0x02 6062 #define _PEN 0x04 6063 #define _ADMSK2 0x04 6064 #define _RCEN 0x08 6065 #define _ADMSK3 0x08 6066 #define _ACKEN 0x10 6067 #define _ADMSK4 0x10 6068 #define _ACKDT 0x20 6069 #define _ADMSK5 0x20 6070 #define _ACKSTAT 0x40 6071 #define _GCEN 0x80 6072 6073 //============================================================================== 6074 6075 6076 //============================================================================== 6077 // SSPCON2 Bits 6078 6079 extern __at(0x0FC5) __sfr SSPCON2; 6080 6081 typedef union 6082 { 6083 struct 6084 { 6085 unsigned SEN : 1; 6086 unsigned RSEN : 1; 6087 unsigned PEN : 1; 6088 unsigned RCEN : 1; 6089 unsigned ACKEN : 1; 6090 unsigned ACKDT : 1; 6091 unsigned ACKSTAT : 1; 6092 unsigned GCEN : 1; 6093 }; 6094 6095 struct 6096 { 6097 unsigned : 1; 6098 unsigned ADMSK1 : 1; 6099 unsigned ADMSK2 : 1; 6100 unsigned ADMSK3 : 1; 6101 unsigned ADMSK4 : 1; 6102 unsigned ADMSK5 : 1; 6103 unsigned : 1; 6104 unsigned : 1; 6105 }; 6106 } __SSPCON2bits_t; 6107 6108 extern __at(0x0FC5) volatile __SSPCON2bits_t SSPCON2bits; 6109 6110 #define _SSPCON2_SEN 0x01 6111 #define _SSPCON2_RSEN 0x02 6112 #define _SSPCON2_ADMSK1 0x02 6113 #define _SSPCON2_PEN 0x04 6114 #define _SSPCON2_ADMSK2 0x04 6115 #define _SSPCON2_RCEN 0x08 6116 #define _SSPCON2_ADMSK3 0x08 6117 #define _SSPCON2_ACKEN 0x10 6118 #define _SSPCON2_ADMSK4 0x10 6119 #define _SSPCON2_ACKDT 0x20 6120 #define _SSPCON2_ADMSK5 0x20 6121 #define _SSPCON2_ACKSTAT 0x40 6122 #define _SSPCON2_GCEN 0x80 6123 6124 //============================================================================== 6125 6126 6127 //============================================================================== 6128 // SSP1CON1 Bits 6129 6130 extern __at(0x0FC6) __sfr SSP1CON1; 6131 6132 typedef union 6133 { 6134 struct 6135 { 6136 unsigned SSPM0 : 1; 6137 unsigned SSPM1 : 1; 6138 unsigned SSPM2 : 1; 6139 unsigned SSPM3 : 1; 6140 unsigned CKP : 1; 6141 unsigned SSPEN : 1; 6142 unsigned SSPOV : 1; 6143 unsigned WCOL : 1; 6144 }; 6145 6146 struct 6147 { 6148 unsigned SSPM : 4; 6149 unsigned : 4; 6150 }; 6151 } __SSP1CON1bits_t; 6152 6153 extern __at(0x0FC6) volatile __SSP1CON1bits_t SSP1CON1bits; 6154 6155 #define _SSPM0 0x01 6156 #define _SSPM1 0x02 6157 #define _SSPM2 0x04 6158 #define _SSPM3 0x08 6159 #define _CKP 0x10 6160 #define _SSPEN 0x20 6161 #define _SSPOV 0x40 6162 #define _WCOL 0x80 6163 6164 //============================================================================== 6165 6166 6167 //============================================================================== 6168 // SSPCON1 Bits 6169 6170 extern __at(0x0FC6) __sfr SSPCON1; 6171 6172 typedef union 6173 { 6174 struct 6175 { 6176 unsigned SSPM0 : 1; 6177 unsigned SSPM1 : 1; 6178 unsigned SSPM2 : 1; 6179 unsigned SSPM3 : 1; 6180 unsigned CKP : 1; 6181 unsigned SSPEN : 1; 6182 unsigned SSPOV : 1; 6183 unsigned WCOL : 1; 6184 }; 6185 6186 struct 6187 { 6188 unsigned SSPM : 4; 6189 unsigned : 4; 6190 }; 6191 } __SSPCON1bits_t; 6192 6193 extern __at(0x0FC6) volatile __SSPCON1bits_t SSPCON1bits; 6194 6195 #define _SSPCON1_SSPM0 0x01 6196 #define _SSPCON1_SSPM1 0x02 6197 #define _SSPCON1_SSPM2 0x04 6198 #define _SSPCON1_SSPM3 0x08 6199 #define _SSPCON1_CKP 0x10 6200 #define _SSPCON1_SSPEN 0x20 6201 #define _SSPCON1_SSPOV 0x40 6202 #define _SSPCON1_WCOL 0x80 6203 6204 //============================================================================== 6205 6206 6207 //============================================================================== 6208 // SSP1STAT Bits 6209 6210 extern __at(0x0FC7) __sfr SSP1STAT; 6211 6212 typedef union 6213 { 6214 struct 6215 { 6216 unsigned BF : 1; 6217 unsigned UA : 1; 6218 unsigned R_NOT_W : 1; 6219 unsigned S : 1; 6220 unsigned P : 1; 6221 unsigned D_NOT_A : 1; 6222 unsigned CKE : 1; 6223 unsigned SMP : 1; 6224 }; 6225 6226 struct 6227 { 6228 unsigned : 1; 6229 unsigned : 1; 6230 unsigned R : 1; 6231 unsigned I2C_START : 1; 6232 unsigned I2C_STOP : 1; 6233 unsigned D : 1; 6234 unsigned : 1; 6235 unsigned : 1; 6236 }; 6237 6238 struct 6239 { 6240 unsigned : 1; 6241 unsigned : 1; 6242 unsigned R_W : 1; 6243 unsigned : 1; 6244 unsigned : 1; 6245 unsigned D_A : 1; 6246 unsigned : 1; 6247 unsigned : 1; 6248 }; 6249 6250 struct 6251 { 6252 unsigned : 1; 6253 unsigned : 1; 6254 unsigned NOT_W : 1; 6255 unsigned : 1; 6256 unsigned : 1; 6257 unsigned NOT_A : 1; 6258 unsigned : 1; 6259 unsigned : 1; 6260 }; 6261 6262 struct 6263 { 6264 unsigned : 1; 6265 unsigned : 1; 6266 unsigned NOT_WRITE : 1; 6267 unsigned : 1; 6268 unsigned : 1; 6269 unsigned NOT_ADDRESS : 1; 6270 unsigned : 1; 6271 unsigned : 1; 6272 }; 6273 6274 struct 6275 { 6276 unsigned : 1; 6277 unsigned : 1; 6278 unsigned READ_WRITE : 1; 6279 unsigned : 1; 6280 unsigned : 1; 6281 unsigned DATA_ADDRESS : 1; 6282 unsigned : 1; 6283 unsigned : 1; 6284 }; 6285 6286 struct 6287 { 6288 unsigned : 1; 6289 unsigned : 1; 6290 unsigned I2C_READ : 1; 6291 unsigned : 1; 6292 unsigned : 1; 6293 unsigned I2C_DAT : 1; 6294 unsigned : 1; 6295 unsigned : 1; 6296 }; 6297 } __SSP1STATbits_t; 6298 6299 extern __at(0x0FC7) volatile __SSP1STATbits_t SSP1STATbits; 6300 6301 #define _BF 0x01 6302 #define _UA 0x02 6303 #define _R_NOT_W 0x04 6304 #define _R 0x04 6305 #define _R_W 0x04 6306 #define _NOT_W 0x04 6307 #define _NOT_WRITE 0x04 6308 #define _READ_WRITE 0x04 6309 #define _I2C_READ 0x04 6310 #define _S 0x08 6311 #define _I2C_START 0x08 6312 #define _P 0x10 6313 #define _I2C_STOP 0x10 6314 #define _D_NOT_A 0x20 6315 #define _D 0x20 6316 #define _D_A 0x20 6317 #define _NOT_A 0x20 6318 #define _NOT_ADDRESS 0x20 6319 #define _DATA_ADDRESS 0x20 6320 #define _I2C_DAT 0x20 6321 #define _CKE 0x40 6322 #define _SMP 0x80 6323 6324 //============================================================================== 6325 6326 6327 //============================================================================== 6328 // SSPSTAT Bits 6329 6330 extern __at(0x0FC7) __sfr SSPSTAT; 6331 6332 typedef union 6333 { 6334 struct 6335 { 6336 unsigned BF : 1; 6337 unsigned UA : 1; 6338 unsigned R_NOT_W : 1; 6339 unsigned S : 1; 6340 unsigned P : 1; 6341 unsigned D_NOT_A : 1; 6342 unsigned CKE : 1; 6343 unsigned SMP : 1; 6344 }; 6345 6346 struct 6347 { 6348 unsigned : 1; 6349 unsigned : 1; 6350 unsigned R : 1; 6351 unsigned I2C_START : 1; 6352 unsigned I2C_STOP : 1; 6353 unsigned D : 1; 6354 unsigned : 1; 6355 unsigned : 1; 6356 }; 6357 6358 struct 6359 { 6360 unsigned : 1; 6361 unsigned : 1; 6362 unsigned R_W : 1; 6363 unsigned : 1; 6364 unsigned : 1; 6365 unsigned D_A : 1; 6366 unsigned : 1; 6367 unsigned : 1; 6368 }; 6369 6370 struct 6371 { 6372 unsigned : 1; 6373 unsigned : 1; 6374 unsigned NOT_W : 1; 6375 unsigned : 1; 6376 unsigned : 1; 6377 unsigned NOT_A : 1; 6378 unsigned : 1; 6379 unsigned : 1; 6380 }; 6381 6382 struct 6383 { 6384 unsigned : 1; 6385 unsigned : 1; 6386 unsigned NOT_WRITE : 1; 6387 unsigned : 1; 6388 unsigned : 1; 6389 unsigned NOT_ADDRESS : 1; 6390 unsigned : 1; 6391 unsigned : 1; 6392 }; 6393 6394 struct 6395 { 6396 unsigned : 1; 6397 unsigned : 1; 6398 unsigned READ_WRITE : 1; 6399 unsigned : 1; 6400 unsigned : 1; 6401 unsigned DATA_ADDRESS : 1; 6402 unsigned : 1; 6403 unsigned : 1; 6404 }; 6405 6406 struct 6407 { 6408 unsigned : 1; 6409 unsigned : 1; 6410 unsigned I2C_READ : 1; 6411 unsigned : 1; 6412 unsigned : 1; 6413 unsigned I2C_DAT : 1; 6414 unsigned : 1; 6415 unsigned : 1; 6416 }; 6417 } __SSPSTATbits_t; 6418 6419 extern __at(0x0FC7) volatile __SSPSTATbits_t SSPSTATbits; 6420 6421 #define _SSPSTAT_BF 0x01 6422 #define _SSPSTAT_UA 0x02 6423 #define _SSPSTAT_R_NOT_W 0x04 6424 #define _SSPSTAT_R 0x04 6425 #define _SSPSTAT_R_W 0x04 6426 #define _SSPSTAT_NOT_W 0x04 6427 #define _SSPSTAT_NOT_WRITE 0x04 6428 #define _SSPSTAT_READ_WRITE 0x04 6429 #define _SSPSTAT_I2C_READ 0x04 6430 #define _SSPSTAT_S 0x08 6431 #define _SSPSTAT_I2C_START 0x08 6432 #define _SSPSTAT_P 0x10 6433 #define _SSPSTAT_I2C_STOP 0x10 6434 #define _SSPSTAT_D_NOT_A 0x20 6435 #define _SSPSTAT_D 0x20 6436 #define _SSPSTAT_D_A 0x20 6437 #define _SSPSTAT_NOT_A 0x20 6438 #define _SSPSTAT_NOT_ADDRESS 0x20 6439 #define _SSPSTAT_DATA_ADDRESS 0x20 6440 #define _SSPSTAT_I2C_DAT 0x20 6441 #define _SSPSTAT_CKE 0x40 6442 #define _SSPSTAT_SMP 0x80 6443 6444 //============================================================================== 6445 6446 extern __at(0x0FC8) __sfr SSP1ADD; 6447 6448 //============================================================================== 6449 // SSP1MSK Bits 6450 6451 extern __at(0x0FC8) __sfr SSP1MSK; 6452 6453 typedef struct 6454 { 6455 unsigned MSK0 : 1; 6456 unsigned MSK1 : 1; 6457 unsigned MSK2 : 1; 6458 unsigned MSK3 : 1; 6459 unsigned MSK4 : 1; 6460 unsigned MSK5 : 1; 6461 unsigned MSK6 : 1; 6462 unsigned MSK7 : 1; 6463 } __SSP1MSKbits_t; 6464 6465 extern __at(0x0FC8) volatile __SSP1MSKbits_t SSP1MSKbits; 6466 6467 #define _MSK0 0x01 6468 #define _MSK1 0x02 6469 #define _MSK2 0x04 6470 #define _MSK3 0x08 6471 #define _MSK4 0x10 6472 #define _MSK5 0x20 6473 #define _MSK6 0x40 6474 #define _MSK7 0x80 6475 6476 //============================================================================== 6477 6478 extern __at(0x0FC8) __sfr SSPADD; 6479 extern __at(0x0FC9) __sfr SSP1BUF; 6480 extern __at(0x0FC9) __sfr SSPBUF; 6481 6482 //============================================================================== 6483 // T2CON Bits 6484 6485 extern __at(0x0FCA) __sfr T2CON; 6486 6487 typedef union 6488 { 6489 struct 6490 { 6491 unsigned T2CKPS0 : 1; 6492 unsigned T2CKPS1 : 1; 6493 unsigned TMR2ON : 1; 6494 unsigned T2OUTPS0 : 1; 6495 unsigned T2OUTPS1 : 1; 6496 unsigned T2OUTPS2 : 1; 6497 unsigned T2OUTPS3 : 1; 6498 unsigned : 1; 6499 }; 6500 6501 struct 6502 { 6503 unsigned T2CKPS : 2; 6504 unsigned : 6; 6505 }; 6506 6507 struct 6508 { 6509 unsigned : 3; 6510 unsigned T2OUTPS : 4; 6511 unsigned : 1; 6512 }; 6513 } __T2CONbits_t; 6514 6515 extern __at(0x0FCA) volatile __T2CONbits_t T2CONbits; 6516 6517 #define _T2CKPS0 0x01 6518 #define _T2CKPS1 0x02 6519 #define _TMR2ON 0x04 6520 #define _T2OUTPS0 0x08 6521 #define _T2OUTPS1 0x10 6522 #define _T2OUTPS2 0x20 6523 #define _T2OUTPS3 0x40 6524 6525 //============================================================================== 6526 6527 extern __at(0x0FCB) __sfr PR2; 6528 extern __at(0x0FCC) __sfr TMR2; 6529 6530 //============================================================================== 6531 // T1CON Bits 6532 6533 extern __at(0x0FCD) __sfr T1CON; 6534 6535 typedef union 6536 { 6537 struct 6538 { 6539 unsigned TMR1ON : 1; 6540 unsigned RD16 : 1; 6541 unsigned NOT_T1SYNC : 1; 6542 unsigned T1OSCEN : 1; 6543 unsigned T1CKPS0 : 1; 6544 unsigned T1CKPS1 : 1; 6545 unsigned TMR1CS0 : 1; 6546 unsigned TMR1CS1 : 1; 6547 }; 6548 6549 struct 6550 { 6551 unsigned : 4; 6552 unsigned T1CKPS : 2; 6553 unsigned : 2; 6554 }; 6555 6556 struct 6557 { 6558 unsigned : 6; 6559 unsigned TMR1CS : 2; 6560 }; 6561 } __T1CONbits_t; 6562 6563 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits; 6564 6565 #define _TMR1ON 0x01 6566 #define _RD16 0x02 6567 #define _NOT_T1SYNC 0x04 6568 #define _T1OSCEN 0x08 6569 #define _T1CKPS0 0x10 6570 #define _T1CKPS1 0x20 6571 #define _TMR1CS0 0x40 6572 #define _TMR1CS1 0x80 6573 6574 //============================================================================== 6575 6576 extern __at(0x0FCE) __sfr TMR1; 6577 extern __at(0x0FCE) __sfr TMR1L; 6578 extern __at(0x0FCF) __sfr TMR1H; 6579 6580 //============================================================================== 6581 // RCON Bits 6582 6583 extern __at(0x0FD0) __sfr RCON; 6584 6585 typedef union 6586 { 6587 struct 6588 { 6589 unsigned NOT_BOR : 1; 6590 unsigned NOT_POR : 1; 6591 unsigned NOT_PD : 1; 6592 unsigned NOT_TO : 1; 6593 unsigned NOT_RI : 1; 6594 unsigned NOT_CM : 1; 6595 unsigned : 1; 6596 unsigned IPEN : 1; 6597 }; 6598 6599 struct 6600 { 6601 unsigned BOR : 1; 6602 unsigned POR : 1; 6603 unsigned PD : 1; 6604 unsigned TO : 1; 6605 unsigned RI : 1; 6606 unsigned CM : 1; 6607 unsigned : 1; 6608 unsigned : 1; 6609 }; 6610 } __RCONbits_t; 6611 6612 extern __at(0x0FD0) volatile __RCONbits_t RCONbits; 6613 6614 #define _NOT_BOR 0x01 6615 #define _BOR 0x01 6616 #define _NOT_POR 0x02 6617 #define _POR 0x02 6618 #define _NOT_PD 0x04 6619 #define _PD 0x04 6620 #define _NOT_TO 0x08 6621 #define _TO 0x08 6622 #define _NOT_RI 0x10 6623 #define _RI 0x10 6624 #define _NOT_CM 0x20 6625 #define _CM 0x20 6626 #define _IPEN 0x80 6627 6628 //============================================================================== 6629 6630 6631 //============================================================================== 6632 // CM2CON Bits 6633 6634 extern __at(0x0FD1) __sfr CM2CON; 6635 6636 typedef union 6637 { 6638 struct 6639 { 6640 unsigned CCH0 : 1; 6641 unsigned CCH1 : 1; 6642 unsigned CREF : 1; 6643 unsigned EVPOL0 : 1; 6644 unsigned EVPOL1 : 1; 6645 unsigned CPOL : 1; 6646 unsigned COE : 1; 6647 unsigned CON : 1; 6648 }; 6649 6650 struct 6651 { 6652 unsigned CCH : 2; 6653 unsigned : 6; 6654 }; 6655 6656 struct 6657 { 6658 unsigned : 3; 6659 unsigned EVPOL : 2; 6660 unsigned : 3; 6661 }; 6662 } __CM2CONbits_t; 6663 6664 extern __at(0x0FD1) volatile __CM2CONbits_t CM2CONbits; 6665 6666 #define _CM2CON_CCH0 0x01 6667 #define _CM2CON_CCH1 0x02 6668 #define _CM2CON_CREF 0x04 6669 #define _CM2CON_EVPOL0 0x08 6670 #define _CM2CON_EVPOL1 0x10 6671 #define _CM2CON_CPOL 0x20 6672 #define _CM2CON_COE 0x40 6673 #define _CM2CON_CON 0x80 6674 6675 //============================================================================== 6676 6677 6678 //============================================================================== 6679 // CM2CON1 Bits 6680 6681 extern __at(0x0FD1) __sfr CM2CON1; 6682 6683 typedef union 6684 { 6685 struct 6686 { 6687 unsigned CCH0 : 1; 6688 unsigned CCH1 : 1; 6689 unsigned CREF : 1; 6690 unsigned EVPOL0 : 1; 6691 unsigned EVPOL1 : 1; 6692 unsigned CPOL : 1; 6693 unsigned COE : 1; 6694 unsigned CON : 1; 6695 }; 6696 6697 struct 6698 { 6699 unsigned CCH : 2; 6700 unsigned : 6; 6701 }; 6702 6703 struct 6704 { 6705 unsigned : 3; 6706 unsigned EVPOL : 2; 6707 unsigned : 3; 6708 }; 6709 } __CM2CON1bits_t; 6710 6711 extern __at(0x0FD1) volatile __CM2CON1bits_t CM2CON1bits; 6712 6713 #define _CM2CON1_CCH0 0x01 6714 #define _CM2CON1_CCH1 0x02 6715 #define _CM2CON1_CREF 0x04 6716 #define _CM2CON1_EVPOL0 0x08 6717 #define _CM2CON1_EVPOL1 0x10 6718 #define _CM2CON1_CPOL 0x20 6719 #define _CM2CON1_COE 0x40 6720 #define _CM2CON1_CON 0x80 6721 6722 //============================================================================== 6723 6724 6725 //============================================================================== 6726 // CM1CON Bits 6727 6728 extern __at(0x0FD2) __sfr CM1CON; 6729 6730 typedef union 6731 { 6732 struct 6733 { 6734 unsigned CCH0 : 1; 6735 unsigned CCH1 : 1; 6736 unsigned CREF : 1; 6737 unsigned EVPOL0 : 1; 6738 unsigned EVPOL1 : 1; 6739 unsigned CPOL : 1; 6740 unsigned COE : 1; 6741 unsigned CON : 1; 6742 }; 6743 6744 struct 6745 { 6746 unsigned CCH : 2; 6747 unsigned : 6; 6748 }; 6749 6750 struct 6751 { 6752 unsigned : 3; 6753 unsigned EVPOL : 2; 6754 unsigned : 3; 6755 }; 6756 } __CM1CONbits_t; 6757 6758 extern __at(0x0FD2) volatile __CM1CONbits_t CM1CONbits; 6759 6760 #define _CCH0 0x01 6761 #define _CCH1 0x02 6762 #define _CREF 0x04 6763 #define _EVPOL0 0x08 6764 #define _EVPOL1 0x10 6765 #define _CPOL 0x20 6766 #define _COE 0x40 6767 #define _CON 0x80 6768 6769 //============================================================================== 6770 6771 6772 //============================================================================== 6773 // CM1CON1 Bits 6774 6775 extern __at(0x0FD2) __sfr CM1CON1; 6776 6777 typedef union 6778 { 6779 struct 6780 { 6781 unsigned CCH0 : 1; 6782 unsigned CCH1 : 1; 6783 unsigned CREF : 1; 6784 unsigned EVPOL0 : 1; 6785 unsigned EVPOL1 : 1; 6786 unsigned CPOL : 1; 6787 unsigned COE : 1; 6788 unsigned CON : 1; 6789 }; 6790 6791 struct 6792 { 6793 unsigned CCH : 2; 6794 unsigned : 6; 6795 }; 6796 6797 struct 6798 { 6799 unsigned : 3; 6800 unsigned EVPOL : 2; 6801 unsigned : 3; 6802 }; 6803 } __CM1CON1bits_t; 6804 6805 extern __at(0x0FD2) volatile __CM1CON1bits_t CM1CON1bits; 6806 6807 #define _CM1CON1_CCH0 0x01 6808 #define _CM1CON1_CCH1 0x02 6809 #define _CM1CON1_CREF 0x04 6810 #define _CM1CON1_EVPOL0 0x08 6811 #define _CM1CON1_EVPOL1 0x10 6812 #define _CM1CON1_CPOL 0x20 6813 #define _CM1CON1_COE 0x40 6814 #define _CM1CON1_CON 0x80 6815 6816 //============================================================================== 6817 6818 6819 //============================================================================== 6820 // OSCCON Bits 6821 6822 extern __at(0x0FD3) __sfr OSCCON; 6823 6824 typedef union 6825 { 6826 struct 6827 { 6828 unsigned SCS0 : 1; 6829 unsigned SCS1 : 1; 6830 unsigned : 1; 6831 unsigned OSTS : 1; 6832 unsigned IRCF0 : 1; 6833 unsigned IRCF1 : 1; 6834 unsigned IRCF2 : 1; 6835 unsigned IDLEN : 1; 6836 }; 6837 6838 struct 6839 { 6840 unsigned SCS : 2; 6841 unsigned : 6; 6842 }; 6843 6844 struct 6845 { 6846 unsigned : 4; 6847 unsigned IRCF : 3; 6848 unsigned : 1; 6849 }; 6850 } __OSCCONbits_t; 6851 6852 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits; 6853 6854 #define _SCS0 0x01 6855 #define _SCS1 0x02 6856 #define _OSTS 0x08 6857 #define _IRCF0 0x10 6858 #define _IRCF1 0x20 6859 #define _IRCF2 0x40 6860 #define _IDLEN 0x80 6861 6862 //============================================================================== 6863 6864 6865 //============================================================================== 6866 // T0CON Bits 6867 6868 extern __at(0x0FD5) __sfr T0CON; 6869 6870 typedef union 6871 { 6872 struct 6873 { 6874 unsigned T0PS0 : 1; 6875 unsigned T0PS1 : 1; 6876 unsigned T0PS2 : 1; 6877 unsigned PSA : 1; 6878 unsigned T0SE : 1; 6879 unsigned T0CS : 1; 6880 unsigned T08BIT : 1; 6881 unsigned TMR0ON : 1; 6882 }; 6883 6884 struct 6885 { 6886 unsigned T0PS : 3; 6887 unsigned : 5; 6888 }; 6889 } __T0CONbits_t; 6890 6891 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits; 6892 6893 #define _T0PS0 0x01 6894 #define _T0PS1 0x02 6895 #define _T0PS2 0x04 6896 #define _PSA 0x08 6897 #define _T0SE 0x10 6898 #define _T0CS 0x20 6899 #define _T08BIT 0x40 6900 #define _TMR0ON 0x80 6901 6902 //============================================================================== 6903 6904 extern __at(0x0FD6) __sfr TMR0; 6905 extern __at(0x0FD6) __sfr TMR0L; 6906 extern __at(0x0FD7) __sfr TMR0H; 6907 6908 //============================================================================== 6909 // STATUS Bits 6910 6911 extern __at(0x0FD8) __sfr STATUS; 6912 6913 typedef struct 6914 { 6915 unsigned C : 1; 6916 unsigned DC : 1; 6917 unsigned Z : 1; 6918 unsigned OV : 1; 6919 unsigned N : 1; 6920 unsigned : 1; 6921 unsigned : 1; 6922 unsigned : 1; 6923 } __STATUSbits_t; 6924 6925 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits; 6926 6927 #define _C 0x01 6928 #define _DC 0x02 6929 #define _Z 0x04 6930 #define _OV 0x08 6931 #define _N 0x10 6932 6933 //============================================================================== 6934 6935 extern __at(0x0FD9) __sfr FSR2L; 6936 extern __at(0x0FDA) __sfr FSR2H; 6937 extern __at(0x0FDB) __sfr PLUSW2; 6938 extern __at(0x0FDC) __sfr PREINC2; 6939 extern __at(0x0FDD) __sfr POSTDEC2; 6940 extern __at(0x0FDE) __sfr POSTINC2; 6941 extern __at(0x0FDF) __sfr INDF2; 6942 extern __at(0x0FE0) __sfr BSR; 6943 extern __at(0x0FE1) __sfr FSR1L; 6944 extern __at(0x0FE2) __sfr FSR1H; 6945 extern __at(0x0FE3) __sfr PLUSW1; 6946 extern __at(0x0FE4) __sfr PREINC1; 6947 extern __at(0x0FE5) __sfr POSTDEC1; 6948 extern __at(0x0FE6) __sfr POSTINC1; 6949 extern __at(0x0FE7) __sfr INDF1; 6950 extern __at(0x0FE8) __sfr WREG; 6951 extern __at(0x0FE9) __sfr FSR0L; 6952 extern __at(0x0FEA) __sfr FSR0H; 6953 extern __at(0x0FEB) __sfr PLUSW0; 6954 extern __at(0x0FEC) __sfr PREINC0; 6955 extern __at(0x0FED) __sfr POSTDEC0; 6956 extern __at(0x0FEE) __sfr POSTINC0; 6957 extern __at(0x0FEF) __sfr INDF0; 6958 6959 //============================================================================== 6960 // INTCON3 Bits 6961 6962 extern __at(0x0FF0) __sfr INTCON3; 6963 6964 typedef union 6965 { 6966 struct 6967 { 6968 unsigned INT1IF : 1; 6969 unsigned INT2IF : 1; 6970 unsigned INT3IF : 1; 6971 unsigned INT1IE : 1; 6972 unsigned INT2IE : 1; 6973 unsigned INT3IE : 1; 6974 unsigned INT1IP : 1; 6975 unsigned INT2IP : 1; 6976 }; 6977 6978 struct 6979 { 6980 unsigned INT1F : 1; 6981 unsigned INT2F : 1; 6982 unsigned INT3F : 1; 6983 unsigned INT1E : 1; 6984 unsigned INT2E : 1; 6985 unsigned INT3E : 1; 6986 unsigned INT1P : 1; 6987 unsigned INT2P : 1; 6988 }; 6989 } __INTCON3bits_t; 6990 6991 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits; 6992 6993 #define _INT1IF 0x01 6994 #define _INT1F 0x01 6995 #define _INT2IF 0x02 6996 #define _INT2F 0x02 6997 #define _INT3IF 0x04 6998 #define _INT3F 0x04 6999 #define _INT1IE 0x08 7000 #define _INT1E 0x08 7001 #define _INT2IE 0x10 7002 #define _INT2E 0x10 7003 #define _INT3IE 0x20 7004 #define _INT3E 0x20 7005 #define _INT1IP 0x40 7006 #define _INT1P 0x40 7007 #define _INT2IP 0x80 7008 #define _INT2P 0x80 7009 7010 //============================================================================== 7011 7012 7013 //============================================================================== 7014 // INTCON2 Bits 7015 7016 extern __at(0x0FF1) __sfr INTCON2; 7017 7018 typedef union 7019 { 7020 struct 7021 { 7022 unsigned RBIP : 1; 7023 unsigned INT3IP : 1; 7024 unsigned TMR0IP : 1; 7025 unsigned INTEDG3 : 1; 7026 unsigned INTEDG2 : 1; 7027 unsigned INTEDG1 : 1; 7028 unsigned INTEDG0 : 1; 7029 unsigned NOT_RBPU : 1; 7030 }; 7031 7032 struct 7033 { 7034 unsigned : 1; 7035 unsigned INT3P : 1; 7036 unsigned T0IP : 1; 7037 unsigned : 1; 7038 unsigned : 1; 7039 unsigned : 1; 7040 unsigned : 1; 7041 unsigned RBPU : 1; 7042 }; 7043 } __INTCON2bits_t; 7044 7045 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits; 7046 7047 #define _RBIP 0x01 7048 #define _INT3IP 0x02 7049 #define _INT3P 0x02 7050 #define _TMR0IP 0x04 7051 #define _T0IP 0x04 7052 #define _INTEDG3 0x08 7053 #define _INTEDG2 0x10 7054 #define _INTEDG1 0x20 7055 #define _INTEDG0 0x40 7056 #define _NOT_RBPU 0x80 7057 #define _RBPU 0x80 7058 7059 //============================================================================== 7060 7061 7062 //============================================================================== 7063 // INTCON Bits 7064 7065 extern __at(0x0FF2) __sfr INTCON; 7066 7067 typedef union 7068 { 7069 struct 7070 { 7071 unsigned RBIF : 1; 7072 unsigned INT0IF : 1; 7073 unsigned TMR0IF : 1; 7074 unsigned RBIE : 1; 7075 unsigned INT0IE : 1; 7076 unsigned TMR0IE : 1; 7077 unsigned PEIE_GIEL : 1; 7078 unsigned GIE_GIEH : 1; 7079 }; 7080 7081 struct 7082 { 7083 unsigned : 1; 7084 unsigned INT0F : 1; 7085 unsigned T0IF : 1; 7086 unsigned : 1; 7087 unsigned INT0E : 1; 7088 unsigned T0IE : 1; 7089 unsigned PEIE : 1; 7090 unsigned GIE : 1; 7091 }; 7092 7093 struct 7094 { 7095 unsigned : 1; 7096 unsigned : 1; 7097 unsigned : 1; 7098 unsigned : 1; 7099 unsigned : 1; 7100 unsigned : 1; 7101 unsigned GIEL : 1; 7102 unsigned GIEH : 1; 7103 }; 7104 } __INTCONbits_t; 7105 7106 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits; 7107 7108 #define _RBIF 0x01 7109 #define _INT0IF 0x02 7110 #define _INT0F 0x02 7111 #define _TMR0IF 0x04 7112 #define _T0IF 0x04 7113 #define _RBIE 0x08 7114 #define _INT0IE 0x10 7115 #define _INT0E 0x10 7116 #define _TMR0IE 0x20 7117 #define _T0IE 0x20 7118 #define _PEIE_GIEL 0x40 7119 #define _PEIE 0x40 7120 #define _GIEL 0x40 7121 #define _GIE_GIEH 0x80 7122 #define _GIE 0x80 7123 #define _GIEH 0x80 7124 7125 //============================================================================== 7126 7127 extern __at(0x0FF3) __sfr PROD; 7128 extern __at(0x0FF3) __sfr PRODL; 7129 extern __at(0x0FF4) __sfr PRODH; 7130 extern __at(0x0FF5) __sfr TABLAT; 7131 extern __at(0x0FF6) __sfr TBLPTR; 7132 extern __at(0x0FF6) __sfr TBLPTRL; 7133 extern __at(0x0FF7) __sfr TBLPTRH; 7134 extern __at(0x0FF8) __sfr TBLPTRU; 7135 extern __at(0x0FF9) __sfr PC; 7136 extern __at(0x0FF9) __sfr PCL; 7137 extern __at(0x0FFA) __sfr PCLATH; 7138 extern __at(0x0FFB) __sfr PCLATU; 7139 7140 //============================================================================== 7141 // STKPTR Bits 7142 7143 extern __at(0x0FFC) __sfr STKPTR; 7144 7145 typedef union 7146 { 7147 struct 7148 { 7149 unsigned SP0 : 1; 7150 unsigned SP1 : 1; 7151 unsigned SP2 : 1; 7152 unsigned SP3 : 1; 7153 unsigned SP4 : 1; 7154 unsigned : 1; 7155 unsigned STKUNF : 1; 7156 unsigned STKFUL : 1; 7157 }; 7158 7159 struct 7160 { 7161 unsigned : 1; 7162 unsigned : 1; 7163 unsigned : 1; 7164 unsigned : 1; 7165 unsigned : 1; 7166 unsigned : 1; 7167 unsigned : 1; 7168 unsigned STKOVF : 1; 7169 }; 7170 7171 struct 7172 { 7173 unsigned SP : 5; 7174 unsigned : 3; 7175 }; 7176 } __STKPTRbits_t; 7177 7178 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits; 7179 7180 #define _SP0 0x01 7181 #define _SP1 0x02 7182 #define _SP2 0x04 7183 #define _SP3 0x08 7184 #define _SP4 0x10 7185 #define _STKUNF 0x40 7186 #define _STKFUL 0x80 7187 #define _STKOVF 0x80 7188 7189 //============================================================================== 7190 7191 extern __at(0x0FFD) __sfr TOS; 7192 extern __at(0x0FFD) __sfr TOSL; 7193 extern __at(0x0FFE) __sfr TOSH; 7194 extern __at(0x0FFF) __sfr TOSU; 7195 7196 //============================================================================== 7197 // 7198 // Configuration Addresses 7199 // 7200 //============================================================================== 7201 7202 #define __CONFIG1L 0x00FFF8 7203 #define __CONFIG1H 0x00FFF9 7204 #define __CONFIG2L 0x00FFFA 7205 #define __CONFIG2H 0x00FFFB 7206 #define __CONFIG3L 0x00FFFC 7207 #define __CONFIG3H 0x00FFFD 7208 #define __CONFIG4L 0x00FFFE 7209 #define __CONFIG4H 0x00FFFF 7210 7211 //============================================================================== 7212 7213 #endif // #ifndef __PIC18LF46J13_H__ 7214