| 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 falsewill generate smaller code. | 
| STATUS_HOOK_ | the type of the hook to be called when HAS_STATUS_istrue. This can be a simple function pointer (of typeI2C_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 falsewill generate smaller code. | 
| DEBUG_HOOK_ | the type of the hook to be called when IS_DEBUGistrue. This can be a simple function pointer (of typeI2C_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.