Autor Tema: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)  (Leído 27955 veces)

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


Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #16 en: 01 de Septiembre de 2007, 14:59:44 »
Perdonen mi ignominiosa ignorancia, pero yo pensaba que la directiva #rom solo permitía poner cosas en memoria de programas, será por eso que una vez quise meter unas tablas constantes en memoria de programas, para después leerlas (así puedo meter bos bytes en una loc y con la función de CCS para leer la mem de proga, en los PICs que lo permiten, me ahorraba espacio aunque la aplicación anduviese más lenta)
El muy cabrón del compilador metía las cadenas donde le daba su gana y en la dirección que yo le había puesto, Alguien puede documentar más esta directiva, así salgo yo de mi ignorancia.

Reinier

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #17 en: 01 de Septiembre de 2007, 15:14:09 »
Funciona igual con una zona de la memoria que con otra, depende de la dirección que le pongas.
La 0x2100 es la eeprom de datos.

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #18 en: 01 de Septiembre de 2007, 16:27:38 »
Si, pero como se cual es cada espacio de direcciones, porque si cada espacio de direcciones comienza en un lugar distinto para cada PIC estoy frito, diganme nada más, hay que consultar el datasheet, verdá que sí?


Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #19 en: 01 de Septiembre de 2007, 21:11:47 »
Deberas aplicar RTFM Reiner !!! :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #20 en: 03 de Septiembre de 2007, 20:25:19 »
RTFM Y eso que ostras es, no será algo así como?

Prueba y reprueba, hasta que ande? porque si es así habrá que recordarle a alguien (CCS o Microchip) a su progenitora.

Nada es que me parece muy importante poder hacer eso sin mucho lío.

Gracias de todos modos,

Reinier

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #21 en: 03 de Septiembre de 2007, 22:06:13 »
Es una sigla de una frase Americana Reiner.. :lol: :lol:
Significa lo siguiente:

Read The Fucking Manual !!

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

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #22 en: 03 de Septiembre de 2007, 22:07:00 »
Perdon Reiner, me tente !!! :-) :-) :5} :5}
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #23 en: 03 de Septiembre de 2007, 22:09:40 »
Entre lo ejemplos de CCS hay uno para escribir en la memoria de programa, te lo busco y te lo paso, para que me perdones, je..je.. :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #24 en: 03 de Septiembre de 2007, 22:43:33 »
WRITE_PROGRAM_MEMORY( )

--------------------------------------------------------------------------------

 

Syntax:
 write_program_memory( address, dataptr, count );

 
 
Parameters:
 address is 16 bits on PCM parts and 32 bits on PCH parts.

dataptr is a pointer to one or more bytes count is a 8 bit integer

 
 
Returns:
 undefined

 
 
Function:
 Writes count bytes to program memory from dataptr to address.  This function is most effective when count is a multiple of FLASH_WRITE_SIZE.  Whenever this function is about to write to a location that is a multiple of FLASH_ERASE_SIZE then an erase is performed on the whole block.

 
 
Availability:
 Only devices that allow writes to program memory.

 
 
Requires:
 Nothing

 
 
Examples:
 for(i=0x1000;i<=0x1fff;i++) {

   value=read_adc();   

   write_program_memory(i, value, 2); delay_ms(1000);

}

 
 
Example Files:
 loader.c

 
 
Also See:
 write_program_eeprom, erase_program_eeprom

 
 
Additional Notes:
 Clarification about the functions to write to program memory:

For chips where
getenv(“FLASH_ERASE_SIZE”) > getenv(“FLASH_WRITE_SIZE”)

WRITE_PROGRAM_EEPROM

Writes 2 bytes, does not erase (use ERASE_PROGRAM_EEPROM)

WRITE_PROGRAM_MEMORY

Writes any number of bytes, will erase a block whenever the first (lowest) byte in a block is written to.  If the first address is not the start of a block that block is not erased.

ERASE_PROGRAM_EEPROM

Will erase a block.  The lowest address bits are not used.

For chips where
getenv(“FLASH_ERASE_SIZE”) = (“FLASH_WRITE_SIZE”)

WRITE_PROGRAM_EEPROM

Writes 2 bytes, no erase is needed. 

WRITE_PROGRAM_MEMORY

Writes any number of bytes, bytes outside the range of the write block are not changed.  No erase is needed.

ERASE_PROGRAM_EEPROM

Not available


Ya ves, el ejemplo es loader.c

Espero te sirva Reiner...

 
 
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #25 en: 03 de Septiembre de 2007, 22:46:09 »
Perdon, el ejemplo es EX_Load.c
Loader.c es la libreria... :lol:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #26 en: 04 de Septiembre de 2007, 19:29:15 »
Gracias, eso de la frase está cojonudo, muy bueno.


Y lo mejor es es que luego te haces el santito, JAJAJA, no importa has sido perdonado, es más yo te perdono y exonero de toda culpa..


Saludos

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #27 en: 05 de Septiembre de 2007, 22:38:15 »
Hola muchachos!

Vuelvo a la carga con la preguntonta number 2:

¿Cómo hago pa referirme al byte alto o bajo de una variable int16?

Es decir, ¿cómo hago para escribir o leer los bytes alto/bajo(por separado) de una variable int16 que yo creé?

Ejemplo:

int16 mivar;
int8 alta,baja;

alta = ??....//Necesito que en alta se guarde el valor del byte alto de mivar
baja = ??....//Necesito que en baja se guarde el valor del byte bajo de mivar

Se me ocurren muchas alternativas, pero estoy seguro que tiene que haber alguna instrucción que no requiera de mucho cálculo.

Muchísimas gracias!!!

Saludoss
"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 BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #28 en: 05 de Septiembre de 2007, 22:45:56 »
P.D

baja = mivar

funcionaria para obtener el byte bajo del int16...
"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 Rulo

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 168
Re: Pre-Grabar Datos en EEPROM interna en CCS(PIC 16F876A)
« Respuesta #29 en: 05 de Septiembre de 2007, 22:58:01 »
   

     yo lo hacia asi:


       Alta=(mivar << 8 ) | (mivar >> 8 );


            saludos


 

anything