| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- /*******************************************************************************
- * Copyright (C) 2020, Huada Semiconductor Co., Ltd. All rights reserved.
- *
- * This software component is licensed by HDSC under BSD 3-Clause license
- * (the "License"); You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- */
- /******************************************************************************/
- /** \file hc32f460_ots.h
- **
- ** A detailed description is available at
- ** @link OtsGroup Ots description @endlink
- **
- ** - 2018-10-26 CDT First version for Device Driver Library of Ots.
- **
- ******************************************************************************/
- #ifndef __HC32F460_OTS_H__
- #define __HC32F460_OTS_H__
- /*******************************************************************************
- * Include files
- ******************************************************************************/
- #include "hc32_common.h"
- #include "ddl_config.h"
- #if (DDL_OTS_ENABLE == DDL_ON)
- /* C binding of definitions if building with C++ compiler */
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- /**
- *******************************************************************************
- ** \defgroup OtsGroup On-chip Temperature Sensor(OTS)
- **
- ******************************************************************************/
- //@{
- /*******************************************************************************
- * Global type definitions ('typedef')
- ******************************************************************************/
- /* Automatically turn off the analog temperature sensor after the temperature
- measurement is over. */
- typedef enum en_ots_auto_off
- {
- OtsAutoOff_Disable = 0x0, ///< Disable automatically turn off OTS.
- OtsAutoOff_Enable = 0x1, ///< Enable automatically turn off OTS.
- } en_ots_auto_off_t;
- /* Temperature measurement end interrupt request. */
- typedef enum en_ots_ie
- {
- OtsInt_Disable = 0x0, ///< Disable OTS interrupt.
- OtsInt_Enable = 0x1, ///< Enable OTS interrupt.
- } en_ots_ie_t;
- /* OTS clock selection. */
- typedef enum en_ots_clk_sel
- {
- OtsClkSel_Xtal = 0x0, ///< Select XTAL as OTS clock.
- OtsClkSel_Hrc = 0x1, ///< Select HRC as OTS clock.
- } en_ots_clk_sel_t;
- /* OTS OTS initialization structure definition. */
- typedef struct stc_ots_init
- {
- en_ots_auto_off_t enAutoOff; ///< @ref en_ots_auto_off_t.
- en_ots_clk_sel_t enClkSel; ///< @ref en_ots_clk_sel_t.
- float32_t f32SlopeK; ///< K: Temperature slope (calculated by calibration experiment). */
- float32_t f32OffsetM; ///< M: Temperature offset (calculated by calibration experiment). */
- } stc_ots_init_t;
- /* OTS common trigger source select */
- typedef enum en_ots_com_trigger
- {
- OtsComTrigger_1 = 0x1, ///< Select common trigger 1.
- OtsComTrigger_2 = 0x2, ///< Select common trigger 2.
- OtsComTrigger_1_2 = 0x3, ///< Select common trigger 1 and 2.
- } en_ots_com_trigger_t;
- /*******************************************************************************
- * Global variable definitions ('extern')
- ******************************************************************************/
- /*******************************************************************************
- * Global function prototypes (definition in C source)
- ******************************************************************************/
- /**
- * @brief Start OTS.
- * @param None
- * @retval None
- */
- __STATIC_INLINE void OTS_Start(void)
- {
- bM4_OTS_CTL_OTSST = (uint32_t)1u;
- }
- /**
- * @brief Stop OTS.
- * @param None
- * @retval None
- */
- __STATIC_INLINE void OTS_Stop(void)
- {
- bM4_OTS_CTL_OTSST = (uint32_t)0u;
- }
- en_result_t OTS_Init(const stc_ots_init_t *pstcInit);
- void OTS_DeInit(void);
- en_result_t OTS_Polling(float32_t *pf32Temp, uint32_t u32Timeout);
- void OTS_IntCmd(en_functional_state_t enNewState);
- void OTS_SetTriggerSrc(en_event_src_t enEvent);
- void OTS_ComTriggerCmd(en_ots_com_trigger_t enComTrigger, en_functional_state_t enState);
- en_result_t OTS_ScalingExperiment(uint16_t *pu16Dr1, uint16_t *pu16Dr2, \
- uint16_t *pu16Ecr, float32_t *pf32A, \
- uint32_t u32Timeout);
- float OTS_CalculateTemp(void);
- //@} // OtsGroup
- #ifdef __cplusplus
- }
- #endif
- #endif /* DDL_OTS_ENABLE */
- #endif /* __HC32F460_OTS_H__ */
- /*******************************************************************************
- * EOF (not truncated)
- ******************************************************************************/
|