gmrangle 2.0.0.0
gmrangle.h File Reference

This file contains API for GMR Angle Click driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_spi_master.h"
#include "spi_specifics.h"

Go to the source code of this file.

Data Structures

struct  gmrangle_t
 Click ctx object definition. More...
 
struct  gmrangle_cfg_t
 Click configuration structure definition. More...
 

Macros

#define GMRANGLE_MAP_MIKROBUS(cfg, mikrobus)
 
#define GMRANGLE_OK   0
 
#define GMRANGLE_ERROR   -1
 
#define GMRANGLE_REG_STAT   0x00
 
#define GMRANGLE_REG_ACSTAT   0x01
 
#define GMRANGLE_REG_AVAL   0x02
 
#define GMRANGLE_REG_ASPD   0x03
 
#define GMRANGLE_REG_AREV   0x04
 
#define GMRANGLE_REG_FSYNC   0x05
 
#define GMRANGLE_REG_MOD_1   0x06
 
#define GMRANGLE_REG_SIL   0x07
 
#define GMRANGLE_REG_MOD_2   0x08
 
#define GMRANGLE_REG_MOD_3   0x09
 
#define GMRANGLE_REG_OFFX   0x0A
 
#define GMRANGLE_REG_OFFY   0x0B
 
#define GMRANGLE_REG_SYNCH   0x0C
 
#define GMRANGLE_REG_IFAB   0x0D
 
#define GMRANGLE_REG_MOD_4   0x0E
 
#define GMRANGLE_REG_TCO_Y   0x0F
 
#define GMRANGLE_REG_ADC_X   0x10
 
#define GMRANGLE_REG_ADC_Y   0x11
 
#define GMRANGLE_READ_SENSOR   0x80
 
#define GMRANGLE_GET_BIT_5_4   0x30
 
#define GMRANGLE_GET_BIT_3_0   0x0F
 
#define GMRANGLE_SYSTEM_ERROR_MASK   0x4000
 
#define GMRANGLE_INTERFACE_ERROR_MASK   0x2000
 
#define GMRANGLE_INV_ANGLE_ERROR_MASK   0x1000
 
#define GMRANGLE_CRC_POLYNOMIAL   0x1D00
 
#define GMRANGLE_CRC_SEED   0xFF00
 
#define GMRANGLE_CRC_NUM_REGISTERS   0x0008
 
#define GMRANGLE_MAX_REGISTER_MEM   0x0030
 
#define GMRANGLE_DELETE_BIT_15   0x7FFF
 
#define GMRANGLE_CHANGE_UINT_TO_INT_16   0xFFFF
 
#define GMRANGLE_CHANGE_UINT_TO_INT_15   0x8000
 
#define GMRANGLE_MAX_BIT_14   0x3FFF
 
#define GMRANGLE_CHECK_BIT_14   0x4000
 
#define GMRANGLE_GET_BIT_14_4   0x7FF0
 
#define GMRANGLE_DELETE_7BITS   0x01FF
 
#define GMRANGLE_CHANGE_UNIT_TO_INT_9   0x0200
 
#define GMRANGLE_CHECK_BIT_9   0x0100
 
#define GMRANGLE_CHECK_BIT_15   0x8000
 
#define GMRANGLE_POW_2_15   32768.0f
 
#define GMRANGLE_POW_2_7   128.0f
 
#define GMRANGLE_ANGLE_360_VAL   360.0f
 
#define GMRANGLE_TEMP_OFFSET   152.0f
 
#define GMRANGLE_TEMP_DIV   2.776f
 
#define GMRANGLE_DATA_RESOLUTION   0x7FFF
 
#define GMRANGLE_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection.
 
#define GMRANGLE_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE
 

Functions

void gmrangle_cfg_setup (gmrangle_cfg_t *cfg)
 Config Object Initialization function.
 
err_t gmrangle_init (gmrangle_t *ctx, gmrangle_cfg_t *cfg)
 Initialization function.
 
uint16_t gmrangle_read_data (gmrangle_t *ctx, uint8_t reg)
 Generic read 16-bit data function.
 
void gmrangle_write_data (gmrangle_t *ctx, uint8_t reg, uint16_t tx_data)
 Generic write 16-bit data function.
 
uint16_t gmrangle_get_status (gmrangle_t *ctx)
 Get the status data function.
 
void gmrangle_set_act_status (gmrangle_t *ctx, uint16_t a_data)
 Set activation status register function.
 
int16_t gmrangle_get_angle_speed_value (gmrangle_t *ctx)
 Get the angle speed value function.
 
void gmrangle_get_angle_speed (gmrangle_t *ctx, float *final_angle_speed, int16_t *angle_speed_val)
 Get the angle speed function.
 
float gmrangle_get_angle_range (gmrangle_t *ctx)
 Get the angle range function.
 
int16_t gmrangle_get_num_revolutions (gmrangle_t *ctx)
 Get the number of revolutions function.
 
uint16_t gmrangle_get_angle_value (gmrangle_t *ctx)
 Get the angle value function.
 
float gmrangle_calculate_angle (gmrangle_t *ctx)
 Calculate angle function.
 

Detailed Description

This file contains API for GMR Angle Click driver.