Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1359 → Rev 1390

/demos/trunk/chimera/initfile.c
22,9 → 22,7
#include "modules/dummy.h"
#include "modules/intdrive.h"
 
#include <drivers/shark_input26.h>
#include <drivers/shark_keyb26.h>
#include <drivers/shark_linuxc26.h>
#include <drivers/keyb.h>
 
/*+ sysyem tick in us +*/
#define TICK 1000
42,9 → 40,8
{
struct multiboot_info *mb = (struct multiboot_info *)arg;
 
INTDRIVE_register_level(INTDRIVE_Q, INTDRIVE_T, INTDRIVE_FLAGS);
EDF_register_level(EDF_ENABLE_ALL);
HCBS_register_level(HCBS_ENABLE_ALL, 1);
HCBS_register_level(HCBS_ENABLE_ALL, 0);
RR_register_level(RRTICK, RR_MAIN_YES, mb);
dummy_register_level();
 
61,9 → 58,7
 
HARTPORT_init();
 
LINUXC26_register_module();
INPUT26_init();
KEYB26_init(&kparms);
KEYB_init(&kparms);
 
__call_main__(mb);
 
/demos/trunk/chimera/calibrate.c
33,7 → 33,7
{1,{0,90,-45,45,-45,45},{417601,388801,424741},{-216000,-43200,82770}},
{-1,{0,90,-45,45,-45,45},{421199,421199,443799},{165600,-8999,30600}},
{1,{0,90,-45,45,0,90},{414001,424801,410401},{-162000,39600,-122400}},
{-1,{0,90,-45,45,0,90},{0,0,0},{0,0,0}},
{-1,{0,90,-45,45,0,90},{410399,446399,399599},{154800,-3599,108000}},
};
 
int adjust(int angle_sec, int leg, int num) {
/demos/trunk/chimera/chimera.c
33,7 → 33,7
status.power = 1;
 
kern_gettime(&(e[i].time));
ADDUSEC2TIMESPEC(10000000,&(e[i].time));
ADDUSEC2TIMESPEC( 5000000,&(e[i].time));
e[i].type = EVT_SET_MASK_LEG_ANGLE;
e[i].mask = 0x3F;
45,7 → 45,7
insert_action_event(&(e[i]));
kern_gettime(&(e[i+1].time));
ADDUSEC2TIMESPEC(11000000,&(e[i+1].time));
ADDUSEC2TIMESPEC( 6000000,&(e[i+1].time));
e[i+1].type = EVT_SET_MASK_LEG_ANGLE;
e[i+1].mask = 0x3F;
57,7 → 57,7
insert_action_event(&(e[i+1]));
 
kern_gettime(&(e[i+2].time));
ADDUSEC2TIMESPEC(12000000,&(e[i+2].time));
ADDUSEC2TIMESPEC( 7000000,&(e[i+2].time));
e[i+2].type = EVT_SET_MASK_LEG_ANGLE;
e[i+2].mask = 0x3F;
69,7 → 69,7
insert_action_event(&(e[i+2]));
 
kern_gettime(&(e[i+3].time));
ADDUSEC2TIMESPEC(13000000,&(e[i+3].time));
ADDUSEC2TIMESPEC( 8000000,&(e[i+3].time));
e[i+3].type = EVT_SET_MASK_LEG_ANGLE;
e[i+3].mask = 0x3F;
81,7 → 81,7
insert_action_event(&(e[i+3]));
 
kern_gettime(&(e[i+4].time));
ADDUSEC2TIMESPEC(15000000,&(e[i+4].time));
ADDUSEC2TIMESPEC(10000000,&(e[i+4].time));
e[i+4].type = EVT_SET_MASK_LEG_ANGLE;
e[i+4].mask = 0x3F;
108,7 → 108,7
init_send(); /* Comunication */
init_key(); /* Keyboard */
 
//action_stand_up();
action_stand_up();
 
return 0;
 
/demos/trunk/chimera/send.c
150,9 → 150,9
 
status.cfg[i].pwm = e->pwm;
 
#ifdef DEBUG_SEND
//#ifdef DEBUG_SEND
printf_xy(3,2,WHITE,"%8d: Update leg %2d angle",(int)kern_gettime(NULL),i);
#endif
//#endif
 
 
}
170,7 → 170,9
HEXAPOD_STATE old_status;
register char changes, new_pos, new_pwm, new_power;
int res,n;
struct timespec t;
 
 
for (n=0; n<6;n++) {
old_status.ang[n].a = 0;
old_status.ang[n].b = 0;
244,6 → 246,8
#endif
}
}
sys_gettime(&t);
printf_xy(1,20,WHITE,"%d:CHANGE = %d",(int)t.tv_sec,changes);
task_endcycle();
}
311,8 → 315,8
if (pid == NIL) {
perror("Could not create task <Get_Task>");
sys_end();
} //else
//task_activate(pid);
} else
task_activate(pid);
}
 
void init_send()
/demos/trunk/chimera/keys.c
82,145 → 82,119
{
KEY_EVT k;
 
/* Leg Selector */
k.flag = 0;
k.scan = KEY_1;
k.ascii = '1';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_2;
k.ascii = '2';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_3;
k.ascii = '3';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_4;
k.ascii = '4';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_5;
k.ascii = '5';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_6;
k.ascii = '6';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
/* Leg Position */
k.flag = 0;
k.scan = KEY_J;
k.ascii = 'j';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_K;
k.ascii = 'k';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_L;
k.ascii = 'l';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_U;
k.ascii = 'u';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_I;
k.ascii = 'i';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_O;
k.ascii = 'o';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_Q;
k.ascii = 'q';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
k.flag = 0;
k.scan = KEY_W;
k.ascii = 'w';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
k.flag = 0;
k.scan = KEY_E;
k.ascii = 'e';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
k.flag = 0;
k.scan = KEY_Z;
k.ascii = 'z';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
 
k.flag = 0;
k.scan = KEY_C;
k.ascii = 'c';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
k.scan = KEY_C;
k.ascii = 'c';
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_A;
k.scan = KEY_A;
k.ascii = 'a';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_S;
k.scan = KEY_S;
k.ascii = 's';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_D;
k.scan = KEY_D;
k.ascii = 'd';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
k.flag = 0;
k.scan = KEY_F;
k.flag = 0;
k.scan = KEY_F;
k.ascii = 'f';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
 
k.flag = 0;
k.scan = KEY_G;
k.scan = KEY_G;
k.ascii = 'g';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
keyb_hook(k,pad);
k.flag = 0;
k.scan = KEY_H;
k.flag = 0;
k.scan = KEY_H;
k.ascii = 'h';
k.status = KEY_PRESSED;
keyb_hook(k,pad,FALSE);
 
keyb_hook(k,pad);
}
/demos/trunk/chimera/makefile
12,5 → 12,5
include $(BASE)/config/example.mk
 
chimera:
make -f $(SUBMAKE) APP=chimera INIT= OTHEROBJS="initfile.o calibrate.o send.o action.o keys.o" SHARKOPT="__INPUT__ __NEWPCI__ __SERVO__ __LINUXC26__"
make -f $(SUBMAKE) APP=chimera INIT= OTHEROBJS="initfile.o calibrate.o send.o action.o keys.o" SHARKOPT="__OLDCHAR__ __SERVO__"
 
/demos/trunk/chimera/chimera.h
20,7 → 20,7
#include <semaphore.h>
#include "modules/sem.h"
#include "modules/hartport.h"
#include <drivers/shark_keyb26.h>
#include <drivers/keyb.h>
 
#include <servo.h>