atMETEO
An ATmega based weather station
Files | Classes | Typedefs

Wrapper for accessing digital I/O ports. More...

Collaboration diagram for Pin module:

Files

file  pin.h
 Wrapper for accessing digital I/O ports.
 

Classes

struct  Avr::DigitalIo< DDR, PORT, PIN >
 Digital I/O register configuration. More...
 
struct  Avr::OutputConfiguration< TDigitalIo, pinNumber >
 Output configuration parameter for pin (normal mode). More...
 
struct  Avr::OutputConfigurationInverted< TDigitalIo, pinNumber >
 Output configuration parameter for pin (for inverted output pins / active low configuration). More...
 
struct  Avr::OutputConfigurationDisabled< TDigitalIo, pinNumber >
 Output configuration parameter for pin (disabled). More...
 
struct  Avr::InputConfiguration< TDigitalIo, pinNumber >
 Input configuration parameter for pin (normal mode). More...
 
struct  Avr::InputConfigurationDisabled< TDigitalIo, pinNumber >
 Input configuration parameter for pin (disabled). More...
 
struct  Avr::OutputPin< TDigitalIo, pinNumber >
 Output pin (normal mode). More...
 
struct  Avr::OutputPinInverted< TDigitalIo, pinNumber >
 Inverted output pin (active low configuration). More...
 
struct  Avr::InputPin< TDigitalIo, pinNumber >
 Input pin. More...
 
struct  Avr::InputOutputPin< TDigitalIo, pinNumber >
 Input / Output pin (initially configured as output pin). More...
 

Typedefs

using Avr::DigitalIoA = DigitalIo< AVR_IOR_PARAM(DDRA), AVR_IOR_PARAM(PORTA), AVR_IOR_PARAM(PINA)>
 Digital I/O Port A register configuration. More...
 
using Avr::DigitalIoB = DigitalIo< AVR_IOR_PARAM(DDRB), AVR_IOR_PARAM(PORTB), AVR_IOR_PARAM(PINB)>
 Digital I/O Port B register configuration. More...
 
using Avr::DigitalIoC = DigitalIo< AVR_IOR_PARAM(DDRC), AVR_IOR_PARAM(PORTC), AVR_IOR_PARAM(PINC)>
 Digital I/O Port C register configuration. More...
 
using Avr::DigitalIoD = DigitalIo< AVR_IOR_PARAM(DDRD), AVR_IOR_PARAM(PORTD), AVR_IOR_PARAM(PIND)>
 Digital I/O Port D register configuration. More...
 

Detailed Description

Wrapper for accessing digital I/O ports.

This module provides convenient access to digital I/O ports using the following classes: Avr::InputPin, Avr::OutputPin, Avr::OutputPinInverted, Avr::InputOutputPin.

If needed, the set of predefined input / output pins can be extended using the template configuration classes: Avr::OutputConfiguration, Avr::OutputConfigurationInverted, Avr::OutputConfigurationDisabled, Avr::InputConfiguration, Avr::InputConfigurationDisabled.

In addition this module provides access to common digital I/O registers for the usage with the classes mentioned above: Avr::DigitalIoA, Avr::DigitalIoB, Avr::DigitalIoC, Avr::DigitalIoD.

Usage:

using namespace Avr;
while (true) {
pd2.set(pd1.isSet());
_delay_ms(1000);
}

Class Documentation

◆ Avr::DigitalIo

struct Avr::DigitalIo

template<typename DDR, typename PORT, typename PIN>
struct Avr::DigitalIo< DDR, PORT, PIN >

Digital I/O register configuration.

Template Parameters
DDRThe Data Direction Register.
PORTThe Data Register.
PINThe Input pins Register.

◆ Avr::OutputConfiguration

struct Avr::OutputConfiguration

template<class TDigitalIo, uint8_t pinNumber>
struct Avr::OutputConfiguration< TDigitalIo, pinNumber >

