ECRobot C++ API for LEGO MINDSTORMS NXT
1.0.10
|
HiTechnic Compass sensor (http://www.hitechnic.com/) class. More...
#include <CompassSensor.h>
Public Member Functions | |
CompassSensor (ePortS port) | |
Constructor (activate I2C). | |
S16 | getHeading (void) const |
Get heading data. | |
void | get (U8 data[5]) const |
Get raw I2C data. | |
void | beginCalibration (void) |
Start sensor calibration. | |
bool | endCalibration (void) |
End sensor calibration. |
HiTechnic Compass sensor (http://www.hitechnic.com/) class.
[ How to use with TOPPERS/ATK1(OSEK) ]
I2C (derived/compositted) class and Clock class internally use RTOS features. Thus, user needs to implement a C function and RTOS provided events.
+ Invoke SleeperMonitor function in user_1msec_isr_type2 hook.
void user_1ms_isr_type2(void)
{
SleeperMonitor(); // needed for I2C devices and Clock class
}
+ Define EventSleepI2C and EventSleep Events in user oil file.
EVENT EventSleepI2C
{
MASK = AUTO;
};
EVENT EventSleep
{
MASK = AUTO;
};
TASK TaskMain
{
AUTOSTART = TRUE
{
APPMODE = appmode1;
};
PRIORITY = 1;
ACTIVATION = 1;
SCHEDULE = FULL;
STACKSIZE = 512;
EVENT = EventSleepI2C; <- Here it is
EVENT = EventSleep; <- Here it is
};
[ How to use with TOPPERS/JSP(ITRON) ]
In case of using this class with TOPPERS/JSP(ITRON), RTOS specific definitions for the class are not needed.
ecrobot::CompassSensor::CompassSensor | ( | ePortS | port | ) | [explicit] |
Constructor (activate I2C).
Note:
This class must be constructed as a global object. Otherwise, a device assertion will be displayed
in the LCD when the object is constructed as a non global object.
When the object is destructed while the system is shut down, the device is de-activated automatically.
port | Compass sensor connected port |
void ecrobot::CompassSensor::beginCalibration | ( | void | ) |
Start sensor calibration.
- |
bool ecrobot::CompassSensor::endCalibration | ( | void | ) |
End sensor calibration.
- |
void ecrobot::CompassSensor::get | ( | U8 | data[5] | ) | const [inline] |
Get raw I2C data.
data | Data representation from the sensor, per Hi-Technic's documentation: data[0]: mode control data[1]: heading upper 8 bits data[2]: heading lower 1 bit data[3]: heading lower 8 bits data[4]: heading upper 1 bit |
S16 ecrobot::CompassSensor::getHeading | ( | void | ) | const |
Get heading data.
- |