Que tal compañeros, de nuevo solicito su ayuda, esta vez solo necesito que me ayuden a corregir un programa, ya lo he terminado pero no realiza bien unas funciones y tengo algunas dudas. El objetivo de este proyecto es la de controlar un sensor de vapor de alcohol mediante una señal PWM, que solo se puede variar con un potenciometro del 20 al 80% del total de los 10 segundos que debe durar, al final del estado en alto (o al activar un interruptor, aun no decido) debe realizar una recolecion de 100 muestras, de la señal del sensor para luego sacar un promedio y despues enviarlo por el puerto serie a la PC para visualizar el resultado en la hyperterminal. El problema aparece en el calculo del promedio, despues de que realiza el muestreo sale el error de "Stack underflow executing RETURN instruction" y es justamente donde empieza la rutina de division que es esta parte:
divisor ; Rutina que realiza el promedio de las 100 muestras ----------------
clrf RESUL ;limpiar resultado anterior
movf Lectura,W ;La suma de las 100 muestras a W
movwf RESTO ;W a registro
restar
movlw d'100'
subwf RESTO,W
btfss STATUS,C
return
movwf RESTO
incf RESUL,F
goto restar
return

Y ese es principalmente el problema, la duda ahora es con el envio de datos por el puerto serie, omiti la parte del divisor por que no sabia si funcionaba la transmicion pero al parecer funciona bien, pero cuando envia la informacion aparece un solo caracter, y quisiera saber a que codigo o de que manera manipular para que me de el resultado que debe ser, y tambien si alguien ha hecho un dispositivo como este para saber de que manera utilizo el resultado del sensor para que muestre las ppm debidas, pero les adjunto los archivos para facilitar las cosas, en el diagrama cambié el resultado del sensor por una señal senoidal para que tenga una señal a promediar, pongo tambien el DS del sensor.
Cualquier comentario sera bien recibido, muchas gracias,
