Autor Tema: cantidad de enable_interrupt  (Leído 1491 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
cantidad de enable_interrupt
« en: 31 de Mayo de 2006, 19:06:58 »
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... :lol:

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: cantidad de enable_interrupt
« Respuesta #1 en: 31 de Mayo de 2006, 23:19:00 »
Si quieres puedes habilitar todas las interrupciones que se te ocurran , el tema es que si el período del PWM es muy pequeño (muy grande la frecuencia) se te estará activando todo el tiempo la interrupción del TMR2.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
Re: cantidad de enable_interrupt
« Respuesta #2 en: 01 de Junio de 2006, 07:12:43 »
gracias maunix, mi duda era si tenia un limite en la cantidad de declaracion de enable_interrupt, haora voy a hacer los calculos haber si como vos decis el pwm se come todo el tiempo la capacidad de interrupcion.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: cantidad de enable_interrupt
« Respuesta #3 en: 01 de Junio de 2006, 12:44:27 »
gracias maunix, mi duda era si tenia un limite en la cantidad de declaracion de enable_interrupt, haora voy a hacer los calculos haber si como vos decis el pwm se come todo el tiempo la capacidad de interrupcion.

Asi es, precisamente a eso apuntaba mi post anterior.  :)
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything