Saludos.
Lo tomare en cuenta.
Ahora, aparte de mi duda con las funciones, tambien tengo problemas con el código de lo que estoy haciendo, al compilar me sale como 57 errores.
El código es el siguiente:
#include <16F877A.h>
#device adc = 10
#FUSES XT, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT
#use delay(clock=4000000)
#use fast_io(C)
#use fast_io(D)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
#include <LCD4x20.C>
void main()
{
set_tris_c(0xB0);
set_tris_d(0xC0);
//DECLARANDO VARIABLES DE CONTROL
int1 control;
int1 control1;
int1 controlh;
//FIN VARIABLES DE CONTROL
int16 hum1;
int16 hum2;
int16 hum3;
int16 temp1;
int16 temp2;
float tempt1;
float tempt2;
float humt1;
float humt2;
float humt3;
float humS;
float tempS;
float RH;
float p;
setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
control = 0;
control1 = 0;
controlh = 0;
while(1)
{
set_adc_channel(0); //CANAL 0
delay_us(10);
temp1 = (read_adc() * 100);
set_adc_channel(1); //CANAL 1
delay_us(10);
temp2 = (read_adc() *100);
tempt1 = temp1 * 0.0049;
tempt2 = temp2 * 0.0049;
tempS = (tempt1 + tempt2) / 2.0; //TEMPERATURA A MANEJAR
//*********** RUTINA DE CONTROL DE TEMPERATURA ****************
if (tempS >= 28.0)
{
if (control == 0) //AQUI TESTEAR EL RC3
{
output_high(PIN_C1);
// ir a sube y luego regresar
delay_ms(3000);
// ir a paraA y luego regresar
output_low(PIN_C1);
control = 1; //aqui ver el RC3
}
}
if (tempS <= 20.0)
{
if (control == 1)
{
output_high(PIN_C3);
//ir a baja y regresar
delay_ms(3000);
//ir a paraB y regresar
output_low(PIN_C3);
control = 0;
}
output_high(PIN_C2); //AIRE CALIENTE
control1 = 1;
}
if (control1 == 1)
{
if (tempS <= 25.0)
{
output_high(PIN_C2); //AIRE CALIENTE
} else
{
output_low(PIN_C2); //APAGA AIRE CALIENTE
control1 = 0;
}
}
//************ FIN RUTINA CONTROL TEMPERATURA *****************
set_adc_channel(2); //CANAL 2
delay_us(10);
hum1 = read_adc();
set_adc_channel(3); //CANAL 3
delay_us(10);
hum2 = read_adc();
set_adc_channel(4); //CANAL 4
delay_us(10);
hum3 = read_adc();
//hum1t = (5.0 * hum1) / 1024.0;
humt1 = hum1 * 0.0049;
humt2 = hum2 * 0.0049;
humt3 = hum3 * 0.0049;
humS = (humt1 + humt2 + humt3) / 3;
RH = (humS - 0.958) / 0.0307; // HUMEDAD HA MANEJAR
//******* RUTINA CONTROL DE HUMEDAD ****************
if (RH >= 80.0)
{
output_low(PIN_C0);
}
if (RH <= 75.0)
{
output_high(PIN_C0);
controlh = 1;
}
if (controlh == 1)
{
if (RH <= 77.0)
{
output_high(PIN_C0);
}else
{
output_low(PIN_C0);
controlh = 0;
}
}
//*********** FIN RUTINA CONTROL HUMEDAD **************
//printf(lcd_putc, "\fADC = %4ld", q);
//printf(lcd_putc, "\nVoltage = %01.2fV", p);
printf(lcd_putc, "\f TEMPERATURA ");
printf(lcd_putc, "\n %01.2f C", tempS);
printf(lcd_putc, "\n HUMEDAD ");
printf(lcd_putc, "\n%01.2f PHS", RH);
//TRANSMISION SERIAL
printf("ADC = %4ld", tempt1);
printf(" Temperatura = %01.2f C\r", tempS); // El \r permite cambiar de línea
printf("ADC = %4ld", hum3);
printf(" humedad = %01.2f RH\r", RH);
delay_ms(100);
}
}
me sale como 57 errores, la mayoria de esos errores dice que las variables no estan declaradas, tambien, se hace problemas por los números que utilizo en los "if"