Output configuration parameter for pin (normal mode).

Template Parameters
TDigitalIoDigital I/O register configuration.
pinNumberOutput pin.

Public Member Functions

void on ()
 Turns output pin on. More...
 
void off ()
 Turns output pin off. More...
 
void set (bool enable)
 Sets output pin to given state. More...
 
void flip ()
 Flips output pin. More...
 

Member Function Documentation

◆ on()

template<class TDigitalIo , uint8_t pinNumber>
void Avr::OutputConfiguration< TDigitalIo, pinNumber >::on ( )
inline

Turns output pin on.

◆ off()

template<class TDigitalIo , uint8_t pinNumber>
void Avr::OutputConfiguration< TDigitalIo, pinNumber >::off ( )
inline

Turns output pin off.

◆ set()

template<class TDigitalIo , uint8_t pinNumber>
void Avr::OutputConfiguration< TDigitalIo, pinNumber >::set ( bool  enable)
inline

Sets output pin to given state.

Parameters
enableValue to write into output pin.

◆ flip()

template<class TDigitalIo , uint8_t pinNumber>
void Avr::OutputConfiguration< TDigitalIo, pinNumber >::flip ( )
inline

Flips output pin.

◆ Avr::OutputConfigurationInverted

struct Avr::OutputConfigurationInverted

template<class TDigitalIo, uint8_t pinNumber>
struct Avr::OutputConfigurationInverted< TDigitalIo, pinNumber >

Output configuration parameter for pin (for inverted output pins / active low configuration).

Template Parameters
TDigitalIoDigital I/O register configuration.
pinNumberOutput pin.

Public Member Functions

void on ()
 Turns output pin on. More...
 
void off ()
 Turns output pin off. More...
 
void set (bool enable)
 Sets output pin to given state. More...
 
void flip ()
 Flips output pin. More...
 

Member Function Documentation

◆ on()

template<class TDigitalIo, uint8_t pinNumber>
void Avr::OutputConfigurationInverted< TDigitalIo, pinNumber >::on ( )
inline

Turns output pin on.

◆ off()

template<class TDigitalIo, uint8_t pinNumber>
void Avr::OutputConfigurationInverted< TDigitalIo, pinNumber >::off ( )
inline

Turns output pin off.

◆ set()

template<class TDigitalIo, uint8_t pinNumber>
void Avr::OutputConfigurationInverted< TDigitalIo, pinNumber >::set ( bool  enable)
inline

Sets output pin to given state.

Parameters
enableValue to write into output pin.

◆ flip()

template<class TDigitalIo, uint8_t pinNumber>
void Avr::OutputConfigurationInverted< TDigitalIo, pinNumber >::flip ( )
inline

Flips output pin.

◆ Avr::OutputConfigurationDisabled

struct Avr::OutputConfigurationDisabled

template<class TDigitalIo, uint8_t pinNumber>
struct Avr::OutputConfigurationDisabled< TDigitalIo, pinNumber >

Output configuration parameter for pin (disabled).

◆ Avr::InputConfiguration

struct Avr::InputConfiguration

template<class TDigitalIo, uint8_t pinNumber>
struct Avr::InputConfiguration< TDigitalIo, pinNumber >

Input configuration parameter for pin (normal mode).

Template Parameters
TDigitalIoDigital I/O register configuration.
pinNumberInput pin.

Public Member Functions

bool isSet () const
 Determines if the input pin is set. More...
 

Member Function Documentation

◆ isSet()

template<class TDigitalIo , uint8_t pinNumber>
bool Avr::InputConfiguration< TDigitalIo, pinNumber >::isSet ( ) const
inline

Determines if the input pin is set.

Returns
true if the input pin is set, false otherwise.

◆ Avr::InputConfigurationDisabled

struct Avr::InputConfigurationDisabled

template<class TDigitalIo, uint8_t pinNumber>
struct Avr::InputConfigurationDisabled< TDigitalIo, pinNumber >

