Programación Específica > Microcontroladores
Activar Interrupción Pic16f84
xernovil:
--- Citar ---Si quieres mediante una senal externa reiniciar tu programa desde 0, no te olvides que el micro tiene una pata de reset... este pin esta ahi para usarlo cuando se quiera
--- Fin de la cita ---
Es lo que he ido haciendo mientras no conseguía hacerlo mediante el programa, pero mi idea es aprender a utilizar las interrupciones y saber volver del estado sleep. La verdad es que estoy algo verde todavía en esto, pero espero aprender rápido con vuestros consejos :rolleyes:
Este PIC no será el definitivo que se usará para implementar lo que tengo que hacer, pero he leído por ahí que para aprender es el ideal. He hecho ya varios programas pero lo de las interrupciones se me resiste.
Toph:
xernovil lo que se me ocurre sin pensarlo mucho para poder regresar de la interrupcion es hacer hacer algo asi:
--- Código: Text --- ORG 0x00 goto INICIO ORG 0x04 goto INTERRUPCION ORG 0x05 INICIO: call LUCES;en LUCES iria la rutina donde enciende las luces ETIQ:sleep;despues se duerme hasta que se da la interrupcionnop ;estas instrucciones nop no hacen nada y solo se ponen porque al producirsenop ;una instruccion SLEEP. El microcontrolador Pre-cachea las proximas 2 instrucciones.goto ETIQ; cuando se regresa de la interrupcion caemos aca esto nos hace saltar al modo sleep a esperar otra interrupcion ;aqui en INTERRUPCION INTERRUPCION:BCF INTCON,GIE call LUCESretfie; retorno de interrupcion vuelve a donde estaba el programa cuando ocurrio la interrupcion osea a la instruccion justo despues de sleep
realmente el programa no se vuelve a reiniciar pero pareciese que si, no se si es lo que buscas. :unsure:
--- Cita de: "Huguen_aus_Tirol" ---Tengo que rectificar algo... la instruccion GOTO ocupa una direccion de memoria, necesita dos ciclos para ejecutarse... perdon por la equivocacion :whistling:
--- Fin de la cita ---
:no:, bueno ya quedo aclarado no hay problema :comp:
xernovil:
--- Citar ---realmente el programa no se vuelve a reiniciar pero pareciese que si, no se si es lo que buscas.
--- Fin de la cita ---
Sí, es lo que busco, ahora mismo estoy intentando implementar el código que me has descrito en mi programa, ya que tengo que utilizar otro tipo de instrucciones al programar en C... por el momento no me da error, pero no consigo que salga del estado sleep. Seguiré investigando y haciendo pruebas.
xernovil:
Bueno... he desistido, ya que pienso que lo que no funciona es la interrupción externa de la placa, ya que si lo configuro para que haga la interrupción con el TMR0 si que funciona, me habéis ayudado mucho, gracias a todos y ya os expondré más dudas, jejeje :rolleyes:
Navegación
[*] Página Anterior
Ir a la versión completa