| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- /***************************************************************
- *Copyright (C), 2017, Shanghai Eastsoft Microelectronics Co., Ltd
- *文件名: lib_scs.c
- *作 者: Liut
- *版 本: V1.00
- *日 期: 2017/07/14
- *描 述: 内核模块库函数
- *备 注: 适用于 ES8P508x芯片
- 本软件仅供学习和演示使用,对用户直接引用代码所带来的风险或后果不承担任何法律责任。
- ***************************************************************/
- #include "lib_scs.h"
- /***************************************************************
- 函数名:NVIC_Init
- 描 述:NVIC初始化配置
- 输入值:Channel:中断通道 、 Priority:中断优先级 、 Cmd:失能或使能
- 输出值:无
- 返回值:无
- ***************************************************************/
- void NVIC_Init(NVIC_IRQChannel Channel,NVIC_IRQPriority Priority,TYPE_FUNCEN Cmd)
- {
- uint32_t tmppriority = 0x00;
- if (Cmd != DISABLE)
- {
- /* Compute the Corresponding IRQ Priority */
- tmppriority = NVIC->IP[Channel >> 0x02];
- tmppriority &= (uint32_t)(~(((uint32_t)0xFF) << ((Channel & 0x03) * 8)));
- tmppriority |= (uint32_t)((((uint32_t)Priority << 6) & 0xFF) << ((Channel & 0x03) * 8));
- NVIC->IP[Channel >> 0x02] = tmppriority;
- /* Enable the Selected IRQ Channels */
- NVIC->ISER[0] = (uint32_t)0x01 << (Channel & (uint8_t)0x1F);
- }
- else
- {
- /* Disable the Selected IRQ Channels */
- NVIC->ICER[0] = (uint32_t)0x01 << (Channel & (uint8_t)0x1F);
- }
- }
- /***************************************************************
- 函数名:SCB_SystemLPConfig
- 描 述:配置系统休眠模式
- 输入值:LowPowerMode:休眠模式 、 NewState:使能、使能
- 输出值:无
- 返回值:无
- ***************************************************************/
- void SCB_SystemLPConfig(SCB_TYPE_SCR LowPowerMode, TYPE_FUNCEN NewState)
- {
- if (NewState != DISABLE)
- SCB->SCR |= LowPowerMode;
- else
- SCB->SCR &= (uint32_t)(~(uint32_t)LowPowerMode);
- }
- /***************************************************************
- 函数名:SCB_GetCpuID
- 描 述:获取CPUID
- 输入值:无
- 输出值:无
- 返回值:32位ID值
- ***************************************************************/
- uint32_t SCB_GetCpuID(void)
- {
- return (SCB->CPUID);
- }
- /***************************************************************
- 函数名:SysTick_Init
- 描 述:SysTick初始化配置
- 输入值:初始化配置结构体地址
- 输出值:无
- 返回值:无
- ***************************************************************/
- void SysTick_Init(SYSTICK_InitStruType* SysT_InitStruct)
- {
- uint32_t temp32 = 0;
- SysTick->LOAD = SysT_InitStruct->SysTick_Value;
- SysTick->VAL = (uint32_t)0;
- if(SysT_InitStruct->SysTick_ClkSource != SysTick_ClkS_Base)
- temp32 |= 0x00000004;
- else
- temp32 &= 0xFFFFFFFB;
- if(SysT_InitStruct->SysTick_ITEnable != DISABLE)
- temp32 |= 0x00000002;
- else
- temp32 &= 0xFFFFFFFD;
- SysTick->CTRL = temp32;
- }
- /*************************END OF FILE**********************/
|