TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jfmateos2 en 24 de Enero de 2008, 07:43:56
-
He definito el contenido de la eeprom en CCS mediante:
#rom 0xf00000={25,0,0,0,0,0,11,250,1,251,60,61,62,63,64,64,251,254,10,10,251,60,61,62,63,64,64,251,248}
Pero cuando muestro la EEPROM en MPlab 8 aparece esto, es decir, hay un byte 00 entre cada 2 bytes que yo he definido. Esto provoca que el programa no se depure correctamente.
(http://img444.imageshack.us/img444/6491/eeprompr1.th.jpg) (http://img444.imageshack.us/my.php?image=eeprompr1.jpg)
¿Por qué ocurre esto?
PD: Estoy usando un 18F2455 y la eeprom se muestra correctamente en WinPIC800
Gracias
-
Parece ser que mplab reconoce cada valor de #rom como un dato de 16 bits, y por eso introduce el byte nulo, según deduzco de lo siguiente que encontré en el foro de CCS.
The problem you are having is because of the relationship between the output file, and the actual _word_ layout in the PIC. The PIC18 is a 16bit processor. The two successive bytes in the output file, actually correspond to the top and bottom bytes of a single output _word_. The #rom directive allows you to write words. Hence to put the values so that they appear in the successive output file locations, requires the definitions to be reformatted into words instead of bytes. Hence:
#ROM 0xF00000={0x0201,0x0403}
will put the four characters into the successive output locations.
Ahora la pregunta es:
¿Existe alguna opción en MPlab, similar a la que tiene WinPIC800, para que los valores de #rom se interpreten como datos de 8 bits.
Si no existe me va a tocar reescribir un montón de código.
-
Resuelto (parcialmente):
En lugar de usar simplemente
#rom 0xffffff ={...}
utilizo
#rom int8 0xffffff ={...}
y así puedo definir los datos de #rom mediante bytes en lugar de dobles-bytes.
De este modo MPlab lo reconoce correctamente, pero en WinPIC hay que hacer la siguiente modificación:
Configuración>Software>Hex: Desactivar la casilla Archivos .HEX -> Datos 18Fxxx dirección * 2
-
Veo que tú te lo guisas y tú te lo comes.
Quería comentarte lo de la opción de Winpic pero ya la has descubierto. Yo también me estuve comiendo el coco mucho rato con eso.
-
No conocia esa opcion de la instruccion #ROM !!! :shock: :shock:
-
¿tendrá relación con esto?
http://www.todopic.com.ar/foros/index.php?topic=16561.msg109401#msg109401
http://www.todopic.com.ar/foros/index.php?topic=15208.msg109430#msg109430
(aplicado en asm)