📄 ports.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 + -