久久精品国产精品国产一区,少妇扒开毛毛自慰喷水,国产精品无码电影在线观看 ,久久天天躁夜夜躁狠狠85麻豆

思澈科技軟件開發(fā)工具包  2.20
LPTIM

本設計中的LPTIM (Low Power Timer) 基于一個24比特計數(shù)器,可實現(xiàn)計時、產(chǎn)生輸出波形(輸出比較和PWM)和喚醒系統(tǒng)等功能。計數(shù)器為向上計數(shù),計數(shù)時鐘可以為系統(tǒng)內部的APB時鐘或低功耗時鐘,或系統(tǒng)外部的輸入信號,并可進行最多128倍的預分頻以及最多256次的循環(huán)計數(shù)。根據(jù)計數(shù)結果可以產(chǎn)生輸出波形,并可產(chǎn)生中斷通知CPU,或產(chǎn)生喚醒信號將系統(tǒng)從低功耗模式喚醒。當用外部時鐘作為計數(shù)時鐘時,可不依賴于內部時鐘進行計數(shù)并產(chǎn)生喚醒信號,從而允許系統(tǒng)關閉內部時鐘。

LPTIM主要特性:

● 24位向上自動重裝載計數(shù)器,最大計數(shù)16777215 (Z0 是16位的,最大計數(shù)65535)
● 計數(shù)時鐘選擇
─ 內部時鐘,包括APB時鐘,低功耗時鐘等
─ 可選邊沿的外部輸入信號(IO口或比較器結果),可利用內部時鐘進行防抖動濾波,也可不依賴內部時鐘獨立計數(shù)
● 8檔預分頻,計數(shù)時鐘分頻系數(shù)為2的0~7次方
● 1~256循環(huán)次數(shù)
● 計數(shù)模式
─ 連續(xù)計數(shù)模式
─ 單筆計數(shù)模式,循環(huán)次數(shù)完成后計數(shù)結束
● 可配極性的輸出模式
─ PWM輸出,可配脈寬,周期
─ 單次翻轉輸出
─ 單脈沖或指定個數(shù)脈沖輸出
● 觸發(fā)模式
─ 軟件觸發(fā)
─ 外部輸入信號邊沿觸發(fā),支持防抖動濾波
● 超時檢測,每次外部觸發(fā)時計數(shù)器復位
● 如下事件發(fā)生時產(chǎn)生中斷或喚醒信號:
─ 更新(計數(shù)器溢出且循環(huán)次數(shù)結束)
─ 計數(shù)器溢出
─ 輸出比較
─ 外部觸發(fā)(只產(chǎn)生中斷,無喚醒信號)

SF32LB55X/56X/58X的HCPU有一個LPTIM,LPTIM1,LCPU有兩個LPTIM,分別是LPTIM2和LPTIM3。

LPTIM的詳細接口,請參考Low power hardware timer.

使用LPTIM

以下是LPTIM基本函數(shù)的使用:

LPTIM_HandleTypeDef TIM_Handle = {0};
{
...
HAL_LPTIM_InitDefault(&TIM_Handle); // Set default setting for LPTIM
TIM_Handle.Instance=LPTIM1; // Use LPTIM1
HAL_LPTIM_Init(&TIM_Handle); // Initialize Timer
HAL_NVIC_SetPriority(LPTIM1_IRQn, 3, 0); // Set the TIMx priority
HAL_NVIC_EnableIRQ(LPTIM1_IRQn); // nable the TIMx global Interrupt
__HAL_LPTIM_CLEAR_PRESCALER(tim, LPTIM_PRESCALER_DIV128);
__HAL_LPTIM_SET_PRESCALER(tim, LPTIM_PRESCALER_DIV1); // Set prescale
TIM_Handle.Mode = HAL_LPTIM_ONESHOT; // One shot timer
HAL_LPTIM_Counter_Start_IT(&TIM_Handle, 1000); // Start timer to count 1000 from low power crystal source
...
}
void LPTIM1_IRQHandler(void)
{
HAL_LPTIM_IRQHandler(&TIM_Handle);
}
{
printf("Timeout\n");
}

LPTIM PWM的使用請參考在rtos/rtthread/bsp/drv_pwm.c.

HAL_LPTIM_Init
HAL_StatusTypeDef HAL_LPTIM_Init(LPTIM_HandleTypeDef *hlptim)
Initializes the LPTIM according to the specified parameters in the LPTIM_InitTypeDef and creates the ...
__HAL_LPTIM_SET_PRESCALER
#define __HAL_LPTIM_SET_PRESCALER(__HANDLE__, __DIV__)
Set the specified LPTIM prescaler.
Definition: bf0_hal_lptim.h:537
HAL_LPTIM_InitDefault
void HAL_LPTIM_InitDefault(LPTIM_HandleTypeDef *hlptim)
Set default setting for the LPTIM.
HAL_LPTIM_Counter_Start_IT
HAL_StatusTypeDef HAL_LPTIM_Counter_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period)
Starts the Counter mode in interrupt mode.
LPTIM_HandleTypeDef
LPTIM handle Structure definition.
Definition: bf0_hal_lptim.h:182
HAL_NVIC_SetPriority
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
Set the priority of an interrupt.
__HAL_LPTIM_CLEAR_PRESCALER
#define __HAL_LPTIM_CLEAR_PRESCALER(__HANDLE__, __MASK__)
Clear the LPTIM prescaler register.
Definition: bf0_hal_lptim.h:548
HAL_NVIC_EnableIRQ
void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
Enable a device specific interrupt in the NVIC interrupt controller.
LPTIM_HandleTypeDef::Mode
HAL_LPTIM_ModeTypeDef Mode
Definition: bf0_hal_lptim.h:191
LPTIM_HandleTypeDef::Instance
LPTIM_TypeDef * Instance
Definition: bf0_hal_lptim.h:183
HAL_LPTIM_IRQHandler
void HAL_LPTIM_IRQHandler(LPTIM_HandleTypeDef *hlptim)
This function handles LPTIM interrupt request.