Go to the documentation of this file.
38 #include "mikrosdk_version.h"
41 #if mikroSDK_GET_VERSION < 20800ul
42 #include "rcu_delays.h"
48 #include "drv_digital_out.h"
49 #include "drv_digital_in.h"
50 #include "drv_spi_master.h"
64 #define TMRANGLE_MAP_MIKROBUS( cfg, mikrobus ) \
65 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
66 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
67 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
68 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS )
75 #define TMRANGLE_RETVAL uint8_t
77 #define TMRANGLE_OK 0x00
78 #define TMRANGLE_INIT_ERROR 0xFF
85 #define TMRANGLE_COS_N 0x00
86 #define TMRANGLE_COS_P 0x01
87 #define TMRANGLE_SIN_P 0x02
88 #define TMRANGLE_SIN_N 0x03
95 #define TMRANGLE_RAD2DEGFACTOR 57.3248
96 #define TMRANGLE_ROTATION_VALID 1
97 #define TMRANGLE_ANGLE45_H 0.7894
98 #define TMRANGLE_ANGLE45_L 0.7806
99 #define TMRANGLE_ANGLE135_H 2.3594
100 #define TMRANGLE_ANGLE135_L 2.3506
107 #define TMRANGLE_MAX_DIFF_SIN 1251
108 #define TMRANGLE_MAX_DIFF_COS 1217
109 #define TMRANGLE_MIN_DIFF_SIN -1200
110 #define TMRANGLE_MIN_DIFF_COS -1206
111 #define TMRANGLE_SIN_45 854.0
112 #define TMRANGLE_COS_45 864.0
113 #define TMRANGLE_SIN_135 873.0
114 #define TMRANGLE_COS_135 -865.0
438 #endif // _TMRANGLE_H_
pin_name_t mosi
Definition: tmrangle.h:165
float x_45_corr
Definition: tmrangle.h:201
float cos_ortho
Definition: tmrangle.h:231
TMRANGLE_RETVAL tmrangle_init(tmrangle_t *ctx, tmrangle_cfg_t *cfg)
Initialization function.
pin_name_t cs
Definition: tmrangle.h:167
tmrangle_analog_sensor_data_t sensor_data
Definition: tmrangle.h:153
float amplitude_y
Definition: tmrangle.h:211
int32_t min_sin
Definition: tmrangle.h:191
float sin_135
Definition: tmrangle.h:243
int32_t max_diff_sin
Definition: tmrangle.h:237
void tmrangle_init_calib_data(tmrangle_t *ctx, tmrangle_calib_data_t *calib_param, trigonometry_t *dev)
Initialization and stores calibration parameters function.
void tmrangle_calib_one_direction_min_max(tmrangle_t *ctx, tmrangle_rotation_data_store_t *rotation_data_store)
Find and stores rotation parameters ( min, max ) function.
uint8_t angle_135_found
Definition: tmrangle.h:182
float tmrangle_get_calib_deff_angle(tmrangle_t *ctx, tmrangle_calib_data_t *calib_param)
Calculate the calibrated angle ( radians ) function.
#define TMRANGLE_RETVAL
Definition: tmrangle.h:75
void tmrangle_init_sensor_data(tmrangle_t *ctx)
Read and stores parameters data function.
Click ctx object definition.
Definition: tmrangle.h:128
digital_out_t cs
Definition: tmrangle.h:146
uint16_t cos_p
Definition: tmrangle.h:131
float sin_ortho
Definition: tmrangle.h:229
void tmrangle_calibration_find_param(tmrangle_t *ctx, tmrangle_calib_data_t *calib_param)
Get new calibration rotation parameters function.
int16_t diff_y
Definition: tmrangle.h:139
float magnitude_135
Definition: tmrangle.h:219
float amplitude_x
Definition: tmrangle.h:209
float y_135_corr
Definition: tmrangle.h:207
uint16_t sin_p
Definition: tmrangle.h:129
Definition: tmrangle.h:145
uint32_t nr_valid_rotations
Definition: tmrangle.h:183
int32_t min_diff_sin
Definition: tmrangle.h:239
float y_135
Definition: tmrangle.h:199
void tmrangle_calculate_diff(tmrangle_t *ctx)
Calculate the differential values of sin,cos signal and angle function.
void tmrangle_calib_calculate_ortho(tmrangle_calib_data_t *calib_param)
Calculates and stores parameters, based on found parameters from both CW and CCW function.
uint16_t cos_n
Definition: tmrangle.h:135
uint16_t sin_n
Definition: tmrangle.h:133
uint8_t angle_45_found
Definition: tmrangle.h:181
float x_135
Definition: tmrangle.h:195
void tmrangle_cfg_setup(tmrangle_cfg_t *cfg)
Config Object Initialization function.
uint16_t tmrangle_read_channel_adc(tmrangle_t *ctx, uint8_t channel)
Read the ADC value of the selected channel function.
pin_name_t sck
Definition: tmrangle.h:166
float tmrangle_get_calib_angle(tmrangle_t *ctx, tmrangle_calib_data_t *calib_param)
Calculate the calibrated angle ( degree ) function.
uint32_t spi_speed
Definition: tmrangle.h:172
int32_t max_cos
Definition: tmrangle.h:185
Click configuration structure definition.
Definition: tmrangle.h:161
tmrangle_rotation_data_store_t rotation_data
Definition: tmrangle.h:227
Definition: tmrangle.h:180
uint8_t spi_mode
Definition: tmrangle.h:173
float ortho_one_dir
Definition: tmrangle.h:221
Definition: tmrangle.h:236
int16_t diff_x
Definition: tmrangle.h:137
pin_name_t chip_select
Definition: tmrangle.h:151
Definition: tmrangle.h:226
void tmrangle_calib_find_min_max(tmrangle_t *ctx, tmrangle_rotation_data_store_t *rotation_data_store)
Compare and stores rotation parameters function.
float offset_x
Definition: tmrangle.h:213
float x_45
Definition: tmrangle.h:193
int32_t max_sin
Definition: tmrangle.h:189
float y_45_corr
Definition: tmrangle.h:205
spi_master_chip_select_polarity_t cs_polarity
Definition: tmrangle.h:174
float cos_135
Definition: tmrangle.h:244
float x_135_corr
Definition: tmrangle.h:203
float sin_45
Definition: tmrangle.h:241
float offset_y
Definition: tmrangle.h:215
void tmrangle_calib_calculate_one_direction(tmrangle_t *ctx, tmrangle_rotation_data_store_t *rotation_data_store)
Calculates and stores parameters, based on found parameters function.
float cos_45
Definition: tmrangle.h:242
int32_t min_cos
Definition: tmrangle.h:187
float y_45
Definition: tmrangle.h:197
int32_t max_diff_cos
Definition: tmrangle.h:238
spi_master_t spi
Definition: tmrangle.h:150
pin_name_t miso
Definition: tmrangle.h:164
float magnitude_45
Definition: tmrangle.h:217
float uncalibrated_angle
Definition: tmrangle.h:141
int32_t min_diff_cos
Definition: tmrangle.h:240