📄 p24fj128ga010ps.h
字号:
unsigned CAL:8;
unsigned RTCPTR0:1;
unsigned RTCPTR1:1;
unsigned RTCOE:1;
unsigned HALFSEC:1;
unsigned RTCSYNC:1;
unsigned RTCWREN:1;
unsigned :1;
unsigned RTCEN:1;
};
struct {
unsigned CAL0:1;
unsigned CAL1:1;
unsigned CAL2:1;
unsigned CAL3:1;
unsigned CAL4:1;
unsigned CAL5:1;
unsigned CAL6:1;
unsigned CAL7:1;
unsigned RTCPTR:2;
};
} RCFGCALbits __attribute__((__near__));
extern unsigned int CMCON __attribute__((__near__));
extern struct {
unsigned C1POS:1;
unsigned C1NEG:1;
unsigned C2POS:1;
unsigned C2NEG:1;
unsigned C1INV:1;
unsigned C2INV:1;
unsigned C1OUT:1;
unsigned C2OUT:1;
unsigned C1OUTEN:1;
unsigned C2OUTEN:1;
unsigned C1EN:1;
unsigned C2EN:1;
unsigned C1EVT:1;
unsigned C2EVT:1;
unsigned :1;
unsigned CMIDL:1;
} CMCONbits __attribute__((__near__));
extern unsigned int CVRCON __attribute__((__near__));
extern union {
struct {
unsigned CVR:4;
unsigned CVRSS:1;
unsigned CVRR:1;
unsigned CVROE:1;
unsigned CVREN:1;
};
struct {
unsigned CVR0:1;
unsigned CVR1:1;
unsigned CVR2:1;
unsigned CVR3:1;
};
} CVRCONbits __attribute__((__near__));
extern unsigned int RCON __attribute__((__near__));
extern struct {
unsigned POR:1;
unsigned BOR:1;
unsigned IDLE:1;
unsigned SLEEP:1;
unsigned WDTO:1;
unsigned SWDTEN:1;
unsigned SWR:1;
unsigned EXTR:1;
unsigned :6;
unsigned IOPUWR:1;
unsigned TRAPR:1;
} RCONbits __attribute__((__near__));
extern unsigned int OSCCON __attribute__((__near__));
extern union {
struct {
unsigned OSWEN:1;
unsigned SOSCEN:1;
unsigned :1;
unsigned CF:1;
unsigned :1;
unsigned LOCK:1;
unsigned :1;
unsigned CLKLOCK:1;
unsigned NOSC:3;
unsigned :1;
unsigned COSC:3;
};
struct {
unsigned :1;
unsigned LPOSCEN:1;
unsigned :6;
unsigned NOSC0:1;
unsigned NOSC1:1;
unsigned NOSC2:1;
unsigned :1;
unsigned COSC0:1;
unsigned COSC1:1;
unsigned COSC2:1;
};
} OSCCONbits __attribute__((__near__));
extern unsigned int CLKDIV __attribute__((__near__));
extern union {
struct {
unsigned :8;
unsigned RCDIV:3;
unsigned DOZEN:1;
unsigned DOZE:3;
unsigned ROI:1;
};
struct {
unsigned :8;
unsigned RCDIV0:1;
unsigned RCDIV1:1;
unsigned RCDIV2:1;
unsigned :1;
unsigned DOZE0:1;
unsigned DOZE1:1;
unsigned DOZE2:1;
};
} CLKDIVbits __attribute__((__near__));
extern unsigned int OSCTUN __attribute__((__near__));
extern union {
struct {
unsigned TUN:6;
};
struct {
unsigned TUN0:1;
unsigned TUN1:1;
unsigned TUN2:1;
unsigned TUN3:1;
unsigned TUN4:1;
unsigned TUN5:1;
};
} OSCTUNbits __attribute__((__near__));
extern unsigned int NVMCON __attribute__((__near__));
extern union {
struct {
unsigned NVMOP:4;
unsigned :2;
unsigned ERASE:1;
unsigned :6;
unsigned WRERR:1;
unsigned WREN:1;
unsigned WR:1;
};
struct {
unsigned NVMOP0:1;
unsigned NVMOP1:1;
unsigned NVMOP2:1;
unsigned NVMOP3:1;
};
struct {
unsigned PROGOP:4;
};
struct {
unsigned PROGOP0:1;
unsigned PROGOP1:1;
unsigned PROGOP2:1;
unsigned PROGOP3:1;
};
} NVMCONbits __attribute__((__near__));
extern unsigned char NVMKEY __attribute__((__near__));
extern unsigned int PMD1 __attribute__((__near__));
extern struct {
unsigned ADCMD:1;
unsigned :2;
unsigned SPI1MD:1;
unsigned SPI2MD:1;
unsigned U1MD:1;
unsigned U2MD:1;
unsigned I2C1MD:1;
unsigned :3;
unsigned T1MD:1;
unsigned T2MD:1;
unsigned T3MD:1;
unsigned T4MD:1;
unsigned T5MD:1;
} PMD1bits __attribute__((__near__));
extern unsigned int PMD2 __attribute__((__near__));
extern struct {
unsigned OC1MD:1;
unsigned OC2MD:1;
unsigned OC3MD:1;
unsigned OC4MD:1;
unsigned OC5MD:1;
unsigned :3;
unsigned IC1MD:1;
unsigned IC2MD:1;
unsigned IC3MD:1;
unsigned IC4MD:1;
unsigned IC5MD:1;
} PMD2bits __attribute__((__near__));
extern unsigned int PMD3 __attribute__((__near__));
extern struct {
unsigned :1;
unsigned IC2MD2:1;
unsigned :6;
unsigned PMPMD:1;
unsigned RTCCMD:1;
unsigned CMPMD:1;
} PMD3bits __attribute__((__near__));
/* ---------------------------------------------------------- */
/* Some useful macros for inline assembly stuff */
/* ---------------------------------------------------------- */
#define Nop() {__asm__ volatile ("nop");}
#define ClrWdt() {__asm__ volatile ("clrwdt");}
#define Sleep() {__asm__ volatile ("pwrsav #0");}
#define Idle() {__asm__ volatile ("pwrsav #1");}
/*----------------------------------------------------------- */
/* Some useful macros for allocating data memory */
/*----------------------------------------------------------- */
/* The following macros require an argument N that specifies */
/* alignment. N must a power of two, minimum value = 2. */
/* For example, to declare an uninitialized array that is */
/* aligned to a 32 byte address: */
/* */
/* int _BSS(32) buf[16]; */
/* */
/* To declare an initialized array without special */
/* alignment: */
/* */
/* int _DATA(2) table1[] = {0, 1, 1, 2, 3, 5, 8, 13, 21}; */
/* */
#define _BSS(N) __attribute__((aligned(N)))
#define _DATA(N) __attribute__((aligned(N)))
/* The following macros do not require an argument. They can */
/* be used to locate a variable in persistent data memory or */
/* in near data memory. For example, to declare two variables */
/* that retain their values across a device reset: */
/* */
/* int _PERSISTENT var1,var2; */
/* */
#define _PERSISTENT __attribute__((persistent))
#define _NEAR __attribute__((near))
/* ---------------------------------------------------------- */
/* Some useful macros for declaring functions */
/* ---------------------------------------------------------- */
/* The following macros can be used to declare interrupt */
/* service routines (ISRs). For example, to declare an ISR */
/* for the timer1 interrupt: */
/* */
/* void _ISR _T1Interrupt(void); */
/* */
/* To declare an ISR for the SPI1 interrupt with fast */
/* context save: */
/* */
/* void _ISRFAST _SPI1Interrupt(void); */
/* */
/* Note: ISRs will be installed into the interrupt vector */
/* tables automatically if the reserved names listed in the */
/* MPLAB C30 Compiler User's Guide (DS51284) are used. */
/* */
#define _ISR __attribute__((interrupt))
#define _ISRFAST __attribute__((interrupt, shadow))
/* ---------------------------------------------------------- */
/* Some useful macros for changing the CPU IPL */
/* ---------------------------------------------------------- */
/* The following macros can be used to modify the current CPU */
/* IPL. The definition of the macro may vary from device to */
/* device. */
/* */
/* To safely set the CPU IPL, use SET_CPU_IPL(ipl); the */
/* valid range of ipl is 0-7, it may be any expression. */
/* */
/* SET_CPU_IPL(7); */
/* */
/* To preserve the current IPL and save it use */
/* SET_AND_SAVE_CPU_IPL(save_to, ipl); the valid range of ipl */
/* is 0-7 and may be any expression, save_to should denote */
/* some temporary storage. */
/* */
/* int old_ipl; */
/* */
/* SET_AND_SAVE_CPU_IPL(old_ipl, 7); */
/* */
/* The IPL can be restored with RESTORE_CPU_IPL(saved_to) */
/* */
/* RESTORE_CPU_IPL(old_ipl); */
#define SET_CPU_IPL(ipl) { \
int DISI_save; \
\
DISI_save = DISICNT; \
asm volatile ("disi #0x3FFF"); \
SRbits.IPL = ipl; \
DISICNT = DISI_save; } (void) 0;
#define SET_AND_SAVE_CPU_IPL(save_to, ipl) { \
save_to = SRbits.IPL; \
SET_CPU_IPL(ipl); } (void) 0;
#define RESTORE_CPU_IPL(saved_to) SET_CPU_IPL(saved_to)
/* -------------------------------------------------------- */
/* Macros for setting device configuration registers */
/* -------------------------------------------------------- */
/* Register CONFIG2 (0x157fc) */
#define _CONFIG2(x) __attribute__((section("__CONFIG2.sec,code"))) int _CONFIG2 = (x);
/*
** Only one invocation of CONFIG2 should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set CONFIG2.
** Multiple options may be combined, as shown:
**
** _CONFIG2( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
** Watchdog prescaler:
** FWPSA_OFF 1:32
** FWPSA_ON 1:128
**
** Clock switching and clock monitor:
** FCKSM_CSECME Both enabled
** FCKSM_CSECMD Only clock switching enabled
** FCKSM_CSDCMD Both disabled
**
** OSCI and OSCO function:
** OSCIOFNC_ON Functions as I/O
** OSCIOFNC_OFF Oscillator or Fosc/2
**
** Oscillator Selection:
** POSCMOD_EC External clock
** POSCMOD_XT XT oscillator
** POSCMOD_HS HS oscillator
** POSCMOD_NONE Primary disabled
**
*/
#define FWPSA_OFF 0xFEFF
#define FWPSA_ON 0xFFFF
#define FCKSM_CSECME 0xFF3F
#define FCKSM_CSECMD 0xFF7F
#define FCKSM_CSDCMD 0xFFBF
#define OSCIOFNC_ON 0xFFDF
#define OSCIOFNC_OFF 0xFFFF
#define POSCMOD_EC 0xFFFC
#define POSCMOD_XT 0xFFFD
#define POSCMOD_HS 0xFFFE
#define POSCMOD_NONE 0xFFFF
/* Register CONFIG1 (0x157fe) */
#define _CONFIG1(x) __attribute__((section("__CONFIG1.sec,code"))) int _CONFIG1 = (x);
/*
** Only one invocation of CONFIG1 should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set CONFIG1.
** Multiple options may be combined, as shown:
**
** _CONFIG1( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
** JTAG:
** JTAGEN_OFF Disabled
** JTAGEN_ON Enabled
**
** Code Protect:
** GSS0_OFF Disabled
** GSS0_ON Enabled
**
** Write Protect:
** GWRP_OFF Disabled
** GWRP_ON Enabled
**
** Background Debugger:
** BKBUG_OFF Disabled
** BKBUG_ON Enabled
**
** Clip-on Emulation:
** COE_OFF Disabled
** COE_ON Enabled
**
** Watchdog Timer:
** FWDTEN_OFF Disabled
** FWDTEN_ON Enabled
**
** Oscillator Selection:
** FNOSC_FRC Fast RC oscillator
** FNOSC_FRCPLL Fast RC oscillator w/ PLL
** FNOSC_PRI Primary oscillator (XT, HS, EC)
** FNOSC_PRIPLL Primary oscillator (XT, HS, EC) w/ PLL
** FNOSC_SOSC Secondary oscillator
** FNOSC_LPRC Low power RC oscillator
** FNOSC_LPRCDIV Low power RC oscillator with divide
**
** Watchdog postscale:
** WDTPS_PS1 1:1
** WDTPS_PS2 1:2
** WDTPS_PS4 1:4
** WDTPS_PS8 1:8
** WDTPS_PS16 1:16
** WDTPS_PS32 1:32
** WDTPS_PS64 1:64
** WDTPS_PS128 1:128
** WDTPS_PS256 1:256
** WDTPS_PS512 1:512
** WDTPS_PS1024 1:1,024
** WDTPS_PS2048 1:2,048
** WDTPS_PS4096 1:4,096
** WDTPS_PS8192 1:8,192
** WDTPS_PS16384 1:16,384
** WDTPS_PS32768 1:32,768
**
*/
#define JTAGEN_OFF 0xBFFF
#define JTAGEN_ON 0xFFFF
#define GSS0_OFF 0xDFFF
#define GSS0_ON 0xFFFF
#define GWRP_OFF 0xEFFF
#define GWRP_ON 0xFFFF
#define BKBUG_OFF 0xF7FF
#define BKBUG_ON 0xFFFF
#define COE_OFF 0xFBFF
#define COE_ON 0xFFFF
#define FWDTEN_OFF 0xFF7F
#define FWDTEN_ON 0xFFFF
#define FNOSC_FRC 0xFF8F
#define FNOSC_FRCPLL 0xFF9F
#define FNOSC_PRI 0xFFAF
#define FNOSC_PRIPLL 0xFFBF
#define FNOSC_SOSC 0xFFCF
#define FNOSC_LPRC 0xFFDF
#define FNOSC_LPRCDIV 0xFFFF
#define WDTPS_PS1 0xFFF0
#define WDTPS_PS2 0xFFF1
#define WDTPS_PS4 0xFFF2
#define WDTPS_PS8 0xFFF3
#define WDTPS_PS16 0xFFF4
#define WDTPS_PS32 0xFFF5
#define WDTPS_PS64 0xFFF6
#define WDTPS_PS128 0xFFF7
#define WDTPS_PS256 0xFFF8
#define WDTPS_PS512 0xFFF9
#define WDTPS_PS1024 0xFFFA
#define WDTPS_PS2048 0xFFFB
#define WDTPS_PS4096 0xFFFC
#define WDTPS_PS8192 0xFFFD
#define WDTPS_PS16384 0xFFFE
#define WDTPS_PS32768 0xFFFF
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -