Autor Tema: problemas con interrupciones con el pic 16f873a  (Leído 2364 veces)

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

Desconectado esteban_pic

  • PIC10
  • *
  • Mensajes: 21
problemas con interrupciones con el pic 16f873a
« en: 29 de Agosto de 2011, 19:32:28 »
Hola!! Buenos días a todos!!!   Lo que quiero hacer es trabajar con un motor paso a paso (es unipolar) manejado por un pic 16f873a, conecto el motor al pic mediante un unl2803 y lo hago funcionar sin problemas, el motor gira a voluntad mia sea en centido horario o antihorario, ese fue mi primer paso.

Ahora quise dar el segundo paso, prendo el pic y el motor comienza a girar en determinado sentido, luego  mediante el pin rb0 quiero llamar a una interrupcion y que esta interrucion me haga invertir el giro del motor, o sea cada ves que pulso el pulsador que coloque en el rb0 el motor invierta su giro.

Pero el problema que tengo es que al llamar a la interrupción el motor deja de girar directamente y en general queda en trabado en su giro por su cupla de retencion al no dejar de dar señal a las bobinas el pic.


Les dejo el código, el circuito en si funciona, pero me rompi la cabesa viendo como solucionar el tema de la interrupción y ya no se que mas hacer!!! y el tiempo me corre y no logro avansar creanme que e buscado en el manual del pic y realizado muchas pruevas y no logro el cometido, asique les agradeceria su ayuda!!!! algun detalle se me deve pasar por alto!!

                                                                                                                                                                                  gracias por su ayuda!!!    :-/

aca va el codigo:

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: problemas con interrupciones con el pic 16f873a
« Respuesta #1 en: 29 de Agosto de 2011, 22:27:54 »
  Puede ser que el problema se deba a que antes de salir de la interrupción, tenés que borrar el flag de quien produjo la interrupción . Eso lo tenés que hacer justo antes de la instrucción retfie. También tenés que deshabilitar las interrupciones cuando ingresas en el vector, para evitar que se genere otra mientras estás atendiendo la actual.

  Sería algo así...

Código: ASM
  1. org 0x04 ; vector de interrupcion
  2.  
  3.    bcf INTCON,GIE; deshabilitar las interrupciones
  4.    btfss giro,7
  5.    goto uno
  6.    bcf giro,7
  7.    goto afuera
  8. uno bsf giro,7
  9.  
  10. afuera
  11.  
  12.    bcf INTCON, INTF
  13.  
  14. retfie

  No te preocupes de haberlas deshabilitado, la instrucción retfie, sale rehabilitando las interrupciones.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado esteban_pic

  • PIC10
  • *
  • Mensajes: 21
Re: problemas con interrupciones con el pic 16f873a
« Respuesta #2 en: 30 de Agosto de 2011, 23:37:09 »
Gracias!!! ya lo probare