PDL for FM0+  Version1.0
Peripheral Driverl Library for FM0+
C:/pdl_v10/library/driver/bt/bt.h File Reference
#include "mcu.h"
#include "pdl_user.h"
Include dependency graph for bt.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  stc_bt_pwm_config
 Structure of PWM configuration. More...
struct  stc_pwm_int_sel
 structure to select the PWM interrupt More...
struct  stc_pwm_int_cb
 structure to set the PWM interrupt callback function More...
struct  stc_bt_ppg_config
 Structure of PPG configuration. More...
struct  stc_ppg_int_sel
 structure to select the PPG interrupt More...
struct  stc_ppg_int_cb
 structure to set the PPG interrupt callback function More...
struct  stc_bt_rt_config
 Structure of Reload timer configuration. More...
struct  stc_rt_int_sel
 structure to select the Reload timer interrupt More...
struct  stc_rt_int_cb
 structure to set the Reload timer interrupt callback function More...
struct  stc_bt_pwc_config
 Structure of PWC timer configuration. More...
struct  stc_pwc_int_sel
 structure to select the PWC timer interrupt More...
struct  stc_pwc_int_cb
 structure to set the PWC timer interrupt callback function More...
struct  stc_bt_intern_data
 BT internal data. More...
struct  stc_bt_instance_data
 BT instance data. More...

Defines

#define stc_btn_t   FM0P_BT_PWM_TypeDef
#define BT0   (*((volatile stc_btn_t *) FM0P_BT0_PWM_BASE))
#define BT1   (*((volatile stc_btn_t *) FM0P_BT1_PWM_BASE))
#define BT2   (*((volatile stc_btn_t *) FM0P_BT2_PWM_BASE))
#define BT3   (*((volatile stc_btn_t *) FM0P_BT3_PWM_BASE))
#define BT4   (*((volatile stc_btn_t *) FM0P_BT4_PWM_BASE))
#define BT5   (*((volatile stc_btn_t *) FM0P_BT5_PWM_BASE))
#define BT6   (*((volatile stc_btn_t *) FM0P_BT6_PWM_BASE))
#define BT7   (*((volatile stc_btn_t *) FM0P_BT7_PWM_BASE))
#define BT_INSTANCE_COUNT

Typedefs

typedef enum en_bt_instance_index en_bt_instance_index_t
 Enumeration to define an index for each BT instance.
typedef enum en_bt_io_mode en_bt_io_mode_t
 Enumeration to define BT IO mode.
typedef enum en_bt_timer_mode en_bt_timer_mode_t
 Enumeration to define timer mode of BT.
typedef enum en_pwm_clock_pres en_pwm_clock_pres_t
 Enumeration to define clock prescaler of PWM timer.
typedef enum en_pwm_restart_enable en_pwm_restart_enable_t
 Enumeration to define the configuration of PWM restart option.
typedef enum en_pwm_output_mask en_pwm_output_mask_t
 Enumeration to define the configuration of PWM output mask.
typedef enum en_pwm_ext_trig en_pwm_ext_trig_t
 Enumeration to define external trigger of PWM.
typedef enum en_pwm_output_polarity en_pwm_output_polarity_t
 Enumeration to define PWM initial polarity.
typedef enum en_pwm_mode en_pwm_mode_t
 Enumeration to define PWM timer mode.
typedef struct stc_bt_pwm_config stc_bt_pwm_config_t
 Structure of PWM configuration.
typedef enum en_bt_pwm_int en_bt_pwm_int_t
 Enumeration to define PWM interrupt type.
typedef struct stc_pwm_int_sel stc_pwm_int_sel_t
 structure to select the PWM interrupt
typedef struct stc_pwm_int_cb stc_pwm_int_cb_t
 structure to set the PWM interrupt callback function
typedef enum en_ppg_clock_pres en_ppg_clock_pres_t
 Enumeration to define clock prescaler of PPG timer.
typedef enum en_ppg_restart_enable en_ppg_restart_enable_t
 Enumeration to define the configuration of PPG restart option.
typedef enum en_ppg_output_mask en_ppg_output_mask_t
 Enumeration to define the configuration of PPG output mask.
typedef enum en_ppg_ext_trig en_ppg_ext_trig_t
 Enumeration to define external trigger of PPG.
