simulavr  1.1.0
HWTimer8 Class Reference

Extends BasicTimerUnit to provide common support to all types of 8Bit timer units. More...

#include <hwtimer.h>

Inheritance diagram for HWTimer8:

Public Member Functions

 HWTimer8 (AvrDevice *core, PrescalerMultiplexer *p, int unit, IRQLine *tov, IRQLine *tcompA, const PinAtPort &outA, IRQLine *tcompB, const PinAtPort &outB)
 
void Reset ()
 Perform a reset of this unit. More...
 
- Public Member Functions inherited from BasicTimerUnit
 BasicTimerUnit (AvrDevice *core, PrescalerMultiplexer *p, int unit, IRQLine *tov, IRQLine *tcap, ICaptureSource *icapsrc, int countersize=8)
 Create a basic Timer/Counter unit. More...
 
 ~BasicTimerUnit ()
 
virtual unsigned int CpuCycle ()
 Process timer/counter unit operations by CPU cycle. More...
 
void RegisterACompForICapture (HWAcomp *acomp)
 register analog comparator unit for input capture source More...
 
void SetACIC (bool acic)
 reflect ACIC flag to input capture source More...
 
void SetTimerEventListener (TimerEventListener *listener)
 Set event listener. More...
 
- Public Member Functions inherited from Hardware
 Hardware (AvrDevice *core)
 
virtual ~Hardware ()
 
virtual void ClearIrqFlag (unsigned int vector)
 
virtual bool IsLevelInterrupt (unsigned int vector)
 
virtual bool LevelInterruptPending (unsigned int vector)
 
- Public Member Functions inherited from TraceValueRegister
 TraceValueRegister (TraceValueRegister *parent, const std::string &name)
 Create a TraceValueRegister, with a scope prefix built on parent scope + name. More...
 
 TraceValueRegister ()
 Create a TraceValueRegister, with a empty scope name, single device application. More...
 
virtual ~TraceValueRegister ()
 
const std::string GetTraceValuePrefix (void)
 Returns the scope prefix. More...
 
const std::string GetScopeName (void)
 Returns the scope name. More...
 
void RegisterTraceValue (TraceValue *t)
 Registers a TraceValue for this register. More...
 
void UnregisterTraceValue (TraceValue *t)
 Unregisters a TraceValue, remove it from register. More...
 
TraceValueRegisterGetScopeGroupByName (const std::string &name)
 Get a here registered TraceValueRegister by it's name. More...
 
virtual TraceValueGetTraceValueByName (const std::string &name)
 Get a here registered TraceValue by it's name. More...
 
TraceValueRegisterFindScopeGroupByName (const std::string &name)
 Seek for a TraceValueRegister by it's name. More...
 
TraceValueFindTraceValueByName (const std::string &name)
 Seek for a TraceValue by it's name. More...
 
TraceSetGetAllTraceValues (void)
 Get all here registered TraceValue's only (not with descending values) More...
 
TraceSetGetAllTraceValuesRecursive (void)
 Get all here registered TraceValue's with descending values. More...
 

Public Attributes

IOReg< HWTimer8tcnt_reg
 counter register More...
 
IOReg< HWTimer8ocra_reg
 output compare A register More...
 
IOReg< HWTimer8ocrb_reg
 output compare B register More...
 

Protected Member Functions

void ChangeWGM (WGMtype mode)
 Change WGM mode, set counter limits. More...
 
void SetCompareRegister (int idx, unsigned char val)
 Setter method for compare register. More...
 
unsigned char GetCompareRegister (int idx)
 Getter method for compare register. More...
 
void Set_TCNT (unsigned char val)
 Register access to set counter register high byte. More...
 
unsigned char Get_TCNT ()
 Register access to read counter register high byte. More...
 
void Set_OCRA (unsigned char val)
 Register access to set output compare register A. More...
 
unsigned char Get_OCRA ()
 Register access to read output compare register A. More...
 
