TODOPIC

Microcontroladores PIC => - Niple - => Mensaje iniciado por: ledfacil en 11 de Mayo de 2021, 10:37:37

Título: Salto a etiqueta fuera de subrutina, se puede?
Publicado por: ledfacil en 11 de Mayo de 2021, 10:37:37
Hola! cómo hago un "goto" o salto a una etiqueta o parte de programa que esté fuera de una subrutina donde esté ese "goto"?

No debe ser un "call" ni un "break" porque no necesito retornar a ningún lado, debería ser como un "goto" para poder seguir el programa en determinado punto dentro del principal...

Se puede de algún modo con Niple?

Mi programa hace varias cosas en subrutinas y cada cierto tiempo salta la interrupción por timer interno, cuando sucede esto necesito que el programa salga de la subrutina que se esté ejecutando y vuelva a determinada parte del programa principal... aguardo sugerencias, muchas gracias!
Título: Re:Salto a etiqueta fuera de subrutina, se puede?
Publicado por: Leon Pic en 11 de Mayo de 2021, 14:00:21
Hola. No utilizo nipple así que no se como es, pero para salir de las interrupciones se utiliza la instrucción RETURN.
Ahora bien, si necesita hacer otra cosa, se utilizan banderas a lo largo del programa principal para que haga algo si se activó una interrupción.
Aunque me parece que estás encarando mal la realización del programa.
Título: Re:Salto a etiqueta fuera de subrutina, se puede?
Publicado por: Fer_TACA en 11 de Mayo de 2021, 15:23:34
Rotundamente No se puede.

No he probado, no se si funcionará y no tiene ninguna lógica de programación pero seria probar a:

1º que cuando se active la interrupción del timer interno, se active algún tipo de bandera.
2º Dentro de la subrutina que se está ejecutando, comprobar el estado. Si es el que te interesa sales de la subrutina en curso.
y
3º y esto e lo que no tiene lógica, es colocar después de los bloques de cada subrutina (me imagino que estarán todas dentro del programa principal), otro bloque de volver a comprobar el estado de la bandera y ya en este caso ir a la etiqueta que te interese.

Como ves es una redundancia, sin lógica, pero es lo primero que se me ocurre a bote pronto.

F.