Tweak the resolver wrap around bias code to let us simply set a mask to
bias off the high bits on multiturn encoders because these bits can increment if you unplug a resolver. r3307 | ffr | 2011-12-02 12:49:54 +1100 (Fri, 02 Dec 2011) | 4 lines
This commit is contained in:
committed by
Douglas Clowes
parent
4707f319b9
commit
b58a6fdaf1
@@ -886,7 +886,7 @@ static int readAbsEnc(pDMC2280Driv self, long *pos) {
|
||||
return FAILURE;
|
||||
|
||||
long iCounts = atol(reply);
|
||||
if (self->bias_bits > 0 && self->bias_bias != 0)
|
||||
if (self->bias_bits > 0)
|
||||
iCounts = (iCounts + self->bias_bias) & ((1 << self->bias_bits) - 1);
|
||||
*pos = iCounts;
|
||||
return SUCCESS;
|
||||
@@ -1317,7 +1317,7 @@ static int rspStatus(pDMC2280Driv self, const char* text) {
|
||||
}
|
||||
self->currFlags = iFlags;
|
||||
self->currSteps = iSteps;
|
||||
if (self->bias_bits > 0 && self->bias_bias != 0)
|
||||
if (self->bias_bits > 0)
|
||||
iCounts = (iCounts + self->bias_bias) & ((1 << self->bias_bits) - 1);
|
||||
self->currCounts = iCounts;
|
||||
self->currPosition = motPosit(self);
|
||||
@@ -3835,7 +3835,7 @@ MotorDriver *CreateDMC2280(SConnection *pCon, char *motor, char *params) {
|
||||
|
||||
/* BIAS for encoder - mask this many bits */
|
||||
if ((pPtr=getParam(pCon, interp, params,"bias_bits",_OPTIONAL)) == NULL)
|
||||
pNew->bias_bits = 0.0;
|
||||
pNew->bias_bits = 0;
|
||||
else {
|
||||
sscanf(pPtr, "%d", &(pNew->bias_bits));
|
||||
if (pNew->bias_bits < 0)
|
||||
|
||||
Reference in New Issue
Block a user