Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1419 → Rev 1420

/demos/trunk/rtw/rtw.c
464,10 → 464,45
return NULL;
}
 
TASK OUTPUT_w_body(void *arg) {
 
real_T *output, *p;
 
real_T wr = 0;
real_T wl = 0;
 
output_cid[0] = cab_create("WR", sizeof(real_T), 2);
output_cid[1] = cab_create("WL", sizeof(real_T), 2);
 
output = (real_T *)rtmGetY(S);
 
while(1) {
 
wr = output[3];
wl = output[4];
/* Send wr */
p = (real_T *)cab_reserve(output_cid[3]);
*p = wr;
cab_putmes(output_cid[3], p);
 
/* Send wl */
p = (real_T *)cab_reserve(output_cid[4]);
*p = wl;
cab_putmes(output_cid[4], p);
 
task_endcycle();
 
}
 
return NULL;
 
}
 
void Init_Rtw() {
 
HARD_TASK_MODEL RTW_task,OUTPUT_task;
PID RTW_pid,OUTPUT_pid;
PID RTW_pid,OUTPUT_pid,OUTPUT_w_pid;
int i;
516,9 → 551,19
cprintf("Error: Cannot create RealTime Workshop [OUTPUT] Task\n");
sys_end();
}
hard_task_def_mit(OUTPUT_task,OUTPUT_period);
hard_task_def_wcet(OUTPUT_task,OUTPUT_wcet);
OUTPUT_w_pid = task_create("OUTPUTW",OUTPUT_w_body,&OUTPUT_task,NULL);
if (OUTPUT_pid == NIL) {
cprintf("Error: Cannot create RealTime Workshop [OUTPUTW] Task\n");
sys_end();
}
task_activate(RTW_pid);
task_activate(OUTPUT_pid);
task_activate(OUTPUT_pid);
task_activate(OUTPUT_w_pid);
 
}
 
/demos/trunk/rtw/sensors.c
38,7 → 38,7
void activate_sensors() {
 
HARD_TASK_MODEL SENSOR_task;
PID DISTANCE_pid,ANGLE_pid,CURVE_pid;
PID DISTANCE_pid,ANGLE_pid,CURVE_pid,WR_pid,WL_pid;
 
hard_task_default_model(SENSOR_task);
hard_task_def_mit(SENSOR_task,60000);
66,10 → 66,26
cprintf("Error: Cannot create RealTime Workshop [CURVE] Task\n");
sys_end();
}
 
hard_task_def_arg(SENSOR_task,(void *)(3));
WR_pid = task_create("WR",SENSOR_body,&SENSOR_task,NULL);
if (WR_pid == NIL) {
cprintf("Error: Cannot create RealTime Workshop [WR] Task\n");
sys_end();
}
 
hard_task_def_arg(SENSOR_task,(void *)(4));
WL_pid = task_create("CURVE",SENSOR_body,&SENSOR_task,NULL);
if (WR_pid == NIL) {
cprintf("Error: Cannot create RealTime Workshop [WL] Task\n");
sys_end();
}
task_activate(DISTANCE_pid);
task_activate(ANGLE_pid);
task_activate(CURVE_pid);
task_activate(WR_pid);
task_activate(WL_pid);
 
}