59 lines
1.2 KiB
C
59 lines
1.2 KiB
C
/*
|
|
* Ang_AS5600DO.h
|
|
*
|
|
* Created on: Jun 22, 2020
|
|
* Author: matth
|
|
*/
|
|
|
|
#ifndef MATT_ANGLE_AS5600_H_
|
|
#define MATT_ANGLE_AS5600_H_
|
|
|
|
#include "I2CDevice.h"
|
|
#include <FreeRTOS.h>
|
|
|
|
#ifndef HAL_ANG_AS5600_I2C_ADDR
|
|
#define HAL_ANG_AS5600_I2C_ADDR 0x36
|
|
#endif
|
|
|
|
#ifndef HAL_ANG_AS5200T_I2C_ADDR
|
|
#define HAL_ANG_AS5200T_I2C_ADDR 0x40
|
|
#endif
|
|
|
|
#ifndef HAL_ANG_AS5200B_I2C_ADDR
|
|
#define HAL_ANG_AS5200B_I2C_ADDR 0x40
|
|
#endif
|
|
|
|
#define AS5600_ZMCO (0x00)
|
|
#define AS5600_ZPOS_H (0x01)
|
|
#define AS5600_ZPOS_L (0x02)
|
|
#define AS5600_MPOS_H (0x03)
|
|
#define AS5600_MPOS_L (0x04)
|
|
#define AS5600_MANG_H (0x05)
|
|
#define AS5600_MANG_L (0x06)
|
|
#define AS5600_CONF_H (0x07)
|
|
#define AS5600_CONF_L (0x08)
|
|
#define AS5600_RAW_ANGLE_H (0x0C)
|
|
#define AS5600_RAW_ANGLE_L (0x0D)
|
|
#define AS5600_ANGLE_H (0x0E)
|
|
#define AS5600_ANGLE_L (0x0F)
|
|
#define AS5600_STATUS (0x0B)
|
|
#define AS5600_AGC (0x1A)
|
|
#define AS5600_MAGNITUDE_H (0x1B)
|
|
#define AS5600_MAGNITUDE_L (0x1C)
|
|
#define AS5600_BURN (0xFF)
|
|
|
|
typedef struct Ang_AS5600{
|
|
const char *name;
|
|
I2C_DEV_t *_dev;
|
|
float angle;
|
|
uint8_t status;
|
|
} Ang_AS5600_t;
|
|
|
|
bool Ang_AS5600_init(Ang_AS5600_t *ang, const char *name, I2C_DEV_t *dev);
|
|
|
|
bool Ang_AS5600_update(Ang_AS5600_t *ang);
|
|
|
|
|
|
|
|
#endif /* MATT_ANGLE_AS5600_H_ */
|