47,6 → 47,21 |
real_T rtMinusInf; |
real_T rtNaN; |
|
#ifdef EXT_MODE |
# define rtExtModeSingleTaskUpload(S) \ |
{ \ |
int stIdx; \ |
rtExtModeUploadCheckTrigger(); \ |
for (stIdx=0; stIdx<NUMST; stIdx++) { \ |
if (rtmIsSampleHit(S, stIdx, 0 /*unused*/)) { \ |
rtExtModeUpload(stIdx,rtmGetTaskTime(S,stIdx)); \ |
} \ |
} \ |
} |
#else |
# define rtExtModeSingleTaskUpload(S) /* Do nothing */ |
#endif |
|
#if NCSTATES > 0 |
extern void rt_ODECreateIntegrationData(RTWSolverInfo *si); |
extern void rt_ODEUpdateContinuousStates(RTWSolverInfo *si); |
200,47 → 215,54 |
static void rt_OneStep(RT_MODEL *S) |
{ |
real_T tnext; |
|
|
/*********************************************** |
* Check and see if base step time is too fast * |
***********************************************/ |
|
|
if (GBLbuf.isrOverrun++) { |
GBLbuf.stopExecutionFlag = 1; |
return; |
} |
|
|
/*********************************************** |
* Check and see if error status has been set * |
***********************************************/ |
|
|
if (rtmGetErrorStatus(S) != NULL) { |
GBLbuf.stopExecutionFlag = 1; |
return; |
} |
|
|
/* enable interrupts here */ |
|
|
rtExtModeOneStep(rtmGetRTWExtModeInfo(S), |
(boolean_T *)&rtmGetStopRequested(S)); |
|
(boolean_T *)&rtmGetStopRequested(S)); |
|
tnext = rt_SimGetNextSampleHit(); |
rtsiSetSolverStopTime(rtmGetRTWSolverInfo(S),tnext); |
|
|
MdlOutputs(0); |
|
|
rtExtModeSingleTaskUpload(S); |
|
if (GBLbuf.errmsg != NULL) { |
GBLbuf.stopExecutionFlag = 1; |
return; |
} |
|
MdlUpdate(0); |
rt_SimUpdateDiscreteTaskSampleHits(rtmGetNumSampleTimes(S), |
rtmGetTimingData(S), |
rtmGetSampleHitPtr(S), |
rtmGetTPtr(S)); |
|
|
if (rtmGetSampleTime(S,0) == CONTINUOUS_SAMPLE_TIME) { |
rt_UpdateContinuousStates(S); |
} |
|
|
GBLbuf.isrOverrun--; |
|
|
rtExtModeCheckEndTrigger(); |
|
} /* end rtOneStep */ |
349,7 → 371,7 |
rtExtModePauseIfNeeded(rtmGetRTWExtModeInfo(S), |
(boolean_T *)&rtmGetStopRequested(S)); |
|
cprintf(".(%dus out = %lf)",(int)(rtmGetT(S)*1000000),*(real_T *)(rtmGetY(S))); |
cprintf(".(%dus out = %lf)",(int)(rtmGetT(S)*1000000.0),*(real_T *)(rtmGetY(S))); |
|
if (rtmGetStopRequested(S)) break; |
rt_OneStep(S); |
380,8 → 402,8 |
|
while(1) { |
|
input[0] = 1; |
input[1] = 1; |
input[0] = 1000.0; |
input[1] = 1000.0; |
|
task_endcycle(); |
|
399,8 → 421,8 |
Init_RealTime_Workshop(); |
|
hard_task_default_model(RTW_task); |
hard_task_def_mit(RTW_task,rtmGetStepSize(S) * 1000000); |
hard_task_def_wcet(RTW_task,10000); |
hard_task_def_mit(RTW_task,20000/*(int)(rtmGetStepSize(S) * 1000000.0)*/); |
hard_task_def_wcet(RTW_task,9000); |
hard_task_def_usemath(RTW_task); |
hard_task_def_ctrl_jet(RTW_task); |
|
411,8 → 433,8 |
} |
|
hard_task_default_model(INPUT_task); |
hard_task_def_mit(INPUT_task,100000); |
hard_task_def_wcet(INPUT_task,10000); |
hard_task_def_mit(INPUT_task,20000); |
hard_task_def_wcet(INPUT_task,9000); |
hard_task_def_usemath(INPUT_task); |
hard_task_def_ctrl_jet(INPUT_task); |
|