/******************************************************************************
* $Id: AKFS_Measure.h 580 2012-03-29 09:56:21Z yamada.rj $
******************************************************************************
*
* Copyright (C) 2012 Asahi Kasei Microdevices Corporation, Japan
*
* 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.
*/
#ifndef AKFS_INC_MEASURE_H
#define AKFS_INC_MEASURE_H
/* Include files for AK8975 library. */
#include "AKFS_Compass.h"
/*** Constant definition ******************************************************/
#define AK8975_SELFTEST_MIN_X (-100)
#define AK8975_SELFTEST_MAX_X 100
#define AK8975_SELFTEST_MIN_Y (-100)
#define AK8975_SELFTEST_MAX_Y 100
#define AK8975_SELFTEST_MIN_Z (-1000)
#define AK8975_SELFTEST_MAX_Z (-300)
#define CONVERT_ACC(a) ((int)((a) * 720 / 9.8f))
#define CONVERT_MAG(m) ((int)((m) / 0.06f))
#define CONVERT_ORI(o) ((int)((o) * 64))
/*** Type declaration *********************************************************/
/*** Global variables *********************************************************/
/*** Prototype of function ****************************************************/
int16 AKFS_ReadAK8975FUSEROM(
uint8 regs[3]
);
int16 AKFS_SelfTest(void);
struct timespec AKFS_CalcSleep(
const struct timespec* end,
const struct timespec* start,
const int64_t minimum
);
int16 AKFS_GetInterval(
uint16* flag,
int64_t* minimum
);
void AKFS_OutputResult(
const uint16 flag,
const AKSENSOR_DATA* acc,
const AKSENSOR_DATA* mag,
const AKSENSOR_DATA* ori
);
void AKFS_MeasureLoop(void);
#endif