1ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/****************************************************************************** 2ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * $Id: AKFS_Measure.h 580 2012-03-29 09:56:21Z yamada.rj $ 3ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda ****************************************************************************** 4ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * 5ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * Copyright (C) 2012 Asahi Kasei Microdevices Corporation, Japan 6ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * 7ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * Licensed under the Apache License, Version 2.0 (the "License"); 8ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * you may not use this file except in compliance with the License. 9ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * You may obtain a copy of the License at 10ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * 11ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * http://www.apache.org/licenses/LICENSE-2.0 12ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * 13ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * Unless required by applicable law or agreed to in writing, software 14ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * distributed under the License is distributed on an "AS IS" BASIS, 15ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * See the License for the specific language governing permissions and 17ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * limitations under the License. 18ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda */ 19ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#ifndef AKFS_INC_MEASURE_H 20ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define AKFS_INC_MEASURE_H 21ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 22ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/* Include files for AK8975 library. */ 23ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#include "AKFS_Compass.h" 24ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 25ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/*** Constant definition ******************************************************/ 268486a35c06351c0a67bb44775f2d9bc0a70ebbc7Chih-Hung Hsieh#define AK8975_SELFTEST_MIN_X (-100) 27ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define AK8975_SELFTEST_MAX_X 100 28ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 298486a35c06351c0a67bb44775f2d9bc0a70ebbc7Chih-Hung Hsieh#define AK8975_SELFTEST_MIN_Y (-100) 30ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define AK8975_SELFTEST_MAX_Y 100 31ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 328486a35c06351c0a67bb44775f2d9bc0a70ebbc7Chih-Hung Hsieh#define AK8975_SELFTEST_MIN_Z (-1000) 338486a35c06351c0a67bb44775f2d9bc0a70ebbc7Chih-Hung Hsieh#define AK8975_SELFTEST_MAX_Z (-300) 34ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 35ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define CONVERT_ACC(a) ((int)((a) * 720 / 9.8f)) 36ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define CONVERT_MAG(m) ((int)((m) / 0.06f)) 37ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define CONVERT_ORI(o) ((int)((o) * 64)) 38ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 39ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/*** Type declaration *********************************************************/ 40ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 41ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/*** Global variables *********************************************************/ 42ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 43ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/*** Prototype of function ****************************************************/ 44ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudaint16 AKFS_ReadAK8975FUSEROM( 45ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda uint8 regs[3] 46ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda); 47ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 48ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudaint16 AKFS_SelfTest(void); 49ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 50ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudastruct timespec AKFS_CalcSleep( 51ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda const struct timespec* end, 52ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda const struct timespec* start, 53ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda const int64_t minimum 54ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda); 55ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 56ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudaint16 AKFS_GetInterval( 57ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda uint16* flag, 58ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda int64_t* minimum 59ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda); 60ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 61ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudavoid AKFS_OutputResult( 62ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda const uint16 flag, 63ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda const AKSENSOR_DATA* acc, 64ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda const AKSENSOR_DATA* mag, 65ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda const AKSENSOR_DATA* ori 66ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda); 67ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 68ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudavoid AKFS_MeasureLoop(void); 69ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 70ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#endif 71ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 72