#include <18F2550.h>
#fuses PLL1,CPUDIV1,NOUSBDIV,HSPLL,NOFCMEN,NOIESO,NOPUT
#fuses BROWNOUT,NOWDT,NOPBADEN,NOMCLR,NOSTVREN,NOPROTECT,NOLVP,NODEBUG
#fuses NOXINST,NOCPB,NOWRT,NOWRTC,NOWRTB,NOWRTD,NOEBTR,NOEBTRB,NOVREGEN
#use delay(clock = 48000000)
#use rs232(baud = 9600, xmit=PIN_C6, rcv=PIN_C7)
#use fast_io(a)
#use fast_io(B)
#use fast_io(C)
#byte porta = 5
#byte portb = 6
#byte portc = 7
#include "internal_eeprom.c"
int1 flag_timer0; ///INDICA DESBORDE DE TIMER0
int1 pulso_1 = 0; ///PARA SEÑALAR ACTIVACION DE SALIDA DE PULSO_1
int1 pulso_2 = 0; ///PARA SEÑALAR ACTIVACION DE SALIDA DE PULSO_2
int1 pulso_3 = 0; ///PARA SEÑALAR ACTIVACION DE SALIDA DE PULSO_3
int1 estado_1 = 1; ///PARA SABER EL ESTADO ANTERIOR DE PULSO_1
int1 estado_2 = 1; ///PARA SABER EL ESTADO ANTERIOR DE PULSO_2
int1 estado_3 = 1; ///PARA SABER EL ESTADO ANTERIOR DE PULSO_3
int1 salidas = 0; ///PARA SEÑALAR ACTIVACION DE SALIDAS EN GENERAL
int8 byte_0; ///BYTE PARA RECEPCION SERIAL
int8 byte_1; ///BYTE PARA RECEPCION SERIAL
int8 byte_2; ///BYTE PARA RECEPCION SERIAL
int8 byte_3; ///BYTE PARA RECEPCION SERIAL
int8 byte_4; ///BYTE PARA RECEPCION SERIAL
int8 byte_5; ///BYTE PARA RECEPCION SERIAL
int8 byte_6; ///BYTE PARA RECEPCION SERIAL
int8 byte_7; ///BYTE PARA RECEPCION SERIAL
int8 nivel = 1; ///INDICA LA PAUSA ACTIVA
int16 pausa_1 = 0; ///VALOR DE PAUSAS DENTRO DEL CONTEO
int16 pausa_2 = 0; ///VALOR DE PAUSA DE FINAL DEL CONTEO
int16 pausa_3 = 0; ///VALOR DE PULSO DE SALIDA EN OTRO PIN DESPUES DE CONTEO
int16 conteo = 0; ///GUARDA EL VALOR DE PULSOS A CONTAR
int16 reconteo = 0; ///PARA CONTAR CUANTOS PULSOS VAN
int16 conteo_1 = 0; ///PARA CONTAR CUANTO TIEMPO VA DENTRO DEL PULSO_1
int16 conteo_3 = 0; ///PARA CONTAR CUANTO TIEMPO VA DENTRO DEL PULSO_3
#INT_RDA
void serial (void)
{
disable_interrupts(INT_RTCC);
byte_7 = byte_6;
byte_6 = byte_5;
byte_5 = byte_4;
byte_4 = byte_3;
byte_3 = byte_2;
byte_2 = byte_1;
byte_1 = byte_0;
putchar(byte_0
); ///RETORNO LO RECIBIDO if (byte_0 == 13)
{
////otro codigo
}
enable_interrupts(INT_RTCC);
}
#INT_RTCC
void timer_0 (void)
{
set_timer0(64383); ///100 MICROSEGUNDOS EXACTOS 64336
//set_timer0(65459); ///10 MICROSEGUNDOS EXACTOS 65416
flag_timer0 = 1;
}
void main()
{
set_tris_a (0);
set_tris_b (0);
set_tris_c (0x80);
setup_timer_0 (RTCC_INTERNAL|RTCC_DIV_1);
port_b_pullups(true);
disable_interrupts(int_timer1);
disable_interrupts(int_timer2);
disable_interrupts(int_timer3);
disable_interrupts(int_ext);
disable_interrupts(int_ext1);
disable_interrupts(int_ext2);
disable_interrupts(int_rb);
disable_interrupts(int_ad);
disable_interrupts(int_tbe);
disable_interrupts(int_ssp);
disable_interrupts(int_ccp1);
disable_interrupts(int_ccp2);
disable_interrupts(int_buscol);
disable_interrupts(int_lowvolt);
disable_interrupts(int_comp);
disable_interrupts(int_eeprom);
disable_interrupts(int_oscf);
disable_interrupts(int_usb);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_spi(FALSE);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_RTCC);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
pausa_1 = read_int16_eeprom(0);
pausa_2 = read_int16_eeprom(2);
pausa_3 = read_int16_eeprom(4);
conteo = read_int16_eeprom(6);
delay_ms(200);
printf("HOLA MUNDO CRUEL!!!\n\r"); do
{
}
while(true);
}