Autor Tema: contar mas alla de 255  (Leído 5259 veces)

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

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: contar mas alla de 255
« Respuesta #15 en: 18 de Septiembre de 2007, 13:06:20 »
El truco seria el siguiente:
Llevas la cuenta hasta 9999 dentro de la variable de tipo Word, una vez que llegas a ese valor sumas un uno en otra variable de tipo Byte y pones la variable de tipo Word en cero.
Si bien malutilizas ambas variables, con la variable Byte en 99 y la variable Word en 9999 tendras una cuenta hasta 999999, es decir un millon de conteos.
El unico problema es que debes comparar y tomar decisiones con rutinas creadas a tal fin... :mrgreen:

El resultado de esa operación no es 999999, si no 989901 que es igual al producto de 99*9999.

Por otra parte dependiendo del compilador de basic y del pic tendremos otras variables como dword y float que permitirian llegar hasta valores más altos.

Un saludo

* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: contar mas alla de 255
« Respuesta #16 en: 18 de Septiembre de 2007, 13:57:20 »
Creo que no leiste bien el texto que puse.
Alli nunca hablo de multiplicar esos valores, sino de usarlos en diferentes variables...
Si quieres representarlos en un display deberas sacar el valor BCD de cada digito por separado y enviarlo al digito correspondiente de tu display, hasta alli es lo mismo hacerlo con solo una variable del tipo float (te recuerdo que por norma IEC la variable Float tiene 4 Bytes) que con tres Bytes (uno que contiene hasta 99 en decimal y dos que hacen una word que contienen hasta 9999 en decimal).
Para representar hasta 999999 precisas 6 digitos, PBP creo que traia la conversion a BCD hasta el quinto digito.
Para mostrar en el display necesitas solo dos para mostrar 99 y cuatro mas para mostrar 9999.

Ahora se entendio?? :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: contar mas alla de 255
« Respuesta #17 en: 18 de Septiembre de 2007, 14:15:53 »
Haber, si cuentas 9999 en una variable y repites ese conteo 99 veces el resultado es 9999*99 = 989901, por simple lógica. Para que diera lo más parecido a lo que tu dices abria que contar en una variable hasta 10000 y en la segunda 100 veces, entonces daría 10000*100 = 1000000 que es el valor más proximo a 999999.

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: contar mas alla de 255
« Respuesta #18 en: 18 de Septiembre de 2007, 17:21:29 »
Para representar hasta 999999 precisas 6 digitos, PBP creo que traia la conversion a BCD hasta el quinto digito.
Para mostrar en el display necesitas solo dos para mostrar 99 y cuatro mas para mostrar 9999.

Algo así era, utilizando el modificador DIG del PBP.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: contar mas alla de 255
« Respuesta #19 en: 18 de Septiembre de 2007, 21:35:36 »
Haber, si cuentas 9999 en una variable y repites ese conteo 99 veces el resultado es 9999*99 = 989901, por simple lógica. Para que diera lo más parecido a lo que tu dices abria que contar en una variable hasta 10000 y en la segunda 100 veces, entonces daría 10000*100 = 1000000 que es el valor más proximo a 999999.

Un saludo.

Bueno, bueno!!
Tienes razon en tu cuenta, lo que yo no dije es que el rollover se produce al encontrar el numero superior a 99 o 9999, que como dices tu es 100 o 10000.
O me exprese mal o fue malinterpretada mi idea, en cualquier caso gracias por corregirme!!
 :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: contar mas alla de 255
« Respuesta #20 en: 19 de Septiembre de 2007, 09:44:00 »
Gracias a tí por tu idea y aporte, la idea es buena, de echo es la´única posible en el caso de utilizar solo variables de tipo word,  lo que yo queria era hacer notar la diferencia entre lo marcado y lo contado.

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús


 

anything