Autor Tema: Regreso de una interrupcion a un punto especifico  (Leído 2106 veces)

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

Desconectado aiwa_7

  • PIC10
  • *
  • Mensajes: 44
Regreso de una interrupcion a un punto especifico
« en: 24 de Diciembre de 2009, 15:50:47 »
Que tal...  :-/ :-/ :-/

Me encuentro trabajando en un proyecto desde hace ya varios meses, y algunos problemitas que se me han
presentado en este espacio me han dado sugerencias que me fueron de utilidad.
En esta ocacion, trabajo con un 18f452 y tengo un inconveniente con la interupcion externa, o planteandolo
de una mejor manera, la interrupcion en si no es el problema, dado que esta trabaja perfectamente, la
cuestion aqui es que necesito que saliendo de la interrupcion el proceso comience de nuevo desde el punto
inicial del main program, independientemente de en que punto salio a la interrupcion.
Alguien tiene alguna solucion o sugerencia para esto, o saben si al menos esto es posible :D????

Les agradesco la ayuda de antemano... Saludos.... :)

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Regreso de una interrupcion a un punto especifico
« Respuesta #1 en: 24 de Diciembre de 2009, 16:12:27 »
Hola.

Que compilador?
Codigo de la interrupcion?

Con mas informacion es mas facil ayudarte.

Saludos
El papel lo aguanta todo

Desconectado aiwa_7

  • PIC10
  • *
  • Mensajes: 44
Re: Regreso de una interrupcion a un punto especifico
« Respuesta #2 en: 24 de Diciembre de 2009, 16:34:13 »
Ok, comprendo...
mira estoy programando en C, especificamente
el compilador es el CCS, y pues el codigo no se si siga siendo muy
necesario, dado que es un tanto extenso, solo entro en el main, y
de hay uso la instruccion inicialmente de while(true){
ext_int_edge( L_TO_H ); para de ahi seguir con el proceso
repetitivo, la intencion era que una vez terminada la interrupcion
regresase a este punto inicial de alguna manera.
Gracias y si el codigo fuera aun indispensable pues podria ver la
forma de extraer la secciones importantes... saludos

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Regreso de una interrupcion a un punto especifico
« Respuesta #3 en: 24 de Diciembre de 2009, 16:47:27 »
Hola.

Si usas CCS, automaticamente va a volver a la linea de codigo donde estaba antes de que se generara la interrupcion.

La configuracion de ext_int_edge( L_TO_H ); debe hacerse fuera del bucle while(true){ }

Si quieres que inicie en un punto especifico del codigo, debes asignar alguna bandera dentro de la interrupcion y ya en el programa principal asignarla al sitio donde quieras que vaya, o simplemente usar la funcion reset_cpu();.

Saludos
El papel lo aguanta todo

Desconectado aiwa_7

  • PIC10
  • *
  • Mensajes: 44
Re: Regreso de una interrupcion a un punto especifico
« Respuesta #4 en: 24 de Diciembre de 2009, 17:50:12 »
A perfecto... oye una pregunta mas, cuando mencionas
el uso de banderas, es simplemete el poner alguna
variable de control o algo asi??? tendras algun ejemplito
donde hubieras utilizado un arreglo similar??? ... gracias...

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Regreso de una interrupcion a un punto especifico
« Respuesta #5 en: 24 de Diciembre de 2009, 20:18:55 »
creo que en general, en la programacion del pic no se ha de poder ir a un punto especifico al retornar de la interrupcion porque sino se desbordaria la pila esperando volver al lugar en donde estaba justo cuando ocurrio la interrupcion, lo que se puede hacer empezar de cero como lo dijo MLO o utilizar un flag
Citar
#int_ext
int_ext isr (void)
{
flag=1;
}

//en el main
main()
{
if(flag==1)
  {
  flag=0; //actualizas el flag
   //lo que quieras hacer
  }
}
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA


 

anything