typedef enum en_ppg_output_polarity en_ppg_output_polarity_t
 Enumeration to define PWM initial polarity.
typedef enum en_ppg_mode en_ppg_mode_t
 Enumeration to define PWM timer mode.
typedef struct stc_bt_ppg_config stc_bt_ppg_config_t
 Structure of PPG configuration.
typedef enum en_bt_ppg_int en_bt_ppg_int_t
 Enumeration to define PPG interrupt type.
typedef struct stc_ppg_int_sel stc_ppg_int_sel_t
 structure to select the PPG interrupt
typedef struct stc_ppg_int_cb stc_ppg_int_cb_t
 structure to set the PPG interrupt callback function
typedef enum en_rt_clock_pres en_rt_clock_pres_t
 Enumeration to define clock prescaler of Reload timer.
typedef enum en_rt_ext_trigger en_rt_ext_trigger_t
 Enumeration to define external trigger of Reload timer.
typedef enum en_rt_output_polarity en_rt_output_polarity_t
 Enumeration to define Reload timer output initial polarity.
typedef enum en_rt_mode en_rt_mode_t
 Enumeration to define Reload timer mode.
typedef enum en_rt_timer_size en_rt_timer_size_t
 Enumeration to define Reload timer size.
typedef struct stc_bt_rt_config stc_bt_rt_config_t
 Structure of Reload timer configuration.
typedef enum en_bt_rt_int en_bt_rt_int_t
 Enumeration to define Reload timer interrupt type.
typedef struct stc_rt_int_sel stc_rt_int_sel_t
 structure to select the Reload timer interrupt
typedef struct stc_rt_int_cb stc_rt_int_cb_t
 structure to set the Reload timer interrupt callback function
typedef enum en_pwc_clock_pres en_pwc_clock_pres_t
 Enumeration to define clock prescaler of PWC timer.
typedef enum en_pwc_measure_edge en_pwc_measure_edge_t
 Enumeration to define measure mode of PWC timer.
typedef enum en_pwc_mode en_pwc_mode_t
 Enumeration to define PWC timer mode.
typedef enum en_pwc_timer_size en_pwc_timer_size_t
 Enumeration to define Reload timer size.
typedef struct stc_bt_pwc_config stc_bt_pwc_config_t
 Structure of PWC timer configuration.
typedef enum en_bt_pwc_int en_bt_pwc_int_t
 Enumeration to define PWC timer interrupt type.
typedef struct stc_pwc_int_sel stc_pwc_int_sel_t
 structure to select the PWC timer interrupt
typedef struct stc_pwc_int_cb stc_pwc_int_cb_t
 structure to set the PWC timer interrupt callback function
typedef struct stc_bt_intern_data stc_bt_intern_data_t
 BT internal data.
typedef struct stc_bt_instance_data stc_bt_instance_data_t
 BT instance data.

Enumerations

enum  en_bt_instance_index {
  BtInstanceIndexBt0, BtInstanceIndexBt1, BtInstanceIndexBt2, BtInstanceIndexBt3,
  BtInstanceIndexBt4, BtInstanceIndexBt5, BtInstanceIndexBt6, BtInstanceIndexBt7,
  BtInstanceIndexMax
}
 Enumeration to define an index for each BT instance. More...
enum  en_bt_io_mode {
  BtIoMode0 = 0u, BtIoMode1, BtIoMode2, BtIoMode3,
  BtIoMode4, BtIoMode5, BtIoMode6, BtIoMode7,
  BtIoMode8
}
 Enumeration to define BT IO mode. More...
enum  en_bt_timer_mode {
  BtResetMode = 0, BtPwmMode, BtPpgMode, BtRtMode,
  BtPwcMode
}
 Enumeration to define timer mode of BT. More...
enum  en_pwm_clock_pres {
  PwmPresNone = 0u, PwmPres1Div4, PwmPres1Div16, PwmPres1Div128,
  PwmPres1Div256, PwmPres1ExtClkRising, PwmPres1ExtClkFalling, PwmPres1ExtClkBoth,
  PwmPres1Div512, PwmPres1Div1024, PwmPres1Div2048
}
 Enumeration to define clock prescaler of PWM timer. More...
enum  en_pwm_restart_enable { PwmRestartDisable = 0, PwmRestartEnable }
 Enumeration to define the configuration of PWM restart option. More...