void Set_OCRB (unsigned char val)
 Register access to set output compare register B. More...
 
unsigned char Get_OCRB ()
 Register access to read output compare register B. More...
 
- Protected Member Functions inherited from BasicTimerUnit
void CountTimer (void)
 Supports the count operation, emits count events to HandleEvent method. More...
 
virtual void InputCapture (void)
 Supports the input capture function. More...
 
void HandleEvent (CEtype event)
 Receives count events. More...
 
void SetClockMode (int _cs)
 Set clock mode. More...
 
void SetCounter (unsigned long val)
 Set the counter itself. More...
 
void SetCompareOutputMode (int idx, COMtype mode)
 Set compare output mode. More...
 
void SetCompareOutput (int idx)
 Set compare output pins in non pwm mode. More...
 
void SetPWMCompareOutput (int idx, bool topOrDown)
 Set compare output pins in pwm mode. More...
 
bool WGMisPWM (void)
 returns true, if WGM is in one of the PWM modes More...
 
bool WGMuseICR (void)
 returns true, if WGM uses IC register for defining TOP counter value More...
 
void WGMFunc_noop (CEtype event)
 WGM noop function. More...
 
void WGMfunc_normal (CEtype event)
 WGM function for normal mode (unique for all different timers) More...
 
void WGMfunc_ctc (CEtype event)
 WGM function for ctc mode (unique for all different timers) More...
 
void WGMfunc_fastpwm (CEtype event)
 WGM function for fast pwm mode (unique for all different timers) More...
 
void WGMfunc_pcpwm (CEtype event)
 WGM function for phase correct pwm mode (unique for all different timers) More...
 
void WGMfunc_pfcpwm (CEtype event)
 WGM function for phase and frequency correct pwm mode (unique for all different timers) More...
 
- Protected Member Functions inherited from TraceValueRegister
virtual size_t _tvr_getValuesCount (void)
 Get the count of all TraceValues, that are registered here and descending. More...
 
virtual void _tvr_insertTraceValuesToSet (TraceSet &t)
 Insert all TraceValues into TraceSet, that registered here and descending. More...
 

Additional Inherited Members

- Public Types inherited from BasicTimerUnit
enum  CEtype {
  EVT_TOP_REACHED = 0, EVT_MAX_REACHED, EVT_BOTTOM_REACHED, EVT_COMPARE_1,
  EVT_COMPARE_2, EVT_COMPARE_3
}
 event types for timer/counter More...
 
- Protected Types inherited from BasicTimerUnit
enum  WGMtype {
  WGM_NORMAL = 0, WGM_PCPWM_8BIT, WGM_PCPWM_9BIT, WGM_PCPWM_10BIT,
  WGM_CTC_OCRA, WGM_FASTPWM_8BIT, WGM_FASTPWM_9BIT, WGM_FASTPWM_10BIT,
  WGM_PFCPWM_ICR, WGM_PFCPWM_OCRA, WGM_PCPWM_ICR, WGM_PCPWM_OCRA,
  WGM_CTC_ICR, WGM_RESERVED, WGM_FASTPWM_ICR, WGM_FASTPWM_OCRA,
  WGM_tablesize
}
 types of waveform generation modes More...
 
enum  COMtype { COM_NOOP = 0, COM_TOGGLE, COM_CLEAR, COM_SET }
 types of compare match output modes More...
 
enum  OCRIDXtype { OCRIDX_A = 0, OCRIDX_B, OCRIDX_C, OCRIDX_maxUnits }
 indices for OC units More...
 
typedef void(BasicTimerUnit::* wgmfunc_t) (CEtype)
 
- Protected Attributes inherited from BasicTimerUnit
AvrDevicecore
 pointer to device core More...
 
PrescalerMultiplexerpremx
 prescaler multiplexer More...
 
IRQLinetimerOverflow
 irq line for overflow interrupt More...
 
IRQLinetimerCapture
 irq line for capture interrupt More...
 
unsigned long vtcnt
 THE timercounter. More...
 
