diff options
Diffstat (limited to '60xx/mlsdk/mllite/compass.h')
-rw-r--r-- | 60xx/mlsdk/mllite/compass.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/60xx/mlsdk/mllite/compass.h b/60xx/mlsdk/mllite/compass.h new file mode 100644 index 0000000..f0bdb58 --- /dev/null +++ b/60xx/mlsdk/mllite/compass.h @@ -0,0 +1,92 @@ +/* + $License: + Copyright 2011 InvenSense, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + $ + */ +/******************************************************************************* + * + * $Id: compass.h 5629 2011-06-11 03:13:08Z mcaramello $ + * + *******************************************************************************/ + +#ifndef COMPASS_H +#define COMPASS_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "mltypes.h" +#include "mpu.h" +#ifdef INV_INCLUDE_LEGACY_HEADERS +#include "compass_legacy.h" +#endif + /* ------------ */ + /* - Defines. - */ + /* ------------ */ + +#define YAS_MAX_FILTER_LEN (20) +#define YAS_DEFAULT_FILTER_LEN (20) +#define YAS_DEFAULT_FILTER_THRESH (300) /* 300 nT */ +#define YAS_DEFAULT_FILTER_NOISE (2000 * 2000) /* standard deviation 2000 nT */ + + /* --------------- */ + /* - Structures. - */ + /* --------------- */ + +struct yas_adaptive_filter { + int num; + int index; + int len; + float noise; + float sequence[YAS_MAX_FILTER_LEN]; +}; + +struct yas_thresh_filter { + float threshold; + float last; +}; + +typedef struct { + struct yas_adaptive_filter adap_filter[3]; + struct yas_thresh_filter thresh_filter[3]; +} yas_filter_handle_t; + +typedef struct { + int (*init)(yas_filter_handle_t *t); + int (*update)(yas_filter_handle_t *t, float *input, float *output); +} yas_filter_if_s; + + /* --------------------- */ + /* - Function p-types. - */ + /* --------------------- */ + + unsigned char inv_compass_present(void); + unsigned char inv_get_compass_slave_addr(void); + inv_error_t inv_get_compass_data(long *data); + inv_error_t inv_set_compass_bias(long *bias); + unsigned short inv_get_compass_id(void); + inv_error_t inv_set_compass_offset(void); + inv_error_t inv_compass_check_range(void); + inv_error_t inv_compass_write_reg(unsigned char reg, unsigned char val); + inv_error_t inv_compass_read_reg(unsigned char reg, unsigned char *val); + inv_error_t inv_compass_read_scale(long *val); + + int yas_filter_init(yas_filter_if_s *f); + +#ifdef __cplusplus +} +#endif +#endif // COMPASS_H |