FastArduino  v1.8
C++ library to build fast but small Arduino/AVR projects
i2c::AbstractI2CSyncATmegaManager< MODE_, HAS_LC_, HAS_STATUS_, STATUS_HOOK_, HAS_DEBUG_, DEBUG_HOOK_ > Class Template Reference

Abstract synchronous I2C Manager for ATmega architecture. More...

#include <fastarduino/i2c_handler_atmega.h>

Inheritance diagram for i2c::AbstractI2CSyncATmegaManager< MODE_, HAS_LC_, HAS_STATUS_, STATUS_HOOK_, HAS_DEBUG_, DEBUG_HOOK_ >:
Collaboration diagram for i2c::AbstractI2CSyncATmegaManager< MODE_, HAS_LC_, HAS_STATUS_, STATUS_HOOK_, HAS_DEBUG_, DEBUG_HOOK_ >:

Public Types

using ABSTRACT_FUTURE = typename PARENT::ABSTRACT_FUTURE
 
template<typename T >
using PROXY = typename PARENT::template PROXY< T >
 
template<typename OUT , typename IN >
using FUTURE = typename PARENT::template FUTURE< OUT, IN >
 
- Public Types inherited from i2c::AbstractI2CSyncManager< ATmegaI2CSyncHandler< MODE_, HAS_STATUS_, STATUS_HOOK_ >, MODE_, HAS_LC_, STATUS_HOOK_, HAS_DEBUG_, DEBUG_HOOK_ >
using ABSTRACT_FUTURE = future::AbstractFakeFuture
 
using PROXY = typename LC::template PROXY< T >
 
using FUTURE = future::FakeFuture< OUT, IN >
 

Friends

template<typename >
class I2CDevice
 

Additional Inherited Members

- Public Member Functions inherited from i2c::AbstractI2CSyncManager< ATmegaI2CSyncHandler< MODE_, HAS_STATUS_, STATUS_HOOK_ >, MODE_, HAS_LC_, STATUS_HOOK_, HAS_DEBUG_, DEBUG_HOOK_ >
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...
 
- Protected Types inherited from i2c::AbstractI2CSyncManager< ATmegaI2CSyncHandler< MODE_, HAS_STATUS_, STATUS_HOOK_ >, MODE_, HAS_LC_, STATUS_HOOK_, HAS_DEBUG_, DEBUG_HOOK_ >
using ARCH_HANDLER = ATmegaI2CSyncHandler< MODE_, HAS_STATUS_, STATUS_HOOK_ >
 
using MODE_TRAIT = I2CMode_trait< MODE_ >
 
using I2C_TRAIT = board_traits::TWI_trait
 
using REG8 = board_traits::REG8
 
using DEBUG = I2CDebugSupport< HAS_DEBUG_, DEBUG_HOOK_ >
 
using LC = I2CLifeCycleSupport< HAS_LC_ >
 

Detailed Description

template<I2CMode MODE_, bool HAS_LC_, bool HAS_STATUS_, typename STATUS_HOOK_, bool HAS_DEBUG_, typename DEBUG_HOOK_>
class i2c::AbstractI2CSyncATmegaManager< MODE_, HAS_LC_, HAS_STATUS_, STATUS_HOOK_, HAS_DEBUG_, DEBUG_HOOK_ >

Abstract synchronous I2C Manager for ATmega architecture.

You should never need to subclass AbstractI2CSyncATmegaManager yourself.

Template Parameters
MODE_the I2C mode for this manager
HAS_LC_tells if this I2C Manager must be able to handle proxies to Future that can move around and must be controlled by a LifeCycleManager; using false will generate smaller code.
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 HAS_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.
See also
I2CMode
I2C_STATUS_HOOK
I2C_DEBUG_HOOK
i2c::debug
i2c::status

Definition at line 335 of file i2c_handler_atmega.h.


The documentation for this class was generated from the following file: