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