|
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.