TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: chingolo en 30 de Junio de 2010, 16:01:07
-
hola, en el programa que describo abajo quisiera hacer unas preguntas:
int1 si lo incremento ++ va cambiando 0-1-0-1-0-1
en la funcion del timer yo anulo la carga del timer "set_timer1 (3036);" y el timer sigue funcionando , puede ser esto posible???? o es error del proteus.
********************************************************************************************************
#include <16f876.h>
#fuses XT,NOWDT
#use delay(clock=4000000)
#use standard_io(b)
int1 cont=0;
#int_TIMER1 //Interrupción Timer1
void temp1s(void) //Función
{
if (cont==1) output_toggle(PIN_B1); //Cada 2 interrupciones de 0.5s
set_timer1 (3036); //recarga del TMR1
cont++;
}
main ()
{
setup_timer_1 (T1_INTERNAL | T1_DIV_BY_8);
set_timer1 (3036); //recarga del TMR1
enable_interrupts(INT_TIMER1); //habilita interrupcion timer1
enable_interrupts(global); //habilita interrupción general
while(1)
{
};
}
-
Hola, a la pregunta que si incrementando con ++ una variable int1 cambia de estado, la respuesta es si. Para hacer que el timer no funcione, debes colocar una instrucción como: "setup_timer_1(T1_DISABLED);" seguida de "disable_interrupts(INT_TIMER1);", ya que si simplemente quitas la instrucción "set_timer1 (3036);" el timer seguira funcionando y comenzará su conteo desde 0.
Un saludo!