Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1656 → Rev 1661

/unsupported/trunk/kalm3d/kalm3d.c
18,7 → 18,6
 
#include <ll/i386/defs.h>
 
#include <drivers/glib.h>
#include <drivers/pclab.h>
 
#include <math.h>
31,8 → 30,10
#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
62,32 → 63,24
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_end(void)
void program_key_end(KEY_EVT *k)
{
 
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);
317,24 → 310,6
 
}
 
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;
350,28 → 325,35
 
void init_motor(void)
{
char txt[100];
 
da_motor(0.0);
 
cprintf("Calibrazione pendolo inverso...\n");
sprintf(txt,"Calibrazione pendolo inverso...\n");
grx_text(txt,10,10,rgb16(255,255,255),0);
cprintf("Carr a sx e premi enter\n");
sprintf(txt,"Carr a sx e premi enter\n");
grx_text(txt,10,20,rgb16(255,255,255),0);
waitenter();
vmin=ad_conv(11);
cprintf("Carr a dx e premi enter\n");
sprintf(txt,"Carr a dx e premi enter\n");
grx_text(txt,10,30,rgb16(255,255,255),0);
waitenter();
vmax=ad_conv(11);
cprintf("Asta a sx e premi enter\n");
sprintf(txt,"Asta a sx e premi enter\n");
grx_text(txt,10,40,rgb16(255,255,255),0);
waitenter();
vminth=ad_conv(10);
 
cprintf("Asta a dx e premi enter\n");
sprintf(txt,"Asta a dx e premi enter\n");
grx_text(txt,10,50,rgb16(255,255,255),0);
waitenter();
vmaxth=ad_conv(10);
 
cprintf("Vxmax:%f Vxmin:%f Vthmax:%f Vthmin:%f\n",vmax,vmin,vmaxth,vminth);
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);
waitenter();
 
}
379,14 → 361,12
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);
397,7 → 377,6
carrello_PID = task_create("carrello", carrello, &ht_carrello, NULL);
if (carrello_PID == -1) {
sys_end();
exit(4);
}
 
hard_task_default_model(ht_disegna);
411,7 → 390,6
disegna_PID = task_create("disegna", disegna, &ht_disegna, NULL);
if (disegna_PID == -1) {
sys_end();
exit(4);
}
 
{
419,13 → 397,12
k.flag = ALTL_BIT;
k.scan = KEY_C;
k.ascii = 'c';
keyb_hook(k,program_key_end);
k.status = KEY_PRESSED;
keyb_hook(k,program_key_end,FALSE);
}
init_motor();
 
screen();
 
ctx = OSMesaCreateContext(OSMESA_RGB_565, NULL );
 
buffers = malloc(WIDTH*HEIGHT*BYTES_PP);