FastArduino v1.10
C++ library to build fast but small Arduino/AVR projects
|
Abstract asynchronous I2C Manager. More...
#include <fastarduino/i2c_handler_atmega.h>
Public Types | |
using | ABSTRACT_FUTURE = future::AbstractFuture |
The abstract base class of all futures to be defined for this I2C Manager. More... | |
template<typename OUT , typename IN > | |
using | FUTURE = future::Future< OUT, IN > |
The template base class of all futures to be defined for this I2C Manager. More... | |
using | I2CCOMMAND = I2CCommand< ABSTRACT_FUTURE > |
The type of I2CCommand to use in the buffer passed to the constructor of this AbstractI2CAsyncManager. More... | |
Public Member Functions | |
void | begin () |
Prepare and enable the MCU for I2C transmission. More... | |
void | end () |
Disable MCU I2C transmission. More... | |
void | begin_ () |
Prepare and enable the MCU for I2C transmission. More... | |
void | end_ () |
Disable MCU I2C transmission. More... | |
Friends | |
template<typename > | |
class | I2CDevice |
struct | isr_handler |
Abstract asynchronous I2C Manager.
It is specifically subclassed for ATmega architecture. You should never need to subclass AbstractI2CAsyncManager yourself.
MODE_ | the I2C mode for this manager |
POLICY_ | the policy to use in case of an error during I2C transaction |
HAS_STATUS_ | tells this I2C Manager to call a status hook at each step of an I2C transaction; using false will generate smaller code. |
STATUS_HOOK_ | the type of the hook to be called when HAS_STATUS_ is true . This can be a simple function pointer (of type I2C_STATUS_HOOK ) or a Functor class (or Functor class reference). Using a Functor class will generate smaller code. |
HAS_DEBUG_ | tells this I2C Manager to call a debugging hook at each step of an I2C transaction; this is useful for debugging support for a new I2C device; using false will generate smaller code. |
DEBUG_HOOK_ | the type of the hook to be called when IS_DEBUG is true . This can be a simple function pointer (of type I2C_DEBUG_HOOK ) or a Functor class (or Functor class reference). Using a Functor class will generate smaller code. |
Definition at line 358 of file i2c_handler_atmega.h.
using i2c::AbstractI2CAsyncManager< MODE_, POLICY_, HAS_STATUS_, STATUS_HOOK_, HAS_DEBUG_, DEBUG_HOOK_ >::ABSTRACT_FUTURE = future::AbstractFuture |
The abstract base class of all futures to be defined for this I2C Manager.
For an asynchronous manager, it is always future::AbstractFuture
.
Definition at line 373 of file i2c_handler_atmega.h.
using i2c::AbstractI2CAsyncManager< MODE_, POLICY_, HAS_STATUS_, STATUS_HOOK_, HAS_DEBUG_, DEBUG_HOOK_ >::FUTURE = future::Future<OUT, IN> |
The template base class of all futures to be defined for this I2C Manager.
For an asynchronous manager, it is always future::Future
.
Definition at line 379 of file i2c_handler_atmega.h.
using i2c::AbstractI2CAsyncManager< MODE_, POLICY_, HAS_STATUS_, STATUS_HOOK_, HAS_DEBUG_, DEBUG_HOOK_ >::I2CCOMMAND = I2CCommand<ABSTRACT_FUTURE> |
The type of I2CCommand to use in the buffer passed to the constructor of this AbstractI2CAsyncManager.
Definition at line 385 of file i2c_handler_atmega.h.
|
inline |
Prepare and enable the MCU for I2C transmission.
Preparation includes setup of I2C pins (SDA and SCL). This method is synchronized.
Definition at line 394 of file i2c_handler_atmega.h.
|
inline |
Disable MCU I2C transmission.
This method is synchronized.
Definition at line 405 of file i2c_handler_atmega.h.
|
inline |
Prepare and enable the MCU for I2C transmission.
Preparation includes setup of I2C pins (SDA and SCL). This method is NOT synchronized.
Definition at line 417 of file i2c_handler_atmega.h.
|
inline |
Disable MCU I2C transmission.
This method is NOT synchronized.
Definition at line 434 of file i2c_handler_atmega.h.
|
friend |
Definition at line 748 of file i2c_handler_atmega.h.
|
friend |
Definition at line 749 of file i2c_handler_atmega.h.