110 lines
2.6 KiB
C
110 lines
2.6 KiB
C
#ifndef _INTERFACE_24C02_H_
|
|
#define _INTERFACE_24C02_H_
|
|
|
|
#define _nop_() Delay_Us(1);
|
|
#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();}
|
|
|
|
|
|
#define EN_24C02 1
|
|
|
|
#define E2_PAGE_SIZE 4096
|
|
#define E2_MAX_PAGE 8
|
|
|
|
|
|
/* EERPOM DATA ADDRESS Length Definition */
|
|
#define Address_8bit 0
|
|
#define Address_12bit 1
|
|
#define Address_16bit 2
|
|
|
|
/* EERPOM DATA ADDRESS Length Selection */
|
|
#define Address_Lenth Address_12bit
|
|
|
|
|
|
#define EEPROM_ADDRESS 0xA0 //
|
|
|
|
|
|
|
|
#define RM3100_I2C hi2c1
|
|
#define RM3100_ADDRESS 0x23<<1 //AD0 AD1¶¼½ÓµØ
|
|
|
|
#define RM3100_CONVERSION_INTERVAL 10000 // Microseconds, corresponds to 100 Hz (cycle count 200 on 3 axis)
|
|
#define UTESLA_TO_GAUSS 100.0f
|
|
#define RM3100_SENSITIVITY 75.0f
|
|
|
|
#define ADDR_POLL 0x00
|
|
#define ADDR_CMM 0x01
|
|
#define ADDR_CCX 0x04
|
|
#define ADDR_CCY 0x06
|
|
#define ADDR_CCZ 0x08
|
|
#define ADDR_TMRC 0x0B
|
|
#define ADDR_MX 0x24
|
|
#define ADDR_MY 0x27
|
|
#define ADDR_MZ 0x2A
|
|
#define ADDR_BIST 0x33
|
|
#define ADDR_STATUS 0x34
|
|
//#define ADDR_STATUS_READ 0xB4 //0X34|0X80
|
|
#define ADDR_HSHAKE 0x35
|
|
#define ADDR_REVID 0x36
|
|
|
|
#define CCX_DEFAULT_MSB 0x00
|
|
#define CCX_DEFAULT_LSB 0xC8
|
|
#define CCY_DEFAULT_MSB CCX_DEFAULT_MSB
|
|
#define CCY_DEFAULT_LSB CCX_DEFAULT_LSB
|
|
#define CCZ_DEFAULT_MSB CCX_DEFAULT_MSB
|
|
#define CCZ_DEFAULT_LSB CCX_DEFAULT_LSB
|
|
#define CMM_DEFAULT 0x71 // continuous mode
|
|
#define CONTINUOUS_MODE (1 << 0)
|
|
#define POLLING_MODE (0 << 0)
|
|
#define TMRC_DEFAULT 0x95
|
|
#define BIST_SELFTEST 0x8F
|
|
#define BIST_DEFAULT 0x00
|
|
#define BIST_XYZ_OK ((1 << 4) | (1 << 5) | (1 << 6))
|
|
#define STATUS_DRDY (1 << 7)
|
|
#define POLL_XYZ 0x70
|
|
#define RM3100_REVID 0x22
|
|
#define HSHAKE_DEFAULT (0x0B)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void iicInit(I2C_TypeDef *I2Cx, u32 bound, u16 address);
|
|
uint8_t RM3100_GetData(short *x,short *y,short*z);
|
|
|
|
void iic_sendbyte(unsigned char byt);
|
|
unsigned char wrbyte_24c02(unsigned int add,unsigned char dat);
|
|
|
|
unsigned char i2c_recbyte(void);
|
|
unsigned char rdbyte_24c02(unsigned int add);
|
|
unsigned char wrEE_CRC_Bak(unsigned char add,unsigned char *eeData,unsigned char len,unsigned char addbak);
|
|
unsigned char rdEE_CRC_Bak(unsigned char add,unsigned char *eeData,unsigned char len,unsigned char addbak);
|
|
void rm3100Init(void);//³õʼ»¯RM3100
|
|
|
|
void initSpi(void);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* _INTERFACE_24C02_H_ */
|