ECRobot C++ API for LEGO MINDSTORMS NXT
1.0.10
|
I2C device class. More...
#include <I2c.h>
Public Member Functions | |
I2c (ePortS port, ePower power=POWER_LOWSPEED) | |
Constructor (activate I2C). | |
virtual | ~I2c (void) |
Destructor (de-activate I2C). | |
bool | send (U32 address, U8 *data, U32 length) |
Send data. | |
bool | receive (U32 address, U8 *data, U32 length) const |
Receive data. | |
Protected Member Functions | |
ePortS | getPort (void) const |
Get the I2C device connected port. |
I2C device 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::I2c::I2c | ( | ePortS | port, |
ePower | power = POWER_LOWSPEED |
||
) | [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.
port | I2C device connected port |
power | Power mode |
virtual ecrobot::I2c::~I2c | ( | void | ) | [virtual] |
Destructor (de-activate I2C).
- |
ePortS ecrobot::I2c::getPort | ( | void | ) | const [inline, protected] |
Get the I2C device connected port.
- |
bool ecrobot::I2c::receive | ( | U32 | address, |
U8 * | data, | ||
U32 | length | ||
) | const |
Receive data.
address | I2C address |
data | Data to be received |
length | Length of data to be received |
bool ecrobot::I2c::send | ( | U32 | address, |
U8 * | data, | ||
U32 | length | ||
) |
Send data.
address | I2C address |
data | Data to be sent |
length | Length of data to be sent |