Amigos: estoy tratando de hacer andar la placa de control de un motor de cc con encoder.
encuentro que despues de haber dejado ok la parte de sensado de posicion del encoder,cuando quiero habilitar la interrupcion del timer 2 para el pwm del motor , el programa se muere.
tengo esto: (es un pic16f873)
void ini( )
{
setup_adc_ports (AN0);
setup_adc (ADC_CLOCK_DIV_32);
setup_spi (FALSE);
setup_timer_0 ( RTCC_INTERNAL | RTCC_DIV_16 ) ;
setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_8 ) ;
setup_timer_2 ( T2_DIV_BY_1, 250, 3 ) ;
setup_ccp1 ( CCP_PWM );
setup_ccp2 ( CCP_PWM ) ;
setup_comparator (NC_NC_NC_NC);
setup_vref (FALSE);
porta= 0b00000000; trisa= 0b11000001;
portb= 0b00000000; trisb= 0b11000001;
portc= 0b00000000; trisc= 0b10010000;
set_pwm1_duty (0);
enable_interrupts (INT_RB); // ENCODER
enable_interrupts (INT_RDA); //recepcion de datos serie
enable_interrupts (INT_RTCC); // 524 ms AUTOAPAGADO
enable_interrupts (INT_EXT);
enable_interrupts (INT_TIMER2); // PWM 1 Y 2
enable_interrupts (GLOBAL);
si dejo el enable_interrupt de rb y de rda ,va bien. Si agrego el timer 2 se pudre todo. Alguna ayuda por favor...