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.
46 lines
932 B
C++
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 */
|