TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: xvladx en 08 de Enero de 2011, 13:26:32

Título: generar pulsos muy cortos con PIC
Publicado por: xvladx en 08 de Enero de 2011, 13:26:32
Amigos, tengo una duda muy grande sobre la generacion de pulsos con PIC. Es posible generar pulsos o un tren de pulsos de 1 a 2 micro segundos de ancho? SI es posible, como se logra?
Muchas gracias a todos!
Título: Re: generar pulsos muy cortos con PIC
Publicado por: bigluis en 08 de Enero de 2011, 23:33:52
Para generar un pulso lo mas simple es poner el pin correspondiente en alto, dar un retardo y finalmente ponerlo en bajo. El ancho minimo de los pulsos depende de la frecuencia de oscilacion, es decir, si tu Fosc es 4MHz entonces el periodo de cada instruccion es de 1us, por lo tanto el retardo minimo que pudes lograr es de 1us.

En el codigo siguiente muestro el pulso de 1us para Fosc=4MHz.
Código: [Seleccionar]
set_tris_b(0);
output_high(PIN_B0);
output_low(PIN_B0);

En el codigo siguiente muestro el pulso de 1us para Fosc=20MHz.
Código: [Seleccionar]
set_tris_b(0);
output_high(PIN_B0);
delay_us(1);
output_low(PIN_B0);

Para que ambos codigos funcionen correctamente debes declarar #use fast_io(B) al inicio del programa, de lo contrario el pulso durara un poco mas, posiblemente unos 3us.

El codigo es para el compilador PIC C de CCS.

Es sumamente dificil controlar el tiempo de cada instruccion en los lenguajes de alto nivel como C y como Basic, por lo cual para estos casos resulta mejor utilizar lenguaje ensamblador, ya que esto te permite controlar cada instruccion.