Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1414 → Rev 1415

/demos/trunk/rtw/makefile
8,11 → 8,11
include $(BASE)/config/config.mk
 
MATLAB_ROOT = /matlab
MATLAB_RTW_DEMO_DIR = /usr/local/home/giacomo/shark_mat/Subsystem_grt_rtw/
MATLAB_RTW_DEMO_DIR = /usr/local/home/giacomo/shark_mat/carrello0_grt_rtw/
 
DEFINE_MODEL = Subsystem
DEFINE_MODEL = carrello0
DEFINE_NUMST = 2
DEFINE_NCSTATES = 1
DEFINE_NCSTATES = 7
DEFINE_TID01EQ = 1
DEFINE_RTWLIB += -lrtw
DEFINE_SOLVER = ode4.o
/demos/trunk/rtw/rtw.c
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);