Hola Mariano_pic,
He visto varias cosas...
No conocía la instrucción Struct, pero me tomo buena nota.
Has usado ORG con una posición inicial y una final, pero ¿has calculado cuanto ocupaba o lo has puesto a ojo?
Sales de las interrupciones con un return, es por costumbre del ASM o hay que salir así. Yo no termino con la instrucción retur.
Simplemente termino la funcioón y solo regresa. puede que ahí esté la cuestión del retorno....
Para que tengas una idea de lo que quiero hacer... quiero capturar una señal de llamada de un telefonillo, el mío es digital y se comunica con una central por una línea analógica para el audio y otra digital para las instrucciones.
Había pensado en capturar los diferentes bits contando el tiempo entre flancos y por eso uso la interrupción exterior y la del tmr0, que me hace de contador y de limitador de tiempo de un bit a la vez (si se desborda es que hemos sobrepasado el tiempo de un bit).
Estoy simulandolo en el Mplab, pero me hace cosas muy raras.... por ejemplo, el TMR0, el FSR, el INTCON... me aparecen como palabras de 16 bits en los valores binarios y cuando ejecuto un "enable_interrupts(global), no me pone a uno el bit 7 de intcon... algo me está fallando.
Ahora he puesto otro programa, pero tengo que aprender a manejarlo... y eso me llevará algún tiempo, aunque he encontrado unos cursos que valen sus bits en oro...
Saludos