/**
  ******************************************************************************
  * @file    HMC5883L.h
  * @author  MCD Application Team
  * @version V1.0.0
  * @date    24-11-2014
  * @brief
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __HMC5883L_H
#define __HMC5883L_H

#include "stm8l15x_conf.h"
#include "user.h"
//定义器件在IIC总线中的从地址,根据ALT  ADDRESS地址引脚不同修改
#define    HMC5883_Addr   0x1A    //磁场传感器器件地址


extern int magX, magY, magZ;
extern u8 MagGain;
extern u8 BUF[8];
extern u8 mag3[4];
extern int CARON_magX;
extern int CARON_magY;
extern  u8 mag_time_count;
extern  u8 set_parking_space_status;
extern u8 magflagtemp;
extern int Mag_x_stable;
extern int Mag_y_stable;
extern int mag_x_temp[10];
extern int mag_y_temp[10];
///////////////////////////////////////////////
void geomag_self_adaption(void);
void have_car_send(void);
void get_geomag(void);
int geomag_car_in(void);
void NO_car_deal(void);
int geomag_car_out(int flag);
extern enum STATUS geomag_car_flag;
extern enum STATUS ge_state;//地磁是否正常标志
extern int geo_wave_flag;
extern int geo_wave_count;
/////////////////////////////////////
void HMC5883L_Init(void);
void updateHMC5883(void);
void HMC5883L_MeasureMode(void);
void HMC5883L_IdleMode(void);
void HMC5883L_Set_Gain(u8 value);  //这基本没有用，空有其形
void HMC5883L_Get_Gain(void);//这基本没有用，空有其形
void MagUpdate(int *p1,int *p2,u8 len);
enum SIGNAL_STATE GeomagCheck(void);
#endif