Hola amigos del foro ,buenas noches . el circuito que intento realizar ,consiste en un
timer que se apague automáticamente después de haberlo configurado externamente ya sea con un potenciómetro o una serie de botones fijos que establezcan los tiempos . puse la interrupción externa por RB0 por el cual prendo y apago el Timer0 (por medio de dos botones o swich). Configure el timer0 ,para que diera 500us de cada ciclo . Este con un contador dentro de la interrupción del Timer0 llega a 1" . en el ciclo de apagado es más corto que el de prendido .
quisiera que este timer se apague después de un tiempo determinado externamente .
#include <16f628a.h>
#FUSES XT,NOWDT,NOMCLR
#use delay(clock=4000000)
#use standard_io(b)
int i ;
#int_EXT
void part(){
output_toggle(PIN_B7);
disable_interrupts(INT_TIMER0);
for(i=0;i<3;i++){disable_interrupts(INT_TIMER0); // este no funciona }
}
int16 contador=0;
#int_timer0
void timer0(i){
contador ++;
if(contador == 10000) {
output_low(PIN_A0);
contador =0 ; }
else
if(contador == 2000 ) {
output_high(PIN_A0);
}
set_timer0(131);
}
void main(){
set_tris_b(0x01);//configura el puerto b como salidas menos el puerto b0
output_high(pin_b7);//pin b7 comineza como encendido
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
set_timer0(131);
enable_interrupts(INT_TIMER0);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
while(TRUE){
if(input(pin_b1)==0){enable_interrupts(INT_TIMER0);
delay_ms(10);
output_high(pin_b7);// se activa,después de apagado,el timer0 con b1
}
}
}