Sie sind auf Seite 1von 5

#include <main.

h>
#include <D:\ita\septimo semestre\diseo\caida libre\PRUEBAS\Nueva
carpeta (2)\2\lcd_d.c>
#define led1 pin_a0
//
L
#define led2 pin_a1
//
E
#define led3 pin_a2
//
D
#define led4 pin_a3
//
#define led5 pin_a5
//
I
#define led6 pin_e0
//
N
#define led7 pin_e1
//
D
#define led8 pin_e2
//
I
#define led9 pin_a6
//
.
#define led10 pin_c0
//
.
#define boton pin_b7
//Boton 1
#define sole pin_d3
//Solenoide
////// DECLARACIN DE VARIABLES ////////
int16 t[11],i,j;
float tt[11], vf[11];
float g=9.81;
int ban,ban2,cont,cuenta;
/////////////////////////////////////////
//
INTERRUPCIN 0
//
//
UTILIZADA PARA BOTON 2
//
/////////////////////////////////////////
#int_EXT
void EXT_isr(void)
{
cuenta++;
ban2=1;
if(cuenta>9)
disable_interrupts(int_EXT);
}
/////////////////////////////////////////
//
INTERRUPCIN 1
//
//
UTILIZADA PARA CONTAR
//
//
EL TIEMPO ENTRE PULSOS
//
/////////////////////////////////////////
#int_EXT1
void EXT1_isr(void)
{
if(i>=0 && i<=10)
{ i++;
t[i]=get_timer1();
set_timer1(0);
if(i==10)
{
ban=1;
disable_interrupts(int_EXT1);
}
if(i!=10)
ban=0;
}
}
/////////////////////////////////////////
//
FUNCIN PARA ENCENDER LOS LEDS
//
//
SEGUN COMO EL OBJETO PASA
//
//
POR LOS SENSORES
//
/////////////////////////////////////////

void leds(int led)