enum  en_pwm_output_mask { PwmOutputNormal = 0, PwmOutputMask }
 Enumeration to define the configuration of PWM output mask. More...
enum  en_pwm_ext_trig { PwmExtTrigDisable = 0, PwmExtTrigRising, PwmExtTrigFalling, PwmExtTrigBoth }
 Enumeration to define external trigger of PWM. More...
enum  en_pwm_output_polarity { PwmPolarityLow = 0, PwmPolarityHigh }
 Enumeration to define PWM initial polarity. More...
enum  en_pwm_mode { PwmContinuous = 0, PwmOneshot }
 Enumeration to define PWM timer mode. More...
enum  en_bt_pwm_int { PwmTrigInt = 0, PwmDutyMatchInt, PwmUnderflowInt }
 Enumeration to define PWM interrupt type. More...
enum  en_ppg_clock_pres {
  PpgPresNone = 0, PpgPres1Div4, PpgPres1Div16, PpgPres1Div128,
  PpgPres1Div256, PpgPres1ExtClkRising, PpgPres1ExtClkFalling, PpgPres1ExtClkBoth,
  PpgPres1Div512, PpgPres1Div1024, PpgPres1Div2048
}
 Enumeration to define clock prescaler of PPG timer. More...
enum  en_ppg_restart_enable { PpgRestartDisable = 0, PpgRestartEnable }
 Enumeration to define the configuration of PPG restart option. More...
enum  en_ppg_output_mask { PpgOutputNormal = 0, PpgOutputMask }
 Enumeration to define the configuration of PPG output mask. More...
enum  en_ppg_ext_trig { PpgExtTrigDisable = 0, PpgExtTrigRising, PpgExtTrigFalling, PpgExtTrigBoth }
 Enumeration to define external trigger of PPG. More...
enum  en_ppg_output_polarity { PpgPolarityLow = 0, PpgPolarityHigh }
 Enumeration to define PWM initial polarity. More...
enum  en_ppg_mode { PpgContinuous = 0, PpgOneshot }
 Enumeration to define PWM timer mode. More...
enum  en_bt_ppg_int { PpgTrigInt = 0, PpgUnderflowInt }
 Enumeration to define PPG interrupt type. More...
enum  en_rt_clock_pres {
  RtPresNone = 0, RtPres1Div4, RtPres1Div16, RtPres1Div128,
  RtPres1Div256, RtPres1ExtClkRising, RtPres1ExtClkFalling, RtPres1ExtClkBoth,
  RtPres1Div512, RtPres1Div1024, RtPres1Div2048
}
 Enumeration to define clock prescaler of Reload timer. More...
enum  en_rt_ext_trigger {
  RtExtTiggerDisable = 0, RtExtTiggerRisingEdge, RtExtTiggerFallingEdge, RtExtTiggerBothEdge,
  RtExtTiggerLowLevel, RtExtTiggerHighLevel
}
 Enumeration to define external trigger of Reload timer. More...
enum  en_rt_output_polarity { RtPolarityLow = 0, RtPolarityHigh }
 Enumeration to define Reload timer output initial polarity. More...
enum  en_rt_mode { RtReload = 0, RtOneshot }
 Enumeration to define Reload timer mode. More...
enum  en_rt_timer_size { RtSize16Bit = 0, RtSize32Bit }
 Enumeration to define Reload timer size. More...
enum  en_bt_rt_int { RtTrigInt = 0, RtUnderflowInt }
 Enumeration to define Reload timer interrupt type. More...
enum  en_pwc_clock_pres {
  PwcPresNone = 0, PwcPres1Div4 = 1, PwcPres1Div16 = 2, PwcPres1Div128 = 3,
  PwcPres1Div256 = 4, PwcPres1Div512 = 8, PwcPres1Div1024 = 9, PwcPres1Div2048 = 10
}
 Enumeration to define clock prescaler of PWC timer. More...
enum  en_pwc_measure_edge {
  PwcMeasureRisingToFalling = 0, PwcMeasureRisingToRising, PwcMeasureFallingToFalling, PwcMeasureEitherToEither,
  PwcMeasureFallingToRising
}
 Enumeration to define measure mode of PWC timer. More...
enum  en_pwc_mode { PwcContinuous = 0, PwcOneshot }
 Enumeration to define PWC timer mode. More...
