- Added another check to prevent unending counts
This commit is contained in:
36
ecbcounter.c
36
ecbcounter.c
@ -161,6 +161,22 @@ static int ECBContinue(struct __COUNTER *self){
|
||||
|
||||
return OKOK;
|
||||
}
|
||||
/*=======================================================================*/
|
||||
static int ECBHalt(struct __COUNTER *self){
|
||||
int status;
|
||||
pECBCounter pPriv = NULL;
|
||||
|
||||
assert(self);
|
||||
pPriv = (pECBCounter)self->pData;
|
||||
assert(pPriv);
|
||||
|
||||
pPriv->state = IDLE;
|
||||
if((status = stopScalers(pPriv)) <= 0){
|
||||
self->iErrorCode = status;
|
||||
return HWFault;
|
||||
}
|
||||
return OKOK;
|
||||
}
|
||||
/*-----------------------------------------------------------------------*/
|
||||
static int ECBGetStatus(struct __COUNTER *self, float *fControl){
|
||||
pECBCounter pPriv = (pECBCounter)self->pData;
|
||||
@ -225,7 +241,6 @@ static int ECBGetStatus(struct __COUNTER *self, float *fControl){
|
||||
result = HWBusy;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
select which scaler to read
|
||||
*/
|
||||
@ -238,6 +253,9 @@ static int ECBGetStatus(struct __COUNTER *self, float *fControl){
|
||||
*fControl = (float)count;
|
||||
}
|
||||
|
||||
if(*fControl > self->fPreset){
|
||||
ECBHalt(self);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
/*=====================================================================*/
|
||||
@ -352,22 +370,6 @@ static int ECBStart(struct __COUNTER *self){
|
||||
return OKOK;
|
||||
}
|
||||
/*=======================================================================*/
|
||||
static int ECBHalt(struct __COUNTER *self){
|
||||
int status;
|
||||
pECBCounter pPriv = NULL;
|
||||
|
||||
assert(self);
|
||||
pPriv = (pECBCounter)self->pData;
|
||||
assert(pPriv);
|
||||
|
||||
pPriv->state = IDLE;
|
||||
if((status = stopScalers(pPriv)) <= 0){
|
||||
self->iErrorCode = status;
|
||||
return HWFault;
|
||||
}
|
||||
return OKOK;
|
||||
}
|
||||
/*=======================================================================*/
|
||||
static int ECBTransfer(struct __COUNTER *self){
|
||||
int status, count, i;
|
||||
pECBCounter pPriv = NULL;
|
||||
|
Reference in New Issue
Block a user