Include
Configuration
#define AO_MIKROE_1877 (false)
Defines whether the clickboard is used.
Types
ao_mikroe_1877_connection_t
typedef enum ao_mikroe_1877_connection_t ao_mikroe_1877_connection_t;
ao_mikroe_1877_data_t
typedef struct ao_mikroe_1877_data_t ao_mikroe_1877_data_t;
The entire sensor data.
ao_mikroe_1877_data_*_t
typedef struct ao_mikroe_1877_data_accelerometer_t ao_mikroe_1877_data_accelerometer_t;
typedef struct ao_mikroe_1877_data_gyroscope_t ao_mikroe_1877_data_gyroscope_t;
typedef struct ao_mikroe_1877_data_inclinometer_t ao_mikroe_1877_data_inclinometer_t;
typedef struct ao_mikroe_1877_data_magnetometer_t ao_mikroe_1877_data_magnetometer_t;
typedef struct ao_mikroe_1877_data_orientation_t ao_mikroe_1877_data_orientation_t;
Represent the data of individual sensors.
ao_mikroe_1877_event_t
typedef enum ao_mikroe_1877_event_t ao_mikroe_1877_event_t;
ao_mikroe_1877_info_t
typedef struct ao_mikroe_1877_info_t ao_mikroe_1877_info_t;
ao_mikroe_1877_power_t
typedef enum ao_mikroe_1877_power_t ao_mikroe_1877_power_t;
ao_mikroe_1877_reporting_t
typedef enum ao_mikroe_1877_reporting_t ao_mikroe_1877_reporting_t;
ao_mikroe_1877_sensor_t
typedef enum ao_mikroe_1877_sensor_t ao_mikroe_1877_sensor_t;
ao_mikroe_1877_state_t
typedef enum ao_mikroe_1877_state_t ao_mikroe_1877_state_t;
Enums
ao_mikroe_1877_connection_t
enum ao_mikroe_1877_connection_t
{
AO_MIKROE_1877_CONNECTION_PC_INTEGRATED = 1,
AO_MIKROE_1877_CONNECTION_PC_ATTACHED = 2,
AO_MIKROE_1877_CONNECTION_PC_EXTERNAL = 3
};
AO_MIKROE_1877_CONNECTION_PC_INTEGRATED |
|
AO_MIKROE_1877_CONNECTION_PC_ATTACHED |
|
AO_MIKROE_1877_CONNECTION_PC_EXTERNAL |
|
ao_mikroe_1877_event_t
enum ao_mikroe_1877_event_t
{
AO_MIKROE_1877_EVENT_UNKNOWN = 1,
AO_MIKROE_1877_EVENT_STATE_CHANGED = 2,
AO_MIKROE_1877_EVENT_PROPERTY_CHANGED = 3,
AO_MIKROE_1877_EVENT_DATA_UPDATED = 4,
AO_MIKROE_1877_EVENT_POLL_RESPONSE = 5,
AO_MIKROE_1877_EVENT_CHANGE_SENSITIVITY = 6,
AO_MIKROE_1877_EVENT_MAX_REACHED = 7,
AO_MIKROE_1877_EVENT_MIN_REACHED = 8,
AO_MIKROE_1877_EVENT_HIGH_THRESHOLD_CROSS_UPWARD = 9,
AO_MIKROE_1877_EVENT_HIGH_THRESHOLD_CROSS_DOWNWARD = 10,
AO_MIKROE_1877_EVENT_LOW_THRESHOLD_CROSS_UPWARD = 11,
AO_MIKROE_1877_EVENT_LOW_THRESHOLD_CROSS_DOWNWARD = 12,
AO_MIKROE_1877_EVENT_ZERO_THRESHOLD_CROSS_UPWARD = 13,
AO_MIKROE_1877_EVENT_ZERO_THRESHOLD_CROSS_DOWNWARD = 14,
AO_MIKROE_1877_EVENT_PERIOD_EXCEEDED = 15,
AO_MIKROE_1877_EVENT_FREQUENCY_EXCEEDED = 16,
AO_MIKROE_1877_EVENT_COMPLEX_TRIGGER = 17
};
AO_MIKROE_1877_EVENT_UNKNOWN |
The sensor event type is not known. |
AO_MIKROE_1877_EVENT_STATE_CHANGED |
The sensor state has changed. |
AO_MIKROE_1877_EVENT_PROPERTY_CHANGED |
A property value has changed. |
AO_MIKROE_1877_EVENT_DATA_UPDATED |
A data field has changed. |
AO_MIKROE_1877_EVENT_POLL_RESPONSE |
The most current sensor data is being returned as the result of a poll request (Get Input). |
AO_MIKROE_1877_EVENT_CHANGE_SENSITIVITY |
The change sensitivity has been exceeded for a data field. |
AO_MIKROE_1877_EVENT_MAX_REACHED |
|
AO_MIKROE_1877_EVENT_MIN_REACHED |
|
AO_MIKROE_1877_EVENT_HIGH_THRESHOLD_CROSS_UPWARD |
|
AO_MIKROE_1877_EVENT_HIGH_THRESHOLD_CROSS_DOWNWARD |
|
AO_MIKROE_1877_EVENT_LOW_THRESHOLD_CROSS_UPWARD |
|
AO_MIKROE_1877_EVENT_LOW_THRESHOLD_CROSS_DOWNWARD |
|
AO_MIKROE_1877_EVENT_ZERO_THRESHOLD_CROSS_UPWARD |
|
AO_MIKROE_1877_EVENT_ZERO_THRESHOLD_CROSS_DOWNWARD |
|
AO_MIKROE_1877_EVENT_PERIOD_EXCEEDED |
|
AO_MIKROE_1877_EVENT_FREQUENCY_EXCEEDED |
|
AO_MIKROE_1877_EVENT_COMPLEX_TRIGGER |
|
ao_mikroe_1877_power_t
enum ao_mikroe_1877_power_t
{
AO_MIKROE_1877_POWER_UNDEFINED = 1,
AO_MIKROE_1877_POWER_FULL = 2,
AO_MIKROE_1877_POWER_LOW = 3,
AO_MIKROE_1877_POWER_STANDBY = 4,
AO_MIKROE_1877_POWER_SLEEP = 5,
AO_MIKROE_1877_POWER_OFF = 6
};
AO_MIKROE_1877_POWER_UNDEFINED |
The device power state is currently unknown or undefined. |
AO_MIKROE_1877_POWER_FULL |
The device is in full power operation. |
AO_MIKROE_1877_POWER_LOW |
The device is in a low power operation mode. |
AO_MIKROE_1877_POWER_STANDBY |
The device is at a standby power mode (e.g., halted and awaiting interrupts) and can be awakened. |
AO_MIKROE_1877_POWER_SLEEP |
The device is in a sleep mode and can be awakened. |
AO_MIKROE_1877_POWER_OFF |
The device is completely powered off and cannot be awakened. |
ao_mikroe_1877_reporting_t
enum ao_mikroe_1877_reporting_t
{
AO_MIKROE_1877_REPORTING_ALL = 2,
AO_MIKROE_1877_REPORTING_ALL_WAKE = 5,
AO_MIKROE_1877_REPORTING_NONE = 1,
AO_MIKROE_1877_REPORTING_NONE_WAKE = 4,
AO_MIKROE_1877_REPORTING_THRESHOLD = 3,
AO_MIKROE_1877_REPORTING_THRESHOLD_WAKE = 6
};
AO_MIKROE_1877_REPORTING_ALL |
All Input reports are sent without any filtering. |
AO_MIKROE_1877_REPORTING_ALL_WAKE |
All Input reports are sent without any filtering. A Wake On event is performed. |
AO_MIKROE_1877_REPORTING_NONE |
No asynchronous Input reports are sent. |
AO_MIKROE_1877_REPORTING_NONE_WAKE |
No asynchronous Input reports are sent. A Wake On event is never performed. |
AO_MIKROE_1877_REPORTING_THRESHOLD |
Input reports are sent only when it exceeds a pre-programmed threshold. |
AO_MIKROE_1877_REPORTING_THRESHOLD_WAKE |
Input reports are sent only when it exceeds a pre-programmed threshold. A Wake On event is performed. |
ao_mikroe_1877_sensor_t
enum ao_mikroe_1877_sensor_t
{
AO_MIKROE_1877_SENSOR_ACCELEROMETER = 1,
AO_MIKROE_1877_SENSOR_ACCELEROMETER_RAW = 6,
AO_MIKROE_1877_SENSOR_GYROSCOPE = 3,
AO_MIKROE_1877_SENSOR_GYROSCOPE_RAW = 8,
AO_MIKROE_1877_SENSOR_INCLINOMETER = 4,
AO_MIKROE_1877_SENSOR_MAGNETOMETER = 2,
AO_MIKROE_1877_SENSOR_MAGNETOMETER_RAW = 7,
AO_MIKROE_1877_SENSOR_ORIENTATION = 5
};
AO_MIKROE_1877_SENSOR_ACCELEROMETER |
|
AO_MIKROE_1877_SENSOR_ACCELEROMETER_RAW |
|
AO_MIKROE_1877_SENSOR_GYROSCOPE |
|
AO_MIKROE_1877_SENSOR_GYROSCOPE_RAW |
|
AO_MIKROE_1877_SENSOR_INCLINOMETER |
|
AO_MIKROE_1877_SENSOR_MAGNETOMETER |
|
AO_MIKROE_1877_SENSOR_MAGNETOMETER_RAW |
|
AO_MIKROE_1877_SENSOR_ORIENTATION |
|
ao_mikroe_1877_state_t
enum ao_mikroe_1877_state_t
{
AO_MIKROE_1877_STATE_UNDEFINED = 1,
AO_MIKROE_1877_STATE_READY = 2,
AO_MIKROE_1877_STATE_NOT_AVAILABLE = 3,
AO_MIKROE_1877_STATE_NO_DATA = 4,
AO_MIKROE_1877_STATE_INITIALIZING = 5,
AO_MIKROE_1877_STATE_ACCESS_DENIED = 6,
AO_MIKROE_1877_STATE_ERROR = 7
};
AO_MIKROE_1877_STATE_UNDEFINED |
The sensor state is not known. |
AO_MIKROE_1877_STATE_READY |
Sensor is able to provide new complete and accurate data. |
AO_MIKROE_1877_STATE_NOT_AVAILABLE |
The sensor not available. |
AO_MIKROE_1877_STATE_NO_DATA |
The sensor is available, but is not yet providing data. It is not known in what timeframe data will, if ever, be provided. |
AO_MIKROE_1877_STATE_INITIALIZING |
The sensor is available, but is not yet providing data due to initialization activities. It is expected the sensor will provide data, but the timeframe in which that data will be available is not known. |
AO_MIKROE_1877_STATE_ACCESS_DENIED |
In the case where an ID must be provided to access sensor data, and the requester fails to match the ID, this state will be returned. |
AO_MIKROE_1877_STATE_ERROR |
The sensor has encountered a major error. The sensor may recover from the state, but the time frame for recovery is unknown. |
Structs
ao_mikroe_1877_data_t
struct ao_mikroe_1877_data_t
{
union
{
ao_mikroe_1877_data_accelerometer_t accelerometer;
ao_mikroe_1877_data_gyroscope_t gyroscope;
ao_mikroe_1877_data_inclinometer_t inclinometer;
ao_mikroe_1877_data_magnetometer_t magnetometer;
ao_mikroe_1877_data_orientation_t orientation;
} data;
ao_mikroe_1877_event_t event;
ao_mikroe_1877_sensor_t sensor;
ao_mikroe_1877_state_t state;
};
data |
|
data.accelerometer |
|
data.gyroscope |
|
data.inclinometer |
|
data.magnetometer |
|
data.orientation |
|
event |
|
sensor |
|
state |
|
ao_mikroe_1877_data_accelerometer_t
struct ao_mikroe_1877_data_accelerometer_t
{
bool shake_detected;
ao_float_t x;
ao_float_t y;
ao_float_t z;
};
shake_detected |
|
x |
+- 2 g |
y |
+- 2 g |
z |
+- 2 g |
ao_mikroe_1877_data_gyroscope_t
struct ao_mikroe_1877_data_gyroscope_t
{
bool shake_detected;
ao_float_t x;
ao_float_t y;
ao_float_t z;
};
shake_detected |
|
x |
+- 2000°/s |
y |
+- 2000°/s |
z |
+- 2000°/s |
ao_mikroe_1877_data_inclinometer_t
struct ao_mikroe_1877_data_inclinometer_t
{
ao_float_t x;
ao_float_t y;
ao_float_t z;
};
x |
Pitch -180° … 180° |
y |
Roll -90° … 90° |
z |
Yaw 0° … 360° |
ao_mikroe_1877_data_magnetometer_t
struct ao_mikroe_1877_data_magnetometer_t
{
ao_float_t heading;
ao_float_t x;
ao_float_t y;
ao_float_t z;
};
heading |
North 0° … 360° |
x |
+- 1300 µT |
y |
+- 1300 µT |
z |
+- 2500 µT |
ao_mikroe_1877_data_orientation_t
struct ao_mikroe_1877_data_orientation_t
{
ao_float_t w;
ao_float_t x;
ao_float_t y;
ao_float_t z;
};
w |
Quaternion real +- 1 |
x |
Quaternion i +- 1 |
y |
Quaternion j +- 1 |
z |
Quaternion k +- 1 |
ao_mikroe_1877_info_t
struct ao_mikroe_1877_info_t
{
ao_float_t accuracy;
ao_float_t change_sensitivity;
ao_mikroe_1877_connection_t connection;
ao_time_t interval;
ao_time_t interval_min;
ao_float_t max;
ao_float_t min;
ao_mikroe_1877_power_t power;
ao_mikroe_1877_reporting_t reporting;
ao_float_t resolution;
ao_mikroe_1877_sensor_t sensor;
ao_mikroe_1877_state_t state;
};
accuracy |
|
change_sensitivity |
Specifies the absolute amount that by which a data field should change before an event (such as an asynchronous Input Report) is generated. Absolute sensitivity values are expressed using the same units as the corresponding data field. |
connection |
|
interval |
Specifies the elapsed time for periodic sensor Input Report generation. A value of 0 means set or use the device default value, not 0 milliseconds. |
interval_min |
|
max |
|
min |
|
power |
|
reporting |
|
resolution |
|
sensor |
|
state |
|
Functions
ao_mikroe_1877_config
void ao_mikroe_1877_config(size_t i, ao_mikroe_1877_info_t const * x);
ao_mikroe_1877_data
void ao_mikroe_1877_data(size_t i, ao_mikroe_1877_data_t const * x);
ao_mikroe_1877_get_data
void ao_mikroe_1877_get_data(size_t i, ao_mikroe_1877_sensor_t x);
ao_mikroe_1877_get_info
void ao_mikroe_1877_get_info(size_t i, ao_mikroe_1877_sensor_t x);
ao_mikroe_1877_info
void ao_mikroe_1877_info(size_t i, ao_mikroe_1877_info_t const * x);
ao_mikroe_1877_off
void ao_mikroe_1877_off(size_t i);
ao_mikroe_1877_on
void ao_mikroe_1877_on(size_t i);
ao_mikroe_1877_reset
void ao_mikroe_1877_reset(size_t i);
ao_mikroe_1877_sleep
void ao_mikroe_1877_sleep(size_t i);
ao_mikroe_1877_sleeping
void ao_mikroe_1877_sleeping(size_t i);
ao_mikroe_1877_start
void ao_mikroe_1877_start(size_t i);
ao_mikroe_1877_stop
void ao_mikroe_1877_stop(size_t i);
ao_mikroe_1877_wake
void ao_mikroe_1877_wake(size_t i);