TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: perla en 22 de Mayo de 2015, 15:41:39

Título: escribir y leer direcciones de memoria en ram
Publicado por: perla 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
Título: Re: ram
Publicado por: dogflu66 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.
Título: Re: ram
Publicado por: perla 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.
Título: Re: escribir y leer direcciones de memoria en ram
Publicado por: dogflu66 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.