PMC 定时器
功能特性
有两组 PMC 定时器, 每组 PMC 定时器内有四个计数器
休眠倒计时计数器
深度休眠倒计时计数器
唤醒计数器
预留计数器
32 位宽向下计数,计数到 0 后自动停止
在计数到 0 之后可配置是否产生中断
以 SDM32K 作为时钟源
在计数器工作过程中可以重新设置定时器倒计时的值
不支持
不支持
不支持
不支持
不支持
有两组 PMC 定时器, 每组 PMC 定时器内有四个计数器
休眠倒计时计数器
深度休眠倒计时计数器
唤醒计数器
预留计数器
32 位宽向下计数,计数到 0 后自动停止
在计数到 0 之后可配置是否产生中断
以 SDM32K 作为时钟源
在计数器工作过程中可以重新设置定时器倒计时的值
有两组 PMC 定时器, 每组 PMC 定时器内有四个计数器
休眠倒计时计数器
深度休眠倒计时计数器
唤醒计数器
预留计数器
32 位宽向下计数,计数到 0 后自动停止
在计数到 0 之后可配置是否产生中断
以 SDM32K 作为时钟源
在计数器工作过程中可以重新设置定时器倒计时的值
4 组 PMC 定时器:
TIMER0 ~ TIMER3
32 位宽向下计数,计数到 0 后自动停止
在计数到 0 之后可配置是否产生中断
以 SDM32K 作为时钟源
比较模式:只有当设置值大于当前计数器值时,定时器设置才生效
API
Raw API
PMCTIMER Exported Constants
PMCTIMER Device Config
/* PMC timer device instance for CM4/KM4 core. */
#define PMC_TIMER_DEV PMCTIMER_DEV0
/* PMC timer device instance for CM0/KM0 core. */
#define PMC_TIMER_DEV PMCTIMER_DEV1
/* PMC timer IRQ number for CM4/KM4 core. */
#define PMC_TIMER_IRQ PMC_TIMER0_IRQ
/* PMC timer IRQ number for CM0/KM0 core. */
#define PMC_TIMER_IRQ PMC_TIMER1_IRQ
/* PMC timer interrupt priority. */
#define PMC_TIMER_INT_PRIO INT_PRI_LOWEST
Not supported.
Not supported.
Not supported.
Not supported.
Not supported.
/* PMC timer device instance for CM4/KM4TZ core. */
#define PMC_TIMER_DEV PMCTIMER_DEV0
/* PMC timer device instance for CM4/KM4NS core. */
#define PMC_TIMER_DEV PMCTIMER_DEV1
/* PMC timer IRQ number for CM4/KM4TZ core. */
#define PMC_TIMER_IRQ PMC_TIMER0_IRQ
/* PMC timer IRQ number for CM4/KM4NS core. */
#define PMC_TIMER_IRQ PMC_TIMER1_IRQ
/* PMC timer interrupt priority. */
#define PMC_TIMER_INT_PRIO INT_PRI_LOWEST
/* PMC timer device instance for CM4/KM4NS core. */
#define PMC_TIMER_DEV PMCTIMER_DEV0
/* PMC timer device instance for CM4/KM4TZ core. */
#define PMC_TIMER_DEV PMCTIMER_DEV1
/* PMC timer IRQ number for CM4/KM4NS core. */
#define PMC_TIMER_IRQ PMC_TIMER0_IRQ
/* PMC timer IRQ number for CM4/KM4TZ core. */
#define PMC_TIMER_IRQ PMC_TIMER1_IRQ
/* PMC timer interrupt priority. */
#define PMC_TIMER_INT_PRIO INT_PRI_LOWEST
PMCTIMER Index
/* PMC timer index for system active time during sleep. */
#define PMC_SLEEP_TIMER 0
/* PMC timer index for system active time during deep sleep. */
#define PMC_DSLP_TIMER 1
/* PMC timer index for setting wakeup time during sleep. */
#define PMC_WAKEUP_TIMER 2
/* Reserved PMC timer index. */
#define PMC_RSVD_TIMER 3
Not supported.
Not supported.
Not supported.
Not supported.
Not supported.
/* PMC timer index for system active time during sleep. */
#define PMC_SLEEP_TIMER 0
/* PMC timer index for system active time during deep sleep. */
#define PMC_DSLP_TIMER 1
/* PMC timer index for setting wakeup time during sleep. */
#define PMC_WAKEUP_TIMER 2
/* Reserved PMC timer index. */
#define PMC_RSVD_TIMER 3
/* PMC timer index for system active time during sleep. */
#define PMC_SLEEP_TIMER 0
/* PMC timer index for system active time during deep sleep. */
#define PMC_DSLP_TIMER 1
/* PMC timer index for setting wakeup time during sleep. */
#define PMC_WAKEUP_TIMER 2
/* Reserved PMC timer index. */
#define PMC_RSVD_TIMER 3
PMCTIMER Valid Check
/* Bit mask for timer x configuration valid status. */
#define PMCT_BIT_TIM_VALIDx ((u32)(0x00000001 << (8 + x)))
Not supported.
Not supported.
Not supported.
Not supported.
Not supported.
/* Bit mask for timer x configuration valid status. */
#define PMCT_BIT_TIM_VALIDx ((u32)(0x00000001 << (8 + x)))
/* Bit mask for timer x configuration valid status. */
#define PMCT_BIT_TIM_VALIDx ((u32)(0x00000001 << (8 + x)))
PMCTIMER Reset
/* Bit mask to pulse reset timer x. */
#define PMCTRESET_BIT_TIMERx ((u32)(0x00000001 << (28 + x)))
Not supported.
Not supported.
Not supported.
Not supported.
Not supported.
/* Bit mask to pulse reset timer x. */
#define PMCTRESET_BIT_TIMERx ((u32)(0x00000001 << (28 + x)))
/* Bit mask to pulse reset timer x. */
#define PMCTRESET_BIT_TIMERx ((u32)(0x00000001 << (28 + x)))
PMCTIMER Exported Functions
-
u32 PMCTimerCnt_Get(PMCTIMER_TpyeDef *PMC_TIMER, u32 Timer_Idx)
Get the pmc timer current Counter value.
- 参数:
PMC_TIMER -- The pointer of PMC TIMER DEV.
Timer_Idx -- Timer index in PMC TIMER DEV. This parameter can be: 0 ~ 3.
- 返回:
Current counter value.
-
void PMCTimerCnt_Reset(PMCTIMER_TpyeDef *PMC_TIMER, u32 Timer_Idx)
Reset the pmc timer count down value.
- 参数:
PMC_TIMER -- The pointer of PMC TIMER DEV.
Timer_Idx -- Timer index in PMC TIMER DEV. This parameter can be: 0 ~ 3.
-
void PMCTimerCnt_Set(PMCTIMER_TpyeDef *PMC_TIMER, u32 Timer_Idx, u32 NewValue)
Set the pmc timer count down value.
- 参数:
PMC_TIMER -- The pointer of PMC TIMER DEV.
Timer_Idx -- Timer index in PMC TIMER DEV. This parameter can be: 0 ~ 3.
NewValue -- New counter.
-
void PMCTimer_Cmd(PMCTIMER_TpyeDef *PMC_TIMER, u32 Timer_Idx, bool NewState)
Enable or disable the pmc timer counter The pmc timer group contains 4 timers for each group, all runs at 32k.
- 参数:
PMC_TIMER -- The pointer of PMC TIMER DEV.
Timer_Idx -- Timer index in PMC TIMER DEV. This parameter can be: 0 ~ 3.
NewState -- New state of the PMC timer counter. This parameter can be: ENABLE or DISABLE.
-
void PMCTimer_INTClear(PMCTIMER_TpyeDef *PMC_TIMER, u32 Timer_Idx)
Clear the pmc timer's interrupt bits.
- 参数:
PMC_TIMER -- The pointer of PMC TIMER DEV.
Timer_Idx -- Timer index in PMC TIMER DEV. This parameter can be: 0 ~ 3.
-
void PMCTimer_INTConfig(PMCTIMER_TpyeDef *PMC_TIMER, u32 Timer_Idx, u32 NewState)
ENABLE/DISABLE the pmc timer's interrupt bits.
- 参数:
PMC_TIMER -- The pointer of PMC TIMER DEV.
Timer_Idx -- Timer index in PMC TIMER DEV. This parameter can be: 0 ~ 3.
NewState -- ENABLE or DISABLE.
-
u32 PMCTimer_Valid_Check(PMCTIMER_TpyeDef *PMC_TIMER, u32 Timer_Idx)
Check pmctimer current state.
- 参数:
PMC_TIMER -- The pointer of PMC TIMER DEV.
Timer_Idx -- Timer index in PMC TIMER DEV. This parameter can be: 0 ~ 3.
- 返回:
The validation result:
TRUE: valid
FALSE: not valid
Not supported.
Not supported.
Not supported.
Not supported.
Not supported.
FUNCTION_REF=PMCTimerCnt_Get
FUNCTION_REF=PMCTimerCnt_Reset
FUNCTION_REF=PMCTimerCnt_Set
FUNCTION_REF=PMCTimer_Cmd
-
void PMCTimer_CompCmd(PMCTIMER_TpyeDef *PMC_TIMER, u32 Timer_Idx, u32 NewState)
Enable or disable the comparison function of pmctimer.
- 参数:
PMC_TIMER -- The pointer of PMC TIMER DEV.
Timer_Idx -- Timer index in PMC TIMER DEV.
NewState -- This parameter can be: ENABLE or DISABLE.
FUNCTION_REF=PMCTimer_INTClear
FUNCTION_REF=PMCTimer_INTConfig
-
u32 PMCTimer_INT_Hdl(void *Data)
PMC timer interrupt handler for wakeup timer.
- 参数:
Data -- Unused.
- 返回:
Always returns TRUE.
-
void PMCTimer_Init(void)
Initialize PMC timer: register interrupt and enable wakeup timer.
-
void PMCTimer_Reset(void)
Reset the PMC wakeup timer counter.
FUNCTION_REF=PMCTimer_Valid_Check
FUNCTION_REF=PMCTimerCnt_Get
FUNCTION_REF=PMCTimerCnt_Reset
FUNCTION_REF=PMCTimerCnt_Set
FUNCTION_REF=PMCTimer_Cmd
FUNCTION_REF=PMCTimer_CompCmd
FUNCTION_REF=PMCTimer_INTClear
FUNCTION_REF=PMCTimer_INTConfig
FUNCTION_REF=PMCTimer_INT_Hdl
FUNCTION_REF=PMCTimer_Init
FUNCTION_REF=PMCTimer_Reset
FUNCTION_REF=PMCTimer_Valid_Check