TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: sebastian 100 en 07 de Agosto de 2011, 01:56:37

Título: Como se usa correctamente la directiva #ROM???
Publicado por: sebastian 100 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!!












Título: Re: Como se usa correctamente la directiva #ROM???
Publicado por: Suky 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!
Título: Re: Como se usa correctamente la directiva #ROM???
Publicado por: sebastian 100 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
Título: Re: Como se usa correctamente la directiva #ROM???
Publicado por: MGLSOFT 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 (http://ww1.microchip.com/downloads/en/DeviceDoc/41397B.pdf)