You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CCS-COMM_BOARD/DSP28335/EQEP1.cpp

46 lines
932 B
C++

/*
* EQEP1.cpp
*
* Author: Aleksey Gerasimenko
* gerasimenko.aleksey.n@gmail.com
*/
#include "DSP28335/EQEP1.h"
namespace DSP28335
{
//CONSTRUCTOR
EQEP1::EQEP1():
DSP28335::CPUBase(),
_gpio_setup(&DSP28335::GPIO::gpio_eqep_setup)
//
{}//CONSTRUCTOR
void EQEP1::setup(const EQEP1Setup& setup)
{
m_status = m_mode == DSP28335::EQEP1::UNDEFINED ? true : false;
m_status &= setup.gpio_setup != 0 ? true : false;
if(m_status)
{
//
EQep1Regs.QDECCTL.bit.QSRC = 00;
EQep1Regs.QDECCTL.bit.XCR = 0;
EQep1Regs.QEPCTL.bit.FREE_SOFT = 2;
EQep1Regs.QPOSMAX = 0xffffffff;
EQep1Regs.QEPCTL.bit.QPEN = 1;
EQep1Regs.QPOSCNT = 0x00000000;
//
_gpio_setup = setup.gpio_setup;
(*_gpio_setup)();
//
m_mode = DSP28335::EQEP1::OPERATIONAL;
//
}//if
//
//
}//
//
} /* namespace DSP28335 */