TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: CamiloPayanene en 03 de Octubre de 2018, 22:27:00

Título: Divisor de frecuencia PICF184550
Publicado por: CamiloPayanene en 03 de Octubre de 2018, 22:27:00
Hola amigos,

Me piden leer el pin A0 ( ingresará una frecuencia X) y está tiene que ser dividída y mostrar la nueva señal dividida por el puerto Rb0, en resumen necesito saber qué tengo que hacer, puedo usar el timer0- Prescaler, como hago para leer el pin específico y después mostrarlo por otro pin específico.

La pregunta en teoría me dice así:
Realice un divisor de frecuencia qué, por cada dos ciclos que ingresen al sistema(Ra0) salga un solo ciclo(RB0)

NOTA: SI ME PUEDEN AYUDAR CON UN CODIGO EN PIC C O CSS SE LOS AGRADECERÍA MUCHO.
Título: Re:Divisor de frecuencia PICF184550
Publicado por: KILLERJC en 03 de Octubre de 2018, 22:38:18
El pin A0 tiene las funciones de :

- Puerto digital
- Entrada analogica

Ninguna que afecte al timer, por lo tanto la unica forma de realizar lo que pedis es leer la entrada y cambiar la salida.

Supongamos que cambiamos en los flancos de bajada tu programa quedaria algo asi:


while(1){
  Espero flanco de bajada
  Espero flanco de bajada
  Cambio estado de la salida
}

Cambiar el estado de la salida es usar el output toggle, esperar los flancos de bajada vas a tener que esperar que tengas un 1, luego esperar un 0 el RA0, y ahi ocurrio el flanco de bajada, si tenes que cada 2 ciclos en RA0 sale 1 , entonce esperas 2 flancos y luego cambias la salida.
Título: Re:Divisor de frecuencia PICF184550
Publicado por: Robert76 en 07 de Octubre de 2018, 23:06:40
Hola, hay varias maneras de hacerlo. Pero básicamente, es hacer un TOGGLE a la salida.
En C, puedes usar la función output_toggle(pin_XX); en XX , se indica puerto y número.
Título: Re:Divisor de frecuencia PICF184550
Publicado por: KILLERJC en 08 de Octubre de 2018, 07:29:23
Este es el tercer mensaje tuyo pidiendo EXACTAMENTE lo mismo, me parece que lo que queres es que te lo hagan. Se te respondio 2 veces ya:

http://www.todopic.com.ar/foros/index.php?topic=49073.msg407542#msg407542
http://www.todopic.com.ar/foros/index.php?topic=49059.msg407388#msg407388

En el ultimo link casi que te dije como lo tenias que hacer, casi que te hago el programa. Por que son unicamente 5 instrucciones. cuatro while y un output_toggle y listo. Espero que sea el ultimo mensaje pidiendo exactamente lo mismo.

EDIT: Gracias por unir los temas.