LibDriver MMA7660FC
Loading...
Searching...
No Matches
driver_mma7660fc_register_test.c
Go to the documentation of this file.
1
36
38#include <stdlib.h>
39
40static mma7660fc_handle_t gs_handle;
41
50{
51 uint8_t res;
52 uint8_t status;
53 uint8_t count;
54 uint8_t count_check;
55 uint8_t threshold;
56 uint8_t threshold_check;
57 uint8_t reg;
58 float ms;
59 float ms_check;
60 mma7660fc_bool_t enable;
69
70 /* link interface function */
79
80 /* get mma7660fc info */
81 res = mma7660fc_info(&info);
82 if (res != 0)
83 {
84 mma7660fc_interface_debug_print("mma7660fc: get info failed.\n");
85
86 return 1;
87 }
88 else
89 {
90 /* print mma7660fc */
91 mma7660fc_interface_debug_print("mma7660fc: chip is %s.\n", info.chip_name);
92 mma7660fc_interface_debug_print("mma7660fc: manufacturer is %s.\n", info.manufacturer_name);
93 mma7660fc_interface_debug_print("mma7660fc: interface is %s.\n", info.interface);
94 mma7660fc_interface_debug_print("mma7660fc: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
95 mma7660fc_interface_debug_print("mma7660fc: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
96 mma7660fc_interface_debug_print("mma7660fc: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
97 mma7660fc_interface_debug_print("mma7660fc: max current is %0.2fmA.\n", info.max_current_ma);
98 mma7660fc_interface_debug_print("mma7660fc: max temperature is %0.1fC.\n", info.temperature_max);
99 mma7660fc_interface_debug_print("mma7660fc: min temperature is %0.1fC.\n", info.temperature_min);
100 }
101
102 /* start register test */
103 mma7660fc_interface_debug_print("mma7660fc: start register test.\n");
104
105 /* init */
106 res = mma7660fc_init(&gs_handle);
107 if (res != 0)
108 {
109 mma7660fc_interface_debug_print("mma7660fc: init failed.\n");
110
111 return 1;
112 }
113
114 /* mma7660fc_get_tilt_status test */
115 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_get_tilt_status test.\n");
116
117 /* get tilt status */
118 res = mma7660fc_get_tilt_status(&gs_handle, &status);
119 if (res != 0)
120 {
121 mma7660fc_interface_debug_print("mma7660fc: get tilt status failed.\n");
122 (void)mma7660fc_deinit(&gs_handle);
123
124 return 1;
125 }
126 mma7660fc_interface_debug_print("mma7660fc: tilt status is 0x%02X.\n", status);
127 mma7660fc_interface_debug_print("mma7660fc: check tilt status %s.\n", res == 0 ? "ok" : "error");
128
129 /* mma7660fc_get_auto_sleep_status test */
130 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_get_auto_sleep_status test.\n");
131
132 /* get auto sleep status */
133 res = mma7660fc_get_auto_sleep_status(&gs_handle, &enable);
134 if (res != 0)
135 {
136 mma7660fc_interface_debug_print("mma7660fc: get auto sleep status failed.\n");
137 (void)mma7660fc_deinit(&gs_handle);
138
139 return 1;
140 }
141 mma7660fc_interface_debug_print("mma7660fc: auto sleep status is %s.\n", enable == MMA7660FC_BOOL_TRUE ? "true" : "false");
142 mma7660fc_interface_debug_print("mma7660fc: check auto sleep status %s.\n", res == 0 ? "ok" : "error");
143
144 /* mma7660fc_get_auto_wake_up_status test */
145 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_get_auto_wake_up_status test.\n");
146
147 /* get auto wake up status */
148 res = mma7660fc_get_auto_wake_up_status(&gs_handle, &enable);
149 if (res != 0)
150 {
151 mma7660fc_interface_debug_print("mma7660fc: get auto wake up status failed.\n");
152 (void)mma7660fc_deinit(&gs_handle);
153
154 return 1;
155 }
156 mma7660fc_interface_debug_print("mma7660fc: auto wake up status is %s.\n", enable == MMA7660FC_BOOL_TRUE ? "true" : "false");
157 mma7660fc_interface_debug_print("mma7660fc: check auto wake up status %s.\n", res == 0 ? "ok" : "error");
158
159 /* mma7660fc_set_sleep_count/mma7660fc_get_sleep_count test */
160 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_sleep_count/mma7660fc_get_sleep_count test.\n");
161
162 count = rand() % 256;
163 res = mma7660fc_set_sleep_count(&gs_handle, count);
164 if (res != 0)
165 {
166 mma7660fc_interface_debug_print("mma7660fc: set sleep count failed.\n");
167 (void)mma7660fc_deinit(&gs_handle);
168
169 return 1;
170 }
171 mma7660fc_interface_debug_print("mma7660fc: set sleep count %d.\n", count);
172 res = mma7660fc_get_sleep_count(&gs_handle, &count_check);
173 if (res != 0)
174 {
175 mma7660fc_interface_debug_print("mma7660fc: get sleep count failed.\n");
176 (void)mma7660fc_deinit(&gs_handle);
177
178 return 1;
179 }
180 mma7660fc_interface_debug_print("mma7660fc: check sleep count %s.\n", count == count_check ? "ok" : "error");
181
182 /* mma7660fc_set_front_back_interrupt/mma7660fc_get_front_back_interrupt test */
183 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_front_back_interrupt/mma7660fc_get_front_back_interrupt test.\n");
184
185 /* enable front back interrupt */
187 if (res != 0)
188 {
189 mma7660fc_interface_debug_print("mma7660fc: set front back interrupt failed.\n");
190 (void)mma7660fc_deinit(&gs_handle);
191
192 return 1;
193 }
194 mma7660fc_interface_debug_print("mma7660fc: enable front back interrupt.\n");
195 res = mma7660fc_get_front_back_interrupt(&gs_handle, &enable);
196 if (res != 0)
197 {
198 mma7660fc_interface_debug_print("mma7660fc: get front back interrupt failed.\n");
199 (void)mma7660fc_deinit(&gs_handle);
200
201 return 1;
202 }
203 mma7660fc_interface_debug_print("mma7660fc: check front back interrupt %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
204
205 /* disable front back interrupt */
207 if (res != 0)
208 {
209 mma7660fc_interface_debug_print("mma7660fc: set front back interrupt failed.\n");
210 (void)mma7660fc_deinit(&gs_handle);
211
212 return 1;
213 }
214 mma7660fc_interface_debug_print("mma7660fc: disable front back interrupt.\n");
215 res = mma7660fc_get_front_back_interrupt(&gs_handle, &enable);
216 if (res != 0)
217 {
218 mma7660fc_interface_debug_print("mma7660fc: get front back interrupt failed.\n");
219 (void)mma7660fc_deinit(&gs_handle);
220
221 return 1;
222 }
223 mma7660fc_interface_debug_print("mma7660fc: check front back interrupt %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
224
225 /* mma7660fc_set_up_down_right_left_interrupt/mma7660fc_get_up_down_right_left_interrupt test */
226 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_up_down_right_left_interrupt/mma7660fc_get_up_down_right_left_interrupt test.\n");
227
228 /* enable up down right left interrupt */
230 if (res != 0)
231 {
232 mma7660fc_interface_debug_print("mma7660fc: set up down right left interrupt failed.\n");
233 (void)mma7660fc_deinit(&gs_handle);
234
235 return 1;
236 }
237 mma7660fc_interface_debug_print("mma7660fc: enable up down right left interrupt.\n");
238 res = mma7660fc_get_up_down_right_left_interrupt(&gs_handle, &enable);
239 if (res != 0)
240 {
241 mma7660fc_interface_debug_print("mma7660fc: get up down right left interrupt failed.\n");
242 (void)mma7660fc_deinit(&gs_handle);
243
244 return 1;
245 }
246 mma7660fc_interface_debug_print("mma7660fc: check up down right left interrupt %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
247
248 /* disable up down right left interrupt */
250 if (res != 0)
251 {
252 mma7660fc_interface_debug_print("mma7660fc: set up down right left interrupt failed.\n");
253 (void)mma7660fc_deinit(&gs_handle);
254
255 return 1;
256 }
257 mma7660fc_interface_debug_print("mma7660fc: disable up down right left interrupt.\n");
258 res = mma7660fc_get_up_down_right_left_interrupt(&gs_handle, &enable);
259 if (res != 0)
260 {
261 mma7660fc_interface_debug_print("mma7660fc: get up down right left interrupt failed.\n");
262 (void)mma7660fc_deinit(&gs_handle);
263
264 return 1;
265 }
266 mma7660fc_interface_debug_print("mma7660fc: check up down right left interrupt %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
267
268 /* mma7660fc_set_tap_interrupt/mma7660fc_get_tap_interrupt test */
269 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_tap_interrupt/mma7660fc_get_tap_interrupt test.\n");
270
271 /* enable tap interrupt */
273 if (res != 0)
274 {
275 mma7660fc_interface_debug_print("mma7660fc: set tap interrupt failed.\n");
276 (void)mma7660fc_deinit(&gs_handle);
277
278 return 1;
279 }
280 mma7660fc_interface_debug_print("mma7660fc: enable tap interrupt.\n");
281 res = mma7660fc_get_tap_interrupt(&gs_handle, &enable);
282 if (res != 0)
283 {
284 mma7660fc_interface_debug_print("mma7660fc: get tap interrupt failed.\n");
285 (void)mma7660fc_deinit(&gs_handle);
286
287 return 1;
288 }
289 mma7660fc_interface_debug_print("mma7660fc: check tap interrupt %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
290
291 /* disable tap interrupt */
293 if (res != 0)
294 {
295 mma7660fc_interface_debug_print("mma7660fc: set tap interrupt failed.\n");
296 (void)mma7660fc_deinit(&gs_handle);
297
298 return 1;
299 }
300 mma7660fc_interface_debug_print("mma7660fc: disable tap interrupt.\n");
301 res = mma7660fc_get_tap_interrupt(&gs_handle, &enable);
302 if (res != 0)
303 {
304 mma7660fc_interface_debug_print("mma7660fc: get tap interrupt failed.\n");
305 (void)mma7660fc_deinit(&gs_handle);
306
307 return 1;
308 }
309 mma7660fc_interface_debug_print("mma7660fc: check tap interrupt %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
310
311 /* mma7660fc_set_auto_sleep_interrupt/mma7660fc_get_auto_sleep_interrupt test */
312 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_auto_sleep_interrupt/mma7660fc_get_auto_sleep_interrupt test.\n");
313
314 /* enable auto sleep interrupt */
316 if (res != 0)
317 {
318 mma7660fc_interface_debug_print("mma7660fc: set auto sleep interrupt failed.\n");
319 (void)mma7660fc_deinit(&gs_handle);
320
321 return 1;
322 }
323 mma7660fc_interface_debug_print("mma7660fc: enable auto sleep interrupt.\n");
324 res = mma7660fc_get_auto_sleep_interrupt(&gs_handle, &enable);
325 if (res != 0)
326 {
327 mma7660fc_interface_debug_print("mma7660fc: get auto sleep interrupt failed.\n");
328 (void)mma7660fc_deinit(&gs_handle);
329
330 return 1;
331 }
332 mma7660fc_interface_debug_print("mma7660fc: check auto sleep interrupt %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
333
334 /* disable auto sleep interrupt */
336 if (res != 0)
337 {
338 mma7660fc_interface_debug_print("mma7660fc: set auto sleep interrupt failed.\n");
339 (void)mma7660fc_deinit(&gs_handle);
340
341 return 1;
342 }
343 mma7660fc_interface_debug_print("mma7660fc: disable auto sleep interrupt.\n");
344 res = mma7660fc_get_auto_sleep_interrupt(&gs_handle, &enable);
345 if (res != 0)
346 {
347 mma7660fc_interface_debug_print("mma7660fc: get auto sleep interrupt failed.\n");
348 (void)mma7660fc_deinit(&gs_handle);
349
350 return 1;
351 }
352 mma7660fc_interface_debug_print("mma7660fc: check auto sleep interrupt %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
353
354 /* mma7660fc_set_update_interrupt/mma7660fc_get_update_interrupt test */
355 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_update_interrupt/mma7660fc_get_update_interrupt test.\n");
356
357 /* enable update interrupt */
359 if (res != 0)
360 {
361 mma7660fc_interface_debug_print("mma7660fc: set update interrupt failed.\n");
362 (void)mma7660fc_deinit(&gs_handle);
363
364 return 1;
365 }
366 mma7660fc_interface_debug_print("mma7660fc: enable update interrupt.\n");
367 res = mma7660fc_get_update_interrupt(&gs_handle, &enable);
368 if (res != 0)
369 {
370 mma7660fc_interface_debug_print("mma7660fc: get update interrupt failed.\n");
371 (void)mma7660fc_deinit(&gs_handle);
372
373 return 1;
374 }
375 mma7660fc_interface_debug_print("mma7660fc: check update interrupt %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
376
377 /* disable update interrupt */
379 if (res != 0)
380 {
381 mma7660fc_interface_debug_print("mma7660fc: set update interrupt failed.\n");
382 (void)mma7660fc_deinit(&gs_handle);
383
384 return 1;
385 }
386 mma7660fc_interface_debug_print("mma7660fc: disable update interrupt.\n");
387 res = mma7660fc_get_update_interrupt(&gs_handle, &enable);
388 if (res != 0)
389 {
390 mma7660fc_interface_debug_print("mma7660fc: get update interrupt failed.\n");
391 (void)mma7660fc_deinit(&gs_handle);
392
393 return 1;
394 }
395 mma7660fc_interface_debug_print("mma7660fc: check update interrupt %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
396
397 /* mma7660fc_set_shake_x_interrupt/mma7660fc_get_shake_x_interrupt test */
398 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_shake_x_interrupt/mma7660fc_get_shake_x_interrupt test.\n");
399
400 /* enable shake x interrupt */
402 if (res != 0)
403 {
404 mma7660fc_interface_debug_print("mma7660fc: set shake x interrupt failed.\n");
405 (void)mma7660fc_deinit(&gs_handle);
406
407 return 1;
408 }
409 mma7660fc_interface_debug_print("mma7660fc: enable shake x interrupt.\n");
410 res = mma7660fc_get_shake_x_interrupt(&gs_handle, &enable);
411 if (res != 0)
412 {
413 mma7660fc_interface_debug_print("mma7660fc: get shake x interrupt failed.\n");
414 (void)mma7660fc_deinit(&gs_handle);
415
416 return 1;
417 }
418 mma7660fc_interface_debug_print("mma7660fc: check shake x interrupt %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
419
420 /* disable shake x interrupt */
422 if (res != 0)
423 {
424 mma7660fc_interface_debug_print("mma7660fc: set shake x interrupt failed.\n");
425 (void)mma7660fc_deinit(&gs_handle);
426
427 return 1;
428 }
429 mma7660fc_interface_debug_print("mma7660fc: disable shake x interrupt.\n");
430 res = mma7660fc_get_shake_x_interrupt(&gs_handle, &enable);
431 if (res != 0)
432 {
433 mma7660fc_interface_debug_print("mma7660fc: get shake x interrupt failed.\n");
434 (void)mma7660fc_deinit(&gs_handle);
435
436 return 1;
437 }
438 mma7660fc_interface_debug_print("mma7660fc: check shake x interrupt %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
439
440 /* mma7660fc_set_shake_y_interrupt/mma7660fc_get_shake_y_interrupt test */
441 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_shake_y_interrupt/mma7660fc_get_shake_y_interrupt test.\n");
442
443 /* enable shake y interrupt */
445 if (res != 0)
446 {
447 mma7660fc_interface_debug_print("mma7660fc: set shake y interrupt failed.\n");
448 (void)mma7660fc_deinit(&gs_handle);
449
450 return 1;
451 }
452 mma7660fc_interface_debug_print("mma7660fc: enable shake y interrupt.\n");
453 res = mma7660fc_get_shake_y_interrupt(&gs_handle, &enable);
454 if (res != 0)
455 {
456 mma7660fc_interface_debug_print("mma7660fc: get shake y interrupt failed.\n");
457 (void)mma7660fc_deinit(&gs_handle);
458
459 return 1;
460 }
461 mma7660fc_interface_debug_print("mma7660fc: check shake y interrupt %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
462
463 /* disable shake y interrupt */
465 if (res != 0)
466 {
467 mma7660fc_interface_debug_print("mma7660fc: set shake y interrupt failed.\n");
468 (void)mma7660fc_deinit(&gs_handle);
469
470 return 1;
471 }
472 mma7660fc_interface_debug_print("mma7660fc: disable shake y interrupt.\n");
473 res = mma7660fc_get_shake_y_interrupt(&gs_handle, &enable);
474 if (res != 0)
475 {
476 mma7660fc_interface_debug_print("mma7660fc: get shake y interrupt failed.\n");
477 (void)mma7660fc_deinit(&gs_handle);
478
479 return 1;
480 }
481 mma7660fc_interface_debug_print("mma7660fc: check shake y interrupt %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
482
483 /* mma7660fc_set_shake_z_interrupt/mma7660fc_get_shake_z_interrupt test */
484 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_shake_z_interrupt/mma7660fc_get_shake_z_interrupt test.\n");
485
486 /* enable shake z interrupt */
488 if (res != 0)
489 {
490 mma7660fc_interface_debug_print("mma7660fc: set shake z interrupt failed.\n");
491 (void)mma7660fc_deinit(&gs_handle);
492
493 return 1;
494 }
495 mma7660fc_interface_debug_print("mma7660fc: enable shake z interrupt.\n");
496 res = mma7660fc_get_shake_z_interrupt(&gs_handle, &enable);
497 if (res != 0)
498 {
499 mma7660fc_interface_debug_print("mma7660fc: get shake z interrupt failed.\n");
500 (void)mma7660fc_deinit(&gs_handle);
501
502 return 1;
503 }
504 mma7660fc_interface_debug_print("mma7660fc: check shake z interrupt %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
505
506 /* disable shake z interrupt */
508 if (res != 0)
509 {
510 mma7660fc_interface_debug_print("mma7660fc: set shake z interrupt failed.\n");
511 (void)mma7660fc_deinit(&gs_handle);
512
513 return 1;
514 }
515 mma7660fc_interface_debug_print("mma7660fc: disable shake z interrupt.\n");
516 res = mma7660fc_get_shake_z_interrupt(&gs_handle, &enable);
517 if (res != 0)
518 {
519 mma7660fc_interface_debug_print("mma7660fc: get shake z interrupt failed.\n");
520 (void)mma7660fc_deinit(&gs_handle);
521
522 return 1;
523 }
524 mma7660fc_interface_debug_print("mma7660fc: check shake z interrupt %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
525
526 /* mma7660fc_set_mode/mma7660fc_get_mode test */
527 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_mode/mma7660fc_get_mode test.\n");
528
529 /* set mode test */
530 res = mma7660fc_set_mode(&gs_handle, MMA7660FC_MODE_TEST);
531 if (res != 0)
532 {
533 mma7660fc_interface_debug_print("mma7660fc: set mode failed.\n");
534 (void)mma7660fc_deinit(&gs_handle);
535
536 return 1;
537 }
538 mma7660fc_interface_debug_print("mma7660fc: set mode test.\n");
539 res = mma7660fc_get_mode(&gs_handle, &mode);
540 if (res != 0)
541 {
542 mma7660fc_interface_debug_print("mma7660fc: get mode failed.\n");
543 (void)mma7660fc_deinit(&gs_handle);
544
545 return 1;
546 }
547 mma7660fc_interface_debug_print("mma7660fc: check mode %s.\n", mode == MMA7660FC_MODE_TEST ? "ok" : "error");
548
549 /* set mode standby */
551 if (res != 0)
552 {
553 mma7660fc_interface_debug_print("mma7660fc: set mode failed.\n");
554 (void)mma7660fc_deinit(&gs_handle);
555
556 return 1;
557 }
558
559 /* set mode active */
560 res = mma7660fc_set_mode(&gs_handle, MMA7660FC_MODE_ACTIVE);
561 if (res != 0)
562 {
563 mma7660fc_interface_debug_print("mma7660fc: set mode failed.\n");
564 (void)mma7660fc_deinit(&gs_handle);
565
566 return 1;
567 }
568 mma7660fc_interface_debug_print("mma7660fc: set mode active.\n");
569 res = mma7660fc_get_mode(&gs_handle, &mode);
570 if (res != 0)
571 {
572 mma7660fc_interface_debug_print("mma7660fc: get mode failed.\n");
573 (void)mma7660fc_deinit(&gs_handle);
574
575 return 1;
576 }
577 mma7660fc_interface_debug_print("mma7660fc: check mode %s.\n", mode == MMA7660FC_MODE_ACTIVE ? "ok" : "error");
578
579 /* set mode standby */
581 if (res != 0)
582 {
583 mma7660fc_interface_debug_print("mma7660fc: set mode failed.\n");
584 (void)mma7660fc_deinit(&gs_handle);
585
586 return 1;
587 }
588 mma7660fc_interface_debug_print("mma7660fc: set mode standby.\n");
589 res = mma7660fc_get_mode(&gs_handle, &mode);
590 if (res != 0)
591 {
592 mma7660fc_interface_debug_print("mma7660fc: get mode failed.\n");
593 (void)mma7660fc_deinit(&gs_handle);
594
595 return 1;
596 }
597 mma7660fc_interface_debug_print("mma7660fc: check mode %s.\n", mode == MMA7660FC_MODE_STANDBY ? "ok" : "error");
598
599 /* mma7660fc_set_auto_wake_up/mma7660fc_get_auto_wake_up test */
600 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_auto_wake_up/mma7660fc_get_auto_wake_up test.\n");
601
602 /* enable auto wake up */
604 if (res != 0)
605 {
606 mma7660fc_interface_debug_print("mma7660fc: set auto wake up failed.\n");
607 (void)mma7660fc_deinit(&gs_handle);
608
609 return 1;
610 }
611 mma7660fc_interface_debug_print("mma7660fc: enable auto wake up.\n");
612 res = mma7660fc_get_auto_wake_up(&gs_handle, &enable);
613 if (res != 0)
614 {
615 mma7660fc_interface_debug_print("mma7660fc: get auto wake up failed.\n");
616 (void)mma7660fc_deinit(&gs_handle);
617
618 return 1;
619 }
620 mma7660fc_interface_debug_print("mma7660fc: check auto wake up %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
621
622 /* disable auto wake up */
624 if (res != 0)
625 {
626 mma7660fc_interface_debug_print("mma7660fc: set auto wake up failed.\n");
627 (void)mma7660fc_deinit(&gs_handle);
628
629 return 1;
630 }
631 mma7660fc_interface_debug_print("mma7660fc: disable auto wake up.\n");
632 res = mma7660fc_get_auto_wake_up(&gs_handle, &enable);
633 if (res != 0)
634 {
635 mma7660fc_interface_debug_print("mma7660fc: get auto wake up failed.\n");
636 (void)mma7660fc_deinit(&gs_handle);
637
638 return 1;
639 }
640 mma7660fc_interface_debug_print("mma7660fc: check auto wake up %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
641
642 /* mma7660fc_set_auto_sleep/mma7660fc_get_auto_sleep test */
643 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_auto_sleep/mma7660fc_get_auto_sleep test.\n");
644
645 /* enable auto sleep */
647 if (res != 0)
648 {
649 mma7660fc_interface_debug_print("mma7660fc: set auto sleep failed.\n");
650 (void)mma7660fc_deinit(&gs_handle);
651
652 return 1;
653 }
654 mma7660fc_interface_debug_print("mma7660fc: enable auto sleep.\n");
655 res = mma7660fc_get_auto_sleep(&gs_handle, &enable);
656 if (res != 0)
657 {
658 mma7660fc_interface_debug_print("mma7660fc: get auto sleep failed.\n");
659 (void)mma7660fc_deinit(&gs_handle);
660
661 return 1;
662 }
663 mma7660fc_interface_debug_print("mma7660fc: check auto sleep %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
664
665 /* disable auto sleep */
667 if (res != 0)
668 {
669 mma7660fc_interface_debug_print("mma7660fc: set auto sleep failed.\n");
670 (void)mma7660fc_deinit(&gs_handle);
671
672 return 1;
673 }
674 mma7660fc_interface_debug_print("mma7660fc: disable auto sleep.\n");
675 res = mma7660fc_get_auto_sleep(&gs_handle, &enable);
676 if (res != 0)
677 {
678 mma7660fc_interface_debug_print("mma7660fc: get auto sleep failed.\n");
679 (void)mma7660fc_deinit(&gs_handle);
680
681 return 1;
682 }
683 mma7660fc_interface_debug_print("mma7660fc: check auto sleep %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
684
685 /* mma7660fc_set_sleep_counter_prescaler/mma7660fc_get_sleep_counter_prescaler test */
686 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_sleep_counter_prescaler/mma7660fc_get_sleep_counter_prescaler test.\n");
687
688 /* set sleep counter prescaler 1 */
690 if (res != 0)
691 {
692 mma7660fc_interface_debug_print("mma7660fc: set sleep counter prescaler failed.\n");
693 (void)mma7660fc_deinit(&gs_handle);
694
695 return 1;
696 }
697 mma7660fc_interface_debug_print("mma7660fc: set sleep counter prescaler 1.\n");
698 res = mma7660fc_get_sleep_counter_prescaler(&gs_handle, &prescaler);
699 if (res != 0)
700 {
701 mma7660fc_interface_debug_print("mma7660fc: get sleep counter prescaler failed.\n");
702 (void)mma7660fc_deinit(&gs_handle);
703
704 return 1;
705 }
706 mma7660fc_interface_debug_print("mma7660fc: check sleep counter prescaler %s.\n", prescaler == MMA7660FC_SLEEP_COUNTER_PRESCALER_1 ? "ok" : "error");
707
708 /* set sleep counter prescaler 16 */
710 if (res != 0)
711 {
712 mma7660fc_interface_debug_print("mma7660fc: set sleep counter prescaler failed.\n");
713 (void)mma7660fc_deinit(&gs_handle);
714
715 return 1;
716 }
717 mma7660fc_interface_debug_print("mma7660fc: set sleep counter prescaler 16.\n");
718 res = mma7660fc_get_sleep_counter_prescaler(&gs_handle, &prescaler);
719 if (res != 0)
720 {
721 mma7660fc_interface_debug_print("mma7660fc: get sleep counter prescaler failed.\n");
722 (void)mma7660fc_deinit(&gs_handle);
723
724 return 1;
725 }
726 mma7660fc_interface_debug_print("mma7660fc: check sleep counter prescaler %s.\n", prescaler == MMA7660FC_SLEEP_COUNTER_PRESCALER_16 ? "ok" : "error");
727
728 /* mma7660fc_set_interrupt_pin_type/mma7660fc_get_interrupt_pin_type test */
729 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_interrupt_pin_type/mma7660fc_get_interrupt_pin_type test.\n");
730
731 /* set interrupt pin type open drain */
733 if (res != 0)
734 {
735 mma7660fc_interface_debug_print("mma7660fc: set interrupt pin type failed.\n");
736 (void)mma7660fc_deinit(&gs_handle);
737
738 return 1;
739 }
740 mma7660fc_interface_debug_print("mma7660fc: set interrupt pin type open drain.\n");
741 res = mma7660fc_get_interrupt_pin_type(&gs_handle, &type);
742 if (res != 0)
743 {
744 mma7660fc_interface_debug_print("mma7660fc: get interrupt pin type failed.\n");
745 (void)mma7660fc_deinit(&gs_handle);
746
747 return 1;
748 }
749 mma7660fc_interface_debug_print("mma7660fc: check interrupt pin type %s.\n", type == MMA7660FC_INTERRUPT_PIN_TYPE_OPEN_DRAIN ? "ok" : "error");
750
751 /* set interrupt pin type push-pull */
753 if (res != 0)
754 {
755 mma7660fc_interface_debug_print("mma7660fc: set interrupt pin type failed.\n");
756 (void)mma7660fc_deinit(&gs_handle);
757
758 return 1;
759 }
760 mma7660fc_interface_debug_print("mma7660fc: set interrupt pin type push pull.\n");
761 res = mma7660fc_get_interrupt_pin_type(&gs_handle, &type);
762 if (res != 0)
763 {
764 mma7660fc_interface_debug_print("mma7660fc: get interrupt pin type failed.\n");
765 (void)mma7660fc_deinit(&gs_handle);
766
767 return 1;
768 }
769 mma7660fc_interface_debug_print("mma7660fc: check interrupt pin type %s.\n", type == MMA7660FC_INTERRUPT_PIN_TYPE_PUSH_PULL ? "ok" : "error");
770
771 /* mma7660fc_set_interrupt_active_level/mma7660fc_get_interrupt_active_level test */
772 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_interrupt_active_level/mma7660fc_get_interrupt_active_level test.\n");
773
774 /* set interrupt active level low */
776 if (res != 0)
777 {
778 mma7660fc_interface_debug_print("mma7660fc: set interrupt active level failed.\n");
779 (void)mma7660fc_deinit(&gs_handle);
780
781 return 1;
782 }
783 mma7660fc_interface_debug_print("mma7660fc: set interrupt active level low.\n");
784 res = mma7660fc_get_interrupt_active_level(&gs_handle, &level);
785 if (res != 0)
786 {
787 mma7660fc_interface_debug_print("mma7660fc: get interrupt active level failed.\n");
788 (void)mma7660fc_deinit(&gs_handle);
789
790 return 1;
791 }
792 mma7660fc_interface_debug_print("mma7660fc: check interrupt active level %s.\n", level == MMA7660FC_INTERRUPT_ACTIVE_LEVEL_LOW ? "ok" : "error");
793
794 /* set interrupt active level high */
796 if (res != 0)
797 {
798 mma7660fc_interface_debug_print("mma7660fc: set interrupt active level failed.\n");
799 (void)mma7660fc_deinit(&gs_handle);
800
801 return 1;
802 }
803 mma7660fc_interface_debug_print("mma7660fc: set interrupt active level high.\n");
804 res = mma7660fc_get_interrupt_active_level(&gs_handle, &level);
805 if (res != 0)
806 {
807 mma7660fc_interface_debug_print("mma7660fc: get interrupt active level failed.\n");
808 (void)mma7660fc_deinit(&gs_handle);
809
810 return 1;
811 }
812 mma7660fc_interface_debug_print("mma7660fc: check interrupt active level %s.\n", level == MMA7660FC_INTERRUPT_ACTIVE_LEVEL_HIGH ? "ok" : "error");
813
814 /* mma7660fc_set_tap_detection_rate/mma7660fc_get_tap_detection_rate test */
815 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_tap_detection_rate/mma7660fc_get_tap_detection_rate test.\n");
816
817 /* set tap detection rate 120 */
819 if (res != 0)
820 {
821 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate failed.\n");
822 (void)mma7660fc_deinit(&gs_handle);
823
824 return 1;
825 }
826 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate 120.\n");
827 res = mma7660fc_get_tap_detection_rate(&gs_handle, &sleep_rate);
828 if (res != 0)
829 {
830 mma7660fc_interface_debug_print("mma7660fc: get tap detection rate failed.\n");
831 (void)mma7660fc_deinit(&gs_handle);
832
833 return 1;
834 }
835 mma7660fc_interface_debug_print("mma7660fc: check tap detection rate %s.\n", sleep_rate == MMA7660FC_AUTO_SLEEP_RATE_120 ? "ok" : "error");
836
837 /* set tap detection rate 64 */
839 if (res != 0)
840 {
841 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate failed.\n");
842 (void)mma7660fc_deinit(&gs_handle);
843
844 return 1;
845 }
846 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate 64.\n");
847 res = mma7660fc_get_tap_detection_rate(&gs_handle, &sleep_rate);
848 if (res != 0)
849 {
850 mma7660fc_interface_debug_print("mma7660fc: get tap detection rate failed.\n");
851 (void)mma7660fc_deinit(&gs_handle);
852
853 return 1;
854 }
855 mma7660fc_interface_debug_print("mma7660fc: check tap detection rate %s.\n", sleep_rate == MMA7660FC_AUTO_SLEEP_RATE_64 ? "ok" : "error");
856
857 /* set tap detection rate 32 */
859 if (res != 0)
860 {
861 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate failed.\n");
862 (void)mma7660fc_deinit(&gs_handle);
863
864 return 1;
865 }
866 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate 32.\n");
867 res = mma7660fc_get_tap_detection_rate(&gs_handle, &sleep_rate);
868 if (res != 0)
869 {
870 mma7660fc_interface_debug_print("mma7660fc: get tap detection rate failed.\n");
871 (void)mma7660fc_deinit(&gs_handle);
872
873 return 1;
874 }
875 mma7660fc_interface_debug_print("mma7660fc: check tap detection rate %s.\n", sleep_rate == MMA7660FC_AUTO_SLEEP_RATE_32 ? "ok" : "error");
876
877 /* set tap detection rate 16 */
879 if (res != 0)
880 {
881 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate failed.\n");
882 (void)mma7660fc_deinit(&gs_handle);
883
884 return 1;
885 }
886 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate 16.\n");
887 res = mma7660fc_get_tap_detection_rate(&gs_handle, &sleep_rate);
888 if (res != 0)
889 {
890 mma7660fc_interface_debug_print("mma7660fc: get tap detection rate failed.\n");
891 (void)mma7660fc_deinit(&gs_handle);
892
893 return 1;
894 }
895 mma7660fc_interface_debug_print("mma7660fc: check tap detection rate %s.\n", sleep_rate == MMA7660FC_AUTO_SLEEP_RATE_16 ? "ok" : "error");
896
897 /* set tap detection rate 8 */
899 if (res != 0)
900 {
901 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate failed.\n");
902 (void)mma7660fc_deinit(&gs_handle);
903
904 return 1;
905 }
906 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate 8.\n");
907 res = mma7660fc_get_tap_detection_rate(&gs_handle, &sleep_rate);
908 if (res != 0)
909 {
910 mma7660fc_interface_debug_print("mma7660fc: get tap detection rate failed.\n");
911 (void)mma7660fc_deinit(&gs_handle);
912
913 return 1;
914 }
915 mma7660fc_interface_debug_print("mma7660fc: check tap detection rate %s.\n", sleep_rate == MMA7660FC_AUTO_SLEEP_RATE_8 ? "ok" : "error");
916
917 /* set tap detection rate 4 */
919 if (res != 0)
920 {
921 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate failed.\n");
922 (void)mma7660fc_deinit(&gs_handle);
923
924 return 1;
925 }
926 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate 4.\n");
927 res = mma7660fc_get_tap_detection_rate(&gs_handle, &sleep_rate);
928 if (res != 0)
929 {
930 mma7660fc_interface_debug_print("mma7660fc: get tap detection rate failed.\n");
931 (void)mma7660fc_deinit(&gs_handle);
932
933 return 1;
934 }
935 mma7660fc_interface_debug_print("mma7660fc: check tap detection rate %s.\n", sleep_rate == MMA7660FC_AUTO_SLEEP_RATE_4 ? "ok" : "error");
936
937 /* set tap detection rate 2 */
939 if (res != 0)
940 {
941 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate failed.\n");
942 (void)mma7660fc_deinit(&gs_handle);
943
944 return 1;
945 }
946 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate 2.\n");
947 res = mma7660fc_get_tap_detection_rate(&gs_handle, &sleep_rate);
948 if (res != 0)
949 {
950 mma7660fc_interface_debug_print("mma7660fc: get tap detection rate failed.\n");
951 (void)mma7660fc_deinit(&gs_handle);
952
953 return 1;
954 }
955 mma7660fc_interface_debug_print("mma7660fc: check tap detection rate %s.\n", sleep_rate == MMA7660FC_AUTO_SLEEP_RATE_2 ? "ok" : "error");
956
957 /* set tap detection rate 1 */
959 if (res != 0)
960 {
961 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate failed.\n");
962 (void)mma7660fc_deinit(&gs_handle);
963
964 return 1;
965 }
966 mma7660fc_interface_debug_print("mma7660fc: set tap detection rate 1.\n");
967 res = mma7660fc_get_tap_detection_rate(&gs_handle, &sleep_rate);
968 if (res != 0)
969 {
970 mma7660fc_interface_debug_print("mma7660fc: get tap detection rate failed.\n");
971 (void)mma7660fc_deinit(&gs_handle);
972
973 return 1;
974 }
975 mma7660fc_interface_debug_print("mma7660fc: check tap detection rate %s.\n", sleep_rate == MMA7660FC_AUTO_SLEEP_RATE_1 ? "ok" : "error");
976
977 /* mma7660fc_set_auto_wake_rate/mma7660fc_get_auto_wake_rate test */
978 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_auto_wake_rate/mma7660fc_get_auto_wake_rate test.\n");
979
980 /* set auto wake rate 32 */
982 if (res != 0)
983 {
984 mma7660fc_interface_debug_print("mma7660fc: set auto wake rate failed.\n");
985 (void)mma7660fc_deinit(&gs_handle);
986
987 return 1;
988 }
989 mma7660fc_interface_debug_print("mma7660fc: set auto wake rate 32.\n");
990 res = mma7660fc_get_auto_wake_rate(&gs_handle, &wake_rate);
991 if (res != 0)
992 {
993 mma7660fc_interface_debug_print("mma7660fc: get auto wake rate failed.\n");
994 (void)mma7660fc_deinit(&gs_handle);
995
996 return 1;
997 }
998 mma7660fc_interface_debug_print("mma7660fc: check auto wake rate %s.\n", wake_rate == MMA7660FC_AUTO_WAKE_RATE_32 ? "ok" : "error");
999
1000 /* set auto wake rate 16 */
1002 if (res != 0)
1003 {
1004 mma7660fc_interface_debug_print("mma7660fc: set auto wake rate failed.\n");
1005 (void)mma7660fc_deinit(&gs_handle);
1006
1007 return 1;
1008 }
1009 mma7660fc_interface_debug_print("mma7660fc: set auto wake rate 16.\n");
1010 res = mma7660fc_get_auto_wake_rate(&gs_handle, &wake_rate);
1011 if (res != 0)
1012 {
1013 mma7660fc_interface_debug_print("mma7660fc: get auto wake rate failed.\n");
1014 (void)mma7660fc_deinit(&gs_handle);
1015
1016 return 1;
1017 }
1018 mma7660fc_interface_debug_print("mma7660fc: check auto wake rate %s.\n", wake_rate == MMA7660FC_AUTO_WAKE_RATE_16 ? "ok" : "error");
1019
1020 /* set auto wake rate 8 */
1022 if (res != 0)
1023 {
1024 mma7660fc_interface_debug_print("mma7660fc: set auto wake rate failed.\n");
1025 (void)mma7660fc_deinit(&gs_handle);
1026
1027 return 1;
1028 }
1029 mma7660fc_interface_debug_print("mma7660fc: set auto wake rate 8.\n");
1030 res = mma7660fc_get_auto_wake_rate(&gs_handle, &wake_rate);
1031 if (res != 0)
1032 {
1033 mma7660fc_interface_debug_print("mma7660fc: get auto wake rate failed.\n");
1034 (void)mma7660fc_deinit(&gs_handle);
1035
1036 return 1;
1037 }
1038 mma7660fc_interface_debug_print("mma7660fc: check auto wake rate %s.\n", wake_rate == MMA7660FC_AUTO_WAKE_RATE_8 ? "ok" : "error");
1039
1040 /* set auto wake rate 1 */
1042 if (res != 0)
1043 {
1044 mma7660fc_interface_debug_print("mma7660fc: set auto wake rate failed.\n");
1045 (void)mma7660fc_deinit(&gs_handle);
1046
1047 return 1;
1048 }
1049 mma7660fc_interface_debug_print("mma7660fc: set auto wake rate 1.\n");
1050 res = mma7660fc_get_auto_wake_rate(&gs_handle, &wake_rate);
1051 if (res != 0)
1052 {
1053 mma7660fc_interface_debug_print("mma7660fc: get auto wake rate failed.\n");
1054 (void)mma7660fc_deinit(&gs_handle);
1055
1056 return 1;
1057 }
1058 mma7660fc_interface_debug_print("mma7660fc: check auto wake rate %s.\n", wake_rate == MMA7660FC_AUTO_WAKE_RATE_1 ? "ok" : "error");
1059
1060 /* mma7660fc_set_tilt_debounce_filter/mma7660fc_get_tilt_debounce_filter test */
1061 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_tilt_debounce_filter/mma7660fc_get_tilt_debounce_filter test.\n");
1062
1063 /* set tilt debounce filter disabled */
1065 if (res != 0)
1066 {
1067 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter failed.\n");
1068 (void)mma7660fc_deinit(&gs_handle);
1069
1070 return 1;
1071 }
1072 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter disabled.\n");
1073 res = mma7660fc_get_tilt_debounce_filter(&gs_handle, &filter);
1074 if (res != 0)
1075 {
1076 mma7660fc_interface_debug_print("mma7660fc: get tilt debounce filter failed.\n");
1077 (void)mma7660fc_deinit(&gs_handle);
1078
1079 return 1;
1080 }
1081 mma7660fc_interface_debug_print("mma7660fc: check tilt debounce filter %s.\n", filter == MMA7660FC_TILT_DEBOUNCE_FILTER_DISABLE ? "ok" : "error");
1082
1083 /* set tilt debounce filter 2 */
1085 if (res != 0)
1086 {
1087 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter failed.\n");
1088 (void)mma7660fc_deinit(&gs_handle);
1089
1090 return 1;
1091 }
1092 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter 2.\n");
1093 res = mma7660fc_get_tilt_debounce_filter(&gs_handle, &filter);
1094 if (res != 0)
1095 {
1096 mma7660fc_interface_debug_print("mma7660fc: get tilt debounce filter failed.\n");
1097 (void)mma7660fc_deinit(&gs_handle);
1098
1099 return 1;
1100 }
1101 mma7660fc_interface_debug_print("mma7660fc: check tilt debounce filter %s.\n", filter == MMA7660FC_TILT_DEBOUNCE_FILTER_2 ? "ok" : "error");
1102
1103 /* set tilt debounce filter 3 */
1105 if (res != 0)
1106 {
1107 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter failed.\n");
1108 (void)mma7660fc_deinit(&gs_handle);
1109
1110 return 1;
1111 }
1112 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter 3.\n");
1113 res = mma7660fc_get_tilt_debounce_filter(&gs_handle, &filter);
1114 if (res != 0)
1115 {
1116 mma7660fc_interface_debug_print("mma7660fc: get tilt debounce filter failed.\n");
1117 (void)mma7660fc_deinit(&gs_handle);
1118
1119 return 1;
1120 }
1121 mma7660fc_interface_debug_print("mma7660fc: check tilt debounce filter %s.\n", filter == MMA7660FC_TILT_DEBOUNCE_FILTER_3 ? "ok" : "error");
1122
1123 /* set tilt debounce filter 4 */
1125 if (res != 0)
1126 {
1127 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter failed.\n");
1128 (void)mma7660fc_deinit(&gs_handle);
1129
1130 return 1;
1131 }
1132 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter 4.\n");
1133 res = mma7660fc_get_tilt_debounce_filter(&gs_handle, &filter);
1134 if (res != 0)
1135 {
1136 mma7660fc_interface_debug_print("mma7660fc: get tilt debounce filter failed.\n");
1137 (void)mma7660fc_deinit(&gs_handle);
1138
1139 return 1;
1140 }
1141 mma7660fc_interface_debug_print("mma7660fc: check tilt debounce filter %s.\n", filter == MMA7660FC_TILT_DEBOUNCE_FILTER_4 ? "ok" : "error");
1142
1143 /* set tilt debounce filter 5 */
1145 if (res != 0)
1146 {
1147 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter failed.\n");
1148 (void)mma7660fc_deinit(&gs_handle);
1149
1150 return 1;
1151 }
1152 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter 5.\n");
1153 res = mma7660fc_get_tilt_debounce_filter(&gs_handle, &filter);
1154 if (res != 0)
1155 {
1156 mma7660fc_interface_debug_print("mma7660fc: get tilt debounce filter failed.\n");
1157 (void)mma7660fc_deinit(&gs_handle);
1158
1159 return 1;
1160 }
1161 mma7660fc_interface_debug_print("mma7660fc: check tilt debounce filter %s.\n", filter == MMA7660FC_TILT_DEBOUNCE_FILTER_5 ? "ok" : "error");
1162
1163 /* set tilt debounce filter 6 */
1165 if (res != 0)
1166 {
1167 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter failed.\n");
1168 (void)mma7660fc_deinit(&gs_handle);
1169
1170 return 1;
1171 }
1172 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter 6.\n");
1173 res = mma7660fc_get_tilt_debounce_filter(&gs_handle, &filter);
1174 if (res != 0)
1175 {
1176 mma7660fc_interface_debug_print("mma7660fc: get tilt debounce filter failed.\n");
1177 (void)mma7660fc_deinit(&gs_handle);
1178
1179 return 1;
1180 }
1181 mma7660fc_interface_debug_print("mma7660fc: check tilt debounce filter %s.\n", filter == MMA7660FC_TILT_DEBOUNCE_FILTER_6 ? "ok" : "error");
1182
1183 /* set tilt debounce filter 7 */
1185 if (res != 0)
1186 {
1187 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter failed.\n");
1188 (void)mma7660fc_deinit(&gs_handle);
1189
1190 return 1;
1191 }
1192 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter 7.\n");
1193 res = mma7660fc_get_tilt_debounce_filter(&gs_handle, &filter);
1194 if (res != 0)
1195 {
1196 mma7660fc_interface_debug_print("mma7660fc: get tilt debounce filter failed.\n");
1197 (void)mma7660fc_deinit(&gs_handle);
1198
1199 return 1;
1200 }
1201 mma7660fc_interface_debug_print("mma7660fc: check tilt debounce filter %s.\n", filter == MMA7660FC_TILT_DEBOUNCE_FILTER_7 ? "ok" : "error");
1202
1203 /* set tilt debounce filter 8 */
1205 if (res != 0)
1206 {
1207 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter failed.\n");
1208 (void)mma7660fc_deinit(&gs_handle);
1209
1210 return 1;
1211 }
1212 mma7660fc_interface_debug_print("mma7660fc: set tilt debounce filter 8.\n");
1213 res = mma7660fc_get_tilt_debounce_filter(&gs_handle, &filter);
1214 if (res != 0)
1215 {
1216 mma7660fc_interface_debug_print("mma7660fc: get tilt debounce filter failed.\n");
1217 (void)mma7660fc_deinit(&gs_handle);
1218
1219 return 1;
1220 }
1221 mma7660fc_interface_debug_print("mma7660fc: check tilt debounce filter %s.\n", filter == MMA7660FC_TILT_DEBOUNCE_FILTER_8 ? "ok" : "error");
1222
1223 /* mma7660fc_set_tap_detection_threshold/mma7660fc_get_tap_detection_threshold test */
1224 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_tap_detection_threshold/mma7660fc_get_tap_detection_threshold test.\n");
1225
1226 threshold = rand() % 32;
1227 res = mma7660fc_set_tap_detection_threshold(&gs_handle, threshold);
1228 if (res != 0)
1229 {
1230 mma7660fc_interface_debug_print("mma7660fc: set tap detection threshold failed.\n");
1231 (void)mma7660fc_deinit(&gs_handle);
1232
1233 return 1;
1234 }
1235 mma7660fc_interface_debug_print("mma7660fc: set tap detection threshold %d.\n", threshold);
1236 res = mma7660fc_get_tap_detection_threshold(&gs_handle, &threshold_check);
1237 if (res != 0)
1238 {
1239 mma7660fc_interface_debug_print("mma7660fc: get tap detection threshold failed.\n");
1240 (void)mma7660fc_deinit(&gs_handle);
1241
1242 return 1;
1243 }
1244 mma7660fc_interface_debug_print("mma7660fc: check tap detection threshold %s.\n", threshold == threshold_check ? "ok" : "error");
1245
1246 /* mma7660fc_set_tap_x_detection/mma7660fc_get_tap_x_detection test */
1247 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_tap_x_detection/mma7660fc_get_tap_x_detection test.\n");
1248
1249 /* enable tap x detection */
1251 if (res != 0)
1252 {
1253 mma7660fc_interface_debug_print("mma7660fc: set tap x detection failed.\n");
1254 (void)mma7660fc_deinit(&gs_handle);
1255
1256 return 1;
1257 }
1258 mma7660fc_interface_debug_print("mma7660fc: enable tap x detection.\n");
1259 res = mma7660fc_get_tap_x_detection(&gs_handle, &enable);
1260 if (res != 0)
1261 {
1262 mma7660fc_interface_debug_print("mma7660fc: get tap x detection failed.\n");
1263 (void)mma7660fc_deinit(&gs_handle);
1264
1265 return 1;
1266 }
1267 mma7660fc_interface_debug_print("mma7660fc: check tap x detection %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
1268
1269 /* disable tap x detection */
1271 if (res != 0)
1272 {
1273 mma7660fc_interface_debug_print("mma7660fc: set tap x detection failed.\n");
1274 (void)mma7660fc_deinit(&gs_handle);
1275
1276 return 1;
1277 }
1278 mma7660fc_interface_debug_print("mma7660fc: disable tap x detection.\n");
1279 res = mma7660fc_get_tap_x_detection(&gs_handle, &enable);
1280 if (res != 0)
1281 {
1282 mma7660fc_interface_debug_print("mma7660fc: get tap x detection failed.\n");
1283 (void)mma7660fc_deinit(&gs_handle);
1284
1285 return 1;
1286 }
1287 mma7660fc_interface_debug_print("mma7660fc: check tap x detection %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
1288
1289 /* enable tap y detection */
1291 if (res != 0)
1292 {
1293 mma7660fc_interface_debug_print("mma7660fc: set tap y detection failed.\n");
1294 (void)mma7660fc_deinit(&gs_handle);
1295
1296 return 1;
1297 }
1298 mma7660fc_interface_debug_print("mma7660fc: enable tap y detection.\n");
1299 res = mma7660fc_get_tap_y_detection(&gs_handle, &enable);
1300 if (res != 0)
1301 {
1302 mma7660fc_interface_debug_print("mma7660fc: get tap y detection failed.\n");
1303 (void)mma7660fc_deinit(&gs_handle);
1304
1305 return 1;
1306 }
1307 mma7660fc_interface_debug_print("mma7660fc: check tap y detection %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
1308
1309 /* disable tap y detection */
1311 if (res != 0)
1312 {
1313 mma7660fc_interface_debug_print("mma7660fc: set tap y detection failed.\n");
1314 (void)mma7660fc_deinit(&gs_handle);
1315
1316 return 1;
1317 }
1318 mma7660fc_interface_debug_print("mma7660fc: disable tap y detection.\n");
1319 res = mma7660fc_get_tap_y_detection(&gs_handle, &enable);
1320 if (res != 0)
1321 {
1322 mma7660fc_interface_debug_print("mma7660fc: get tap y detection failed.\n");
1323 (void)mma7660fc_deinit(&gs_handle);
1324
1325 return 1;
1326 }
1327 mma7660fc_interface_debug_print("mma7660fc: check tap y detection %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
1328
1329 /* enable tap z detection */
1331 if (res != 0)
1332 {
1333 mma7660fc_interface_debug_print("mma7660fc: set tap z detection failed.\n");
1334 (void)mma7660fc_deinit(&gs_handle);
1335
1336 return 1;
1337 }
1338 mma7660fc_interface_debug_print("mma7660fc: enable tap z detection.\n");
1339 res = mma7660fc_get_tap_z_detection(&gs_handle, &enable);
1340 if (res != 0)
1341 {
1342 mma7660fc_interface_debug_print("mma7660fc: get tap z detection failed.\n");
1343 (void)mma7660fc_deinit(&gs_handle);
1344
1345 return 1;
1346 }
1347 mma7660fc_interface_debug_print("mma7660fc: check tap z detection %s.\n", enable == MMA7660FC_BOOL_TRUE ? "ok" : "error");
1348
1349 /* disable tap z detection */
1351 if (res != 0)
1352 {
1353 mma7660fc_interface_debug_print("mma7660fc: set tap z detection failed.\n");
1354 (void)mma7660fc_deinit(&gs_handle);
1355
1356 return 1;
1357 }
1358 mma7660fc_interface_debug_print("mma7660fc: disable tap z detection.\n");
1359 res = mma7660fc_get_tap_z_detection(&gs_handle, &enable);
1360 if (res != 0)
1361 {
1362 mma7660fc_interface_debug_print("mma7660fc: get tap z detection failed.\n");
1363 (void)mma7660fc_deinit(&gs_handle);
1364
1365 return 1;
1366 }
1367 mma7660fc_interface_debug_print("mma7660fc: check tap z detection %s.\n", enable == MMA7660FC_BOOL_FALSE ? "ok" : "error");
1368
1369 /* mma7660fc_set_tap_pulse_debounce_count/mma7660fc_get_tap_pulse_debounce_count test */
1370 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_set_tap_pulse_debounce_count/mma7660fc_get_tap_pulse_debounce_count test.\n");
1371
1372 count = rand() % 256;
1373 res = mma7660fc_set_tap_pulse_debounce_count(&gs_handle, count);
1374 if (res != 0)
1375 {
1376 mma7660fc_interface_debug_print("mma7660fc: set tap pulse debounce count failed.\n");
1377 (void)mma7660fc_deinit(&gs_handle);
1378
1379 return 1;
1380 }
1381 mma7660fc_interface_debug_print("mma7660fc: set tap pulse debounce count %d.\n", count);
1382 res = mma7660fc_get_tap_pulse_debounce_count(&gs_handle, &count_check);
1383 if (res != 0)
1384 {
1385 mma7660fc_interface_debug_print("mma7660fc: get tap pulse debounce count failed.\n");
1386 (void)mma7660fc_deinit(&gs_handle);
1387
1388 return 1;
1389 }
1390 mma7660fc_interface_debug_print("mma7660fc: check tap pulse debounce count %s.\n", count == count_check ? "ok" : "error");
1391
1392 /* mma7660fc_tap_pulse_debounce_convert_to_register/mma7660fc_tap_pulse_debounce_convert_to_data test */
1393 mma7660fc_interface_debug_print("mma7660fc: mma7660fc_tap_pulse_debounce_convert_to_register/mma7660fc_tap_pulse_debounce_convert_to_data test.\n");
1394
1395 ms = (float)(rand() % 100) / 10.0f;
1396 res = mma7660fc_tap_pulse_debounce_convert_to_register(&gs_handle, ms, &reg);
1397 if (res != 0)
1398 {
1399 mma7660fc_interface_debug_print("mma7660fc: tap pulse debounce convert to register failed.\n");
1400 (void)mma7660fc_deinit(&gs_handle);
1401
1402 return 1;
1403 }
1404 mma7660fc_interface_debug_print("mma7660fc: tap pulse debounce %0.2fms.\n", ms);
1405 res = mma7660fc_tap_pulse_debounce_convert_to_data(&gs_handle, reg, &ms_check);
1406 if (res != 0)
1407 {
1408 mma7660fc_interface_debug_print("mma7660fc: tap pulse debounce convert to data failed.\n");
1409 (void)mma7660fc_deinit(&gs_handle);
1410
1411 return 1;
1412 }
1413 mma7660fc_interface_debug_print("mma7660fc: check tap pulse debounce %0.2fms.\n", ms_check);
1414
1415 /* finish register test */
1416 mma7660fc_interface_debug_print("mma7660fc: finish register test.\n");
1417 (void)mma7660fc_deinit(&gs_handle);
1418
1419 return 0;
1420}
driver mma7660fc register test header file
uint8_t mma7660fc_get_sleep_count(mma7660fc_handle_t *handle, uint8_t *count)
get sleep count
uint8_t mma7660fc_set_auto_wake_up(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable auto wake up
uint8_t mma7660fc_get_auto_sleep_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get auto sleep interrupt status
uint8_t mma7660fc_init(mma7660fc_handle_t *handle)
initialize the chip
mma7660fc_interrupt_pin_type_t
mma7660fc interrupt pin type enumeration definition
mma7660fc_bool_t
mma7660fc bool enumeration definition
uint8_t mma7660fc_get_shake_x_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get shake x interrupt status
uint8_t mma7660fc_set_shake_x_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable shake x interrupt
uint8_t mma7660fc_get_shake_y_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get shake y interrupt status
uint8_t mma7660fc_get_tap_y_detection(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get tap y detection status
uint8_t mma7660fc_get_shake_z_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get shake z interrupt status
uint8_t mma7660fc_get_auto_wake_up(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get auto wake up status
uint8_t mma7660fc_set_sleep_counter_prescaler(mma7660fc_handle_t *handle, mma7660fc_sleep_counter_prescaler_t prescaler)
set sleep counter prescaler
uint8_t mma7660fc_get_tilt_status(mma7660fc_handle_t *handle, uint8_t *status)
get tilt status
uint8_t mma7660fc_set_interrupt_pin_type(mma7660fc_handle_t *handle, mma7660fc_interrupt_pin_type_t type)
set interrupt pin type
uint8_t mma7660fc_tap_pulse_debounce_convert_to_data(mma7660fc_handle_t *handle, uint8_t reg, float *ms)
convert the register raw data to tap pulse debounce
uint8_t mma7660fc_get_auto_sleep(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get auto sleep status
uint8_t mma7660fc_set_tap_detection_threshold(mma7660fc_handle_t *handle, uint8_t threshold)
set tap detection threshold
uint8_t mma7660fc_deinit(mma7660fc_handle_t *handle)
close the chip
uint8_t mma7660fc_set_shake_z_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable shake z interrupt
uint8_t mma7660fc_tap_pulse_debounce_convert_to_register(mma7660fc_handle_t *handle, float ms, uint8_t *reg)
convert tap pulse debounce to the register raw data
uint8_t mma7660fc_get_sleep_counter_prescaler(mma7660fc_handle_t *handle, mma7660fc_sleep_counter_prescaler_t *prescaler)
get sleep counter prescaler
uint8_t mma7660fc_get_update_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get update interrupt status
uint8_t mma7660fc_info(mma7660fc_info_t *info)
get chip's information
uint8_t mma7660fc_set_tilt_debounce_filter(mma7660fc_handle_t *handle, mma7660fc_tilt_debounce_filter_t filter)
set tilt debounce filter
uint8_t mma7660fc_set_auto_wake_rate(mma7660fc_handle_t *handle, mma7660fc_auto_wake_rate_t rate)
set auto wake rate
struct mma7660fc_info_s mma7660fc_info_t
mma7660fc information structure definition
uint8_t mma7660fc_get_tap_pulse_debounce_count(mma7660fc_handle_t *handle, uint8_t *count)
get tap pulse debounce count
uint8_t mma7660fc_get_up_down_right_left_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get up down right left interrupt status
uint8_t mma7660fc_set_mode(mma7660fc_handle_t *handle, mma7660fc_mode_t mode)
set mode
uint8_t mma7660fc_set_auto_sleep_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable auto sleep interrupt
uint8_t mma7660fc_get_front_back_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get front back interrupt status
uint8_t mma7660fc_get_tilt_debounce_filter(mma7660fc_handle_t *handle, mma7660fc_tilt_debounce_filter_t *filter)
get tilt debounce filter
uint8_t mma7660fc_get_tap_detection_rate(mma7660fc_handle_t *handle, mma7660fc_auto_sleep_rate_t *rate)
get tap detection rate
struct mma7660fc_handle_s mma7660fc_handle_t
mma7660fc handle structure definition
mma7660fc_interrupt_active_level_t
mma7660fc interrupt active level enumeration definition
uint8_t mma7660fc_set_update_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable update interrupt status
uint8_t mma7660fc_set_front_back_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable front back interrupt
uint8_t mma7660fc_set_tap_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable tap interrupt
uint8_t mma7660fc_set_tap_x_detection(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable tap x detection
uint8_t mma7660fc_get_tap_z_detection(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get tap z detection status
uint8_t mma7660fc_set_tap_y_detection(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable tap y detection
uint8_t mma7660fc_set_auto_sleep(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable auto sleep
mma7660fc_sleep_counter_prescaler_t
mma7660fc sleep counter prescaler enumeration definition
uint8_t mma7660fc_get_tap_detection_threshold(mma7660fc_handle_t *handle, uint8_t *threshold)
get tap detection threshold
uint8_t mma7660fc_set_interrupt_active_level(mma7660fc_handle_t *handle, mma7660fc_interrupt_active_level_t level)
set interrupt active level
uint8_t mma7660fc_set_tap_pulse_debounce_count(mma7660fc_handle_t *handle, uint8_t count)
set tap pulse debounce count
mma7660fc_auto_sleep_rate_t
mma7660fc auto sleep rate enumeration definition
mma7660fc_tilt_debounce_filter_t
mma7660fc tilt debounce filter enumeration definition
uint8_t mma7660fc_get_mode(mma7660fc_handle_t *handle, mma7660fc_mode_t *mode)
get mode
mma7660fc_mode_t
mma7660fc mode enumeration definition
uint8_t mma7660fc_get_interrupt_active_level(mma7660fc_handle_t *handle, mma7660fc_interrupt_active_level_t *level)
get interrupt active level
uint8_t mma7660fc_get_auto_wake_rate(mma7660fc_handle_t *handle, mma7660fc_auto_wake_rate_t *rate)
get auto wake rate
uint8_t mma7660fc_set_tap_detection_rate(mma7660fc_handle_t *handle, mma7660fc_auto_sleep_rate_t rate)
set tap detection rate
uint8_t mma7660fc_get_auto_sleep_status(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get auto sleep status
uint8_t mma7660fc_set_shake_y_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable shake y interrupt
uint8_t mma7660fc_set_sleep_count(mma7660fc_handle_t *handle, uint8_t count)
set sleep count
uint8_t mma7660fc_get_interrupt_pin_type(mma7660fc_handle_t *handle, mma7660fc_interrupt_pin_type_t *type)
get interrupt pin type
uint8_t mma7660fc_get_auto_wake_up_status(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get auto wake up status
uint8_t mma7660fc_get_tap_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get tap interrupt status
uint8_t mma7660fc_get_tap_x_detection(mma7660fc_handle_t *handle, mma7660fc_bool_t *enable)
get tap x detection status
uint8_t mma7660fc_set_tap_z_detection(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable tap z detection
uint8_t mma7660fc_set_up_down_right_left_interrupt(mma7660fc_handle_t *handle, mma7660fc_bool_t enable)
enable or disable up down right left interrupt
mma7660fc_auto_wake_rate_t
mma7660fc auto wake rate enumeration definition
@ MMA7660FC_INTERRUPT_PIN_TYPE_PUSH_PULL
@ MMA7660FC_INTERRUPT_PIN_TYPE_OPEN_DRAIN
@ MMA7660FC_BOOL_FALSE
@ MMA7660FC_BOOL_TRUE
@ MMA7660FC_INTERRUPT_ACTIVE_LEVEL_LOW
@ MMA7660FC_INTERRUPT_ACTIVE_LEVEL_HIGH
@ MMA7660FC_SLEEP_COUNTER_PRESCALER_16
@ MMA7660FC_SLEEP_COUNTER_PRESCALER_1
@ MMA7660FC_AUTO_SLEEP_RATE_1
@ MMA7660FC_AUTO_SLEEP_RATE_120
@ MMA7660FC_AUTO_SLEEP_RATE_64
@ MMA7660FC_AUTO_SLEEP_RATE_8
@ MMA7660FC_AUTO_SLEEP_RATE_2
@ MMA7660FC_AUTO_SLEEP_RATE_16
@ MMA7660FC_AUTO_SLEEP_RATE_32
@ MMA7660FC_AUTO_SLEEP_RATE_4
@ MMA7660FC_TILT_DEBOUNCE_FILTER_DISABLE
@ MMA7660FC_TILT_DEBOUNCE_FILTER_5
@ MMA7660FC_TILT_DEBOUNCE_FILTER_2
@ MMA7660FC_TILT_DEBOUNCE_FILTER_8
@ MMA7660FC_TILT_DEBOUNCE_FILTER_4
@ MMA7660FC_TILT_DEBOUNCE_FILTER_3
@ MMA7660FC_TILT_DEBOUNCE_FILTER_7
@ MMA7660FC_TILT_DEBOUNCE_FILTER_6
@ MMA7660FC_MODE_STANDBY
@ MMA7660FC_MODE_ACTIVE
@ MMA7660FC_MODE_TEST
@ MMA7660FC_AUTO_WAKE_RATE_16
@ MMA7660FC_AUTO_WAKE_RATE_8
@ MMA7660FC_AUTO_WAKE_RATE_32
@ MMA7660FC_AUTO_WAKE_RATE_1
void mma7660fc_interface_receive_callback(uint8_t type)
interface receive callback
uint8_t mma7660fc_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void mma7660fc_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t mma7660fc_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t mma7660fc_interface_iic_init(void)
interface iic bus init
void mma7660fc_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t mma7660fc_interface_iic_deinit(void)
interface iic bus deinit
uint8_t mma7660fc_register_test(void)
register test