polarimeter_software/User/driver/sv630p/h0d_af.h
2025-09-30 10:37:23 +08:00

52 lines
1.6 KiB
C
Raw Permalink 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.

#ifndef __H0D_AF_H__
#define __H0D_AF_H__
#include "sv_common.h"
#define REG_H0D_17_FORCE_DIDO_OUTPUT 0x0D11
// DIDO强制模式下输出使能枚举类型
typedef enum
{
SV630P_DIDO_FORCE_NONE = 0, // 无操作
SV630P_DIDO_FORCE_DI_ENABLE = 1, // 强制DI使能强制DO不使能
SV630P_DIDO_FORCE_DO_ENABLE = 2, // 强制DO使能强制DI不使能
SV630P_DIDO_FORCE_ALL_ENABLE = 3 // 强制DIDO都使能
} DIDO_ForceMode;
#define REG_H0D_18_FORCE_DI_INPUT 0x0D12
#define FORCE_DI_INPUT_VAL_MIN 0x0000
#define FORCE_DI_INPUT_VAL_MAX 0x1FF
#define FORCE_DI_INPUT_VAL_DEF 0x1FF
#define DI1_BIT (1 << 0)
#define DI2_BIT (1 << 1)
#define DI3_BIT (1 << 2)
#define DI4_BIT (1 << 3)
#define DI5_BIT (1 << 4)
#define DI6_BIT (1 << 5)
#define DI7_BIT (1 << 6)
#define DI8_BIT (1 << 7)
#define DI9_BIT (1 << 8)
#define NOT_CONCERN_BIT (0)
int sv630p_h0d_17_read_force_output_mode(sv630p_handle_t *dev, DIDO_ForceMode *mode);
/**
* @brief Set the Force Output Mode
* @param dev SV630P device
* @param mode DIDO_ForceMode
*/
int sv630p_h0d_17_write_force_output_mode(sv630p_handle_t *dev, DIDO_ForceMode mode);
int sv630p_h0d_18_read_force_input_value(sv630p_handle_t *dev, uint16_t *value);
/**
* @brief Set the Force Input Value
* @param dev SV630P device
* @param high_mask Bit mask that needs to be set to high level
* @param low_mask Bit mask that needs to be set to high level
* @note Check H17 and H0D.17 H0D.18
*/
int sv630p_h0d_18_write_force_input_bits(sv630p_handle_t *dev, uint16_t high_mask, uint16_t low_mask);
#endif //__H0D_AF_H