Autor Tema: como programo la memoria de datos?  (Leído 4512 veces)

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

Desconectado cocu3

  • PIC12
  • **
  • Mensajes: 77
como programo la memoria de datos?
« en: 01 de Febrero de 2008, 13:19:46 »
buen dia, quisiera saber como se prgrama la memoria de datos de los pics, osea como seria la estructura del codico en asemmbler o en ccs :shock:

saluds

Desconectado jfmateos2

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: como programo la memoria de datos?
« Respuesta #1 en: 01 de Febrero de 2008, 19:04:46 »
Hola cocu, en assembler no me atrevo a aconsejarte, pero en CCS C tienes que usar la directiva #ROM. Por ejemplo, en un 18f2455 podrías usar esto
Código: [Seleccionar]
#rom int8 0xf00000={5,0,0,0,0,0,}

Desconectado cocu3

  • PIC12
  • **
  • Mensajes: 77
Re: como programo la memoria de datos?
« Respuesta #2 en: 04 de Febrero de 2008, 18:58:16 »
perdona la ignorancia, con esa linea de codigo lo q estas haciendo es asignar los valores 5,0,0,0,0,0 a seis posiciones de la memoria ubicada en la direccion f00000??? :shock:

saluds

Desconectado jfmateos2

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: como programo la memoria de datos?
« Respuesta #3 en: 04 de Febrero de 2008, 19:23:15 »
Así es cocu, en el 18f2455 la memoria eeprom de datos empieza en la dirección f00000, y lo que hago es guardar el entero 5 en la primera posición, el entero 0 en la posición siguiente y así sucesivamente.

En el caso del 18F ese int8 es importante, pues sino, se asume que quieres guardar un int16, que ocupará dos posiciones consecutivas.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: como programo la memoria de datos?
« Respuesta #4 en: 22 de Febrero de 2008, 18:51:02 »
Epale Cocu... ya te comentaron como se hace en C... jfmateos2 dijo
Citar
en assembler no me atrevo a aconsejarte
yo si me atrevo jejeje... bueno es que trabajé mucho tiempo en assembler antes de pasarme a CCS.. en assembler no más tienes que colocar: "nombre_de_la_variable" equ posición_de_memoria (recuerda que si usas mplab debes colocar 0x delante o h al final del número para indicar que es hexadecimal).
No importa en qué banco esté la variable, lo defines y listo... pero cuando vayas a escribir o leer de esa variable recuerda cambiarte de banco, si no es el 0!

Por ejemplo:
variable_1 equ 20h
variable_2 equ 21h
        .
        .
        .
variable_11 equ 2Ah
variable_12 equ 2Bh
Variable_xx equ 0A0h

etc, etc,etc.... sencillo verdad? Bueno supongo ya lo sabías, pero queda este mensaje por allí por si a alguien se le presenta el mismo problema...  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: como programo la memoria de datos?
« Respuesta #5 en: 22 de Febrero de 2008, 20:44:22 »
Ah que burrada tan grande la mía... no leí lo anterior... la referencia era a la memoria Rom, no Ram...
Muy interesante la forma en que lo haces... yo lo haría con los códigos para escribir en la Rom que sugieren las datasheets... pero parece que tu forma es mejor... gracias! y disculpa!
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado cocu3

  • PIC12
  • **
  • Mensajes: 77
Re: como programo la memoria de datos?
« Respuesta #6 en: 22 de Febrero de 2008, 22:11:50 »
a ver si entendi, quiero guardar 0xAA en la posicion de memoria ROM 0x2100, entonces hago esto en asm:

0xAA org 0x2100


?
?
?

Desconectado amrres

  • PIC10
  • *
  • Mensajes: 1
Re: como programo la memoria de datos?
« Respuesta #7 en: 28 de Mayo de 2008, 04:12:10 »
Hola, alguien me podria decir como se haria en C18?
Os cuento, me estoy iniciando en el mundo de los PIC y necesito adquirir un voltaje analogico y guardarlo en la memoria EEprom de datos (estoy trabajando con un 18f2550)
Lo de la conversion A/D mas o menos lo tengo claro, pero almacenar el dato no.

Gracias y saludos

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: como programo la memoria de datos?
« Respuesta #8 en: 28 de Mayo de 2008, 04:42:03 »
a ver si entendi, quiero guardar 0xAA en la posicion de memoria ROM 0x2100, entonces hago esto en asm:

0xAA org 0x2100


?
?
?

No. Harías:
     org 0x2100
     0xAA,....,....

Y en C18...ni idea! :D Alguno ya te ayudará.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: como programo la memoria de datos?
« Respuesta #9 en: 29 de Mayo de 2008, 19:12:37 »
en ccs con la directiva #locate

ej:

int8 pepe=0x200;
#locate pepe=direccion_ram_disponible

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: como programo la memoria de datos?
« Respuesta #10 en: 30 de Mayo de 2008, 23:36:16 »
Saludos.

.... Por ejemplo, en un 18f2455 podrías usar esto
Código: [Seleccionar]
#rom int8 0xf00000={5,0,0,0,0,0,}

He visto en varios ejemplos del CCS la manera de programar la ROM con los valores que uno quiera, mi pregunta es: el numerito 0xf00000 es el mismo para todos los pic18??? hay unos ejemplos en los que inicia en otro numero, y en el pic 16 es diferente tambien. Como se donde inicia la ROM ??? Revise la datasheet pero no vi la info ( claro que la he pasdado medio de volado  :-) )

Saludos
El papel lo aguanta todo


 

anything