Autor Tema: Como puedo manejar un numero mayor a 255 en un pic16f877a  (Leído 4989 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado cyberman123

  • PIC10
  • *
  • Mensajes: 7
Como puedo manejar un numero mayor a 255 en un pic16f877a
« en: 06 de Junio de 2010, 10:42:42 »
Hola a todos...

estuve buscando en el foro y la verdad no encontre nada puntual sobre el tema... el problema es el siguiente: estoy haciendo una especie de juego en el que el jugador escoje el puntaje maximo y va jugando turnos sumando puntajes... el juego se acaba hasta que el puntaje del jugador alcanza el puntaje maximo que el mismo escojio con anterioridad... el problema radica en que el puntaje puede ser desde 0 hasta 999, pero como ya saben el pic 16f877a trabaja con registros de 8 bits por lo tanto no puedo trabajar con numeros mayores a 255...

tenia una idea de separar los numeros en centena, decenas y unidades... pero no me sirvio porque solo podria separar numeros menores a 8 bits...

cualquier informacion que tengan o ejemplos me ayudaria mucho...

he buscado y solo encuentro informacion parecida pero en asm, y se casi nada sobre assembler

Gracias de antemano  ;-)

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Como puedo manejar un numero mayor a 255 en un pic16f877a
« Respuesta #1 en: 06 de Junio de 2010, 11:21:04 »
En que lenguaje? Si es C, declara la variable como long
El papel lo aguanta todo

Desconectado cyberman123

  • PIC10
  • *
  • Mensajes: 7
Re: Como puedo manejar un numero mayor a 255 en un pic16f877a
« Respuesta #2 en: 06 de Junio de 2010, 12:10:22 »
Oye muchas gracias me solucionaste el problema.. y si, si es C... habia puesto el mensaje en el foro de C pero lo movieron para aca...

De casualidad sabes como funciona eso??... porq los registros son de 8 bits, como es posible manejar mas de 8??

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Como puedo manejar un numero mayor a 255 en un pic16f877a
« Respuesta #3 en: 06 de Junio de 2010, 12:22:24 »
Hola.

Lo que se hace es concatenar los registros.
El papel lo aguanta todo

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Como puedo manejar un numero mayor a 255 en un pic16f877a
« Respuesta #4 en: 06 de Junio de 2010, 12:42:20 »
imagino que concatenando registro es la forma que maneja los long internamente el C, no me he puesto a investigar eso.

De todas formas, se me ocurre que es un manera simple y eficientes usar dos registros, y podrias tener cuenta hasta 16 bit, poco mas de 65000 para el puntaje.

Como haces esto?, inicias ambos contadores (registros) a 0, empiezas a contar en el registro bajo, desde 0 a 255, cuando este llega a 256, lo que haces es incrementar el siguiente registro en uno y inicias la cuenta nuevamente en el registro bajo, hasta que se sobrecargue nuevamente e incrementas el registro alto, asi sucesivamente.
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Como puedo manejar un numero mayor a 255 en un pic16f877a
« Respuesta #5 en: 06 de Junio de 2010, 12:48:20 »
Si willy, así se hace en ASM y es lo que hace C en registros de 8 bit.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Como puedo manejar un numero mayor a 255 en un pic16f877a
« Respuesta #6 en: 06 de Junio de 2010, 13:01:20 »
Oye muchas gracias me solucionaste el problema.. y si, si es C... habia puesto el mensaje en el foro de C pero lo movieron para aca...

De casualidad sabes como funciona eso??... porq los registros son de 8 bits, como es posible manejar mas de 8??

Disculpa, yo lo moví. Tu primer mensaje hablaba sólo de ASM y asumí que quedaría mejor en otro lado. Ahora mismo lo regreso al subforo de C.

Desconectado cyberman123

  • PIC10
  • *
  • Mensajes: 7
Re: Como puedo manejar un numero mayor a 255 en un pic16f877a
« Respuesta #7 en: 11 de Junio de 2010, 00:03:15 »
Oye muchas gracias me solucionaste el problema.. y si, si es C... habia puesto el mensaje en el foro de C pero lo movieron para aca...

De casualidad sabes como funciona eso??... porq los registros son de 8 bits, como es posible manejar mas de 8??

Disculpa, yo lo moví. Tu primer mensaje hablaba sólo de ASM y asumí que quedaría mejor en otro lado. Ahora mismo lo regreso al subforo de C.

No te preocupes migsantiago... y muchas gracias por ayudarme con esto, me estaba matando la cabeza pensando la forma de incrementar el registro alto cuando se debordara el bajo, siendo que solo se necesitaba definir una variable de tipo long


 

anything