Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

17/12/2014 #1


Como hacer Reset PIC16F887 por Software?
Hola, tengo un problema necesito Resetear un PIC16F887 pero por software, como tengo que hacer tienen algunas lineas asi veo como es?

Lo que pasa es que entre a una subrutina en el pic y si hago break; parea salir vuelve al main, pero no desde el principio del main sino dentro del bucle While. y yo lo que necesito es que se ejecute desde el principio el main o sino hacer un reset por software por eso pregunto lo del reset, si tienen alguna manera que se ejecute el main desde el principio o hacer un reset cualquiera de las dos me sirve.

Muuchas gracias.
17/12/2014 #2

Avatar de papirrin

ya revisaste la instruccion goto
17/12/2014 #3

Avatar de Daniel Meza

Será mejor pongas tu código para dar una solución "más elegante", así como así un "semi-reset" para zafarte del lazo no parece muy bueno.
Saludos
17/12/2014 #4


yo hacia con poner la instruccion goto 00 pero creo no es la mejor solucion pues cuando simulaba mi matriz de leds me aprarecian muchos warning pero en la realidad funcionaba muy bien
17/12/2014 #5

Avatar de Nuyel

Si es en C podrías emplear alguna bandera para romper el while donde entraste y salir a otra sección del programa, he usado eso en varias ocasiones. Para darte una buena solución hay que ver el código, quizás hasta reorganizar un poco tu lógica para que se pueda adaptar.
18/12/2014 #6
Moderador

Avatar de D@rkbytes

dcsalg dijo: Ver Mensaje
Lo que pasa es que entre a una subrutina en el pic y si hago break; parea salir vuelve al main, pero no desde el principio del main sino dentro del bucle While. y yo lo que necesito es que se ejecute desde el principio el main o si no, hacer un reset por software, por eso pregunto lo del reset, si tienen alguna manera que se ejecute el main desde el principio o hacer un reset cualquiera de las dos me sirve.
Estaría bien ver tu código para saber que hacer, pero si necesitas regresar a la posición 0x00 (Vector de reset), lo puedes hacer de éstas maneras:

La forma sencilla que a muchos no les gusta:
  • Usar un GOTO
  • En PIC C Compiler existe la instrucción RESET_CPU() (En los PIC16 hace un goto a la posición 0x00)
La forma elegante:
  • Llevar el contador de programa (PCL) a 0 y establecer un RETURN
21/12/2014 #7


ahi lo arregle de una manera sencilla cuando volvia de la subrutina, el paso siguiente escribi un goto a una llama afuera del while del programa main y listo. El Reset_CPU esta bueno lastima que solo lo tienen los serie 18 de los pic. Muchas gracias a todos es el foro que mas me ayuda siempre este. Saludos y Felices Fiestas
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.