TODOPIC

Microcontroladores PIC => - Niple - => Mensaje iniciado por: vesperia en 01 de Febrero de 2012, 14:21:30

Título: Generar pulsos de frecuencias entre 1 y 100 Hz, de ancho de pulso variable
Publicado por: vesperia en 01 de Febrero de 2012, 14:21:30
Hola! Estoy viendo como generar una serie de señales de frecuencia entre 1 y 100 Hz, con ancho de pulso variable entre 0.1 y 1 mS.

Pense en usar un timer interno (TMR_0) para generar una interrupción cada 10 mS y utilizar una serie de contadores, pero el ancho de pulso tendría que estar dentro del ciclo del timer. Otra opción es usar en conjunto series de tiempos por ciclo fijo y variable..

Que me recomiendan?
Título: Re: Generar pulsos de frecuencias entre 1 y 100 Hz, de ancho de pulso variable
Publicado por: MerLiNz en 01 de Febrero de 2012, 14:22:58
No te viene mejor usar el PWM?
Título: Re: Generar pulsos de frecuencias entre 1 y 100 Hz, de ancho de pulso variable
Publicado por: vesperia en 01 de Febrero de 2012, 14:44:33
El tema es q las frecuencias son muy bajas.. Además tanto la frecuencia como el ancho de pulso son seteables por el usuario a través de la interfaz de un gLCD, por lo que estaría obligado a calcular los porcentajes de acuerdo a cada ingreso. Por ejemplo, si el usuario elige 1 Hz y 100 uS tendría un periodo de 1 seg y un ancho de pulso demasiado bajo para el PWM
Título: Re: Generar pulsos de frecuencias entre 1 y 100 Hz, de ancho de pulso variable
Publicado por: BrunoF en 01 de Febrero de 2012, 15:19:17
Hola.

Utilizando dos timers:

Uno que interrumpe según los Hertz seleccionados e inmediatamente pone en alto la pata del pulso, y ahi mísmo enciendes el segundo timer(asociado al ancho de pulso). Cuando termina de interrumpir el segundo timer pones la pata en bajo y esperas a la próxima interrupción del 1er timer.

o bien utilizando sólo 1 timer para los Hertz y demoras para el ancho de pulso seleccionado.

No se que tan dificil será hacerlo en Niple ya que nunca lo he utilizado.
Título: Re: Generar pulsos de frecuencias entre 1 y 100 Hz, de ancho de pulso variable
Publicado por: vesperia en 01 de Febrero de 2012, 15:29:16
Gracias, veré que hago y despues comento!
Título: Re: Generar pulsos de frecuencias entre 1 y 100 Hz, de ancho de pulso variable
Publicado por: henryflash en 01 de Febrero de 2012, 20:36:54
hola, los taimers en niple se los puede configurar con tiempo fijo o por un registro, haciéndolo con registro por ejemplo 0 a 255 ms el tiempo de on y otro registro para el tiempo de off , esto es orientativo pero lo veo muy fácil con los temporizadores, siempre y cuando que el micro se dedique solo a generar los pulsos.
Saludos enrique...
Título: Re: Generar pulsos de frecuencias entre 1 y 100 Hz, de ancho de pulso variable
Publicado por: vesperia en 02 de Febrero de 2012, 12:29:01
Gracias, pero lamentablemente mientras genera la serie de pulsos ademas tiene que refrescar un gLCD, controlar un teclado matricial y varios canales analógicos, y si lo hago solo con lapsos es medio complicado.. Por eso mi idea era usar el TMR_0 como base de tiempo de 10 mS (para la freq de 100 Hz, que es la más baja) y a partir de ahí generar varias bases de tiempo usando la interrupción por TMR. Igual ya va a salir, en cuanto tenga novedades aviso!

De paso, no se si les pasa, pero si quiero mostrar una variable en el gLCD de 128 x 64 que aparezca en justo en medio de la pantalla, el número se corta y aparece el pedazo faltante en el extremo izquierdo (creo q si llega a la columna 64 del chip 0 sigue por la col 0 del mismo chip, en vez de pasar al chip 1). Si están trabajando con un gLCD pueden comprobarlo facilmente mostrando una variable con font_3 (la de 16 x 16) en la col 55.