Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: esteban_pic en 29 de Agosto de 2011, 19:32:28
Título: problemas con interrupciones con el pic 16f873a
Publicado por: esteban_pic 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:
Título: Re: problemas con interrupciones con el pic 16f873a
Publicado por: AngelGris 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
org 0x04; vector de interrupcion
bcf INTCON,GIE; deshabilitar las interrupciones
btfss giro,7
goto uno
bcf giro,7
goto afuera
uno bsf giro,7
afuera
bcf INTCON, INTF
retfie
No te preocupes de haberlas deshabilitado, la instrucción retfie, sale rehabilitando las interrupciones.
Título: Re: problemas con interrupciones con el pic 16f873a
Publicado por: esteban_pic en 30 de Agosto de 2011, 23:37:09