Buenas Tardes Colegas del Foro...
Mi problema es que necesito generar un retardo de un determinado tiempo dentro de un ciclo while(true) el cual al llegar a una temperatura determinada me encienda un led durante un tiempo y después lo apague.
Mi codigo es el siguiente:
#include <16f877.h>
#device adc=10 //Usa resolución de 10 bits.
#use delay(clock=4000000)
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect
#include <lcd.c> //libreria q maneja la lcd 2x16
#use standard_io (D)
FLOAT T1,P1,P9,;//VARIABLES PARA LA LECTURA DE TEMPERATURA
INT16 Q1;//VARIABLE PARA LECTURA DEL ADC
setup_adc (adc_clock_INTERNAL);
setup_adc_ports (RA0_RA1_RA3_ANALOG);
MAIN ()
{
lcd_init(); //Inicia LCD
WHILE (TRUE)
{
set_adc_channel (0); //Elige canal a medir RA0
delay_ms (100);
Q1=read_adc (); //Hace conversión AD
P1=(5.0*(Q1)) / 1024.0;
setup_adc (adc_off); //Apaga ADC
T1=(P1*(100));
lcd_gotoxy(0,2);
lcd_putc(" ");
PRINTF(LCD_PUTC,"V1=%01.2f V2=%01.2f",P1,P9);
delay_ms (1);
lcd_gotoxy(0,1);
lcd_putc(" ");
PRINTF(LCD_PUTC,"T1=%01.0fß T2=%01.0fß",T1);
delay_ms (1);
//Aquí esta mi duda es posible hacer esto para que el led se encienda por un tiempo de 2 segundos y se apague pero que no quede intermitente solo que encienda por un tiempo y se apague totalmente?
if(T1>=35)
{
OUTPUT_HIGH(PIN_D3);
delay_ms(2000)
OUTPUT_low(PIN_D3);
}
//
}
}