Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Servo Programa
Servo Programa
h"
PwmOut S1(PB_13);
PwmOut S2(PB_14);
PwmOut S3(PB_15);
Serial PUERTO_SERIAL(USBTX,USBRX); //PD_8,PD_9);
Serial PUERTO_SERIAL2(PC_10,PC_11);
char LECTURA;
char DATO[5];
char ANGULO[5];
int i,m,numeroentero,tiempo,x,y,z;
void INGRESAR_DATO (void);
void VERIFICAR_DATO (void);
//-------------------------------------------------------------
int main()
{
while(1)
{
if(DATO[2]== '1'||'2'||'3'||'4'||'5'||'6'||'7'||'8'||'9'&& DATO[3]==
'1'||'2'||'3'||'4'||'5'||'6'||'7'||'8'||'9' && DATO[4]==
'1'||'2'||'3'||'4'||'5'||'6'||'7'||'8'||'9')
{
INGRESAR_DATO();
VERIFICAR_DATO();
}
}
}
//---------------------------------------------------------------------------------
------
void INGRESAR_DATO (void)
{
i=0;
PUERTO_SERIAL2.printf(" %c ",DATO[i]);
do
{
if(PUERTO_SERIAL2.readable()) // Ha llegado algun dato al buffer de RX
{
LECTURA = PUERTO_SERIAL2.getc();
DATO[i]=LECTURA;
PUERTO_SERIAL2.putc(DATO[i]);
i++;
}
}
}
while(i<=4);
}
//------------------------------------------------------------------
void VERIFICAR_DATO (void)
{
if(DATO[0]=='M' )
{
if (DATO[1]== '1')
{
ANGULO[1]=DATO[3];
ANGULO[0]=DATO[2];
ANGULO[2]=DATO[4];
numeroentero= atoi(ANGULO);
tiempo= ((numeroentero*2000)/180)+500;
S1.period_ms(20);
S1.pulsewidth_us(tiempo);
PUERTO_SERIAL2.printf("\n El motor 1 giro %i grados", numeroentero);
DATO[1]=0;
}
}
else
{
PUERTO_SERIAL2.printf(" \n DATOS INCORRECTO\n");
//---------------------------------------------------------------------------------
---------
if(DATO[0]=='M' )
{
if (DATO[1]== '2')
{
ANGULO[0]=DATO[2];
ANGULO[1]=DATO[3];
ANGULO[2]=DATO[4];
for (m=0;m<3;m++)
{
PUERTO_SERIAL2.printf("\n\r %c ",ANGULO[m]);
}
numeroentero= atoi(ANGULO);
tiempo= ((numeroentero*2000)/180)+500;
S2.period_ms(20);
S2.pulsewidth_us(tiempo);
PUERTO_SERIAL2.printf("\n El motor 2 giro %i grados",numeroentero);
DATO[1]=0;
}
}
else
{
PUERTO_SERIAL2.printf(" \n DATOS INCORRECTO\n");
}
//---------------------------------------------------------------------------------
------------
if(DATO[0]=='M' )
{
if (DATO[1]== '3')
{
ANGULO[0]=DATO[2];
ANGULO[1]=DATO[3];
ANGULO[2]=DATO[4];
for (m=0;m<3;m++)
{
//PUERTO_SERIAL2.printf("\n\r %c ",ANGULO[m]);
}
numeroentero= atoi(ANGULO);
tiempo= ((numeroentero*2000)/180)+500;
S3.period_ms(20);
S3.pulsewidth_us(tiempo);
PUERTO_SERIAL2.printf("\n El motor 3 giro %i grados",numeroentero);
//PUERTO_SERIAL2.printf("\n ");
DATO[1]=0;
}
}
else
{
PUERTO_SERIAL2.printf(" \n DATOS INCORRECTO\n");
}
}