48,10 → 48,11 |
#define BYTES_PP 2 |
|
//#define COLOR |
#define MAX_SPEED |
|
#define FRAME_GRABBER_NUMBER 0 |
|
#define FG_PERIOD 40000 |
#define FG_PERIOD 40000 //ONLY IF MAX_SPEED IS DISABLED |
#define FG_WCET 30000 |
#define FG_W 320 |
#define FG_H 240 |
148,6 → 149,9 |
TASK elaborate_task(void *arg) { |
|
struct video_buffer *fbuf = (struct video_buffer *)(arg); |
#ifdef MAX_SPEED |
int on; |
#endif |
|
while(1) { |
|
160,6 → 164,11 |
|
ready_to_grab = 1; |
|
#ifdef MAX_SPEED |
on = 1; |
VIDEODEV26_ioctl(FRAME_GRABBER_NUMBER,VIDIOCCAPTURE,(unsigned long)&on); |
#endif |
|
task_testcancel(); |
task_endcycle(); |
|
247,6 → 256,9 |
|
struct video_buffer fbuf; |
int channel = 0; |
#ifdef MAX_SPEED |
int on; |
#endif |
|
if (argc < 2) { |
sys_shutdown_message("ERROR: Enter the input channel [ex> %s 0]\n",argv[0]); |
256,14 → 268,14 |
channel = atoi(argv[1]); |
|
soft_task_default_model(et); |
soft_task_def_period(et,40000); |
soft_task_def_period(et,FG_PERIOD); |
soft_task_def_arg(et,(void *)(&fbuf)); |
soft_task_def_met(et,20000); |
soft_task_def_met(et,FG_WCET); |
soft_task_def_aperiodic(et); |
soft_task_def_ctrl_jet(et); |
|
hard_task_default_model(gt); |
hard_task_def_mit(gt,40000); |
hard_task_def_mit(gt,FG_PERIOD); |
hard_task_def_wcet(gt,5000); |
hard_task_def_ctrl_jet(gt); |
|
299,12 → 311,20 |
|
start_frame_grabber(elaborate_task_pid,channel,&fbuf); |
|
/* Activate periodic grabbing */ |
task_activate(grab_task_pid); |
#ifndef MAX_SPEED |
/* Activate periodic grabbing */ |
task_activate(grab_task_pid); |
#else |
/* Grab */ |
on = 1; |
VIDEODEV26_ioctl(FRAME_GRABBER_NUMBER,VIDIOCCAPTURE,(unsigned long)&on); |
#endif |
|
while(keyb_getch(BLOCK) != ESC); |
|
task_kill(grab_task_pid); |
#ifndef MAX_SPEED |
task_kill(grab_task_pid); |
#endif |
|
sleep(1); |
|