Beruflich Dokumente
Kultur Dokumente
#INT_RDA
VOID SERIAL_ISR()
{
if(kbhit())
{
gets(recibir);
switch(recibir[0])
{
case 'a':
puts("esta en servo");
puts("ingrese la secuencia para el servo");
for(i=0;i<=4;i++)
{
gets(recibir);
grados=atoi(recibir);
write_eeprom(i,grados);
}
opcion=1;
break;
case 'b':
puts("esta paso-paso,ingrese 5 valores");
puts("ingrese 1 para una vuelta horario ");
puts("ingrese 0 para una vuelta antihorario");
for(i=0;i<1;i++)
{
gets(recibir);
grados=atoi(recibir);
write_eeprom(i,grados);
}
opcion=2;
break;
default:
puts("esta haciendo el ridiculo ingrese otro valor");
}
}
}
VOID MAIN()
{
SET_TRIS_A (0B00000000);//definicion de puertos
SET_TRIS_B (0B00000000);
SET_TRIS_C (0B10000000);
//SET_TRIS_D (0B00000000);
//HABILITA LAS INTERRUPCIONES PARA LEER LAS VARIABES INGRESADAD
SETUP_TIMER_2(T2_DIV_BY_4,255,1);
SETUP_ADC_PORTS(ALL_ANALOG);
SETUP_ADC(ADC_CLOCK_DIV_8);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_RDA);
while(true)
{
inicio:
output_high(pin_c0);
puts("menu:a)servo,b)paso-paso");
delay_ms(200);
//!
if(opcion==1)
{puts("entro a servo");
for(j=0;j<=4;j++)
{
valor=read_eeprom(j);
//segun la configuracion en el proteus son 1000ms en 0 y 2000ms en 180
//conversion para que funcione en proteus
//movimiento=(valor*(1000/180)+1000);
}
opcion=3;
}
printf("\f");
}