LibDriver AS5600
Loading...
Searching...
No Matches
driver_as5600_read_test.c
Go to the documentation of this file.
1
36
38
39static as5600_handle_t gs_handle;
40
49uint8_t as5600_read_test(uint32_t times)
50{
51 uint8_t res;
52 uint32_t i;
53 as5600_info_t info;
54
55 /* link interface function */
63
64 /* get chip information */
65 res = as5600_info(&info);
66 if (res != 0)
67 {
68 as5600_interface_debug_print("as5600: get info failed.\n");
69
70 return 1;
71 }
72 else
73 {
74 /* print chip information */
75 as5600_interface_debug_print("as5600: chip is %s.\n", info.chip_name);
76 as5600_interface_debug_print("as5600: manufacturer is %s.\n", info.manufacturer_name);
77 as5600_interface_debug_print("as5600: interface is %s.\n", info.interface);
78 as5600_interface_debug_print("as5600: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
79 as5600_interface_debug_print("as5600: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
80 as5600_interface_debug_print("as5600: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
81 as5600_interface_debug_print("as5600: max current is %0.2fmA.\n", info.max_current_ma);
82 as5600_interface_debug_print("as5600: max temperature is %0.1fC.\n", info.temperature_max);
83 as5600_interface_debug_print("as5600: min temperature is %0.1fC.\n", info.temperature_min);
84 }
85
86 /* as5600 init */
87 res = as5600_init(&gs_handle);
88 if (res != 0)
89 {
90 as5600_interface_debug_print("as5600: init failed.\n");
91
92 return 1;
93 }
94
95 /* start read test */
96 as5600_interface_debug_print("as5600: start read test.\n");
97
98 for (i = 0; i < times; i++)
99 {
100 uint16_t angle_raw;
101 float deg;
102
103 /* read data */
104 res = as5600_read(&gs_handle, &angle_raw, &deg);
105 if (res != 0)
106 {
107 as5600_interface_debug_print("as5600: read failed.\n");
108 (void)as5600_deinit(&gs_handle);
109
110 return 1;
111 }
112
113 /* output */
114 as5600_interface_debug_print("as5600: angle is %.2f and raw angle is %d.\n", deg, angle_raw);
115
116 /* delay 1000ms */
118 }
119
120 /* finish read test */
121 as5600_interface_debug_print("as5600: finish read test.\n");
122 (void)as5600_deinit(&gs_handle);
123
124 return 0;
125}
driver as5600 read test header file
uint8_t as5600_read(as5600_handle_t *handle, uint16_t *angle_raw, float *deg)
read the magnetic angle
uint8_t as5600_info(as5600_info_t *info)
get chip's information
struct as5600_handle_s as5600_handle_t
as5600 handle structure definition
struct as5600_info_s as5600_info_t
as5600 information structure definition
uint8_t as5600_init(as5600_handle_t *handle)
initialize the chip
uint8_t as5600_deinit(as5600_handle_t *handle)
close the chip
uint8_t as5600_interface_iic_deinit(void)
interface iic bus deinit
uint8_t as5600_interface_iic_init(void)
interface iic bus init
void as5600_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t as5600_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
void as5600_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t as5600_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t as5600_read_test(uint32_t times)
read test
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]