Autor Tema: caracteres al azar en un lcd ?  (Leído 2430 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado Halcon_de_Fuego

  • PIC12
  • **
  • Mensajes: 61
caracteres al azar en un lcd ?
« en: 09 de Noviembre de 2010, 20:13:54 »
Hola es posible mostrar caracteres al azar en un lcd ? como ?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: caracteres al azar en un lcd ?
« Respuesta #1 en: 09 de Noviembre de 2010, 20:26:24 »
Hola es posible mostrar caracteres al azar en un lcd ? como ?
Puedes generar un numero aleatorio, y realizar un lcd_putc(Valorrand);



Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Halcon_de_Fuego

  • PIC12
  • **
  • Mensajes: 61
Re: caracteres al azar en un lcd ?
« Respuesta #2 en: 09 de Noviembre de 2010, 20:39:22 »
por ejemplo tengo esto

Código: [Seleccionar]
   if (contadorSegundos == 59)
      {
      lcd_gotoxy(1,3);
   lcd_send_byte(1,0b00101000);

si quiero hacerlo con una variable la defino pero con que sentencia la ago aleatoria ?? probe con random pero no existe en ccs ? :D

saludos !!

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: caracteres al azar en un lcd ?
« Respuesta #3 en: 09 de Noviembre de 2010, 20:42:47 »
por ejemplo tengo esto

Código: [Seleccionar]
   if (contadorSegundos == 59)
      {
      lcd_gotoxy(1,3);
   lcd_send_byte(1,0b00101000);

si quiero hacerlo con una variable la defino pero con que sentencia la ago aleatoria ?? probe con random pero no existe en ccs ? :D

saludos !!

Hola, CCS sí cuenta con generador pseudo random. Checa el manual de usuario.

Desconectado Halcon_de_Fuego

  • PIC12
  • **
  • Mensajes: 61
Re: caracteres al azar en un lcd ?
« Respuesta #4 en: 09 de Noviembre de 2010, 20:48:02 »
Haaa ?!?! gracias !! ya lo veo y lo ago  :-/ !!

Desconectado Halcon_de_Fuego

  • PIC12
  • **
  • Mensajes: 61
Re: caracteres al azar en un lcd ?
« Respuesta #5 en: 09 de Noviembre de 2010, 23:11:12 »
porque no puedo encontrar la sentencia random en el manual que aparece en la web ? ademas no tengo un manual en el ide del ccs  :5] :5] :5] :5] :5] :5] :5] :5] :5]

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: caracteres al azar en un lcd ?
« Respuesta #6 en: 09 de Noviembre de 2010, 23:13:31 »
 :mrgreen: Apreta F1 en el IDE de CCS, y colocar Rand  :mrgreen:


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: caracteres al azar en un lcd ?
« Respuesta #7 en: 10 de Noviembre de 2010, 10:51:22 »
porque no puedo encontrar la sentencia random en el manual que aparece en la web ? ademas no tengo un manual en el ide del ccs  :5] :5] :5] :5] :5] :5] :5] :5] :5]

Entonces descárgalo de www.ccsinfo.com

Desconectado Halcon_de_Fuego

  • PIC12
  • **
  • Mensajes: 61
Re: caracteres al azar en un lcd ?
« Respuesta #8 en: 10 de Noviembre de 2010, 19:53:21 »
 :5] :5]  :x haaaaaaaaaa !!!!!!! me gua volve locooooooooo !!!! no entiendo nada que es una semilla y porque se usa y no se porque no es mas facil tener una funcion que aga el random en vez de un pseudo random ??????????

yo tengo esto y siempre entra con el mismo caracter !!!!!!!  :5] :5]

Código: [Seleccionar]
   {if (contadorSegundos == 59)
      {
     
   srand(100);
   I=rand();
   
   lcd_gotoxy(1,3);
   lcd_putc(I);

 :5] :5]

Desconectado Halcon_de_Fuego

  • PIC12
  • **
  • Mensajes: 61
Re: caracteres al azar en un lcd ?
« Respuesta #9 en: 10 de Noviembre de 2010, 19:57:43 »
se me ocurre usar los datos de la fecha y hora y sacar algun numero aleatorio en la semilla pero no tengo la mas palida idea de como se hace esto !  :5] :x :5] :x

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: caracteres al azar en un lcd ?
« Respuesta #10 en: 10 de Noviembre de 2010, 20:20:02 »
se me ocurre usar los datos de la fecha y hora y sacar algun numero aleatorio en la semilla pero no tengo la mas palida idea de como se hace esto !  :5] :x :5] :x

Cuando plantas un número random sólo debes usar una semilla. No la replantes cada que entras.

Desconectado Halcon_de_Fuego

  • PIC12
  • **
  • Mensajes: 61
Re: caracteres al azar en un lcd ?
« Respuesta #11 en: 10 de Noviembre de 2010, 20:28:21 »
encontre esto:


Aunque esté en formato código,tienes que desactivar la opción "usa caretos".
He probado a incluir la librería stdlib.h para no tener que implementar la función rand() en el código y no me da error.
La función rand() realiza una serie de pasos matemáticos para llegar a un resultado considerado "aleatorio".Estos pasos parten del valor de una variable "semilla"(_Randseed).Si esta semilla tiene siempre el mismo valor,obtendrás una secuencia de aleatorios que se repetirá de forma consecutiva.Para variar el valor de esta semilla se usa la función srand(semilla),también incluída en la librería,por lo que se me ocurre que cambies el valor de la semilla antes de cada llamada a rand().Podrías conseguirlo por ejemplo asignándole a la semilla el valor de alguna de las dos variables de control que usasen los bucles "for",que en cada iteración tendrían un valor diferente.Puede que tampoco fuese del todo aleatorio,pero la repetición de secuencias sería en menor grado.
Podrías intentar que los caracteres de las dos cadenas se fueran descubriendo tb de forma aleatoria,así quedaría más chulo.
Podría servir crear un array de enteros(ya que de booleanas no se puede) de igual longitud a tus cadenas que te indicase que carácter está descubierto y que carácter no lo está.Así en cada una de las iteraciones que descubren caracteres de la cadena,llamas a rand() para que te devuelva una posición de la cadena,compruebas si ya está destapada,y si no lo está la descubres.

La implementación de rand() y srand() podría ser algo asi:

    Codigo:

Código: [Seleccionar]
    #define RAND_MAX 255

    #define LONG_CADENA 14



    unsigned int32 semilla = 1;





    long rand(unsigned int maximo)

    {

       semilla = semilla * 1103515245 + 12345;

       return ((unsigned long)(semilla >> 16) % maximo);

    }





    void srand(unsigned int32 seed)

    {

       semilla = seed;

    }
 


y está en http://todopic.mforos.com/46840/2307248-microcursillo-en-c/?pag=5

es correcto con lo que tú dices ?

gracias por responder !

saludos

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: caracteres al azar en un lcd ?
« Respuesta #12 en: 10 de Noviembre de 2010, 22:01:05 »
y no se puede solo hacer la captura del timer0 y presentar el hexadecimal y ya?
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado Halcon_de_Fuego

  • PIC12
  • **
  • Mensajes: 61
Re: caracteres al azar en un lcd ?
« Respuesta #13 en: 10 de Noviembre de 2010, 22:12:21 »
si eso estoy haciendo ! y bue ... me voy a conformar con eso hasta que entienda mejor como funciona el bendito rand y srand  :5]
pasa que no queria hacerlo asi porque me muestra los mismos valores  desde el comienzo ! pero como es algo que mucho no me importa lo voy a dejar asi y no me voy a obsesionar con eso ! .

saludos !!  :-/


 

anything