Bueno entre tantas pruebas parece que uno copia y amontona codigo .
Pero entre las pocas cosas que pude aprender se me ocurren cosas que solo saco de la galera .
haber este codigo que no puedo desifrar no es copiado .
#include<16f628A.h>
#Fuses xt,nowdt,NOPROTECT, PUT, NOLVP,MCLR
#use delay(clock=4000000)
#use fast_io(b)
int1 start=0;
int1 starta=0;
int16 contador=0;
#int_ext
void ext_isr()
{
starta=true; // bandera para el TIMI_isr,pruebo haber si selecciona
start=false; //bandera para el TIMER1_isr ,pruebo haber si no selecciona
delay_ms(5);
}
#int_timer1
void TIMER1_isr(void)
{
if(start)//Si activado temporizador
output_bit(PIN_B7,1);//Inicia con el led encendido
{
contador++;
if(contador==100)
{
output_toggle(PIN_B7);
output_bit(PIN_B5,1);
contador=0;
}
}
}
void TIM1_isr(void)
{
if(starta)//Si activado temporizador
output_bit(PIN_B7,0);//Inicia con el led apagado
{
contador++;
if(contador==300) //tiempo mayor
{
output_toggle(PIN_B7);
output_bit(PIN_B5,0);// se apaga al finalizar el conteo
contador=0;
}
}
}
void main() {
set_tris_b (0b00000001);
set_tris_a (0b00000001);//Puerto a como ent
ext_int_edge(0,L_TO_H);//output_low(int_timer1);//Inicia con el led encendido
setup_timer_1(RTCC_INTERNAL| RTCC_DIV_4);
set_timer1(192);
enable_interrupts(INT_EXT);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
while(1);
}
Bueno hasta aqui ,es como volver a empezar de nuevo .