Buenas tardes!!
Pasando al tema, estoy realizando un programa en CCS para obtener datos atreves de los puertos análogos del micro, pero tengo un problema al comparar los datos con una variable antes definida, creo que es error de sintaxis pero por mas que le muevo no puedo hacer que funcione y me veo en la necesidad de pedirles ayuda.
Explico mejor mi problema:
el problema esta en que la rutina de x1 y de cto si funcionan pero al comparar con otra variable por ejemplo paso de comparar set a sat y ya no funciona la rutina, solo la rutina x1 y cto, bueno espero me haya explicado bien y me puedan ayudar de antemano gracias!!.
PD: soy novato programando sorry por los horrores de código .
Pasando al tema, estoy realizando un programa en CCS para obtener datos atreves de los puertos análogos del micro, pero tengo un problema al comparar los datos con una variable antes definida, creo que es error de sintaxis pero por mas que le muevo no puedo hacer que funcione y me veo en la necesidad de pedirles ayuda.
Explico mejor mi problema:
Código:
#include <16F716.h>
#Fuses XT, NOWDT
//#device ADC=10
#Use Delay(Clock=4 000 000)
#byte puerto_b = 06
long Dato1, Dato2, Dato3, Dato4, set, setb, sat, satb;
#separate
void x1(){
set_adc_channel(0); //lee canal 0
delay_ms(10);
Dato1=read_ADC();
delay_ms(20);
if(dato1>setb){
output_high(pin_B0);
output_low(pin_B1);
output_low(pin_B3);
}
else{
output_low(pin_B0);
output_low(pin_B1);
output_low(pin_B3);
}
}
#separate
void mhr23(){
set_adc_channel(0);
delay_ms(10);
Dato1=read_ADC();
delay_ms(20);
if(dato1<sat)
output_high(pin_B0);
else{
output_low(pin_B0);
}
if(dato1>satb)
output_high(pin_B0);
}
#separate
void cto(){
set_adc_channel(0); //lee canal 0
delay_ms(10);
Dato1=read_ADC();
delay_ms(20);
set_adc_channel(1); //lee canal 1
delay_ms(10);
Dato2=read_ADC();
delay_ms(20);
if(dato1<set)
output_high(pin_B2);
else{
output_low(pin_B2);
}
if(dato1>setb)
output_high(pin_B2);
////////////////////////
if(dato2<set)
output_high(pin_B3);
Else{
output_low(pin_B3);
}
if(dato2>setb)
output_high(pin_B3);
}
#separate
Void main(){
dato5=0;
dato6=0;
dato7=0;
dato8=0;
setup_ADC_ports( ALL_ANALOG ); ///declaras en pin AN0 como entrada Analog
setup_ADC(ADC_Clock_Div_32); ///Configuras la velocidad de muestreo
sat=0xE1;
satb=0xD5;
set=0xE8;
setb=0xEF;
while(True){
if (input(pin_b4)==0)
{
x1();
}
else if(input(pin_b5)==1){
mhr23();
}
else {
cto();
}
}
}
el problema esta en que la rutina de x1 y de cto si funcionan pero al comparar con otra variable por ejemplo paso de comparar set a sat y ya no funciona la rutina, solo la rutina x1 y cto, bueno espero me haya explicado bien y me puedan ayudar de antemano gracias!!.
PD: soy novato programando sorry por los horrores de código .
Última edición por un moderador: