Updated L3GD20 driver to v 1.0.5 (Fixing Bug #915).
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11442 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
4ddc3c188b
commit
2268a0e69a
|
@ -304,17 +304,11 @@ static msg_t set_full_scale(void *ip, l3gd20_fs_t fs) {
|
||||||
return MSG_OK;
|
return MSG_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct BaseSensorVMT vmt_basesensor = {
|
static const struct BaseSensorVMT vmt_sensor = {
|
||||||
get_axes_number, read_raw, read_cooked
|
get_axes_number, read_raw, read_cooked
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct BaseGyroscopeVMT vmt_basegyroscope = {
|
static const struct L3GD20GyroscopeVMT vmt_gyroscope = {
|
||||||
get_axes_number, read_raw, read_cooked,
|
|
||||||
sample_bias, set_bias, reset_bias,
|
|
||||||
set_sensivity, reset_sensivity
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct L3GD20VMT vmt_l3gd20 = {
|
|
||||||
get_axes_number, read_raw, read_cooked,
|
get_axes_number, read_raw, read_cooked,
|
||||||
sample_bias, set_bias, reset_bias,
|
sample_bias, set_bias, reset_bias,
|
||||||
set_sensivity, reset_sensivity,
|
set_sensivity, reset_sensivity,
|
||||||
|
@ -334,9 +328,8 @@ static const struct L3GD20VMT vmt_l3gd20 = {
|
||||||
*/
|
*/
|
||||||
void l3gd20ObjectInit(L3GD20Driver *devp) {
|
void l3gd20ObjectInit(L3GD20Driver *devp) {
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
devp->vmt_basesensor = &vmt_basesensor;
|
devp->vmt_sensor = &vmt_sensor;
|
||||||
devp->vmt_basegyroscope = &vmt_basegyroscope;
|
devp->vmt_gyroscope = &vmt_gyroscope;
|
||||||
devp->vmt_l3gd20 = &vmt_l3gd20;
|
|
||||||
devp->config = NULL;
|
devp->config = NULL;
|
||||||
for(i = 0; i < L3GD20_NUMBER_OF_AXES; i++)
|
for(i = 0; i < L3GD20_NUMBER_OF_AXES; i++)
|
||||||
devp->bias[i] = 0.0f;
|
devp->bias[i] = 0.0f;
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
/**
|
/**
|
||||||
* @brief L3GD20 driver version string.
|
* @brief L3GD20 driver version string.
|
||||||
*/
|
*/
|
||||||
#define EX_L3GD20_VERSION "1.0.4"
|
#define EX_L3GD20_VERSION "1.0.5"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief L3GD20 driver version major number.
|
* @brief L3GD20 driver version major number.
|
||||||
|
@ -57,7 +57,7 @@
|
||||||
/**
|
/**
|
||||||
* @brief L3GD20 driver version patch number.
|
* @brief L3GD20 driver version patch number.
|
||||||
*/
|
*/
|
||||||
#define EX_L3GD20_PATCH 4
|
#define EX_L3GD20_PATCH 5
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -80,12 +80,12 @@
|
||||||
* @name L3GD20 communication interfaces related bit masks
|
* @name L3GD20 communication interfaces related bit masks
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
#define L3GD20_DI_MASK 0xFF /**< Data In mask */
|
#define L3GD20_DI_MASK 0xFF
|
||||||
#define L3GD20_DI(n) (1 << n) /**< Data In bit n */
|
#define L3GD20_DI(n) (1 << n)
|
||||||
#define L3GD20_AD_MASK 0x3F /**< Address Data mask */
|
#define L3GD20_AD_MASK 0x3F
|
||||||
#define L3GD20_AD(n) (1 << n) /**< Address Data bit n */
|
#define L3GD20_AD(n) (1 << n)
|
||||||
#define L3GD20_MS (1 << 6) /**< Multiple read write */
|
#define L3GD20_MS (1 << 6)
|
||||||
#define L3GD20_RW (1 << 7) /**< Read Write selector */
|
#define L3GD20_RW (1 << 7)
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -474,25 +474,26 @@ typedef struct {
|
||||||
} L3GD20Config;
|
} L3GD20Config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Structure representing a L3GD20 driver.
|
* @brief @p L3GD20 gyroscope subsystem specific methods.
|
||||||
*/
|
*/
|
||||||
typedef struct L3GD20Driver L3GD20Driver;
|
#define _l3gd20_gyroscope_methods_alone \
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief @p L3GD20 specific methods.
|
|
||||||
*/
|
|
||||||
#define _l3gd20_methods \
|
|
||||||
_base_gyroscope_methods \
|
|
||||||
/* Change full scale value of L3GD20.*/ \
|
/* Change full scale value of L3GD20.*/ \
|
||||||
msg_t (*set_full_scale)(void *instance, l3gd20_fs_t fs);
|
msg_t (*set_full_scale)(void *instance, l3gd20_fs_t fs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief @p L3GD20 specific methods.
|
||||||
|
*/
|
||||||
|
#define _l3gd20_gyroscope_methods \
|
||||||
|
_base_gyroscope_methods \
|
||||||
|
_l3gd20_gyroscope_methods_alone
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @extends BaseGyroscopeVMT
|
* @extends BaseGyroscopeVMT
|
||||||
*
|
*
|
||||||
* @brief @p L3GD20 virtual methods table.
|
* @brief @p L3GD20 gyroscope virtual methods table.
|
||||||
*/
|
*/
|
||||||
struct L3GD20VMT {
|
struct L3GD20GyroscopeVMT {
|
||||||
_l3gd20_methods
|
_l3gd20_gyroscope_methods
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -520,13 +521,18 @@ struct L3GD20VMT {
|
||||||
*/
|
*/
|
||||||
struct L3GD20Driver {
|
struct L3GD20Driver {
|
||||||
/** @brief BaseSensor Virtual Methods Table. */
|
/** @brief BaseSensor Virtual Methods Table. */
|
||||||
const struct BaseSensorVMT *vmt_basesensor;
|
const struct BaseSensorVMT *vmt_sensor;
|
||||||
/** @brief BaseGyroscope Virtual Methods Table. */
|
_base_sensor_data
|
||||||
const struct BaseGyroscopeVMT *vmt_basegyroscope;
|
/** @brief L3GD20 Gyroscope Virtual Methods Table. */
|
||||||
/** @brief L3GD20 Virtual Methods Table. */
|
const struct L3GD20GyroscopeVMT *vmt_gyroscope;
|
||||||
const struct L3GD20VMT *vmt_l3gd20;
|
_base_gyroscope_data
|
||||||
_l3gd20_data
|
_l3gd20_data
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Structure representing a L3GD20 driver.
|
||||||
|
*/
|
||||||
|
typedef struct L3GD20Driver L3GD20Driver;
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
@ -545,7 +551,7 @@ struct L3GD20Driver {
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
#define gyroscopeSetFullScale(ip, fs) \
|
#define gyroscopeSetFullScale(ip, fs) \
|
||||||
(ip)->vmt_l3gd20->set_full_scale(ip, fs)
|
(ip)->vmt_gyroscope->set_full_scale(ip, fs)
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* External declarations. */
|
/* External declarations. */
|
||||||
|
|
Loading…
Reference in New Issue