summaryrefslogtreecommitdiff
path: root/bsp/essemi/es8p508x/libraries/Library/Include/lib_scs.h
blob: e69c9a674f2a811a81f9657848a82634b7cf51ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/***************************************************************
 *Copyright (C), 2017, Shanghai Eastsoft Microelectronics Co., Ltd.
 *����� lib_scs.h
 *�� �ߣ� Liut
 *�� ���� V1.00
 *�� �ڣ� 2017/07/14
 *�� ���� �ں�ģ��⺯��ͷ�ļ�
 *�� ע�� ������ ES8P508xоƬ
 ����������ѧϰ����ʾʹ�ã����û�ֱ�����ô����������ķ��ջ������е��κη������Ρ�
 ***************************************************************/
#ifndef __LIBNVIC_H__
#define __LIBNVIC_H__

#include "ES8P508x.h"
#include "type.h"

/* �ж�Դѡ�� */
typedef enum
{
    NVIC_PINT0_IRQn = 0,
    NVIC_PINT1_IRQn = 1,
    NVIC_PINT2_IRQn = 2,
    NVIC_PINT3_IRQn = 3,
    NVIC_PINT4_IRQn = 4,
    NVIC_PINT5_IRQn = 5,
    NVIC_PINT6_IRQn = 6,
    NVIC_PINT7_IRQn = 7,
    NVIC_T16N0_IRQn = 8,
    NVIC_T16N1_IRQn = 9,
    NVIC_T16N2_IRQn = 10,
    NVIC_T16N3_IRQn = 11,
    NVIC_T32N0_IRQn = 12,
    NVIC_IWDT_IRQn = 14,
    NVIC_WWDT_IRQn = 15,
    NVIC_CCM_IRQn = 16,
    NVIC_PLK_IRQn = 17,
    NVIC_LVD_IRQn = 18,
    NVIC_KINT_IRQn = 19,
    NVIC_RTC_IRQn = 20,
    NVIC_ADC_IRQn = 21,
    NVIC_AES_IRQn = 23,
    NVIC_UART0_IRQn = 24,
    NVIC_UART1_IRQn = 25,
    NVIC_UART2_IRQn = 26,
    NVIC_UART3_IRQn = 27,
    NVIC_UART4_IRQn = 28,
    NVIC_UART5_IRQn = 29,
    NVIC_SPI0_IRQn = 30,
    NVIC_I2C0_IRQn = 31,
}NVIC_IRQChannel;

/* ���ȼ� */
typedef enum
{
    NVIC_Priority_0 = 0x0 ,
    NVIC_Priority_1 = 0x1 ,
    NVIC_Priority_2 = 0x2 ,
    NVIC_Priority_3 = 0x3 ,
}NVIC_IRQPriority;

/* ����ģʽ */
typedef enum
{
    SCB_LP_SleepOnExit = 0x02 , //��ISR�жϴ������򷵻ص��߳�ģʽʱ���Ƿ�����
    SCB_LP_SleepDeep = 0x04 ,   //���˯��
    SCB_LP_SEVOPend = 0x10 ,    //�жϹ���ʱ���Ƿ���Ϊ���ѵ�ѡ��λ
}SCB_TYPE_SCR;

/* SysTickʱ��Դѡ�� */
typedef enum
{
    SysTick_ClkS_Base = 0x0 , //��׼ʱ��(Hclk/3)
    SysTick_ClkS_Cpu = 0x1 ,  //������ʱ��(Hclk)
}SYST_TYPE_CLKS;

/* SysTick��ʼ�����ýṹ�嶨�� */
typedef struct
{
    uint32_t  SysTick_Value;           //�ݼ���ֵ��24λ���Ҷ���
    SYST_TYPE_CLKS  SysTick_ClkSource; //ʱ��Դѡ��
    TYPE_FUNCEN  SysTick_ITEnable;     //�ж�ʹ�ܡ�ʧ��
}SYSTICK_InitStruType;

/**************ģ��궨��*************/

/*SysTickʹ��*/
#define SysTick_Enable()  (SysTick->CTRL |= 0x00000001)
#define SysTick_Disable() (SysTick->CTRL &= 0xFFFFFFFE)

/************SCSģ�麯������***********/
void NVIC_Init(NVIC_IRQChannel Channel,NVIC_IRQPriority Priority,TYPE_FUNCEN Cmd);
void SCB_SystemLPConfig(SCB_TYPE_SCR LowPowerMode, TYPE_FUNCEN NewState);
uint32_t SCB_GetCpuID(void);
void SysTick_Init(SYSTICK_InitStruType* SysT_InitStruct);
 
#endif

/*************************END OF FILE**********************/