Buenas noches! Alguien me podria explicar el void main de este codigo, ya que obtiene las rpm mediante variables, queria saber si alguien me podría explicármelo como lo hace, estoy aprendiendo en esto pero se me trabo la cabeza.
#include <16f88.h>
#use delay(int=4000000)
#use delay(clock=4000000)
#include "lcd.c"
/*****************************************************************************/
// Declaración de variables.
int time0, time1, i; //Se declaran variables enteras//
int16 pulses0, pulses, rpm, time; //Se declaran variables enteras de 16 bits//
int1 rpmbit; //Se declara variable entera de 1 bit//
/*****************************************************************************/
//Subrutina RPM GET
/*****************************************************************************/
void rpm_get() //Se obtienen las RPM//
{
rpm=60*pulses; //Formula para obtener RPM//
if(pulses0!=pulses) // Si pulsos0 no es igual a pulsos//
{
printf(lcd_putc,"\f RPM:%Lu", rpm); //Se imprime en pantalla las RPM//
printf(lcd_putc,"\n REV. MOTOR"); //Se imprime en pantalla las RPM//
}
pulses=0; //Se reinician los pulsos//
time1=0; //Se reinicia el time1//
}
/*****************************************************************************/
void main() //Cuerpo del programa//
{
rpm=0; //variable rpm = 0
time=0; //variable time = 0
time0=0; //variable time0 = 0
time1=time0; //variable time1 = time0
pulses=0; //variable pulsos = 0
pulses0=pulses; //variable pulsos0 = pulsos
rpmbit=1; //variable rpmbit = 1
lcd_init(); //INICIAMOS EL LCD
lcd_putc("\f 2009 \n");
lcd_putc("\n TACOMETRO");
delay_ms(200);
/*****************************************************************************/
while(true)
{
//Se mide la lectura de vueltas//
{
if((input(PIN_A0)==1)&&(rpmbit==1))
{
pulses++;
rpmbit=0;
}
if((!input(PIN_A0)==1)&&(rpmbit==0))
{
rpmbit=1;
}
time0++;
if(time0>250)
{
time1++;
time0=0;
if(time1>=4)
{
time0=0;
if(pulses<1)
{
lcd_putc("\fMOTOR APAGADO");
delay_ms(100);
}
else
{
rpm_get();
pulses0=pulses;
}
}
}
}
delay_ms(1);
}
}
Les agradecería de antemano