Autor Tema: Salto a etiqueta fuera de subrutina, se puede?  (Leído 661 veces)

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

Desconectado ledfacil

  • PIC12
  • **
  • Mensajes: 51
    • ★LEDFACIL★
Salto a etiqueta fuera de subrutina, se puede?
« 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!

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3578
    • Impresiones en 3D
Re:Salto a etiqueta fuera de subrutina, se puede?
« Respuesta #1 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.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3722
Re:Salto a etiqueta fuera de subrutina, se puede?
« Respuesta #2 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.
« Última modificación: 11 de Mayo de 2021, 16:55:01 por Fer_TACA »
Todos los días se aprende algo nuevo.


 

anything