Hola, otra vez por ayudarme, verdaderamente lo necesitaba
haber estoy intentadolo ahora, he añadido la libreria de kbd.c
entonces antes de while, e añadido el codigo que me has pasado, y e definido arriba float rT=0;
con esto antes de emepzar a medir la temperatura ya defino los valores maximos y minimos?? o solo uno de ellos
ando un poco verde la verdad en el tema del teclado
te adjunto las modificaciones:
#include <16f876A.h>
#device ADC=10
#fuses NOPROTECT,NOCPD,NOLVP,NOWDT,XT
#use fast_io (A)
#use fast_io (B)
//#use fast_io (C)
#use delay(clock=4000000)
#include <lcd2.c>
#include <ds1820.h>
#include <kbd.c>float minimo;
float maximo;
float rT=0;void main()
{
lcd_init();
delay_ms(100);
SETUP_ADC_PORTS(NO_ANALOGS);
set_tris_a(0x3F);
set_tris_b(0x00);
lcd_gotoxy(1,1);
printf(lcd_putc,"Control de temp.\n");
printf(lcd_putc,"de un motor c.c");
delay_ms(5000);
lcd_enviar(LCD_COMANDO,LCD_CLEAR);
printf(lcd_putc,"\fIntroduzca SP\n");
Tecla_pulsada();
rT=Valor_introducido ();
printf(lcd_putc,"\f SP = %f",rT);
delay_ms(1000); while (1)
{
DS18S20_Convert_T(); //Obtiene la temperatura del DS18S20
Temp=make16(DS18S20_Buffer[1],DS18S20_Buffer[0]);//Lee el valor de 16 bits de la temperatura
if(bit_test(DS18S20_Buffer[1],7)) //Si es negativo...
{
Temp=~Temp+1; //Complementa a 2
Temperatura=Temp*-0.5; //Ajusta la parte fracionaria
}
else
Temperatura=Temp*0.5; //Ajusta la parte fraccionaria
lcd_enviar(LCD_COMANDO,LCD_CLEAR);
lcd_gotoxy(1,1);
printf(lcd_putc,"TEMP: %3.1f ", temperatura);
lcd_putc(223);
lcd_putc("C ");
lcd_gotoxy(1,2);
if (temperatura<=minimo)
{
printf(lcd_putc,"Frio! Calentando");
output_high(PIN_C5);
output_low(PIN_C6);
output_low(PIN_C7);
}
else if (temperatura>=maximo)
{
printf(lcd_putc,"Caliente!Enfriar");
output_low(PIN_C5);
output_high(PIN_C6);
output_low(PIN_C7);
}
else
{
printf(lcd_putc,"Temperatura OK ");
output_low(PIN_C5);
output_low(PIN_C6);
output_high(PIN_C7);
}
}
}
Me funciona todo como quiero, pero kiero añadirle lo de las funciones del teclado para no tener que cargar el programa para cambiar los valores minimos y maximos
un saludo gracias