Input configuration parameter for pin (disabled).

◆ Avr::OutputPin

struct Avr::OutputPin

template<class TDigitalIo, uint8_t pinNumber>
struct Avr::OutputPin< TDigitalIo, pinNumber >

Output pin (normal mode).

Additional Inherited Members

- Public Member Functions inherited from Avr::OutputConfiguration< TDigitalIo, pinNumber >
void on ()
 Turns output pin on. More...
 
void off ()
 Turns output pin off. More...
 
void set (bool enable)
 Sets output pin to given state. More...
 
void flip ()
 Flips output pin. More...
 

◆ Avr::OutputPinInverted

struct Avr::OutputPinInverted

template<class TDigitalIo, uint8_t pinNumber>
struct Avr::OutputPinInverted< TDigitalIo, pinNumber >

Inverted output pin (active low configuration).

Additional Inherited Members

- Public Member Functions inherited from Avr::OutputConfigurationInverted< TDigitalIo, pinNumber >
void on ()
 Turns output pin on. More...
 
void off ()
 Turns output pin off. More...
 
void set (bool enable)
 Sets output pin to given state. More...
 
void flip ()
 Flips output pin. More...
 

◆ Avr::InputPin

struct Avr::InputPin

template<class TDigitalIo, uint8_t pinNumber>
struct Avr::InputPin< TDigitalIo, pinNumber >

Input pin.

Additional Inherited Members

- Public Member Functions inherited from Avr::InputConfiguration< TDigitalIo, pinNumber >
bool isSet () const
 Determines if the input pin is set. More...
 

◆ Avr::InputOutputPin

struct Avr::InputOutputPin

template<class TDigitalIo, uint8_t pinNumber>
struct Avr::InputOutputPin< TDigitalIo, pinNumber >

Input / Output pin (initially configured as output pin).

Public Member Functions

void setOutput ()
 Use pin as output pin. More...
 
void setInput ()
 Use pin as input pin. More...
 
- Public Member Functions inherited from Avr::OutputConfiguration< TDigitalIo, pinNumber >
void on ()
 Turns output pin on. More...
 
void off ()
 Turns output pin off. More...
 
void set (bool enable)
 Sets output pin to given state. More...
 
void flip ()
 Flips output pin. More...
 
- Public Member Functions inherited from Avr::InputConfiguration< TDigitalIo, pinNumber >
bool isSet () const
 Determines if the input pin is set. More...
 

Member Function Documentation

◆ setOutput()

template<class TDigitalIo , uint8_t pinNumber>
void Avr::InputOutputPin< TDigitalIo, pinNumber >::setOutput ( )
inline

Use pin as output pin.

◆ setInput()

template<class TDigitalIo , uint8_t pinNumber>
void Avr::InputOutputPin< TDigitalIo, pinNumber >::setInput ( )
inline

Use pin as input pin.

Typedef Documentation

◆ DigitalIoA

using Avr::DigitalIoA = typedef DigitalIo< AVR_IOR_PARAM(DDRA), AVR_IOR_PARAM(PORTA), AVR_IOR_PARAM(PINA)>

Digital I/O Port A register configuration.

◆ DigitalIoB

using Avr::DigitalIoB = typedef DigitalIo< AVR_IOR_PARAM(DDRB), AVR_IOR_PARAM(PORTB), AVR_IOR_PARAM(PINB)>

Digital I/O Port B register configuration.

◆ DigitalIoC

using Avr::DigitalIoC = typedef DigitalIo< AVR_IOR_PARAM(DDRC), AVR_IOR_PARAM(PORTC), AVR_IOR_PARAM(PINC)>

Digital I/O Port C register configuration.

◆ DigitalIoD

using Avr::DigitalIoD = typedef DigitalIo< AVR_IOR_PARAM(DDRD), AVR_IOR_PARAM(PORTD), AVR_IOR_PARAM(PIND)>

Digital I/O Port D register configuration.