TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: khasistos en 14 de Mayo de 2004, 20:31:00
-
Hola:
Por favor si alguien me explica porque si quiero guardar el dato 1000 (16 bits) en dos posiciones de memoria contigua en lugar de poner 3E8 que es 1000 en hex debo poner E8 03 (59395)???
No le encuentro la logica
Gracias
saludos
khasistos
-
Ops... Parece que los dos tenemos problemas con la memoria...
He estado intentando darle explicación, pero me he quedado como tu...
Tampoco encuentro lógica, al menos de un modo teórico...
-
Yo la verdad es que no tengo ni pito de como usar memorias eeprom, pero yo sí que le encuentro logica al asunto.
Veamos, el numero 1000 es un numero de 16 bits , osea 3E8. Pero al parecer las "celdas" de las memorias son de 8 bits, segun observo... (pues FF es 255). Entonces se sobreentiende, que debes de escribir 03 E8 (y no E8 03) , o sea, lo que estas haciendo es, guardar los 8 bits inferiores en una "celda" y los ocho superiores en otra. Luego para manipular los datos, tan solo deberias de coger los datos de las dos celdas, y juntarlos... Espero haberme explicado correctamente.
saludos!
-
Tu respuesta tiene lógica...
Creo que nuestro problema de entendimiento, está por buscar la lógica decimal...
no la binaria
-
hOLA:
ERROR MI AMIGO ABAGO ,PUES LA CALCULADORA CIENTIFICA RAZONA COMO YO INCLUSO LA DEL WINDOWS,ELLAS PIENSAN EN DECIMAL TAMBIEN ,APARTE ME TOME LA MOLESTIS DE HACER LA CONVERSION A MANO A BINARIO Y LUEGO A HEX Y NO HAY VUELTA ESTAN AL REVEZ EN LAS EEPROM..
SALUDOS
KHASISTOS
-
tenemos dos bytes
el bit0 siempre está a la derecha.
para almecenar 16 bits, usamos dos bytes
dec 1000 -> hex 03 E8
entonces... byte0 03 / byte1 E8
quedaría E803
NO????
en el caso, de almacenar el valor decimal 1000000
dec 1000000 -> hex 0F4240
byte0 0F / byte1 42 / byte2 40
40420F
Sería asi???
-
Hola:
A ver ,03 =11
E8= 11101000
03 E8 =111 1101000
Es correcto Gracias Abago
saludos
khasistos
-
Yo diria que los datos tanto en ram como en eeprom se pueden guardar en el orden que se prefiera , ya que estos los micros trabajan con 8 bits .
Es cosa del compilador que useis que los cambie ó no .
Normalmente pbp(y otros) guarda en la ram el octeto de menos peso en la direccion base que se assigna a este registro y en base+1 el de mas peso por ejemplo de un word .
aa var word : aa =%1111111100000000 : write 0,aa
Es normal encontrar en el registro 0 de la eeprom 00000000 y en el 1 11111111 .
-
Entonces mis deducciones han sido lógicas????

Porque lo único que he hecho, ha sido coger boli y papel, y hacer cuentas, y buscarle la lógica... Y he respondido sin saber a ciencia cierta si mis afirmaciones eran validas...
Gracias sisco por tu aclaración... Me quedo mas tranquilo.
-
hola
GRACIAS A AMBOS ,MIS DUDAS ESTAN ACLARADAS PERFECTAMENTE
UN GRAN SALUDOAMIGOS
AHH NO ME OLVIDE DE LA 2402 SISPIC YA LA VOY A CONSEGIR.....MIL PERDONES RAZONES DE INDOLE PERSONAL ME IMPIDIERON PONERME A PROBAR....
KHASISTOS