Autor Tema: Problema con un control para un sensor de alcohol  (Leído 2123 veces)

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

Desconectado Xavier25

  • PIC10
  • *
  • Mensajes: 12
Problema con un control para un sensor de alcohol
« en: 19 de Julio de 2008, 22:02:37 »
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,  :mrgreen:

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: Problema con un control para un sensor de alcohol
« Respuesta #1 en: 21 de Julio de 2008, 10:40:32 »
Debe ser que tus llamadas a subrutinas sobrepasan a 8 y la pila se desborda por eso el programa ya no sabe a donde regresar, reordena tus "call    Subrutina", tal vez tengas en el programa principal menos de 8 pero si estas usando interrupciones, esa es una llamada mas y si dentro del RSI tienes mas llamadas esas tambien debes contarlas.

Sobre el problema de la recepción de datos seguro falta configurar algo en el programa de la PC tal vez solo recibe caracteres ascii busca una opción que te permita recibir en Hexa o decimal o como mejor se te acomode.

Javicho.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Problema con un control para un sensor de alcohol
« Respuesta #2 en: 21 de Julio de 2008, 12:18:31 »
Hola Xavier, lo primero que note, es que intentas hacer un promedio, de una lectura de 8 bits, con un registro de 8 bit  :mrgreen:

Imagina que ingreso el dato 230, al sumar 230, ya supera un byte!!!!

por otro lado, si transmites un byte, por logica, te llegara un solo caracter...

tendras que pasar o descomponer el dato a centena, decena y unidad, (bin2dec)
luego, en la comunicación, cada numero decimal, tendras que sumarle 30h para que se transmita como ASCII  :mrgreen:

Un abrazo

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado Xavier25

  • PIC10
  • *
  • Mensajes: 12
Re: Problema con un control para un sensor de alcohol
« Respuesta #3 en: 21 de Julio de 2008, 15:36:34 »
Que tal amigos, gracias por sus respuestas, era lo que necesitaba saber, yo que creia que ya habia terminado  :? , en fin, voy a arreglar eso de la comunicacion y probare los resultados con una sola muestra mientras reviso las llamadas a las rutinas, gracias de nuevo. Saludos  :lol: