incorporo esa directiva pero sigo con los errores: he aqui el codigo
coloco #int_rtcc ò #int_timer0
//////////////////////////////////////////////////////////////////////////////////
#include <16f887.h> //pic a utilizar
#device *=16 ADC=10;
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#use fast_io(B)
#use rs232(baud=9600,parity=N, xmit=PIN_C6, rcv=PIN_C7,bits=8,) //manejo del RS232
#include <24256.c> //libreria eeprom 24LC256
#include <lcdflex.c>
#include <STDLIB.H>
#include <ds1307.c>
#byte trisb=0x86
#byte portb=0x06
#byte option_reg=0x81
////////////////////DECLARACION DE VARIABLES GLOBALES
long i;
int dir=0;
boolean menu; //si menu=0 se muestra el menu de inicio...
//void rs232 (void);
int temp=0;
int adress1=0;
float const resoluc=5.0/1024.0;
unsigned int16 rref=0;
long value=0;
float vref=0;
float tvolt=0;
int min,hr,sec,day,mth,year,dow;
//////////////////// FUNCION INTERRUPCION///////////////////////////////
#int_rda
void rs232()
{
char digito; //...variables
digito=getc( ); //almaceno dato serial(rs232) en digito
puts("****************************************************" );
switch(digito){
case '0':
menu=!menu; //muestra menu
break;
//case '1': puts("opcion 1 ");
// puts("Configurando Reloj" ); //llena memoria 0xff
// puts(" Configurado!" );
// break;
case '2':
lcd_gotoxy(1,1);
printf(lcd_putc,"enviando datos ",);
adress1=0;
for(i=0; i<=0x7fff;i++)
{
printf("Byte %lu=%2u\n\r",i,read_ext_eeprom(adress1++));
}
puts ("fin de lectura");
break;
case '3':
setup_adc(ADC_CLOCK_INTERNAL);
set_tris_a(0xff);
lcd_init();
delay_ms(6);
while(TRUE)
{
//configuro puerto B PinB0 como salida
bit_clear(option_reg,7); // habilitacion de pull-up
bit_clear(trisb,0); // B0 como salida
bit_clear(portb,0); // apago señalizacion
//configuro conversor para lectura analogica
setup_adc_ports( 0x0000); //configuro al conversor entre VSS y VDD
set_adc_channel(3); //para leer el canal 3
rref=read_adc();
setup_adc_ports(0x1000);//configuro al conversor entre vss y vref
set_adc_channel(4); //para leer el canal 4 del sensor
// configuro rtc
ds1307_init(DS1307_ALL_DISABLED);
ds1307_init(DS1307_OUT_ENABLED | DS1307_OUT_1_HZ);
ds1307_set_date_time(day,mth,year,dow,hr,min,sec);
ds1307_set_date_time(23,01,10,4,18,10,0);
while(TRUE)
{
value=read_adc();
//calculos
vref=rref*resoluc;
//tvolt=valor*resoluc;
tvolt=value*vref/1024;
temp=(tvolt*1000-500)/10;
/////////////////se lee rtc
delay_ms(10);
ds1307_get_date(day,mth,year,dow); /// se obtiene la fecha
ds1307_get_time(hr,min,sec); /// se obtiene la hora
//////////////escribo las variables en la ext eprom
write_ext_eeprom (dir++,value);
write_ext_eeprom (dir++,(value>>
);
write_ext_eeprom (dir++,hr);
write_ext_eeprom (dir++,min);
write_ext_eeprom (dir++,day);
write_ext_eeprom (dir++,mth);
///////////////////////////////visualizacion
delay_ms(100);
lcd_gotoxy(1,1);
printf(lcd_putc,"%02d/%02d/%02d ",day,mth,year);// por lcd fecha
//printf(lcd_putc,"vref:%2.1f ",vref);
lcd_gotoxy(11,1);
printf(lcd_putc,"uv:");
lcd_gotoxy(1,2);
//printf(lcd_putc,"tvolt: %f ",tvolt);
printf(lcd_putc,"%02d:%02d:%02d ",hr,min,sec); // por lcd hora
lcd_gotoxy(11,2);
printf(lcd_putc,"T: %2.0d ",temp);
printf("%2.0d \n\r",temp);// A la pc hiperterminal
//printf("%2.0lu\n\r",value);
if(dir==0x7fff) dir=0;
}
}
break;
// funcion de la interrupcion
#int_timer0 //la siguiente función tiene que ser la de interrupción del TMR0
void timer0_isr(void) //function interrupción TMR0
{
bit_set(portb,0); //enciendo led
delay_ms (100); // retardo
bit_clear(portb,0); //apagp led
set_TIMER0(0xF1); //inicializa el timer
}
///////////////////////////////////PROGRAMA PRINCIPAL///////////////////////
void main(void)
{
//configuro interrupcion por tmr0
setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_4);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
set_TIMER0(0xF1); //inicializa el timer0
//el bucle infinito es necesario ya que si el micro entra en sleep
//desactiva la interrupción del TMR0
lcd_init();
delay_ms(6);
lcd_gotoxy(1,1);
printf(lcd_putc,"select menu PC",);
disable_interrupts (global);
enable_interrupts(int_rda); //activo interrupcion serial rs-232
enable_interrupts(global); //habilito la interrupcion
// init_ext_eeprom( );
do{ //bucle...
puts(" ");
puts("Lectura/Escritura de EEPROM 24LC256");
puts("==============================================" );
puts("Seleccione opcion:" );
puts("-------------------------------------" );
puts(" 0->Ver opciones" );
//puts(" 1->Configurar reloj" );
puts(" 2->Lectura EEPROM" );
puts(" 3->Sensado y Escritura de variable" );
//puts(" 4->Escritura en EEPROM" ); //...principal
menu=1; //muestra menu solamente una vez
while(menu==1){ } //espera tecla pulsada por teclado(rs-232)
} while(TRUE); //...infinito
}