📄 bsp.h
字号:
/*
*********************************************************************************************************
* Microchip PIC33
* Board Support Package
*
* Micrium
* (c) Copyright 2005, Micrium, Weston, FL
* All Rights Reserved
*
*
* File : BSP.H
* By : Eric Shufro
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* OSCILLATOR FREQUENCIES
*********************************************************************************************************
*/
//tbh080521b
//tbh080521e
#define CPU_PRIMARY_OSC_FRQ 11059200L //tbh080521 /* Primary External Oscillator Frequency */
#define CPU_FRC_OSC_FRQ 7372800L //tbh080522 /* Internal Fast Oscillator Frequency */
#define CPU_SECONDARY_OSC_FRQ 32768L /* Secondary External Oscillator Frequency */
#define CPU_LOW_POWER_OSC_FRQ 32768L //tbh080522 /* Low Power Oscillator (LPOSC) 31Khz Nominal */
/*
*********************************************************************************************************
* OS TICK TIMER SELECTION
*********************************************************************************************************
*/
#define BSP_OS_TMR_SEL 4 //tbh080521 /* Select a timer for the OS Tick Interrupt (2 or 4) */
#define TIMER_INT_PRIO 4 /* Configure the timer to use interrupt priority 4 */
#define OSVIEW_INT_PRIO 4 /* Configure UART2 Interrupts to use priority 4 */
/*
*********************************************************************************************************
* DATATYPES
*********************************************************************************************************
*/
typedef void (*PFNCT)(void);
/*
*********************************************************************************************************
* MACROS
*********************************************************************************************************
*/
#define TRUE 1
#define FALSE 0
/*
*********************************************************************************************************
* CHIP SPECIFIC MACROS
*********************************************************************************************************
*/
/* OSCCON Register Bits */
#define XT_HS_EC_PLL_SEL (3 << 0)
#define COSC_MASK (7 << 12)
#define LOCK (1 << 5)
#define OSWEN (1 << 0)
/* CLKDIV Register Bits */
#define FRCDIV_MASK (7 << 8)
#define PLLPOST_MASK (3 << 6)
#define PLLPRE_MASK (0x1F << 0)
#define PLLDIV_MASK (0xFF << 0)
/* Timer Control Register Bits */
#define TON (1 << 15)
/* IPC1 Interrupt Priority Register Bits */
#define T2IP_MASK (7 << 12)
/* IPC5 Interrupt Priority Register Bits */
#define T4IP_MASK (7 << 12)
/* IPC7 Interrupt Priority Register Bits */
#define U2TXIP_MASK (7 << 12)
#define U2RXIP_MASK (7 << 8)
//tbh080521b
#define U1TXIP_MASK (7 << 0)
#define U1RXIP_MASK (7 << 12)
#define T2IE_MASK (1 << 7)
//tbh080521e
//tbh080531 /* IEC0 Interrupt Enable Register Bits */
//以宏定义的命名不恰当,
//C30编译器会将程序中对单独位的访问(如_T4IE)也替换为定义内容(如_T4IE被替换为_(1 << 11))
//从而引起编译错误。
//应修改宏标识符如T4IE_MASK /* IEC1 Interrupt Enable Register Bits */
#define T4IE (1 << 11)
#define U2TXIE (1 << 15)
#define U2RXIE (1 << 14)
/* IFS0 Interrupt Flag Register Bits */
/* IFS1 Interrupt Flag Register Bits */
#define T4IF (1 << 11)
#define U2TXIF (1 << 15)
#define U2RXIF (1 << 14)
//tbh080521b
#define U1TXIE (1 << 12)
#define U1RXIE (1 << 11)
#define AD1IE (1 << 13)
#define DMA0IE (1 << 4)
#define T1IF_MASK (1 << 3)
#define T2IF_MASK (1 << 7)
#define T3IF_MASK (1 << 8)
#define T7IF_MASK (1 << 0)
#define U1TXIF (1 << 12)
#define U1RXIF (1 << 11)
#define AD1IF (1 << 13)
#define DMA0IF (1 << 4)
#define IC1IF_MASK (1 << 1) //IFS0
#define IC2IF_MASK (1 << 5) //IFS0
#define IC3IF_MASK (1 << 5) //IFS2
#define IC4IF_MASK (1 << 6) //IFS2
#define IC5IF_MASK (1 << 7) //IFS2
#define IC6IF_MASK (1 << 8) //IFS2
#define IC7IF_MASK (1 << 6) //IFS1
#define IC8IF_MASK (1 << 7) //IFS1
//tbh080521e
/* UxMODE Register */
#define UART_EN (1 << 15)
/* UxSTA Register */
#define UTXISEL (1 << 15)
#define UTXEN (1 << 10)
#define TRMT (1 << 8)
#define URXDA (1 << 0)
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
*********************************************************************************************************
*/
void BSP_Init(void);
void BSP_IntEn (INT8U IntCont, INT8U IntNum, INT8U IntPol, INT8U IntAct, PFNCT pfnct);
void BSP_IntDis (INT8U IntCont, INT8U IntNum);
void BSP_IntDisAll(void);
INT32U BSP_CPU_ClkFrq(void);
/*
*********************************************************************************************************
* LED SERVICES
*********************************************************************************************************
*/
//tbh080510b
//void LED_Init(void);
//void LED_On(INT8U led);
//void LED_Off(INT8U led);
//void LED_Toggle(INT8U led);
//tbh080510e
/*
*********************************************************************************************************
* TICK SERVICES
*********************************************************************************************************
*/
void Tmr_TickISR_Handler(void);
/*
*********************************************************************************************************
* CONFIGURATION CHECKING
*********************************************************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -