aboutsummaryrefslogtreecommitdiff
path: root/AT91SAM7S256/Source/c_output.c
diff options
context:
space:
mode:
Diffstat (limited to 'AT91SAM7S256/Source/c_output.c')
-rw-r--r--AT91SAM7S256/Source/c_output.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/AT91SAM7S256/Source/c_output.c b/AT91SAM7S256/Source/c_output.c
index 4601ff3..30058b4 100644
--- a/AT91SAM7S256/Source/c_output.c
+++ b/AT91SAM7S256/Source/c_output.c
@@ -56,7 +56,11 @@ void cOutputInit(void* pHeader)
pOut->RegIParameter = DEFAULT_I_GAIN_FACTOR;
pOut->RegDParameter = DEFAULT_D_GAIN_FACTOR;
pOut->Options = 0x00;
+ pOut->MaxSpeed = DEFAULT_MAX_SPEED;
+ pOut->MaxAcceleration = DEFAULT_MAX_ACCELERATION;
}
+ IOMapOutput.RegulationTime = REGULATION_TIME;
+ IOMapOutput.RegulationOptions = 0;
VarsOutput.TimeCnt = 0;
dOutputInit();
}
@@ -93,11 +97,6 @@ void cOutputCtrl(void)
dOutputSetSpeed(Tmp, pOut->RunState, pOut->Speed, pOut->SyncTurnParameter);
}
}
- if (pOut->Flags & UPDATE_TACHO_LIMIT)
- {
- pOut->Flags &= ~UPDATE_TACHO_LIMIT;
- dOutputSetTachoLimit(Tmp, pOut->TachoLimit);
- }
if (pOut->Flags & UPDATE_MODE)
{
pOut->Flags &= ~UPDATE_MODE;
@@ -128,13 +127,21 @@ void cOutputCtrl(void)
dOutputDisableRegulation(Tmp);
}
}
+ if (pOut->Flags & UPDATE_TACHO_LIMIT)
+ {
+ pOut->Flags &= ~UPDATE_TACHO_LIMIT;
+ dOutputSetTachoLimit(Tmp, pOut->TachoLimit, pOut->Options);
+ }
if (pOut->Flags & UPDATE_PID_VALUES)
{
pOut->Flags &= ~UPDATE_PID_VALUES;
dOutputSetPIDParameters(Tmp, pOut->RegPParameter, pOut->RegIParameter, pOut->RegDParameter);
+ dOutputSetMax(Tmp, pOut->MaxSpeed, pOut->MaxAcceleration);
}
}
}
+ dOutputSetRegulationTime(IOMapOutput.RegulationTime);
+ dOutputSetRegulationOptions(IOMapOutput.RegulationOptions);
dOutputCtrl();
cOutputUpdateIomap();
}