unsigned long vlast_tcnt
 timercounter BEFORE count operation More...
 
int updown_counting
 count direction control flag, true, if up/down counting More...
 
bool count_down
 counter counts down, used for precise pwm modes More...
 
unsigned long limit_bottom
 BOTTOM value for up/down counting. More...
 
unsigned long limit_top
 TOP value for counting. More...
 
unsigned long limit_max
 MAX value for counting. More...
 
unsigned long icapRegister
 Input capture register. More...
 
ICaptureSourceicapSource
 Input capture source. More...
 
bool icapRisingEdge
 Input capture on rising edge. More...
 
bool icapNoiseCanceler
 Noise canceler for input capturing enabled. More...
 
WGMtype wgm
 waveform generation mode More...
 
wgmfunc_t wgmfunc [WGM_tablesize]
 waveform generator mode function table More...
 
unsigned long compare [OCRIDX_maxUnits]
 compare values for output compare events More...
 
unsigned long compare_dbl [OCRIDX_maxUnits]
 double buffer values for compare values More...
 
bool compareEnable [OCRIDX_maxUnits]
 enables compare operation More...
 
COMtype com [OCRIDX_maxUnits]
 compare match output mode More...
 
IRQLinetimerCompare [OCRIDX_maxUnits]
 irq line for compare interrupt More...
 
PinAtPort compare_output [OCRIDX_maxUnits]
 output pins for compare units More...
 
bool compare_output_state [OCRIDX_maxUnits]
 status compare output pin More...
 

Detailed Description

Extends BasicTimerUnit to provide common support to all types of 8Bit timer units.

Definition at line 202 of file hwtimer.h.

Constructor & Destructor Documentation

◆ HWTimer8()

Member Function Documentation

◆ ChangeWGM()

◆ Get_OCRA()

unsigned char HWTimer8::Get_OCRA ( )
inlineprotected

Register access to read output compare register A.

Definition at line 221 of file hwtimer.h.

◆ Get_OCRB()

unsigned char HWTimer8::Get_OCRB ( )
inlineprotected

Register access to read output compare register B.

Definition at line 226 of file hwtimer.h.

◆ Get_TCNT()

unsigned char HWTimer8::Get_TCNT ( )
inlineprotected

Register access to read counter register high byte.

Definition at line 216 of file hwtimer.h.

◆ GetCompareRegister()

unsigned char HWTimer8::GetCompareRegister ( int  idx)
protected

Getter method for compare register.

Definition at line 676 of file hwtimer.cpp.

References BasicTimerUnit::compare, BasicTimerUnit::compare_dbl, and BasicTimerUnit::WGMisPWM().

◆ Reset()

void HWTimer8::Reset ( void  )
virtual

Perform a reset of this unit.

Reimplemented from BasicTimerUnit.

Reimplemented in HWTimer8_2C, HWTimer8_1C, and HWTimer8_0C.

Definition at line 618 of file hwtimer.cpp.

References BasicTimerUnit::Reset().

Referenced by HWTimer8(), HWTimer8_0C::Reset(), HWTimer8_1C::Reset(), and HWTimer8_2C::Reset().

◆ Set_OCRA()

void HWTimer8::Set_OCRA ( unsigned char  val)
inlineprotected

Register access to set output compare register A.

Definition at line 219 of file hwtimer.h.

◆ Set_OCRB()

void HWTimer8::Set_OCRB ( unsigned char  val)
inlineprotected

Register access to set output compare register B.

Definition at line 224 of file hwtimer.h.

◆ Set_TCNT()

void HWTimer8::Set_TCNT ( unsigned char  val)
inlineprotected

Register access to set counter register high byte.

Definition at line 214 of file hwtimer.h.

◆ SetCompareRegister()

void HWTimer8::SetCompareRegister ( int  idx,
unsigned char  val 
)
protected

Member Data Documentation

◆ ocra_reg

◆ ocrb_reg

◆ tcnt_reg


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