TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: soymoe en 13 de Julio de 2011, 17:50:49

Título: Generar una entrada aleatoria en el puerto del PIC
Publicado por: soymoe en 13 de Julio de 2011, 17:50:49
Mi idea es hacer una especie de juego y necesito generar salidas aleatoria en el puerto del PIC cada cierto tiempo. Por eso yo pensaba generar entradas aleatorias en un pin de entrada y en funcion de eso, determinar la salida. Como lo podria hacer?
Título: Re: Generar una entrada aleatoria en el puerto del PIC
Publicado por: rivale en 13 de Julio de 2011, 17:54:50
en que estas programando?, en CCS existe una funcion RAND(), te genera numeros enteros pseudoaleatorios, podrias sacar este numero por el puerto que quieras.

Título: Re: Generar una entrada aleatoria en el puerto del PIC
Publicado por: RICHI777 en 14 de Julio de 2011, 12:03:09
Hola el problema con la función RAND es que deterministica, normalmente siempre empieza con el mismo valor, te pego un link a algo que se conoce como true random number generator

http://www.cryogenius.com/hardware/rng/

Saludos !
Título: Re: Generar una entrada aleatoria en el puerto del PIC
Publicado por: jhozate en 14 de Julio de 2011, 13:21:40
tambien podrias usar el valor del timer
Título: Re: Generar una entrada aleatoria en el puerto del PIC
Publicado por: rivale en 14 de Julio de 2011, 13:29:13
tambien podrias usar el valor del timer

esa es muy buena idea, pudes leer el valor del timer en cuanto necesites una lectura aleatoria, usa el timer0 que siempre esta contando
Título: Re: Generar una entrada aleatoria en el puerto del PIC
Publicado por: soymoe en 14 de Julio de 2011, 16:44:16
Estoy programando en ASM. Eso de usar el valor del TIMER es una buena idea, quisas funcione. Lo voy a implementar a ver que resulta. gracias.
Título: Re: Generar una entrada aleatoria en el puerto del PIC
Publicado por: MerLiNz en 09 de Septiembre de 2011, 17:15:11
para que rand no te genere siempre el mismo valor puedes hacer un srand, por ejemplo:

srand(get_rtcc());