simulavr
1.1.0
|
Timer unit with 8Bit counter and one output compare unit. More...
#include <hwtimer.h>
Public Member Functions | |
HWTimer8_1C (AvrDevice *core, PrescalerMultiplexer *p, int unit, IRQLine *tov, IRQLine *tcompA, const PinAtPort &outA) | |
void | Reset (void) |
Perform a reset of this unit. More... | |
![]() | |
HWTimer8 (AvrDevice *core, PrescalerMultiplexer *p, int unit, IRQLine *tov, IRQLine *tcompA, const PinAtPort &outA, IRQLine *tcompB, const PinAtPort &outB) | |
![]() | |
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... | |
![]() | |
Hardware (AvrDevice *core) | |
virtual | ~Hardware () |
virtual void | ClearIrqFlag (unsigned int vector) |
virtual bool | IsLevelInterrupt (unsigned int vector) |
virtual bool | LevelInterruptPending (unsigned int vector) |
![]() | |
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... | |
TraceValueRegister * | GetScopeGroupByName (const std::string &name) |
Get a here registered TraceValueRegister by it's name. More... | |
virtual TraceValue * | GetTraceValueByName (const std::string &name) |
Get a here registered TraceValue by it's name. More... | |
TraceValueRegister * | FindScopeGroupByName (const std::string &name) |
Seek for a TraceValueRegister by it's name. More... | |
TraceValue * | FindTraceValueByName (const std::string &name) |
Seek for a TraceValue by it's name. More... | |
TraceSet * | GetAllTraceValues (void) |
Get all here registered TraceValue's only (not with descending values) More... | |
TraceSet * | GetAllTraceValuesRecursive (void) |
Get all here registered TraceValue's with descending values. More... | |
Public Attributes | |
IOReg< HWTimer8_1C > | tccr_reg |
control register More... | |
![]() | |
IOReg< HWTimer8 > | tcnt_reg |
counter register More... | |
IOReg< HWTimer8 > | ocra_reg |
output compare A register More... | |
IOReg< HWTimer8 > | ocrb_reg |
output compare B register More... | |
Protected Member Functions | |
void | Set_TCCR (unsigned char val) |
Register access to set control register. More... | |
unsigned char | Get_TCCR () |
Register access to read control register. More... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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... | |
Protected Attributes | |
unsigned char | tccr_val |
register value TCCR More... | |
![]() | |
AvrDevice * | core |
pointer to device core More... | |
PrescalerMultiplexer * | premx |
prescaler multiplexer More... | |
IRQLine * | timerOverflow |
irq line for overflow interrupt More... | |
IRQLine * | timerCapture |
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... | |
ICaptureSource * | icapSource |
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... | |
IRQLine * | timerCompare [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... | |
Additional Inherited Members | |
![]() | |
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... | |
![]() | |
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) |
Timer unit with 8Bit counter and one output compare unit.
This timer unit is used by following devices: ATMega128.
TCCRx register contains the following configuration bits (x=#timer):
+----+-----+-----+-----+-----+----+----+----+ |FOCx|WGMx0|COMx1|COMx0|WGMx1|CSx2|CSx1|CSx0| +----+-----+-----+-----+-----+----+----+----+
HWTimer8_1C::HWTimer8_1C | ( | AvrDevice * | core, |
PrescalerMultiplexer * | p, | ||
int | unit, | ||
IRQLine * | tov, | ||
IRQLine * | tcompA, | ||
const PinAtPort & | outA | ||
) |
Definition at line 936 of file hwtimer.cpp.
|
inlineprotected |
|
virtual |
Perform a reset of this unit.
Reimplemented from HWTimer8.
Definition at line 966 of file hwtimer.cpp.
References HWTimer8::Reset(), and tccr_val.
|
protected |
Register access to set control register.
Definition at line 946 of file hwtimer.cpp.
References HWTimer8::ChangeWGM(), BasicTimerUnit::SetClockMode(), BasicTimerUnit::SetCompareOutput(), BasicTimerUnit::SetCompareOutputMode(), tccr_val, BasicTimerUnit::wgm, BasicTimerUnit::WGM_CTC_OCRA, BasicTimerUnit::WGM_FASTPWM_8BIT, BasicTimerUnit::WGM_NORMAL, BasicTimerUnit::WGM_PCPWM_8BIT, and BasicTimerUnit::WGMisPWM().
IOReg<HWTimer8_1C> HWTimer8_1C::tccr_reg |
control register
Definition at line 388 of file hwtimer.h.
Referenced by AvrDevice_at90canbase::AvrDevice_at90canbase(), AvrDevice_atmega128base::AvrDevice_atmega128base(), and AvrDevice_atmega16_32::AvrDevice_atmega16_32().
|
protected |
register value TCCR
Definition at line 380 of file hwtimer.h.
Referenced by Reset(), and Set_TCCR().