diff --git a/src/Ponoor_L6470Commands.cpp b/src/Ponoor_L6470Commands.cpp index 55ed8a4..194cd11 100644 --- a/src/Ponoor_L6470Commands.cpp +++ b/src/Ponoor_L6470Commands.cpp @@ -35,6 +35,14 @@ long AutoDriver::getPos() return temp; } +// Returns the content of the EL_POS register, which is a 9-bit indicates the current +// electrical position of the motor. +unsigned int AutoDriver::getElPos() +{ + unsigned int temp = getParam(EL_POS); + return temp; +} + // Just like getPos(), but for MARK. long AutoDriver::getMark() { @@ -195,6 +203,12 @@ void AutoDriver::setPos(long newPos) setParam(ABS_POS, newPos); } +void AutoDriver::setElPos(unsigned int newElPos) +{ + setParam(EL_POS, newElPos); +} + + // Sets the ABS_POS register to 0, effectively declaring the current // position to be "HOME". void AutoDriver::resetPos() diff --git a/src/Ponoor_L6470Library.h b/src/Ponoor_L6470Library.h index 5758fd6..5996a9a 100644 --- a/src/Ponoor_L6470Library.h +++ b/src/Ponoor_L6470Library.h @@ -84,6 +84,7 @@ class AutoDriver // ...and now, operational commands. long getPos(); + unsigned int getElPos(); long getMark(); void run(byte dir, float stepsPerSec); void runRaw(byte dir, unsigned long integerSpeed); @@ -98,6 +99,7 @@ class AutoDriver void goMark(); void setMark(long newMark); void setPos(long newPos); + void setElPos(unsigned int newElPos); void resetPos(); void resetDev(); void softStop();