⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ports.h

📁 Mplab C30编译器
💻 H
字号:
/*********************************************************************/
/*              Header for IO ports module library functions         */
/*********************************************************************/

#if defined(__dsPIC30F__)
#include <p30fxxxx.h>
#elif defined(__dsPIC33F__)
#include <p33Fxxxx.h>
#elif defined(__PIC24H__)
#include <p24Hxxxx.h>
#endif

#ifndef __PORTS_H
#define __PORTS_H

/* List of SFRs for IO ports */
/* This list contains the SFRs with default (POR) values to be used for configuring IOports */
/* The user can modify this based on the requirement */
#define CNEN1_VALUE             0x0000
#define CNPU1_VALUE             0x0000

#define CNEN2_VALUE             0x0000
#define CNPU2_VALUE             0x0000

#define IEC0_VALUE              0x0000
#define IEC1_VALUE              0x0000
#define IEC2_VALUE              0x0000

#define IFS0_VALUE              0x0000
#define IFS1_VALUE              0x0000
#define IFS2_VALUE              0x0000

#define IPC0_VALUE              0x4444
#define IPC1_VALUE              0x4444
#define IPC2_VALUE              0x4444
#define IPC3_VALUE              0x4444
#define IPC4_VALUE              0x4444
#define IPC5_VALUE              0x4444
#define IPC6_VALUE              0x4444
#define IPC7_VALUE              0x4444
#define IPC8_VALUE              0x4444
#define IPC9_VALUE              0x4444
#define IPC10_VALUE             0x4444
#define IPC11_VALUE             0x4444

#if defined(__dsPIC33F__) || defined(__PIC24H__)

#define IEC3_VALUE              0x0000
#define IEC4_VALUE              0x0000

#define IFS3_VALUE              0x0000
#define IFS4_VALUE              0x0000

#define IPC12_VALUE             0x4444
#define IPC13_VALUE             0x4444
#define IPC14_VALUE             0x4444
#define IPC15_VALUE             0x4444
#define IPC16_VALUE             0x4444
#define IPC17_VALUE             0x4444

#endif

/* Config Bit Defines to be used for CN interrupt configuration */
#define CHANGE_INT_ON           0xFFFFFFFF    /* interrupts on  */
#define CHANGE_INT_OFF          0xF7FFFFFF    /* interrupts off */

/* Setting the priority of CN interrupt */
#define CHANGE_INT_PRI_0        0xF8FFFFFF
#define CHANGE_INT_PRI_1        0xF9FFFFFF
#define CHANGE_INT_PRI_2        0xFAFFFFFF
#define CHANGE_INT_PRI_3        0xFBFFFFFF
#define CHANGE_INT_PRI_4        0xFCFFFFFF
#define CHANGE_INT_PRI_5        0xFDFFFFFF
#define CHANGE_INT_PRI_6        0xFEFFFFFF
#define CHANGE_INT_PRI_7        0xFFFFFFFF

/* Setting the priority of External interrupt */
#define EXT_INT_PRI_0           0xFFF8
#define EXT_INT_PRI_1           0xFFF9
#define EXT_INT_PRI_2           0xFFFA
#define EXT_INT_PRI_3           0xFFFB
#define EXT_INT_PRI_4           0xFFFC
#define EXT_INT_PRI_5           0xFFFD
#define EXT_INT_PRI_6           0xFFFE
#define EXT_INT_PRI_7           0xFFFF

/* enable / disable External interrupt */
#define EXT_INT_ENABLE          0xFFFF
#define EXT_INT_DISABLE         0xFFF7

/* External interrupts edge selection defines */
#define RISING_EDGE_INT         0xFFEF    /*Interrupt is set by a rising edge  */
#define FALLING_EDGE_INT        0xFFFF    /*Interrupt is set by a falling edge */

/* Macros to Enable CN interrupts */

#define EnableCN0               CNEN1bits.CN0IE = 1
#define EnableCN1               CNEN1bits.CN1IE = 1
#define EnableCN2               CNEN1bits.CN2IE = 1
#define EnableCN3               CNEN1bits.CN3IE = 1
#define EnableCN4               CNEN1bits.CN4IE = 1
#define EnableCN5               CNEN1bits.CN5IE = 1
#define EnableCN6               CNEN1bits.CN6IE = 1
#define EnableCN7               CNEN1bits.CN7IE = 1

#ifdef _CN8IE

#define EnableCN8               CNEN1bits.CN8IE = 1
#define EnableCN9               CNEN1bits.CN9IE = 1
#define EnableCN10              CNEN1bits.CN10IE = 1
#define EnableCN11              CNEN1bits.CN11IE = 1
#define EnableCN12              CNEN1bits.CN12IE = 1
#define EnableCN13              CNEN1bits.CN13IE = 1
#define EnableCN14              CNEN1bits.CN14IE = 1
#define EnableCN15              CNEN1bits.CN15IE = 1
#define EnableCN16              CNEN2bits.CN16IE = 1
#define EnableCN17              CNEN2bits.CN17IE = 1
#define EnableCN18              CNEN2bits.CN18IE = 1

#endif

