TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fr4n en 13 de Octubre de 2011, 12:02:59

Título: Módulo CCP ¿PWM o comparador?
Publicado por: fr4n en 13 de Octubre de 2011, 12:02:59
Hola a todos, estoy usando un PIC 18F4550. Programo en C usando CCS.
Uso un cristal externo de 20Mhz, pero mi sistema funciona a 48Mhz (mediante trasformaciones PLL)

Necesito crear una salida que sea un tren de pulsos, pero cada pulso puede tener distinta frecuencia (periodo) y distinto ancho de pulso. Es del orden de los us (microsegundos).
Por ejemplo la señal puede ser:
nivel alto (3us), nivel bajo (2us), nivel alto (8us), nivel bajo (5us), etc...

¿Como puedo general una señal así?
He buscado información en el foro y demás y he visto que con módulo CCP, se pueden conseguir cosas similares, pero en modo PWM tiene la frecuencia (periodo) fija y solo se puede variar el ancho del pulso, por lo que pienso que no me puede valer.
¿Alguien tiene alguna idea?

Muchas gracias!

Título: Re: Módulo CCP ¿PWM o comparador?
Publicado por: jeremylf en 13 de Octubre de 2011, 18:40:03
No te valdria...

output_high(PIN_XY);
delay_us(3);
output_low(PIN_XY);
delay_us(2);
.
.
.

¿?

Porcierto, el modo comparador del modulo CPP no te servira para eso.
Título: Re: Módulo CCP ¿PWM o comparador?
Publicado por: fr4n en 15 de Octubre de 2011, 08:14:00
La cosa es que queria prescindir de hacerlo así, pero gracias igualmente!
Título: Re: Módulo CCP ¿PWM o comparador?
Publicado por: AngelGris en 15 de Octubre de 2011, 11:47:14
  Podés utilizar el timer1 que genere interrupción cada tiempo que necesites y cuando se genera y atendes la interrupción cambias el estado del pin y a su vez actualizas al nuevo valor de tiempo deseado. y así podés cambiar tanto el tiempo que permanece en alto como el tiempo que permanece en bajo.

  Deberías tener dos variables globales, una que te de el tiempo en alto y otra que te de el tiempo en bajo.
Título: Re: Módulo CCP ¿PWM o comparador?
Publicado por: fr4n en 17 de Octubre de 2011, 05:18:30
Exactamente algo asi queria hacer. Gracias!

Saludos!