Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1432 → Rev 1428

/demos/trunk/bttvdemo/bttv.c
35,7 → 35,6
 
#include "kernel/kern.h"
#include "stdlib.h"
#include "unistd.h"
 
#include "drivers/shark_keyb26.h"
#include "drivers/shark_videodev26.h"
45,6 → 44,10
#define HEIGHT 480
#define BYTES_PP 2
 
unsigned char *video_buf = NULL; //Video Buffer
unsigned long int VMEMLONG = WIDTH * HEIGHT * BYTES_PP / 4; // Used by copy_videomem_16to16
unsigned long int RGB565MEM = WIDTH * HEIGHT * BYTES_PP; // Total video mem
 
#define FG_PERIOD 40000
#define FG_WCET 30000
#define FG_W 320
69,14 → 72,13
 
task_nopreempt();
 
/* Init videodev driver */
VIDEODEV26_open(0);
 
chan.channel = (int)(arg);
chan.norm = VIDEO_TYPE_CAMERA;
/* Select input channel */
VIDEODEV26_ioctl(0,VIDIOCGCHAN,(unsigned long)&chan);
chan.channel = (int)(arg);
VIDEODEV26_ioctl(0,VIDIOCSCHAN,(unsigned long)&chan);
 
/* Select palette and depth */
VIDEODEV26_ioctl(0,VIDIOCGPICT,(unsigned long)&vpic);
87,16 → 89,16
 
/* Double Buffering Strategy */
 
fbuf[0].base = malloc(FG_W*FG_H);
fbuf[0].height = FG_H;
fbuf[0].width = FG_W;
fbuf[0].bytesperline = FG_W;
fbuf[0].base = malloc(320*200);
fbuf[0].height = 200;
fbuf[0].width = 320;
fbuf[0].bytesperline = 320;
fbuf[0].depth = 8;
fbuf[1].base = malloc(FG_W*FG_H);
fbuf[1].height = FG_H;
fbuf[1].width = FG_W;
fbuf[1].bytesperline = FG_W;
fbuf[1].base = malloc(320*200);
fbuf[1].height = 200;
fbuf[1].width = 320;
fbuf[1].bytesperline = 320;
fbuf[1].depth = 8;
 
VIDEODEV26_ioctl(0,VIDIOCSFBUF,(unsigned long)&(fbuf[0]));
107,8 → 109,8
win.x = 0;
win.y = 0;
win.width = FG_W;
win.height = FG_H;
win.width = 320;
win.height = 200;
VIDEODEV26_ioctl(0,VIDIOCSWIN,(unsigned long)&win);
 
129,8 → 131,9
VIDEODEV26_ioctl(0,VIDIOCCAPTURE,(unsigned long)&on);
task_preempt();
/*
printf_xy(1,20,WHITE,"%08x%08x",
printf_xy(1,1,WHITE,"%08x%08x",
*(unsigned int *)(fbuf[display].base+50*320+50),
*(unsigned int *)(fbuf[display].base+50*320+54));
*/
142,7 → 145,6
display = save;
save = temp;
 
task_testcancel();
task_endcycle();
 
}
175,12 → 177,10
SOFT_TASK_MODEL st;
PID grab_task_pid;
 
if (argc < 2) return -1;
 
soft_task_default_model(st);
soft_task_def_period(st,40000);
soft_task_def_met(st,30000);
soft_task_def_arg(st, (void *)(atoi(argv[1])));
soft_task_def_arg(st, (void *)(1));
soft_task_def_ctrl_jet(st);
grab_task_pid = task_create("GrabTask",grab_task,&st,NULL);
193,10 → 193,6
 
while(keyb_getch(BLOCK) != ESC);
 
task_kill(grab_task_pid);
 
sleep(1);
 
sys_end();
 
return 0;
/demos/trunk/bttvdemo/initfile.c
115,10 → 115,10
 
KEYB26_init(&kparms);
 
BTTV26_init();
 
FB26_init();
 
BTTV26_init();
res = FB26_open(FRAME_BUFFER_DEVICE);
if (res) {
cprintf("Error: Cannot open graphical mode\n");
131,6 → 131,8
FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16");
 
VIDEODEV26_open(FRAME_GRABBER_DEVICE);
return 0;
 
}
137,8 → 139,8
 
int device_drivers_close() {
BTTV26_close();
 
VIDEODEV26_close(FRAME_GRABBER_DEVICE);
FB26_close(FRAME_BUFFER_DEVICE);
KEYB26_close();