diff --git a/evgMrmApp/Db/evgMrm.db b/evgMrmApp/Db/evgMrm.db index 88578dc0..88a6bf19 100644 --- a/evgMrmApp/Db/evgMrm.db +++ b/evgMrmApp/Db/evgMrm.db @@ -385,3 +385,9 @@ record(mbbi, "$(P)TSGen-RB") { field(ONVL, "0x1") field(TWVL, "0x2") } + +record(bo,"$(P)ResetFracSynth-Cmd" ) { + field( DTYP, "Obj Prop command") + field( OUT , "@OBJ=$(OBJ), PROP=Reset Frac Synth") + field( DESC, "Reset") +} diff --git a/evgMrmApp/src/evg.cpp b/evgMrmApp/src/evg.cpp index 955b6fc7..e83e28c6 100644 --- a/evgMrmApp/src/evg.cpp +++ b/evgMrmApp/src/evg.cpp @@ -84,4 +84,5 @@ OBJECT_BEGIN(evgMrm) { OBJECT_PROP1("Frequency", &evgMrm::getFrequency); OBJECT_PROP1("PLL Lock Status", &evgMrm::pllLocked); OBJECT_PROP2("PLL Bandwidth", &evgMrm::getPLLBandwidth, &evgMrm::setPLLBandwidth); + OBJECT_PROP1("Reset Frac Synth",&evgMrm::resetFracSynth); } OBJECT_END(evgMrm) diff --git a/evgMrmApp/src/evgMrm.cpp b/evgMrmApp/src/evgMrm.cpp index 49ae228f..1f66ac70 100644 --- a/evgMrmApp/src/evgMrm.cpp +++ b/evgMrmApp/src/evgMrm.cpp @@ -524,6 +524,13 @@ evgMrm::setEvtCode(epicsUInt32 evtCode) { } /** Access functions **/ +void +evgMrm::resetFracSynth() +{ + epicsUInt32 oldControlWord=READ32(m_pReg, FracSynthWord); + WRITE32(m_pReg, FracSynthWord, oldControlWord); +} + evgInput* evgMrm::getInput(epicsUInt32 inpNum, InputType type) { diff --git a/evgMrmApp/src/evgMrm.h b/evgMrmApp/src/evgMrm.h index 71dae38d..9e20221b 100644 --- a/evgMrmApp/src/evgMrm.h +++ b/evgMrmApp/src/evgMrm.h @@ -151,6 +151,7 @@ class evgMrm : public mrf::ObjectInst, evgInput* getInput(epicsUInt32, InputType); epicsEvent* getTimerEvent(); const bus_configuration* getBusConfiguration(); + void resetFracSynth(); CALLBACK irqExtInp_cb;