TODOPIC
Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: MexaTronko 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 );
}
}
}
-
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