• Domingo 29 de Septiembre de 2024, 03:31

Autor Tema:  Generador Pulsos Con Pic16f873a  (Leído 1808 veces)

KumaN

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Generador Pulsos Con Pic16f873a
« en: Lunes 11 de Abril de 2005, 12:31 »
0
Hola a todos, vereis: tengo que recibir datos de un sensor de humedad, que solo puede ser exitado durante 40 milisegundos. A ver si me dais alguna idea de como hacer que el pic genere pulsos de 40 ms. A cada pulso se hace una lectura, es decir se pone un pin a 1 para excitar el sensor y se recibe la lectura del sensor por otro pin. Gracias de antemano por las ideas. Si alguien tuviera un codigo en asm ya hecho para esto me seria muy util, gracias otra vez.

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Generador Pulsos Con Pic16f873a
« Respuesta #1 en: Miércoles 13 de Abril de 2005, 16:08 »
0
Holas, lo que solicitas es posible utilizando el Modulo Timer (TMRx) del pic que utilices.. podrias decirme que pic trabajas? .. tengo unos codigos que trabajan con tiempos e interrupciones, dejame localizarlos y te los paso. Saludos y Bienvenido!! :D
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

yohju

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Generador Pulsos Con Pic16f873a
« Respuesta #2 en: Jueves 28 de Abril de 2005, 12:06 »
0
Uysh, wenas.

Yo te podria pasar el codigo en C... si te sirve... lo tengo por aqui guardado tambien ^^U Ademas para ese mismo PIC te sirviria tal cual...

De todas formas hacerlo no es muy complicado, tienes que jugar, como dice jonathan, con la interrupcion de un Timer para contar los 40ms.

Te intento explicar como lo solucione yo para una practica que tuve que hacer:

- Configuraba el Timer2 para que generase un overflow y su correspondiente interrupcion, cada 16 tics de reloj.
- Sabes que cada tic corresponde a x microsegundos ( depende del reloj del sistema )
- Asi, cada vez que salte la interrupcion del Timer2 habran pasado 16x microsegundos.
- Tu vas "contando" interrupciones hasta que sumen los 40ms y entonces activas un flag.

En el proceso principal haces que:

- Se ponga el pin que va al sensor a 1
- Habilitas la interrupcion del timer2 y lo arrancas desde 0
- Vas comprobando el flag ( con una variable de 1bit basta ): cuando se active significa que han pasado 40ms.
- Pones el pin del sensor a 0
- Deshabilitas la interrupcion del timer2


SEGURAMENTE, no sea la mejor solucion... pero bueno, a mi me funciono xD

Un saludo,

Hector