/* * MeasureTimePeriod.cpp * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include "DSP28335/MeasureTimePeriod.h" namespace DSP28335 { //Constructor MeasureTimePeriod::MeasureTimePeriod(CPUTIMER_VARS& CPUTimer): m_CPUTimer(CPUTimer), m_timer_result((Uint32)0), m_timer_result_previous((Uint32)0), m_magic_number((Uint32)0), _execute(&DSP28335::MeasureTimePeriod::_execute_start) // {}//end Constructor // #pragma CODE_SECTION("ramfuncs"); void MeasureTimePeriod::execute(void) { (this->*_execute)(); // }//end // // #pragma CODE_SECTION("ramfuncs"); void MeasureTimePeriod::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 // _execute = &DSP28335::MeasureTimePeriod::_execute_start; // }//end // // #pragma CODE_SECTION("ramfuncs"); void MeasureTimePeriod::inc_counter() { m_CPUTimer.InterruptCount++; // }// // // #pragma CODE_SECTION("ramfuncs"); void MeasureTimePeriod::reset_counter() { m_CPUTimer.InterruptCount = (Uint32)0; // }// // void MeasureTimePeriod::set_magic(const Uint32 magic) { m_magic_number = (Uint32)magic; // }//end // // #pragma CODE_SECTION("ramfuncs"); void MeasureTimePeriod::_execute_start(void) { _execute = &DSP28335::MeasureTimePeriod::_execute_scan; // 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("ramfuncs"); void MeasureTimePeriod::_execute_scan(void) { m_CPUTimer.RegsAddr->TCR.bit.TSS = 1; // Stop CPU Timer // m_timer_result_previous = m_timer_result; m_timer_result = m_CPUTimer.RegsAddr->PRD.all - m_CPUTimer.RegsAddr->TIM.all - m_magic_number; // m_CPUTimer.RegsAddr->TCR.bit.TRB = 1; // Reload CPU Timer m_CPUTimer.RegsAddr->TCR.bit.TSS = 0; // Start CPU Timer // }//end // } /* namespace DSP28335 */