{
switch(led)
{
case 1: output_high(led1);break;
case 2: output_high(led2);break;
case 3: output_high(led3);break;
case 4: output_high(led4);break;
case 5: output_high(led5);break;
case 6: output_high(led6);break;
case 7: output_high(led7);break;
case 8: output_high(led8);break;
case 9: output_high(led9);break;
case 10: output_high(led10);break;
}
}
/////////////////////////////////////////
//
ESTA FUNCIN ES UTILIZADA
//
//
PARA IMPRIMIR EN LA LCD
//
/////////////////////////////////////////
void lcd(int contador)
{
switch(contador)
{
case 1: printf(lcd_putc "\f");
lcd_gotoxy(1,1);
printf(lcd_putc " # Tiempo Velocidad\n");
for (j=1;j<=3;++j)
{ lcd_gotoxy(1,(j+1));
printf(lcd_putc " %Lu
%1.3f
%1.3f\n",j,tt[j],vf[j]);
}
break;
case 2: printf(lcd_putc "\f");
lcd_gotoxy(1,1);
printf(lcd_putc " # Tiempo Velocidad\n");
for (j=2;j<=4;++j)
{ lcd_gotoxy(1,j);
printf(lcd_putc " %Lu
%1.3f
%1.3f\n",j,tt[j],vf[j]);
}
break;
case 3: printf(lcd_putc "\f");
lcd_gotoxy(1,1);
printf(lcd_putc " # Tiempo Velocidad\n");
for (j=3;j<=5;++j)
{ lcd_gotoxy(1,(j-1));
printf(lcd_putc " %Lu
%1.3f
%1.3f\n",j,tt[j],vf[j]);
}
break;
case 4: printf(lcd_putc "\f");
lcd_gotoxy(1,1);
printf(lcd_putc " # Tiempo Velocidad\n");
for (j=4;j<=6;++j)
{ lcd_gotoxy(1,(j-2));
printf(lcd_putc " %Lu
%1.3f
%1.3f\n",j,tt[j],vf[j]);
}
break;
case 5: printf(lcd_putc "\f");
lcd_gotoxy(1,1);

printf(lcd_putc " # Tiempo Velocidad\n");


for (j=5;j<=7;++j)
{ lcd_gotoxy(1,(j-3));
printf(lcd_putc " %Lu
%1.3f
%1.3f\n",j,tt[j],vf[j]);
}
break;
case 6: printf(lcd_putc "\f");
lcd_gotoxy(1,1);
printf(lcd_putc " # Tiempo Velocidad\n");
for (j=6;j<=8;++j)
{ lcd_gotoxy(1,(j-4));
printf(lcd_putc " %Lu
%1.3f
%1.3f\n",j,tt[j],vf[j]);
}
break;
case 7: printf(lcd_putc "\f");
lcd_gotoxy(1,1);
printf(lcd_putc " # Tiempo Velocidad\n");
for (j=7;j<=9;++j)
{ lcd_gotoxy(1,(j-5));
printf(lcd_putc " %Lu
%1.3f
%1.3f\n",j,tt[j],vf[j]);
}
break;
case 8: printf(lcd_putc "\f");
lcd_gotoxy(1,1);
printf(lcd_putc " # Tiempo Velocidad\n");
for (j=8;j<=10;++j)
{ lcd_gotoxy(1,(j-6));
printf(lcd_putc " %Lu
%1.3f
%1.3f\n",j,tt[j],vf[j]);
}
break;
}
}
/////////////////////////////////////////
//
CUERPO PRINCIPAL
//
/////////////////////////////////////////
void main()
{ set_timer1(0);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
lcd_init();
enable_interrupts(GLOBAL);
interrupciones de tipo GLOBAL
ext_int_edge(0,L_TO_H);
cada que se de un flanco de subida
cont=0;
lcd_gotoxy(1,1);
LCD
printf(lcd_putc "Oprime el Boton 1");
lcd_gotoxy(1,3);
printf(lcd_putc "Para iniciar ");
lcd_gotoxy(1,4);
printf(lcd_putc "con la prueba");
tt[0]=0;
while(1)
infinito
{
leds(i);
if(i==10)
{

//2.0 s overflow
//Inicio de LCD
//Se habilitan las
//Las medidas se tomaran
//Primer mensaje en la

// Comienza ciclo

output_high(led10);
cont++;
cuenta=1;
ban2=1;
}
if(i==3)
output_low(sole);
if(ban==1)
{
printf("---------- Prueba # %u ----------",cont);
printf("\n\r No. Tiempo(s)
Velocidad(m/s)\n\r");
// Suma de los tiempos
tt[1]=t[2];
tt[2]=tt[1]+t[3];
tt[3]=tt[2]+t[4];
tt[4]=tt[3]+t[5];
tt[5]=tt[4]+t[6];
tt[6]=tt[5]+t[7];
tt[7]=tt[6]+t[8];
tt[8]=tt[7]+t[9];
tt[9]=tt[8]+t[10];
tt[10]=tt[9]+t[10];
for (i=1;i<=10;++i)
{
printf(lcd_putc "\f");
tt[i]=(tt[i]*.000032);
vf[i]=g*(tt[i]);
printf(" %Lu
%1.3f
\n\r",i,tt[i],vf[i]);

%1.3f

}
printf("\n\r\n\r");
for (i=1;i<=10;++i)
{
putc(tt[i]);
}
ban=0;
}
if(ban2==1)
{ if(cuenta==9)
{
printf(lcd_putc "\f");
lcd_gotoxy(1,1);
printf(lcd_putc "\n\rPrueba # %u Final.",cont);
lcd_gotoxy(1,2);
printf(lcd_putc "\n\rOprime el Boton 1");
lcd_gotoxy(1,3);
printf(lcd_putc "\n\rPara continuar");
}
lcd(cuenta);
ban2=0;
}
if(!input(boton))

{
set_timer1(0);
enable_interrupts(int_EXT1);
enable_interrupts(int_EXT);
printf(lcd_putc "\f");
printf("\f");
i=0;
output_high(sole);
output_low(led1);
output_low(led2);
output_low(led3);
output_low(led4);
output_low(led5);
output_low(led6);
output_low(led7);
output_low(led8);
output_low(led9);
output_low(led10);
}
boton
}
}

//cierre del if del


//cierre del while
//cierre del programa

Das könnte Ihnen auch gefallen