You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

113 lines
3.6 KiB

#ifndef __PWD_DEFINE_H__
#define __PWD_DEFINE_H__
//-----------------------------------------------------------------------------
// pwd registers definition
//-----------------------------------------------------------------------------
#pragma anon_unions
//-----------------------------------------------------------------------------
// registers structures
typedef struct
{
//pulse width detection enable
uint32_t enable:8;
uint32_t reserved_31_8:24;
} REG_pwd_cfg_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_pwd_cfg_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_pwd_cfg_TypeDef;
typedef struct
{
//usb_dp pulse width 1lsb = 1us
uint32_t width:16;
//usb_dp pulse level 1: high level 0: low level
uint32_t level:1;
uint32_t reserved_31_17:15;
} REG_pwd_ch0_val_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_pwd_ch0_val_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_pwd_ch0_val_TypeDef;
typedef struct
{
//usb_dp pulse width 1lsb = 1us
uint32_t width:16;
//usb_dp pulse level 1: high level 0: low level
uint32_t level:1;
uint32_t reserved_31_17:15;
} REG_pwd_ch1_val_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_pwd_ch1_val_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_pwd_ch1_val_TypeDef;
typedef struct
{
//usb_dp pulse width 1lsb = 1us
uint32_t width:16;
//usb_dp pulse level 1: high level 0: low level
uint32_t level:1;
uint32_t reserved_31_17:15;
} REG_pwd_ch2_val_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_pwd_ch2_val_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_pwd_ch2_val_TypeDef;
typedef struct
{
//usb_dp pulse width 1lsb = 1us
uint32_t width:16;
//usb_dp pulse level 1: high level 0: low level
uint32_t level:1;
uint32_t reserved_31_17:15;
} REG_pwd_ch3_val_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_pwd_ch3_val_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_pwd_ch3_val_TypeDef;
//-----------------------------------------------------------------------------
// memory map
#define REG_PWD_CFG_BASE 0x4000E000
#define REG_PWD_CH0_VAL_BASE 0x4000E004
#define REG_PWD_CH1_VAL_BASE 0x4000E008
#define REG_PWD_CH2_VAL_BASE 0x4000E00C
#define REG_PWD_CH3_VAL_BASE 0x4000E010
//-----------------------------------------------------------------------------
// declaration
#define REG_PWD_CFG ((REG_pwd_cfg_TypeDef *) REG_PWD_CFG_BASE )
#define REG_PWD_CH0_VAL ((REG_pwd_ch0_val_TypeDef *) REG_PWD_CH0_VAL_BASE )
#define REG_PWD_CH1_VAL ((REG_pwd_ch1_val_TypeDef *) REG_PWD_CH1_VAL_BASE )
#define REG_PWD_CH2_VAL ((REG_pwd_ch2_val_TypeDef *) REG_PWD_CH2_VAL_BASE )
#define REG_PWD_CH3_VAL ((REG_pwd_ch3_val_TypeDef *) REG_PWD_CH3_VAL_BASE )
//-----------------------------------------------------------------------------
// set
#define REG_PWD_CFG_ENABLE_POS 0
#define REG_PWD_CFG_ENABLE_MSK (0xFFul << REG_PWD_CFG_ENABLE_POS)
#define REG_PWD_CFG_ENABLE_SET(num) (((num) << REG_PWD_CFG_ENABLE_POS ) & REG_PWD_CFG_ENABLE_MSK)
#endif /*__PWD_DEFINE_H__*/