enum  en_pwc_timer_size { PwcSize16Bit = 0, PwcSize32Bit }
 Enumeration to define Reload timer size. More...
enum  en_bt_pwc_int { PwcMeasureCompleteInt = 0, PwcMeasureOverflowInt }
 Enumeration to define PWC timer interrupt type. More...

Functions

en_result_t Bt_ConfigIOMode (volatile FM0P_BT_PWM_TypeDef *pstcBt, en_bt_io_mode_t enIoMode)
 Configure BT IO mode.
en_result_t Bt_SelTimerMode (volatile FM0P_BT_PWM_TypeDef *pstcBt, en_bt_timer_mode_t enTimerMode)
 Select timer function of BT.
en_result_t Bt_Pwm_Init (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_bt_pwm_config_t *pstcPwmConfig)
 Initialize PWM function of BT.
en_result_t Bt_Pwm_DeInit (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 De-Initialize PWM function of BT.
en_result_t Bt_Pwm_EnableCount (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Enable PWM timer counting.
en_result_t Bt_Pwm_DisableCount (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Disable PWM timer counting.
en_result_t Bt_Pwm_EnableSwTrig (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Start PWM timer by software.
en_result_t Bt_Pwm_EnableInt (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_pwm_int_sel_t *pstcIntSel, stc_pwm_int_cb_t *pstcIntCallback)
 Enable PWM timer interrupt.
en_result_t Bt_Pwm_DisableInt (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_pwm_int_sel_t *pstcIntSel)
 Disable PWM timer interrupt.
en_int_flag_t Bt_Pwm_GetIntFlag (volatile FM0P_BT_PWM_TypeDef *pstcBt, en_bt_pwm_int_t enIntType)
 Get interrupt flag of PWM timer.
en_result_t Bt_Pwm_ClrIntFlag (volatile FM0P_BT_PWM_TypeDef *pstcBt, en_bt_pwm_int_t enIntType)
 Clear interrupt flag of PWM timer.
en_result_t Bt_Pwm_WriteCycleVal (volatile FM0P_BT_PWM_TypeDef *pstcBt, uint16_t u16Cycle)
 Write Cycle value of PWM timer.
en_result_t Bt_Pwm_WriteDutyVal (volatile FM0P_BT_PWM_TypeDef *pstcBt, uint16_t u16Duty)
 Write duty value of PWM timer.
uint16_t Bt_Pwm_ReadCurCnt (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Read current count value of PWM timer.
en_result_t Bt_Ppg_Init (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_bt_ppg_config_t *pstcPpgConfig)
 Initialize PPG function of BT.
en_result_t Bt_Ppg_DeInit (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 De-Initialize PPG function of BT.
en_result_t Bt_Ppg_EnableCount (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Enable PPG timer counting.
en_result_t Bt_Ppg_DisableCount (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Disable PPG timer counting.
en_result_t Bt_Ppg_EnableSwTrig (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Start PPG timer by software.
en_result_t Bt_Ppg_EnableInt (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_ppg_int_sel_t *pstcIntSel, stc_ppg_int_cb_t *pstcIntCallback)
 Enable PPG timer interrupt.
en_result_t Bt_Ppg_DisableInt (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_ppg_int_sel_t *pstcIntSel)
 Disable PPG timer interrupt.
en_int_flag_t Bt_Ppg_GetIntFlag (volatile FM0P_BT_PWM_TypeDef *pstcBt, en_bt_ppg_int_t enIntType)
 Get interrupt flag of PPG timer.
en_result_t Bt_Ppg_ClrIntFlag (volatile FM0P_BT_PWM_TypeDef *pstcBt, en_bt_ppg_int_t enIntType)
 Clear interrupt flag of PPG timer.
en_result_t Bt_Ppg_WriteLowWidthVal (volatile FM0P_BT_PWM_TypeDef *pstcBt, uint16_t u16Val)
 Write low width count value of PPG timer.
en_result_t Bt_Ppg_WriteHighWidthVal (volatile FM0P_BT_PWM_TypeDef *pstcBt, uint16_t u16Val)
 Write high width count value of PPG timer.
uint16_t Bt_Ppg_ReadCurCnt (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Read current count value of PPG timer.
en_result_t Bt_Rt_Init (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_bt_rt_config_t *pstcRtConfig)
 Initialize RT function of BT.
en_result_t Bt_Rt_DeInit (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 De-Initialize RT function of BT.
en_result_t Bt_Rt_EnableCount (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Enable Reload timer counting.
en_result_t Bt_Rt_DisableCount (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Disable Reload timer counting.
en_result_t Bt_Rt_EnableSwTrig (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Start Reload timer by software.
en_result_t Bt_Rt_EnableInt (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_rt_int_sel_t *pstcIntSel, stc_rt_int_cb_t *pstcIntCallback)
 Enable Reload timer interrupt.
en_result_t Bt_Rt_DisableInt (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_rt_int_sel_t *pstcIntSel)
 Disable Reload timer interrupt.
en_int_flag_t Bt_Rt_GetIntFlag (volatile FM0P_BT_PWM_TypeDef *pstcBt, en_bt_rt_int_t enIntType)
 Get interrupt flag of Reload timer.
en_result_t Bt_Rt_ClrIntFlag (volatile FM0P_BT_PWM_TypeDef *pstcBt, en_bt_rt_int_t enIntType)
 Clear interrupt flag of Reload timer.
en_result_t Bt_Rt_WriteCycleVal (volatile FM0P_BT_PWM_TypeDef *pstcBt, uint16_t u16Val)
 Write count cycle of Reload timer.
uint16_t Bt_Rt_ReadCurCnt (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Read current count value of Reload timer.
en_result_t Bt_Pwc_Init (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_bt_pwc_config_t *pstcPwcConfig)
 Initialize PWC function of BT.
en_result_t Bt_Pwc_DeInit (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 De-Initialize PWC function of BT.
en_result_t Bt_Pwc_EnableCount (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Enable PWC timer counting.
en_result_t Bt_Pwc_DisableCount (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Disable PWC timer counting.
en_result_t Bt_Pwc_EnableInt (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_pwc_int_sel_t *pstcIntSel, stc_pwc_int_cb_t *pstcIntCallback)
 Enable PWC timer interrupt.
en_result_t Bt_Pwc_DisableInt (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_pwc_int_sel_t *pstcIntSel)
 Disable PWC timer interrupt.
en_int_flag_t Bt_Pwc_GetIntFlag (volatile FM0P_BT_PWM_TypeDef *pstcBt, en_bt_pwc_int_t enIntType)
 Get interrupt flag of PWC timer.
en_result_t Bt_Pwc_ClrIntFlag (volatile FM0P_BT_PWM_TypeDef *pstcBt, en_bt_pwc_int_t enIntType)
 Clear interrupt flag of PWC timer.
en_stat_flag_t Bt_Pwc_GetErrorFlag (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Get error flag of PWC timer.
uint16_t Bt_Pwc_Get16BitMeasureData (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Get 16 bits measure data of PWC timer.
uint32_t Bt_Pwc_Get32BitMeasureData (volatile FM0P_BT_PWM_TypeDef *pstcBt)
 Get 32 bits measure data of PWC timer.
void Bt_IrqHandler (volatile FM0P_BT_PWM_TypeDef *pstcBt, stc_bt_intern_data_t *pstcBtInternData)
 BT interrupt service routine.
void Bt_SetSimultaneousStart (uint16_t u16Value)
 Set the Simultaneous Start register of Base timer.

Variables

stc_bt_instance_data_t m_astcBtInstanceDataLut [((PDL_PERIPHERAL_ENABLE_BT0==PDL_ON)?1:0)+((PDL_PERIPHERAL_ENABLE_BT1==PDL_ON)?1:0)+((PDL_PERIPHERAL_ENABLE_BT2==PDL_ON)?1:0)+((PDL_PERIPHERAL_ENABLE_BT3==PDL_ON)?1:0)+((PDL_PERIPHERAL_ENABLE_BT4==PDL_ON)?1:0)+((PDL_PERIPHERAL_ENABLE_BT5==PDL_ON)?1:0)+((PDL_PERIPHERAL_ENABLE_BT6==PDL_ON)?1:0)+((PDL_PERIPHERAL_ENABLE_BT7==PDL_ON)?1:0)]
 Look-up table for all enabled BT instances and their internal data.

Detailed Description

Headerfile for BT functions

History:

  • 2013-12-10 0.1 Edison Zhang First version.

Definition in file bt.h.