TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: virolay en 15 de Agosto de 2016, 05:52:06
-
Hola a todos.
Soy bastante malo programando y a veces se me cruzan los cables y me atasco. A ver si alguien puede ayudarme.
En un programa que he iniciado tengo un montón de variables que pueden adquirir distintos valores según dónde las almacene. Por ejemplo:
a) aASV_STATUS: la declaro como Dim ASV_STATUS as Byte y, naturalmente, puede variar durante la ejecución.
b) eASV_STATUS: este es el valor por defecto inicial que está almacenado en la EEPROM utilizando la sentencia eASV_READY EData 6 y que recupero utilizando aASV_STATUS = eRead eASV_STATUS. Esto me funciona y me ahorro una variable pero no sé si es un procedimiento ortodoxo. ¿Lo es?, ¿Hay otro método que no sea declararla como Symbol?, ¿Debería declararla como Symbol?.
c) wASV_STATUS: Esta variable debe almacenar en EEPROM el valor actual que adquiera aASV_STATUS y aquí es donde me pierdo.
- ¿Cómo grabar esta variable en una posición de EEPROM?, en particular, quisiera poder grabarla sin tener que especificar una posición de EEPROM, si no de manera indirecta, si ello es posible, por ejemplo, EWrite wASV_STATUS, [aASV_STATUS], o sea, wASV_STATUS debería ser la dirección indirecta o el puntero a la posición de EEPROM en la que debería grabarse el valor de aASV_STATUS pero no me funciona.
- ¿Qué método, lo más simple posible, me aconsejáis?. Un ejemplito para un par de grupo de variables como la descrita sería suficiente
Gracias por vuestro tiempo y atención.
-
Hola virolay,
No está muy claro pero estoy haciendo algo parecido para un brazo robotico, el punto esta que depende del modelo del micro para el tamaño de la EEPROM 127 o 256 bytes entonces ahí esta el detalle de la variable para la dirección de la EEPROM. Para el dato inicial lo que hago es escribir al inicio del programa EDATA 100, 200 185 y dentro del programa y dependiendo de lo que hagas lees con VAR1 = EREAD DIR o EWRITE DIR, [VAR2, VAR3,....].
Pero si puedes adjuntar el código a lo mejor te puedo echar una mano...