00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef _PIC24_PORTS_H_
00032 #define _PIC24_PORTS_H_
00033
00034
00083
00084 #ifdef __DOXYGEN__
00085
00098 static inline void CONFIG_Rxy_AS_DIG_OUTPUT() {}
00099
00105 static inline void CONFIG_Rxy_AS_DIG_OD_OUTPUT() {}
00106
00111 static inline void CONFIG_Rxy_AS_DIG_INPUT() {}
00112
00117 static inline void CONFIG_ANx_AS_ANALOG() {}
00119
00137
00142 #define ENABLE_Rxy_ANALOG() _PCFGn = 0
00143
00148 #define DISABLE_Rxy_ANALOG() _PCFGn = 1
00149
00155 #define CONFIG_RPy_AS_DIG_PIN() _PCFG = 1
00156
00160 #define ENABLE_Rxy_OPENDRAIN() _ODCxy = 1
00161
00165 #define DISABLE_Rxy_OPENDRAIN() _ODCxy = 0
00166
00170 #define ENABLE_Rxy_PULLUP() _CNmPUE = 1
00171
00175 #define DISABLE_Rxy_PULLUP() _CNmPUE = 1
00176
00181 #define ENABLE_Rxy_CN_INTERRUPT() _CNmIE = 1
00182
00187 #define DISABLE_Rxy_CN_INTERRUPT() _CNmIE = 0
00188
00189 #endif // #ifdef __DOXYGEN__
00190
00191
00192
00194
00202
00203
00204
00205 #if defined(_INT1R) || defined(__DOXYGEN__)
00208 #define CONFIG_INT1_TO_RP(pin) _INT1R = pin
00209 #else
00210 #define CONFIG_INT1_TO_RP(pin)
00211 #endif
00212
00213 #if defined(_INT2R) || defined(__DOXYGEN__)
00214 #define CONFIG_INT2_TO_RP(pin) _INT2R = pin
00215 #else
00216 #define CONFIG_INT2_TO_RP(pin)
00217 #endif
00218
00219 #if defined(_T2CKR) || defined(__DOXYGEN__)
00220 #define CONFIG_T2CK_TO_RP(pin) _T2CKR = pin
00221 #else
00222 #define CONFIG_T2CK_TO_RP(pin)
00223 #endif
00224
00225 #if defined(_T3CKR) || defined(__DOXYGEN__)
00226 #define CONFIG_T3CK_TO_RP(pin) _T3CKR = pin
00227 #else
00228 #define CONFIG_T3CK_TO_RP(pin)
00229 #endif
00230
00231 #if defined(_T4CKR) || defined(__DOXYGEN__)
00232 #define CONFIG_T4CK_TO_RP(pin) _T4CKR = pin
00233 #else
00234 #define CONFIG_T4CK_TO_RP(pin)
00235 #endif
00236
00237 #if defined(_T5CKR) || defined(__DOXYGEN__)
00238 #define CONFIG_T5CK_TO_RP(pin) _T5CKR = pin
00239 #else
00240 #define CONFIG_T5CK_TO_RP(pin)
00241 #endif
00242
00243 #if defined(_IC1R) || defined(__DOXYGEN__)
00244 #define CONFIG_IC1_TO_RP(pin) _IC1R = pin
00245 #else
00246 #define CONFIG_IC1_TO_RP(pin)
00247 #endif
00248
00249 #if defined(_IC2R) || defined(__DOXYGEN__)
00250 #define CONFIG_IC2_TO_RP(pin) _IC2R = pin
00251 #else
00252 #define CONFIG_IC2_TO_RP(pin)
00253 #endif
00254
00255 #if defined(_IC3R) || defined(__DOXYGEN__)
00256 #define CONFIG_IC3_TO_RP(pin) _IC3R = pin
00257 #else
00258 #define CONFIG_IC3_TO_RP(pin)
00259 #endif
00260
00261 #if defined(_IC4R) || defined(__DOXYGEN__)
00262 #define CONFIG_IC4_TO_RP(pin) _IC4R = pin
00263 #else
00264 #define CONFIG_IC4_TO_RP(pin)
00265 #endif
00266
00267 #if defined(_IC5R) || defined(__DOXYGEN__)
00268 #define CONFIG_IC5_TO_RP(pin) _IC5R = pin
00269 #else
00270 #define CONFIG_IC5_TO_RP(pin)
00271 #endif
00272
00273 #if defined(_IC6R) || defined(__DOXYGEN__)
00274 #define CONFIG_IC6_TO_RP(pin) _IC6R = pin
00275 #else
00276 #define CONFIG_IC6_TO_RP(pin)
00277 #endif
00278
00279 #if defined(_IC7R) || defined(__DOXYGEN__)
00280 #define CONFIG_IC7_TO_RP(pin) _IC7R = pin
00281 #else
00282 #define CONFIG_IC7_TO_RP(pin)
00283 #endif
00284
00285 #if defined(_IC8R) || defined(__DOXYGEN__)
00286 #define CONFIG_IC8_TO_RP(pin) _IC8R = pin
00287 #else
00288 #define CONFIG_IC8_TO_RP(pin)
00289 #endif
00290
00291 #if defined(_OCFAR) || defined(__DOXYGEN__)
00292 #define CONFIG_OCFA_TO_RP(pin) _OCFAR = pin
00293 #else
00294 #define CONFIG_OCFA_TO_RP(pin)
00295 #endif
00296
00297 #if defined(_OCFBR) || defined(__DOXYGEN__)
00298 #define CONFIG_OCFB_TO_RP(pin) _OCFBR = pin
00299 #else
00300 #define CONFIG_OCFB_TO_RP(pin)
00301 #endif
00302
00303 #if defined(_U1RXR) || defined(__DOXYGEN__)
00304 #define CONFIG_U1RX_TO_RP(pin) _U1RXR = pin
00305 #else
00306 #define CONFIG_U1RX_TO_RP(pin)
00307 #endif
00308
00309 #if defined(_U1CTSR) || defined(__DOXYGEN__)
00310 #define CONFIG_U1CTS_TO_RP(pin) _U1CTSR = pin
00311 #else
00312 #define CONFIG_U1CTS_TO_RP(pin)
00313 #endif
00314
00315 #if defined(_U2RXR) || defined(__DOXYGEN__)
00316 #define CONFIG_U2RX_TO_RP(pin) _U2RXR = pin
00317 #else
00318 #define CONFIG_U2RX_TO_RP(pin)
00319 #endif
00320
00321 #if defined(_U2CTSR) || defined(__DOXYGEN__)
00322 #define CONFIG_U2CTS_TO_RP(pin) _U2CTSR = pin
00323 #else
00324 #define CONFIG_U2CTS_TO_RP(pin)
00325 #endif
00326
00327 #if defined(_SDI1R) || defined(__DOXYGEN__)
00328 #define CONFIG_SDI1_TO_RP(pin) _SDI1R = pin
00329 #else
00330 #define CONFIG_SDI1_TO_RP(pin)
00331 #endif
00332
00333 #if defined(_SCK1R) || defined(__DOXYGEN__)
00334 #define CONFIG_SCK1IN_TO_RP(pin) _SCK1R = pin
00335 #else
00336 #define CONFIG_SCK1IN_TO_RP(pin)
00337 #endif
00338
00339 #if defined(_SS1R) || defined(__DOXYGEN__)
00340 #define CONFIG_SS1IN_TO_RP(pin) _SS1R = pin
00341 #else
00342 #define CONFIG_SS1IN_TO_RP(pin)
00343 #endif
00344
00345 #if defined(_SDI2R) || defined(__DOXYGEN__)
00346 #define CONFIG_SDI2_TO_RP(pin) _SDI2R = pin
00347 #else
00348 #define CONFIG_SDI2_TO_RP(pin)
00349 #endif
00350
00351 #if defined(_SCK2R) || defined(__DOXYGEN__)
00352 #define CONFIG_SCK2IN_TO_RP(pin) _SCK2R = pin
00353 #else
00354 #define CONFIG_SCK2IN_TO_RP(pin)
00355 #endif
00356
00357 #if defined(_SS2R) || defined(__DOXYGEN__)
00358 #define CONFIG_SS2IN_TO_RP(pin) _SS2R = pin
00359 #else
00360 #define CONFIG_SS2IN_TO_RP(pin)
00361 #endif
00362
00363 #if defined(_C1RXR) || defined(__DOXYGEN__)
00364 #define CONFIG_C1RXR_TO_RP(pin) _C1RXR = pin
00365 #else
00366 #define CONFIG_C1RXR_TO_RP(pin)
00367 #endif
00368
00369 #if defined(_C2RXR) || defined(__DOXYGEN__)
00370 #define CONFIG_C2RXR_TO_RP(pin) _C2RXR = pin
00371 #else
00372 #define CONFIG_C2RXR_TO_RP(pin)
00373 #endif
00374
00375
00376
00377
00378
00379
00382
00383 #ifdef __DOXYGEN__
00384
00393 #define CONFIG_yyy_TO_RP(pin) _RP##pin##R = z
00394 #endif
00395
00396 #if defined(_RP0R) || defined(__DOXYGEN__)
00399 #define CONFIG_C1OUT_TO_RP(pin) _RP##pin##R = 1
00400 #else
00401 #define CONFIG_C1OUT_TO_RP(pin)
00402 #endif
00403
00404 #if defined(_RP0R) || defined(__DOXYGEN__)
00405 #define CONFIG_C2OUT_TO_RP(pin) _RP##pin##R = 2
00406 #else
00407 #define CONFIG_C2OUT_TO_RP(pin)
00408 #endif
00409
00410 #if defined(_RP0R) || defined(__DOXYGEN__)
00411 #define CONFIG_U1TX_TO_RP(pin) _RP##pin##R = 3
00412 #else
00413 #define CONFIG_U1TX_TO_RP(pin)
00414 #endif
00415
00416 #if defined(_RP0R) || defined(__DOXYGEN__)
00417 #define CONFIG_U1RTS_TO_RP(pin) _RP##pin##R = 4
00418 #else
00419 #define CONFIG_U1RTS_TO_RP(pin)
00420 #endif
00421
00422 #if defined(_RP0R) || defined(__DOXYGEN__)
00423 #define CONFIG_U2TX_TO_RP(pin) _RP##pin##R = 5
00424 #else
00425 #define CONFIG_U2TX_TO_RP(pin)
00426 #endif
00427
00428 #if defined(_RP0R) || defined(__DOXYGEN__)
00429 #define CONFIG_U2RTS_TO_RP(pin) _RP##pin##R = 6
00430 #else
00431 #define CONFIG_U2RTS_TO_RP(pin)
00432 #endif
00433
00434 #if defined(_RP0R) || defined(__DOXYGEN__)
00435 #define CONFIG_SDO1_TO_RP(pin) _RP##pin##R = 7
00436 #else
00437 #define CONFIG_SDO1_TO_RP(pin)
00438 #endif
00439
00440 #if defined(_RP0R) || defined(__DOXYGEN__)
00441 #define CONFIG_SCK1OUT_TO_RP(pin) _RP##pin##R = 8
00442 #else
00443 #define CONFIG_SCK1OUT_TO_RP(pin)
00444 #endif
00445
00446 #if defined(_RP0R) || defined(__DOXYGEN__)
00447 #define CONFIG_SS1OUT_TO_RP(pin) _RP##pin##R = 9
00448 #else
00449 #define CONFIG_SS1OUT_TO_RP(pin)
00450 #endif
00451
00452 #if defined(_RP0R) || defined(__DOXYGEN__)
00453 #define CONFIG_SDO2_TO_RP(pin) _RP##pin##R = 10
00454 #else
00455 #define CONFIG_SDO2_TO_RP(pin)
00456 #endif
00457
00458 #if defined(_RP0R) || defined(__DOXYGEN__)
00459 #define CONFIG_SCK2OUT_TO_RP(pin) _RP##pin##R = 11
00460 #else
00461 #define CONFIG_SCK2OUT_TO_RP(pin)
00462 #endif
00463
00464 #if defined(_RP0R) || defined(__DOXYGEN__)
00465 #define CONFIG_SS2OUT_TO_RP(pin) _RP##pin##R = 12
00466 #else
00467 #define CONFIG_SS2OUT_TO_RP(pin)
00468 #endif
00469
00470 #if defined(_RP0R) || defined(__DOXYGEN__)
00471 #define CONFIG_C1TX_TO_RP(pin) _RP##pin##R = 16
00472 #else
00473 #define CONFIG_C1TX_TO_RP(pin)
00474 #endif
00475
00476 #if defined(_RP0R) || defined(__DOXYGEN__)
00477 #define CONFIG_OC1_TO_RP(pin) _RP##pin##R = 18
00478 #else
00479 #define CONFIG_OC1_TO_RP(pin)
00480 #endif
00481
00482 #if defined(_RP0R) || defined(__DOXYGEN__)
00483 #define CONFIG_OC2_TO_RP(pin) _RP##pin##R = 19
00484 #else
00485 #define CONFIG_OC2_TO_RP(pin)
00486 #endif
00487
00488 #if defined(_RP0R) || defined(__DOXYGEN__)
00489 #define CONFIG_OC3_TO_RP(pin) _RP##pin##R = 20
00490 #else
00491 #define CONFIG_OC3_TO_RP(pin)
00492 #endif
00493
00494 #if defined(_RP0R) || defined(__DOXYGEN__)
00495 #define CONFIG_OC4_TO_RP(pin) _RP##pin##R = 21
00496 #else
00497 #define CONFIG_OC4_TO_RP(pin)
00498 #endif
00499
00500 #if defined(_RP0R) || defined(__DOXYGEN__)
00501 #define CONFIG_OC5_TO_RP(pin) _RP##pin##R = 22
00502 #else
00503 #define CONFIG_OC5_TO_RP(pin)
00504 #endif
00505
00506
00507
00508
00509 #if defined(__PIC24HJ128GP202__)
00510
00511 #include "devices/pic24hj128gp202_ports.h"
00512
00513 #elif defined(__PIC24HJ128GP204__)
00514
00515 #include "devices/pic24hj128gp204_ports.h"
00516
00517 #elif defined(__PIC24HJ128GP206__)
00518
00519 #include "devices/pic24hj128gp206_ports.h"
00520
00521 #elif defined(__PIC24HJ128GP210__)
00522
00523 #include "devices/pic24hj128gp210_ports.h"
00524
00525 #elif defined(__PIC24HJ128GP306__)
00526
00527 #include "devices/pic24hj128gp306_ports.h"
00528
00529 #elif defined(__PIC24HJ128GP310__)
00530
00531 #include "devices/pic24hj128gp310_ports.h"
00532
00533 #elif defined(__PIC24HJ128GP502__)
00534
00535 #include "devices/pic24hj128gp502_ports.h"
00536
00537 #elif defined(__PIC24HJ128GP504__)
00538
00539 #include "devices/pic24hj128gp504_ports.h"
00540
00541 #elif defined(__PIC24HJ128GP506__)
00542
00543 #include "devices/pic24hj128gp506_ports.h"
00544
00545 #elif defined(__PIC24HJ128GP510__)
00546
00547 #include "devices/pic24hj128gp510_ports.h"
00548
00549 #elif defined(__PIC24HJ12GP201__)
00550
00551 #include "devices/pic24hj12gp201_ports.h"
00552
00553 #elif defined(__PIC24HJ12GP202__)
00554
00555 #include "devices/pic24hj12gp202_ports.h"
00556
00557 #elif defined(__PIC24HJ16GP304__)
00558
00559 #include "devices/pic24hj16gp304_ports.h"
00560
00561 #elif defined(__PIC24HJ256GP206__)
00562
00563 #include "devices/pic24hj256gp206_ports.h"
00564
00565 #elif defined(__PIC24HJ256GP210__)
00566
00567 #include "devices/pic24hj256gp210_ports.h"
00568
00569 #elif defined(__PIC24HJ256GP610__)
00570
00571 #include "devices/pic24hj256gp610_ports.h"
00572
00573 #elif defined(__PIC24HJ32GP202__)
00574
00575 #include "devices/pic24hj32gp202_ports.h"
00576
00577 #elif defined(__PIC24HJ32GP204__)
00578
00579 #include "devices/pic24hj32gp204_ports.h"
00580
00581 #elif defined(__PIC24HJ32GP302__)
00582
00583 #include "devices/pic24hj32gp302_ports.h"
00584
00585 #elif defined(__PIC24HJ32GP304__)
00586
00587 #include "devices/pic24hj32gp304_ports.h"
00588
00589 #elif defined(__PIC24HJ64GP202__)
00590
00591 #include "devices/pic24hj64gp202_ports.h"
00592
00593 #elif defined(__PIC24HJ64GP204__)
00594
00595 #include "devices/pic24hj64gp204_ports.h"
00596
00597 #elif defined(__PIC24HJ64GP206__)
00598
00599 #include "devices/pic24hj64gp206_ports.h"
00600
00601 #elif defined(__PIC24HJ64GP210__)
00602
00603 #include "devices/pic24hj64gp210_ports.h"
00604
00605 #elif defined(__PIC24HJ64GP502__)
00606
00607 #include "devices/pic24hj64gp502_ports.h"
00608
00609 #elif defined(__PIC24HJ64GP504__)
00610
00611 #include "devices/pic24hj64gp504_ports.h"
00612
00613 #elif defined(__PIC24HJ64GP506__)
00614
00615 #include "devices/pic24hj64gp506_ports.h"
00616
00617 #elif defined(__PIC24HJ64GP510__)
00618
00619 #include "devices/pic24hj64gp510_ports.h"
00620
00621 #elif defined(__PIC24F04KA200__)
00622
00623 #include "devices/pic24f04ka200_ports.h"
00624
00625 #elif defined(__PIC24F04KA201__)
00626
00627 #include "devices/pic24f04ka201_ports.h"
00628
00629 #elif defined(__PIC24F08KA101__)
00630
00631 #include "devices/pic24f08ka101_ports.h"
00632
00633 #elif defined(__PIC24F08KA102__)
00634
00635 #include "devices/pic24f08ka102_ports.h"
00636
00637 #elif defined(__PIC24F16KA101__)
00638
00639 #include "devices/pic24f16ka101_ports.h"
00640
00641 #elif defined(__PIC24F16KA102__)
00642
00643 #include "devices/pic24f16ka102_ports.h"
00644
00645 #elif defined(__PIC24F32KA101__)
00646
00647 #include "devices/pic24f32ka101_ports.h"
00648
00649 #elif defined(__PIC24F32KA102__)
00650
00651 #include "devices/pic24f32ka102_ports.h"
00652
00653 #elif defined(__PIC24FJ128GA006__)
00654
00655 #include "devices/pic24fj128ga006_ports.h"
00656
00657 #elif defined(__PIC24FJ128GA008__)
00658
00659 #include "devices/pic24fj128ga008_ports.h"
00660
00661 #elif defined(__PIC24FJ128GA010__)
00662
00663 #include "devices/pic24fj128ga010_ports.h"
00664
00665 #elif defined(__PIC24FJ128GA106__)
00666
00667 #include "devices/pic24fj128ga106_ports.h"
00668
00669 #elif defined(__PIC24FJ128GA108__)
00670
00671 #include "devices/pic24fj128ga108_ports.h"
00672
00673 #elif defined(__PIC24FJ128GA110__)
00674
00675 #include "devices/pic24fj128ga110_ports.h"
00676
00677 #elif defined(__PIC24FJ128GB106__)
00678
00679 #include "devices/pic24fj128gb106_ports.h"
00680
00681 #elif defined(__PIC24FJ128GB108__)
00682
00683 #include "devices/pic24fj128gb108_ports.h"
00684
00685 #elif defined(__PIC24FJ128GB110__)
00686
00687 #include "devices/pic24fj128gb110_ports.h"
00688
00689 #elif defined(__PIC24FJ16GA002__)
00690
00691 #include "devices/pic24fj16ga002_ports.h"
00692
00693 #elif defined(__PIC24FJ16GA004__)
00694
00695 #include "devices/pic24fj16ga004_ports.h"
00696
00697 #elif defined(__PIC24FJ192GA106__)
00698
00699 #include "devices/pic24fj192ga106_ports.h"
00700
00701 #elif defined(__PIC24FJ192GA108__)
00702
00703 #include "devices/pic24fj192ga108_ports.h"
00704
00705 #elif defined(__PIC24FJ192GA110__)
00706
00707 #include "devices/pic24fj192ga110_ports.h"
00708
00709 #elif defined(__PIC24FJ192GB106__)
00710
00711 #include "devices/pic24fj192gb106_ports.h"
00712
00713 #elif defined(__PIC24FJ192GB108__)
00714
00715 #include "devices/pic24fj192gb108_ports.h"
00716
00717 #elif defined(__PIC24FJ192GB110__)
00718
00719 #include "devices/pic24fj192gb110_ports.h"
00720
00721 #elif defined(__PIC24FJ256GA106__)
00722
00723 #include "devices/pic24fj256ga106_ports.h"
00724
00725 #elif defined(__PIC24FJ256GA108__)
00726
00727 #include "devices/pic24fj256ga108_ports.h"
00728
00729 #elif defined(__PIC24FJ256GA110__)
00730
00731 #include "devices/pic24fj256ga110_ports.h"
00732
00733 #elif defined(__PIC24FJ256GB106__)
00734
00735 #include "devices/pic24fj256gb106_ports.h"
00736
00737 #elif defined(__PIC24FJ256GB108__)
00738
00739 #include "devices/pic24fj256gb108_ports.h"
00740
00741 #elif defined(__PIC24FJ256GB110__)
00742
00743 #include "devices/pic24fj256gb110_ports.h"
00744
00745 #elif defined(__PIC24FJ32GA002__)
00746
00747 #include "devices/pic24fj32ga002_ports.h"
00748
00749 #elif defined(__PIC24FJ32GA004__)
00750
00751 #include "devices/pic24fj32ga004_ports.h"
00752
00753 #elif defined(__PIC24FJ48GA002__)
00754
00755 #include "devices/pic24fj48ga002_ports.h"
00756
00757 #elif defined(__PIC24FJ48GA004__)
00758
00759 #include "devices/pic24fj48ga004_ports.h"
00760
00761 #elif defined(__PIC24FJ64GA002__)
00762
00763 #include "devices/pic24fj64ga002_ports.h"
00764
00765 #elif defined(__PIC24FJ64GA004__)
00766
00767 #include "devices/pic24fj64ga004_ports.h"
00768
00769 #elif defined(__PIC24FJ64GA006__)
00770
00771 #include "devices/pic24fj64ga006_ports.h"
00772
00773 #elif defined(__PIC24FJ64GA008__)
00774
00775 #include "devices/pic24fj64ga008_ports.h"
00776
00777 #elif defined(__PIC24FJ64GA010__)
00778
00779 #include "devices/pic24fj64ga010_ports.h"
00780
00781 #elif defined(__PIC24FJ64GA106__)
00782
00783 #include "devices/pic24fj64ga106_ports.h"
00784
00785 #elif defined(__PIC24FJ64GA108__)
00786
00787 #include "devices/pic24fj64ga108_ports.h"
00788
00789 #elif defined(__PIC24FJ64GA110__)
00790
00791 #include "devices/pic24fj64ga110_ports.h"
00792
00793 #elif defined(__PIC24FJ64GB106__)
00794
00795 #include "devices/pic24fj64gb106_ports.h"
00796
00797 #elif defined(__PIC24FJ64GB108__)
00798
00799 #include "devices/pic24fj64gb108_ports.h"
00800
00801 #elif defined(__PIC24FJ64GB110__)
00802
00803 #include "devices/pic24fj64gb110_ports.h"
00804
00805 #elif defined(__PIC24FJ96GA006__)
00806
00807 #include "devices/pic24fj96ga006_ports.h"
00808
00809 #elif defined(__PIC24FJ96GA008__)
00810
00811 #include "devices/pic24fj96ga008_ports.h"
00812
00813 #elif defined(__PIC24FJ96GA010__)
00814
00815 #include "devices/pic24fj96ga010_ports.h"
00816
00817 #else
00818
00819 #error -- processor ID not specified in pic24_ports.h
00820
00821 #endif
00822
00823
00824 #ifndef _PIC24_DIGIO_DEFINED
00825 #warning Digital IO macros not defined for this device!
00826 #warning Edit common\pic24_ports.h file!
00827 #endif
00828 #endif