avr-classes
Public Types | Public Attributes | List of all members
Timer::Config Struct Reference

#include <timer.h>

Public Types

enum  OperationMode { NORMAL_MODE, PHASE_CORRECT_PWM_MODE, CTC_MODE, FAST_PWM_MODE }
 
enum  CompareOutputMode {
  DISCONNECTED, NON_PWM_TOGGLE_ON_COMPARE_MATCH, NON_PWM_CLEAR_ON_COMPARE_MATCH, NON_PWM_SET_ON_COMPARE_MATCH,
  PHASE_CORRECT_PWM_CLEAR_WHEN_ABOVE, PHASE_CORRECT_PWM_SET_WHEN_ABOVE, FAST_PWM_NON_INVERTING, FAST_PWM_INVERTING
}
 
enum  ClockSource {
  NO_CLOCK, DIV_1, DIV_8, DIV_64,
  DIV_256, DIV_1024, EXT_FALLING_EDGE, EXT_RISING_EDGE
}
 

Public Attributes

OperationMode operationMode
 
CompareOutputMode compareOutputMode
 
ClockSource clockSource
 
uint8_t outputCompareValue
 

Detailed Description

Configuration for timer devices.

Member Enumeration Documentation

◆ ClockSource

Clock sources.

Enumerator
NO_CLOCK 

No clock source (timer stopped).

DIV_1 

I/O clock without prescaling.

DIV_8 

I/O clock, prescaler set to 1/8.

DIV_64 

I/O clock, prescaler set to 1/64.

DIV_256 

I/O clock, prescaler set to 1/256.

DIV_1024 

I/O clock, prescaler set to 1/1024.

EXT_FALLING_EDGE 

External clock source, clock on falling edge.

EXT_RISING_EDGE 

External clock source, clock on rising edge.

◆ CompareOutputMode

Compare output modes.

Note
Not all modes are available for each operation mode:
Compare output mode Normal Phase correct PWM CTC mode Fast PWM
DISCONNECTED Yes Yes Yes Yes
NON_PWM_TOGGLE_ON_COMPARE_MATCH Yes No Yes No
NON_PWM_CLEAR_ON_COMPARE_MATCH Yes No Yes No
NON_PWM_SET_ON_COMPARE_MATCH Yes No Yes No
PHASE_CORRECT_PWM_CLEAR_WHEN_ABOVE No Yes No No
PHASE_CORRECT_PWM_SET_WHEN_ABOVE No Yes No No
FAST_PWM_NON_INVERTING No No No Yes
FAST_PWM_INVERTING No No No Yes
Enumerator
DISCONNECTED 

Normal port operation, OC pin disconnected.

NON_PWM_TOGGLE_ON_COMPARE_MATCH 

Toggle OC pin on compare match.

NON_PWM_CLEAR_ON_COMPARE_MATCH 

Clear OC pin on compare match.

NON_PWM_SET_ON_COMPARE_MATCH 

Set OC pin on compare match.

PHASE_CORRECT_PWM_CLEAR_WHEN_ABOVE 

Clear OC pin on compare match when up-counting. Set OC pin on compare match when down-counting.

PHASE_CORRECT_PWM_SET_WHEN_ABOVE 

Set OC pin on compare match when up-counting. Clear OC pin on compare match when down-counting.

FAST_PWM_NON_INVERTING 

Clear OC pin on compare match, set OC pin at BOTTOM.

FAST_PWM_INVERTING 

Set OC pin on compare match, clear OC pin at BOTTOM.

◆ OperationMode

Operation modes.

Enumerator
NORMAL_MODE 

Normal mode (free running timer).

PHASE_CORRECT_PWM_MODE 

Phase correct PWM.

CTC_MODE 

Clear Timer on Compare match.

FAST_PWM_MODE 

Fast PWM mode.

Member Data Documentation

◆ clockSource

ClockSource Timer::Config::clockSource

Clock source to be used.

◆ compareOutputMode

CompareOutputMode Timer::Config::compareOutputMode

Compare output mode to be used.

◆ operationMode

OperationMode Timer::Config::operationMode

Operation mode of timer.

◆ outputCompareValue

uint8_t Timer::Config::outputCompareValue

Initial value for output compare register. Can be modified at runtime using setOutpuCompareValue().