hola,AconranTF ,encontre esta rutina
#include<16f628A.h>
#Fuses xt,nowdt,NOPROTECT, PUT, NOLVP,MCLR
#use delay(clock=4000000)
#use fast_io(b)
#BYTE PORTB = 0X86
#BIT RB0 = 0x06.0
#BIT RB7 = 0x06.7
int16 contador=0;
#int_timer1
int1 start=0; //Bandera de arranque del temporizador
//Coloca aqui la rutina de interrupcion del RB0
#int_EXT
void EXT_isr(void){
If (start){
RB7=1;
}
}
void TIMER1_isr(void)
{
if(start) //Si activado temporizador
output_bit(PIN_B7,1); //Inicia con el led encendido
{
contador++;
if(contador==2000) //Si llega al final del tiempo
{
output_bit(PIN_B7,0); //Apaga el led
contador=0;
start=0; //Desactiva el temporizador
}
}
}
void main()
{
set_tris_b (0b00000001); //Puerto B como salidas bits de 1 a 7, el 0 es entrada
ext_int_edge(L_TO_H); // activacion flanco de subida ,aunque por default es por flanco de subida .
setup_timer_1(RTCC_INTERNAL| RTCC_DIV_4);
set_timer1(192);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
while(1)
{
}
}
parece funcionar todavia no lo probe con el circuito por lo meno no produce desbordamiento por pila en el proteus .
De todas maneras me gustarìa ver estudiar el tema pero no hay bibliografia donde estudiar
este caso en particular . donde? se conseguiria estas paginas para estudiar ,consegui hacer una alarma por sencilla con la entrada RB0/INT pero no puede en el caso de la alarma enlazar el timer1