/* * TimeStartStop.cpp * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include "SYSCTRL/MeasureTimeInterval.h" namespace SYSCTRL { //Constructor MeasureTimeInterval::MeasureTimeInterval(CPUTIMER_VARS& CPUTimer, Uint32 magic): m_CPUTimer(CPUTimer), m_timer_result((Uint32)0), m_timer_result_previous((Uint32)0), m_magic_number((Uint32)magic), m_period((Uint32)0), m_tim((Uint32)0), m_counter((Uint32)0) {}//end Constructor //#pragma CODE_SECTION(".TI.ramfunc"); #pragma CODE_SECTION("ramfuncs"); void MeasureTimeInterval::start(void) { m_CPUTimer.RegsAddr->TCR.bit.TSS = 1; // Stop CPU Timer m_CPUTimer.RegsAddr->TCR.bit.TRB = 1; // Reload CPU Timer m_CPUTimer.RegsAddr->TCR.bit.TSS = 0; // Start CPU Timer // }//end //#pragma CODE_SECTION(".TI.ramfunc"); #pragma CODE_SECTION("ramfuncs"); void MeasureTimeInterval::stop(void) { m_CPUTimer.RegsAddr->TCR.bit.TSS = 1; // Stop CPU Timer // m_timer_result_previous = m_timer_result; m_period = (Uint32)m_CPUTimer.RegsAddr->PRD.all; m_tim = (Uint32)m_CPUTimer.RegsAddr->TIM.all; //m_timer_result = m_CPUTimer.RegsAddr->PRD.all - m_CPUTimer.RegsAddr->TIM.all - m_magic_number; m_timer_result = (Uint32)((Uint32)m_period - (Uint32)m_tim - (Uint32)m_magic_number); m_counter++; // }//end //#pragma CODE_SECTION(".TI.ramfunc"); #pragma CODE_SECTION("ramfuncs"); void MeasureTimeInterval::reset(void) { m_CPUTimer.RegsAddr->TCR.bit.TSS = 1; // Stop CPU Timer m_CPUTimer.RegsAddr->PRD.all = 0xFFFFFFFF; m_CPUTimer.RegsAddr->TCR.bit.TRB = 1; // Reload CPU Timer // }//end } /* namespace SYSCTRL */