Autor Tema: escribir y leer direcciones de memoria en ram  (Leído 3295 veces)

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

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
escribir y leer direcciones de memoria en ram
« en: 22 de Mayo de 2015, 15:41:39 »
Hola a todos. Soy nuevo en la programacion de basic pro y mi pregunta es saber como guardar y leer algun dato en la memoria ram de un pic, bien sea 16f84 u otro.  Gracias
« Última modificación: 24 de Mayo de 2015, 10:25:11 por perla »
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: ram
« Respuesta #1 en: 24 de Mayo de 2015, 09:36:25 »
La forma más habitual y útil es mediante el uso de variables:
Las variables tienen que ser declaradas primero antes de ser usadas, y no son más que la asignación de una etiqueta a una o varias posiciones de memoria.
En lenguaje Basic PSI se realiza de la siguiente manera:
Dim _bit as BIT 'Variable de longitud 1 bit, números enteros sin signo
Dim _byte as BYTE 'Variable de longitud 8 bit, números enteros sin signo
Dim _word as Word 'Variable de longitud 16 bit, números enteros sin signo
Dim _long as LONG 'Variable de longitud 32 bit, números enteros sin signo
Dim _single as SINGLE 'Variable simple precisión de números reales
Variables para trabajar con vectores:
Dim _vector(10) as BYTE 'Variable de longitud de 10 elementos tipo Byte.
_vector(0) = 5 'Primer elemento
_vector(9) = 255 'El último elemento
Variables para trabajar con vectores de tipo cadena (string):
Dim _string as STRING
_string = "Todo Pic"
Las constantes son la asignación de un nombre a un registro, normalmente de la memoria Flash y su valor no puede ser alterado. no suele ser necesario especificar su longitud y se suelen inicializar en su misma declaración:
CONTS _conts = 10
Hay más tipos, depende del Basic utilizado y en todos no se declaran de la misma forma.
« Última modificación: 24 de Mayo de 2015, 09:41:49 por dogflu66 »
Saludos desde Granada, España.

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
Re: ram
« Respuesta #2 en: 24 de Mayo de 2015, 10:23:31 »
La forma más habitual y útil es mediante el uso de variables:
Las variables tienen que ser declaradas primero antes de ser usadas, y no son más que la asignación de una etiqueta a una o varias posiciones de memoria.
En lenguaje Basic PSI se realiza de la siguiente manera:
Dim _bit as BIT 'Variable de longitud 1 bit, números enteros sin signo
Dim _byte as BYTE 'Variable de longitud 8 bit, números enteros sin signo
Dim _word as Word 'Variable de longitud 16 bit, números enteros sin signo
Dim _long as LONG 'Variable de longitud 32 bit, números enteros sin signo
Dim _single as SINGLE 'Variable simple precisión de números reales
Variables para trabajar con vectores:
Dim _vector(10) as BYTE 'Variable de longitud de 10 elementos tipo Byte.
_vector(0) = 5 'Primer elemento
_vector(9) = 255 'El último elemento
Variables para trabajar con vectores de tipo cadena (string):
Dim _string as STRING
_string = "Todo Pic"
Las constantes son la asignación de un nombre a un registro, normalmente de la memoria Flash y su valor no puede ser alterado. no suele ser necesario especificar su longitud y se suelen inicializar en su misma declaración:
CONTS _conts = 10
Hay más tipos, depende del Basic utilizado y en todos no se declaran de la misma forma.


Muchas gracias por la respuesta me has aclarado una duda importante, pero aun así me gustaría saber aprender a manejar la RAM manualmente

Saludos y gracias.
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: escribir y leer direcciones de memoria en ram
« Respuesta #3 en: 24 de Mayo de 2015, 11:36:25 »
Existe un modo avanzado que permite escribir y leer posiciones de memoria Ram de una forma directa, este sistema en lenguaje basic no es muy utilizado, a no ser que sea un Basic orientado a funciones como el Basic PSI.
De todas formas todos los lenguajes Basic suelen tener su comando equivalente para trabajar con direcciones de memoria Ram directamente.
En basic del PSI es como sigue:
Pointer(dirección Ram) = valor 'Escribe un valor en la posición de memoria ram especificada.
variable = Pointer(dirección Ram) 'Asigna a variable el valor de la dirección de memoria especificada.

De todas formas si esto no es lo que quieres hacer te recomiendo que expliques un poco tu idea de como quieres utilizar la ram.

Nota: si no recuerdo mal en los lenguajes basic tradicionales se utilizaban los comandos Peek y Poke, lectura y escritura respectivamente:
variable = Peek(dirección ram).
Poke(dirección ram) = valor.
« Última modificación: 24 de Mayo de 2015, 11:43:59 por dogflu66 »
Saludos desde Granada, España.


 

anything