Autor Tema: Control de Timer1  (Leído 2249 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado MexaTronko

  • PIC10
  • *
  • Mensajes: 38
Control de Timer1
« en: 26 de Abril de 2012, 20:05:54 »
Hola estoy haciendo un programa para "controlar" el timer1 pero no funciona, espero que me puedan ayudar, lo que quiero hacer es que cuando el RB1 este en "0" y RB2 este en "1" se active la interrupción del timer1 y genere un tiempo, cuando RB1 este en "1" y RB2 este en "0" la interrupción del timer1 se desactive. Adjunto el codigo para me puedan decir mi error. Gracias.


#include <16F886.H>       
#fuses HS, NOWDT, NOLVP, PUT, MCLR
#use delay( clock = 4M )
#byte port_B = 0x06

int Cont = 0;

#int_TIMER1
void templs( void )
   {
      Cont++;
     
      if( Cont == 100 )
         {
            output_high( PIN_B3 );
         }
      else if( Cont == 200 )
         {
            output_low( PIN_B3 );
            Cont = 0;
         }
      set_timer1( 15536 );
   }

void main( void )
    {
      set_tris_B( 0x06 );
     
      setup_timer_1( T1_INTERNAL | T1_DIV_BY_2 );
      set_timer1( 15536 );
     
      disable_interrupts( INT_TIMER1 );
      enable_interrupts( GLOBAL );
     
      while( 1 )
         {
            if( PIN_B1 == 0 & PIN_B2 == 1 )
               {
                  set_timer1( 15536 );
                  enable_interrupts( INT_TIMER1 );
               }
            else if( PIN_B1 == 1 & PIN_B2 == 0 )
               {
                  disable_interrupts( INT_TIMER1 );
               }
         }
    }

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Control de Timer1
« Respuesta #1 en: 26 de Abril de 2012, 22:23:03 »
El tema no va en este subforo, algun administrador te lo cambiara de lugar.

tienes un error de sintaxis en tus ifs, para verificar 2 condiciones se usan 2 &&, asi como lo tienes el compilador debe marcarte warnings
"Nada es imposible, no si puedes imaginarlo"


 

anything