buen día, tengo un programa, muy sencillo, leer el ADC. Si esta dentro del rango y dependeiendo del valor se establce un retardo proporcional, el problema es que cuando lo compilo me marca errores, como Undefinid Identifier GPIO, valores fuera de rango, etc.
Es el primer programo que intento hacer, alguien me podría decir en que estoy mal, y explicar los registros GPIO, TRISIO, ADC, probablemente los estoy usando mal o no los estoy inicializando correctamente. Gracias.
#include <12f675.h>
#device adc=10;
#FUSES NOWDT, INTRC_IO, PROTECT, CPD, NOMCLR, PUT, NOBROWNOUT
#use delay (clock = 4000000)
void main () {
int16 val;
int16 retraso;
int i;
GPIO = 0b11111011
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
while(true) {
set_adc_channel(0);
delay_us(20);
val=read_adc();
if (val>423){ //voltaje mayor
if(val>=488 && val<=717) {
retraso=read_adc();
retraso= 717-retraso;
retraso= retraso*0.45;
for(i=0; i<= retraso, i++)
{ output_high(GP2);
delay_ms(65535);
}
output_low(GP2); //Desactiva el Relay
for (i=0; i<=4; i++){//Esperar 5 minutos
delay_ms(65535);
}
}
else { output_low(GP2);
}
}
else { //VOltaje menor
if(val>=244 && val<=358) {
retraso=read_adc();
retraso= 358-retraso;
retraso= retraso*0.9;
for(i=0; i<= retraso, i++)
{ output_high(GP2);
delay_ms(65535);
}
output_low(GP2); //Desactiva Relay
for (i=0; i<=4; i++){//Esperar 5 minutos
delay_ms(65535);
}
}
else { output_low(GP2);}
}
}
}