Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1661 → Rev 1660

/unsupported/trunk/kalm3d/kalm3d.c
18,6 → 18,7
 
#include <ll/i386/defs.h>
 
#include <drivers/glib.h>
#include <drivers/pclab.h>
 
#include <math.h>
30,10 → 31,8
#include <kernel/kern.h>
#include <kernel/func.h>
#include <ll/i386/x-dos.h>
#include <drivers/keyb.h>
 
#include <drivers/shark_keyb26.h>
#include <drivers/shark_fb26.h>
 
#include "const.h"
 
#define WIDTH 640
63,24 → 62,32
static GLfloat SUP_P = 30.0;
 
extern void da_motor(float v);
extern void *video_memory;
 
#ifndef M_PI
#define M_PI 3.14159265
#endif
 
void program_key_end(KEY_EVT *k)
void program_end(void)
{
da_motor(0.0);
 
da_motor(0.0);
OSMesaDestroyContext(ctx);
free(buffers);
 
grx_close();
 
sys_end();
 
}
 
void program_key_end(KEY_EVT *k)
{
 
sys_end();
 
}
 
static void draw_box(GLfloat p1x, GLfloat p1y ,GLfloat p1z, GLfloat p2x, GLfloat p2y, GLfloat p2z) {
 
glBegin(GL_QUADS);
310,6 → 317,24
 
}
 
static void screen()
{
extern DWORD flbaddr;
/* graphic card Initialization */
if (grx_init() < 1) {
sys_abort(1);
}
if (grx_open(640, 480, 16) < 0) {
cprintf("GRX Err\n");
sys_abort(1);
}
vbuf = (unsigned char *)flbaddr;
 
}
 
void waitenter() {
 
KEY_EVT k;
325,35 → 350,28
 
void init_motor(void)
{
char txt[100];
 
da_motor(0.0);
 
sprintf(txt,"Calibrazione pendolo inverso...\n");
grx_text(txt,10,10,rgb16(255,255,255),0);
cprintf("Calibrazione pendolo inverso...\n");
sprintf(txt,"Carr a sx e premi enter\n");
grx_text(txt,10,20,rgb16(255,255,255),0);
cprintf("Carr a sx e premi enter\n");
waitenter();
vmin=ad_conv(11);
sprintf(txt,"Carr a dx e premi enter\n");
grx_text(txt,10,30,rgb16(255,255,255),0);
cprintf("Carr a dx e premi enter\n");
waitenter();
vmax=ad_conv(11);
sprintf(txt,"Asta a sx e premi enter\n");
grx_text(txt,10,40,rgb16(255,255,255),0);
cprintf("Asta a sx e premi enter\n");
waitenter();
vminth=ad_conv(10);
 
sprintf(txt,"Asta a dx e premi enter\n");
grx_text(txt,10,50,rgb16(255,255,255),0);
cprintf("Asta a dx e premi enter\n");
waitenter();
vmaxth=ad_conv(10);
 
sprintf(txt,"Vxmax:%f Vxmin:%f Vthmax:%f Vthmin:%f\n",vmax,vmin,vmaxth,vminth);
grx_text(txt,10,60,rgb16(255,255,255),0);
cprintf("Vxmax:%f Vxmin:%f Vthmax:%f Vthmin:%f\n",vmax,vmin,vmaxth,vminth);
waitenter();
 
}
361,12 → 379,14
int main (int argc, char *argv[])
{
HARD_TASK_MODEL ht_carrello, ht_disegna;
vbuf = video_memory;
WCET_CARRELLO =((long int) PERIOD_CARRELLO * (0.05));
WCET_DISEGNA =((long int) PERIOD_DISEGNA * (0.875));
 
clear();
sys_atrunlevel((void *) program_end,NULL, RUNLEVEL_BEFORE_EXIT);
hard_task_default_model(ht_carrello);
hard_task_def_wcet(ht_carrello,WCET_CARRELLO);
hard_task_def_mit(ht_carrello,PERIOD_CARRELLO);
377,6 → 397,7
carrello_PID = task_create("carrello", carrello, &ht_carrello, NULL);
if (carrello_PID == -1) {
sys_end();
exit(4);
}
 
hard_task_default_model(ht_disegna);
390,6 → 411,7
disegna_PID = task_create("disegna", disegna, &ht_disegna, NULL);
if (disegna_PID == -1) {
sys_end();
exit(4);
}
 
{
397,12 → 419,13
k.flag = ALTL_BIT;
k.scan = KEY_C;
k.ascii = 'c';
k.status = KEY_PRESSED;
keyb_hook(k,program_key_end,FALSE);
keyb_hook(k,program_key_end);
}
init_motor();
 
screen();
 
ctx = OSMesaCreateContext(OSMESA_RGB_565, NULL );
 
buffers = malloc(WIDTH*HEIGHT*BYTES_PP);