Autor Tema: Como se usa correctamente la directiva #ROM???  (Leído 2274 veces)

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

Desconectado sebastian 100

  • PIC12
  • **
  • Mensajes: 58
Como se usa correctamente la directiva #ROM???
« en: 07 de Agosto de 2011, 01:56:37 »
hola gente!!

en esta ocación los molesto por lo siguiente:

estoy haciendo pruebas con un 16F1939 y la eeprom interna, simulando en proteus, ya puedo guardar y leer valores, con eso no tengo problema,
el tema viene cuando quiero que el pic arranque con un valor precargado en una posicion de la eeprom, pongo el ejemplo:

Código: C
  1. if(temp_min!=(READ_EEPROM(25)))
  2.                 {
  3.                         output_high(pin_B3);
  4.                         WRITE_EEPROM(25,temp_min);
  5.                 }      
  6.                 if(temp_max!=(READ_EEPROM(30)))
  7.                 {
  8.                         output_high(pin_B4);
  9.                         WRITE_EEPROM(30,temp_max);
  10.                 }

esta parte funciona perfect, pero no logro que el programa arranque con un valor distinto de 0 en las posiciones 25 y 30
que es lo que hago mal?? 

#ROM 25={3}

esto no carga el valor 3 en la posicion 25?

hace horas que estoy luchando con esto y no logro nada bueno, en todos los ejemplos que vi hasta ahora veo que ponen en la direccion el valor en hexa (0x2100), en este caso
la primera para un 887, sera que un 1939 empieza en otro lugar ?

bueno... espero sus consejos, saludos!!













Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Como se usa correctamente la directiva #ROM???
« Respuesta #1 en: 07 de Agosto de 2011, 12:59:47 »
Los 16F  que tienen eeprom tienen la dirección 0x2100, así que prueba con la misma. Si quieres escribir en la posición 25 coloca:

#ROM 0x2119={3}


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado sebastian 100

  • PIC12
  • **
  • Mensajes: 58
Re: Como se usa correctamente la directiva #ROM???
« Respuesta #2 en: 07 de Agosto de 2011, 23:22:30 »
gracias suky, siempre atento!!

estabas en lo cierto, la unica diferencia es que en los 16F1939 la memoria eeprom comienza en la dirección 0xF000, lo que no entiendo es porque no figura en el datasheet :shock:

me bajé el ultimo winpic y lo saqué de ahi :mrgreen:

saludos

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Como se usa correctamente la directiva #ROM???
« Respuesta #3 en: 08 de Agosto de 2011, 08:27:02 »
Esa información la ponen en las hojas de datos para programación de los micros, están publicadas en su web, junto con la hoja de datos del micro.
Aqui esta lo que digo:
http://ww1.microchip.com/downloads/en/DeviceDoc/41397B.pdf
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.