Files
CHJ/library/inc/lh32m0g3x_btim.h
2026-03-20 21:16:58 +08:00

83 lines
2.6 KiB
C
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/******************************************************************************
* 版权所有:苏州领慧立芯科技有限公司
* Copyright (c) 2020-2025 Suzhou Legendsemi Technology Co., Ltd.
******************************************************************************
* All rights reserved. Distributed under MIT license.
* The file is encoded in UTF-8 without signature.
* @file lh32m0g30x_btim.h
* @version 2025-09-29
******************************************************************************/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __LH32M0G3x_BTIM_H
#define __LH32M0G3x_BTIM_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "lh32m0xx_lhl.h"
/* Public Definition ---------------------------------------------------------*/
#define BTIM_TCTRL_TEN_Msk (0x1U)
#define BTIM_TCTRL_TEN_Pos (0U)
#define BTIM_TCTRL_TIE_Msk (0x2U)
#define BTIM_TCTRL_TIE_Pos (1U)
#define BTIM_TCTRL_CHN_Msk (0x4U)
#define BTIM_TCTRL_CHN_Pos (2U)
#define BTIM_TFLG_TIF_Msk (0x1U)
/**
* @brief BTIMER32位链式模式BTIMER_x16位独立模式
*/
typedef enum {
BTIMER = 0,
BTIMER_0,
BTIMER_1,
} BTIM_ID_t;
/**
* @brief TIM Time base Configuration Structure definition
*/
typedef struct
{
FunctionalState MDIS; /*!< 使能或禁用BTIM定时器 */
FunctionalState ChainedMode; /*!< 定时器1链接到前一个定时器0将2个16bit BTimer合并为1个32bit BTimer */
FunctionalState FreezingMode; /*!< 允许在设备进入待机模式时停止计时器 */
} BTIM_Base_InitTypeDef;
/* Function Prototype --------------------------------------------------------*/
void LHL_BTIM_Base_Init(BTIM_TypeDef *pBTIMx, BTIM_Base_InitTypeDef* BTIM_Init);
void LHL_BTIM_Start(BTIM_ID_t BTIMER_x, uint16_t TIMER0_Period, uint16_t TIMER1_Period);
void LHL_BTIM_Stop(BTIM_ID_t BTIMER_x);
void LHL_BTIM_ITConfig(BTIM_ID_t BTIMER_x, FunctionalState NewState);
ITStatus LHL_BTIM_GetPending(BTIM_ID_t BTIMER_x);
void LHL_BTIM_ClearPending(BTIM_ID_t BTIMER_x);
uint32_t LHL_BTIM_GetCycle(void);
void LHL_BTIM_SetPeriod(BTIM_ID_t BTIMER_x, uint16_t Period);
//uint16_t LHL_BTIM_GetCounter (btim_id_t BTIMER_x);
#ifdef __cplusplus
}
#endif
#endif
/*********************************End of File**********************************/