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

📄 lld_eic.h

📁 本程序为ST公司开发的源代码
💻 H
字号:
/*____________________________________________________________________________
| FILE:         lld_eic.h
| PROJECT:      OS20_ACCORDO+
| SW-COMPONENT: 
|_____________________________________________________________________________
| DESCRIPTION:  Eic header
|_____________________________________________________________________________
| COPYRIGHT:    (c) 2005 STMicroelectronics, Arzano (ITALY)
| HISTORY:
| Date      | Modification               					| Author
|_____________________________________________________________________________
| 05.10.11  | Initial revision							   | M. De Martino
|____________________________________________________________________________*/

#ifndef _LLD_EIC_H_
#define _LLD_EIC_H_

#include "types.h"

#include "macro.h"

#ifdef __cplusplus
extern "C" {
#endif

/************************************************************************
|defines
|-----------------------------------------------------------------------*/
#define ARM7_MODE_MASK   0x1F
#define ARM7_USER_MODE   0x10
#define ARM7_FIQ_MODE    0x11
#define ARM7_IRQ_MODE    0x12
#define ARM7_SVC_MODE    0x13
#define ARM7_ABORT_MODE  0x17
#define ARM7_UNDEF_MODE  0x1B
#define ARM7_SYSTEM_MODE 0x1F
#define INC_ICR_INT_ENA     3
#define INC_ICR_INT_DIS     2

#define INSTALL_ISR(Ch, IsrAddres) { ISRInfoVect[Ch].FuncPtr = IsrAddres; }

/* Channel number defines */
#define EIC_CH_00          			0
#define EIC_CH_01           		1
#define EIC_CH_02           		2
#define EIC_CH_03           		3
#define EIC_CH_04           		4
#define EIC_CH_05           		5
#define EIC_CH_06           		6
#define EIC_CH_07           		7
#define EIC_CH_08           		8
#define EIC_CH_09           		9
#define EIC_CH_10           		10
#define EIC_CH_11           		11
#define EIC_CH_12           		12
#define EIC_CH_13           		13
#define EIC_CH_14           		14
#define EIC_CH_15           		15
#define EIC_CH_16          			16
#define EIC_CH_17           		17
#define EIC_CH_18           		18
#define EIC_CH_19           		19
#define EIC_CH_20           		20
#define EIC_CH_21           		21
#define EIC_CH_22           		22
#define EIC_CH_23           		23
#define EIC_CH_24           		24
#define EIC_CH_25           		25
#define EIC_CH_26           		26
#define EIC_CH_27           		27
#define EIC_CH_28           		28
#define EIC_CH_29           		29
#define EIC_CH_30           		30
#define EIC_CH_31           		31

/* Interrupt priority definition */
#define EIC_INT_LEVEL_00			0
#define EIC_INT_LEVEL_01			1
#define EIC_INT_LEVEL_02			2
#define EIC_INT_LEVEL_03			3
#define EIC_INT_LEVEL_04			4
#define EIC_INT_LEVEL_05			5
#define EIC_INT_LEVEL_06			6
#define EIC_INT_LEVEL_07			7
#define EIC_INT_LEVEL_08			8
#define EIC_INT_LEVEL_09			9
#define EIC_INT_LEVEL_10			10
#define EIC_INT_LEVEL_11			11
#define EIC_INT_LEVEL_12			12
#define EIC_INT_LEVEL_13			13
#define EIC_INT_LEVEL_14			14
#define EIC_INT_LEVEL_15			15

/* Function pointer for callback registration */
typedef void (*CALLBACK_fnct) (void);
typedef void (*InterruptHandler_ChannelTy) (void);

typedef struct
{
	CALLBACK_fnct FuncPtr;
} DevISRInfo;

#define ISRSelect(x)	ISRInfoVect[x].FuncPtr()

/************************************************************************ 
|function prototypes
|-----------------------------------------------------------------------*/
extern void EIC_IntEnable (void);
extern void EIC_IntDisable (void);

extern tSInt EIC_vEicGlobalDis (void);
extern void EIC_vEicGlobalEn (void);
extern void EIC_vEicGlobalRest (tSInt val);

extern tSInt EIC_ChannelStatus (tU32 source);
extern void EIC_DisableChannel (tU32 source);
extern void EIC_EnableChannel (tU32 source);
extern void EIC_UninstallChannel (tU32 source);
extern void EIC_InstallChannel (tU32 source, tU32 priority,  CALLBACK_fnct fnct);

#ifdef __cplusplus
}
#endif

#endif  /* _LLD_EIC_H */

/* End of file */

⌨️ 快捷键说明

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