#ifdef _CN19IE

#define EnableCN19              CNEN2bits.CN19IE = 1
#define EnableCN20              CNEN2bits.CN20IE = 1
#define EnableCN21              CNEN2bits.CN21IE = 1

#endif

#ifdef _CN22IE

#define EnableCN22              CNEN2bits.CN22IE = 1
#define EnableCN23              CNEN2bits.CN23IE = 1

#endif

/* Macros to Disable CN interrupts */

#define DisableCN0              CNEN1bits.CN0IE = 0
#define DisableCN1              CNEN1bits.CN1IE = 0
#define DisableCN2              CNEN1bits.CN2IE = 0
#define DisableCN3              CNEN1bits.CN3IE = 0
#define DisableCN4              CNEN1bits.CN4IE = 0
#define DisableCN5              CNEN1bits.CN5IE = 0
#define DisableCN6              CNEN1bits.CN6IE = 0
#define DisableCN7              CNEN1bits.CN7IE = 0

#ifdef _CN8IE

#define DisableCN8              CNEN1bits.CN8IE = 0
#define DisableCN9              CNEN1bits.CN9IE = 0
#define DisableCN10             CNEN1bits.CN10IE = 0
#define DisableCN11             CNEN1bits.CN11IE = 0
#define DisableCN12             CNEN1bits.CN12IE = 0
#define DisableCN13             CNEN1bits.CN13IE = 0
#define DisableCN14             CNEN1bits.CN14IE = 0
#define DisableCN15             CNEN1bits.CN15IE = 0
#define DisableCN16             CNEN2bits.CN16IE = 0
#define DisableCN17             CNEN2bits.CN17IE = 0
#define DisableCN18             CNEN2bits.CN18IE = 0

#endif

#ifdef _CN19IE

#define DisableCN19             CNEN2bits.CN19IE = 0
#define DisableCN20             CNEN2bits.CN20IE = 0
#define DisableCN21             CNEN2bits.CN21IE = 0

#endif

#ifdef _CN22IE

#define DisableCN22             CNEN2bits.CN22IE = 0
#define DisableCN23             CNEN2bits.CN23IE = 0

#endif

/* Macros to Enable External interrupts */

#define EnableINT0              _INT0IE = 1
#define DisableINT0             _INT0IE = 0
#define SetPriorityInt0(priority)     _INT0IP = priority

/* ConfigINT0
 * Enable/disable INT0 interrupts,set priority and falling edge/rising edge
 */
void ConfigINT0(unsigned int) __attribute__ ((section (".libperi")));

/* CloseINT0
 * Disable INT0 interrupts, registers
 */
void CloseINT0() __attribute__ ((section (".libperi")));

#ifdef _INT1IF

#define EnableINT1              _INT1IE = 1
#define DisableINT1             _INT1IE = 0
#define SetPriorityInt1(priority)     _INT1IP = priority

/* ConfigINT1
 * Enable/disable INT1 interrupt,set priority and falling edge/rising edge
 */
void ConfigINT1(unsigned int) __attribute__ ((section (".libperi")));

/* CloseINT1
 * Disable INT1 interrupts, registers
 */
void CloseINT1() __attribute__ ((section (".libperi")));

#endif

#ifdef _INT2IF

#define EnableINT2              _INT2IE = 1
#define DisableINT2             _INT2IE = 0
#define SetPriorityInt2(priority)     _INT2IP = priority

/* ConfigINT2
 * Enable/disable INT2 interrupt,set priority and falling edge/rising edge
 */
void ConfigINT2(unsigned int) __attribute__ ((section (".libperi")));

/* CloseINT2
 * Disable INT2 interrupts, registers
 */
void CloseINT2() __attribute__ ((section (".libperi")));

#endif

#ifdef _INT3IF

#define EnableINT3              _INT3IE = 1
#define DisableINT3             _INT3IE = 0
#define SetPriorityInt3(priority)     _INT3IP = priority

/* ConfigINT3
 * Enable/disable INT3 interrupt,set priority and falling edge/rising edge
 */
void ConfigINT3(unsigned int) __attribute__ ((section (".libperi")));

/* CloseINT3
 * Disable INT3 interrupts, registers
 */
void CloseINT3() __attribute__ ((section (".libperi")));

#endif

#ifdef _INT4IF

#define EnableINT4              _INT4IE = 1
#define DisableINT4             _INT4IE = 0
#define SetPriorityInt4(priority)     _INT4IP = priority

/* ConfigINT4
 * Enable/disable INT4 interrupt,set priority and falling edge/rising edge
 */
void ConfigINT4(unsigned int) __attribute__ ((section (".libperi")));

/* CloseINT4
 * Disable INT4 interrupts, registers
 */
void CloseINT4() __attribute__ ((section (".libperi")));

#endif

/* Function Prototypes */

/* ConfigCNPullups
 * Enable/ disable pull up registers
 */
void ConfigCNPullups(long int) __attribute__ ((section (".libperi")));

/* ConfigIntCN
 * Enable/Disable CN interrupt and set priority
 */
void ConfigIntCN(long int) __attribute__ ((section (".libperi")));

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -