LibDriver RX8025T
Loading...
Searching...
No Matches
driver_rx8025t_timer_test.c
Go to the documentation of this file.
1
36
38
39static rx8025t_handle_t gs_handle;
40static uint8_t gs_flag;
41
47static void a_callback(uint8_t type)
48{
49 switch (type)
50 {
52 {
53 rx8025t_interface_debug_print("rx8025t: irq update.\n");
54
55 break;
56 }
58 {
59 rx8025t_interface_debug_print("rx8025t: irq timer.\n");
60 gs_flag = 1;
61
62 break;
63 }
65 {
66 rx8025t_interface_debug_print("rx8025t: irq alarm.\n");
67
68 break;
69 }
71 {
72 rx8025t_interface_debug_print("rx8025t: irq voltage low.\n");
73
74 break;
75 }
77 {
78 rx8025t_interface_debug_print("rx8025t: irq voltage detection.\n");
79
80 break;
81 }
82 default :
83 {
84 rx8025t_interface_debug_print("rx8025t: unknown code.\n");
85
86 break;
87 }
88 }
89}
90
99{
100 if (rx8025t_irq_handler(&gs_handle) != 0)
101 {
102 return 1;
103 }
104
105 return 0;
106}
107
116{
117 uint8_t res;
118 uint16_t timeout;
119 rx8025t_info_t info;
120
121 /* link functions */
129 DRIVER_RX8025T_LINK_RECEIVE_CALLBACK(&gs_handle, a_callback);
130
131 /* get rx8025t info */
132 res = rx8025t_info(&info);
133 if (res != 0)
134 {
135 rx8025t_interface_debug_print("rx8025t: get info failed.\n");
136
137 return 1;
138 }
139 else
140 {
141 /* print rx8025t info */
142 rx8025t_interface_debug_print("rx8025t: chip is %s.\n", info.chip_name);
143 rx8025t_interface_debug_print("rx8025t: manufacturer is %s.\n", info.manufacturer_name);
144 rx8025t_interface_debug_print("rx8025t: interface is %s.\n", info.interface);
145 rx8025t_interface_debug_print("rx8025t: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
146 rx8025t_interface_debug_print("rx8025t: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
147 rx8025t_interface_debug_print("rx8025t: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
148 rx8025t_interface_debug_print("rx8025t: max current is %0.2fmA.\n", info.max_current_ma);
149 rx8025t_interface_debug_print("rx8025t: max temperature is %0.1fC.\n", info.temperature_max);
150 rx8025t_interface_debug_print("rx8025t: min temperature is %0.1fC.\n", info.temperature_min);
151 }
152
153 /* start timer test */
154 rx8025t_interface_debug_print("rx8025t: start timer test.\n");
155
156 /* init rx8025t */
157 res = rx8025t_init(&gs_handle);
158 if (res != 0)
159 {
160 rx8025t_interface_debug_print("rx8025t: init failed.\n");
161
162 return 1;
163 }
164
165 /* start */
166 res = rx8025t_start(&gs_handle);
167 if (res != 0)
168 {
169 rx8025t_interface_debug_print("rx8025t: start failed.\n");
170 (void)rx8025t_deinit(&gs_handle);
171
172 return 1;
173 }
174
175 /* set timer clock 64hz */
177 if (res != 0)
178 {
179 rx8025t_interface_debug_print("rx8025t: set timer clock failed.\n");
180 (void)rx8025t_deinit(&gs_handle);
181
182 return 1;
183 }
184
185 /* set timer counter */
186 res = rx8025t_set_timer_counter(&gs_handle, 64 *10);
187 if (res != 0)
188 {
189 rx8025t_interface_debug_print("rx8025t: set timer counter failed.\n");
190 (void)rx8025t_deinit(&gs_handle);
191
192 return 1;
193 }
194
195 /* set temperature compensation interval */
197 if (res != 0)
198 {
199 rx8025t_interface_debug_print("rx8025t: set temperature compensation interval failed.\n");
200 (void)rx8025t_deinit(&gs_handle);
201
202 return 1;
203 }
204
205 /* second update */
207 if (res != 0)
208 {
209 rx8025t_interface_debug_print("rx8025t: set update select failed.\n");
210 (void)rx8025t_deinit(&gs_handle);
211
212 return 1;
213 }
214
215 /* disable test */
216 res = rx8025t_set_test(&gs_handle, RX8025T_BOOL_FALSE);
217 if (res != 0)
218 {
219 rx8025t_interface_debug_print("rx8025t: set test failed.\n");
220 (void)rx8025t_deinit(&gs_handle);
221
222 return 1;
223 }
224
225 /* disable alarm interrupt */
227 if (res != 0)
228 {
229 rx8025t_interface_debug_print("rx8025t: set alarm interrupt failed.\n");
230 (void)rx8025t_deinit(&gs_handle);
231
232 return 1;
233 }
234
235 /* enable update interrupt */
237 if (res != 0)
238 {
239 rx8025t_interface_debug_print("rx8025t: set update interrupt failed.\n");
240 (void)rx8025t_deinit(&gs_handle);
241
242 return 1;
243 }
244
245 /* enable timer interrupt */
247 if (res != 0)
248 {
249 rx8025t_interface_debug_print("rx8025t: set timer interrupt failed.\n");
250 (void)rx8025t_deinit(&gs_handle);
251
252 return 1;
253 }
254
255 /* clear flag */
256 res = rx8025t_clear_flag(&gs_handle);
257 if (res != 0)
258 {
259 rx8025t_interface_debug_print("rx8025t: clear flag failed.\n");
260 (void)rx8025t_deinit(&gs_handle);
261
262 return 1;
263 }
264
265 /* enable timer */
266 res = rx8025t_set_timer(&gs_handle, RX8025T_BOOL_TRUE);
267 if (res != 0)
268 {
269 rx8025t_interface_debug_print("rx8025t: set timer failed.\n");
270 (void)rx8025t_deinit(&gs_handle);
271
272 return 1;
273 }
274
275 rx8025t_interface_debug_print("rx8025t: 10s start.\n");
276
277 gs_flag = 0;
278 timeout = 15000;
279 while (timeout != 0)
280 {
281 /* check flag */
282 if (gs_flag != 0)
283 {
284 break;
285 }
286
287 /* timeout-- */
288 timeout--;
289
290 /* delay 1ms */
292 }
293
294 /* check timeout */
295 if (timeout != 0)
296 {
297 rx8025t_interface_debug_print("rx8025t: end.\n");
298 }
299 else
300 {
301 rx8025t_interface_debug_print("rx8025t: timeout.\n");
302 }
303
304 /* finish timer test */
305 rx8025t_interface_debug_print("rx8025t: finish timer test.\n");
306 (void)rx8025t_set_timer(&gs_handle, RX8025T_BOOL_FALSE);
307 (void)rx8025t_deinit(&gs_handle);
308
309 return 0;
310}
driver rx8025t timer test header file
uint8_t rx8025t_set_update_interrupt(rx8025t_handle_t *handle, rx8025t_bool_t enable)
enable or disable update interrupt
uint8_t rx8025t_set_timer_counter(rx8025t_handle_t *handle, uint16_t counter)
set timer counter
uint8_t rx8025t_info(rx8025t_info_t *info)
get chip's information
uint8_t rx8025t_set_timer_interrupt(rx8025t_handle_t *handle, rx8025t_bool_t enable)
enable or disable timer interrupt
uint8_t rx8025t_set_alarm_interrupt(rx8025t_handle_t *handle, rx8025t_bool_t enable)
enable or disable alarm interrupt
uint8_t rx8025t_start(rx8025t_handle_t *handle)
start
uint8_t rx8025t_init(rx8025t_handle_t *handle)
initialize the chip
uint8_t rx8025t_clear_flag(rx8025t_handle_t *handle)
clear flag
uint8_t rx8025t_set_update_select(rx8025t_handle_t *handle, rx8025t_update_select_t select)
set update select
uint8_t rx8025t_set_test(rx8025t_handle_t *handle, rx8025t_bool_t enable)
enable or disable test
uint8_t rx8025t_set_timer_clock(rx8025t_handle_t *handle, rx8025t_timer_clock_t clk)
set timer clock
uint8_t rx8025t_set_temperature_compensation_interval(rx8025t_handle_t *handle, rx8025t_temperature_compensation_interval_t interval)
set the temperature compensation interval
uint8_t rx8025t_irq_handler(rx8025t_handle_t *handle)
irq handler
uint8_t rx8025t_set_timer(rx8025t_handle_t *handle, rx8025t_bool_t enable)
enable or disable timer
struct rx8025t_handle_s rx8025t_handle_t
rx8025t handle structure definition
uint8_t rx8025t_deinit(rx8025t_handle_t *handle)
close the chip
struct rx8025t_info_s rx8025t_info_t
rx8025t information structure definition
@ RX8025T_UPDATE_SELECT_SECOND
@ RX8025T_TIMER_CLOCK_64_HZ
@ RX8025T_STATUS_TIMER
@ RX8025T_STATUS_ALARM
@ RX8025T_STATUS_UPDATE
@ RX8025T_STATUS_VOLTAGE_DETECTION
@ RX8025T_STATUS_VOLTAGE_LOW
@ RX8025T_BOOL_TRUE
@ RX8025T_BOOL_FALSE
@ RX8025T_TEMPERATURE_COMPENSATION_INTERVAL_0P5_SECOND
uint8_t rx8025t_interface_iic_init(void)
interface iic bus init
uint8_t rx8025t_interface_iic_deinit(void)
interface iic bus deinit
uint8_t rx8025t_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void rx8025t_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t rx8025t_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
void rx8025t_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t rx8025t_timer_test_irq_handler(void)
timer test irq
uint8_t rx8025t_timer_test(void)
timer test
uint32_t driver_version
char manufacturer_name[32]