Buenas.
Necesito controlar una variable en función de la tensión que entra a las patillas C1,C2 y C3 del puerto C en un PIC16F876.
El código que empleo es el siguiente:
Todo funciona correctamente salvo que cuando modifico la entrada de tensión a las patillas la variable aviso tarda unos 20 segundos en cambiar. ¿Cúal es el motivo?
Si apago y enciendo el circuito funciona inmediatamente. Pero me gustaría que el cambio de tensión en las patillas C1,C2,C3 surgiera efecto en la variable aviso casi de manera inmediata.
Saludos y muchas gracias.
Necesito controlar una variable en función de la tensión que entra a las patillas C1,C2 y C3 del puerto C en un PIC16F876.
El código que empleo es el siguiente:
Código:
#include <16f876.h>
#device adc=10
#fuses XT,NOWDT,NOPROTECT,BROWNOUT,PUT,NOLVP
#use delay(clock=4000000)
#include "I:\PROYECTO\PRACTICAS\MIS PRACTICAS\prueba\flex_lcd.c"
#include "math.h"
float x;
float zeroG_x = 1.5039;
float oneG_x = 1.7968;
float meas_x;
float aviso;
void DoMeasureXYZ() {
meas_x = read_adc(); // Measure X_out
}
void WriteX(float wr_x) {
if (wr_x < 0) {
lcd_gotoxy(1,1);
lcd_putc("-");
wr_x = -wr_x;
}
lcd_gotoxy(1,2);
printf(lcd_putc,"%f",wr_x);
}
void Read_Angles() {
double div_x, x_rad;
DoMeasureXYZ();
//Aquí están mis rutinas de medición de ángulos
WriteX(x);
if (x>=aviso)
{output_high(PIN_C4);}
else
{output_low(PIN_C4);}
}
void Control_Aviso(){
if (input(PIN_C1))
{aviso=6;}
if (input(PIN_C2))
{aviso=11;}
if (input(PIN_C3))
{aviso=16;}
}
void main()
{
lcd_init();
port_b_pullups(TRUE);
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_DIV_8);
set_adc_channel(0);
delay_us(20);
lcd_putc("\f");
while(1){
Control_Aviso();
Read_Angles();
delay_ms(500);
}
}
Todo funciona correctamente salvo que cuando modifico la entrada de tensión a las patillas la variable aviso tarda unos 20 segundos en cambiar. ¿Cúal es el motivo?
Si apago y enciendo el circuito funciona inmediatamente. Pero me gustaría que el cambio de tensión en las patillas C1,C2,C3 surgiera efecto en la variable aviso casi de manera inmediata.
Saludos y muchas gracias.