TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: TMC en 11 de Diciembre de 2004, 16:54:00
-
Señores no me doy cuenta de como guardar un numero mayor a 1 byte en una memoria serie si alguien me puede ayudar lo agradeceria, y Feliz Navidad y Año Nuevo a todos los integrantes del foro.
-
Faltan datos para poder contestar. supongo que te refieres a memorias externas. Si es asi depende mucho de que memoria sea, ya que hay algunas que lo que graban son palabras de 16 bits y le tienes que dar los bytes de dos en dos.
En caso contrario es tan facil como guardar el high byte en memoria y el low byte en memoria+1 e incrementar el contador de memoria de dos en dos. Una forma facil de hacerlo es:
para posicion_de_memoria = 0 a numero_palabras_a_escribir
escribe high_byte en (posicio_de_memoria*2)
escribe low_byte en (posicio_de_memoria*2)+1
proxima posicion_de_memoria
el como implementarlo, en detalle, depende del lenguaje y memoria que pienses usar, ya que en algunos podrias hacer
para posicion_de_memoria = 0 a numero_palabras_a_escribir
escribe en (posicio_de_memoria*2) , high_byte, low_byte
proxima posicion_de_memoria
Una vez que hayas conseguido guardar bytes individuales ( eso es lo primero ) veras que el guardar palabras de 16 o 64 bits, es muy simple.
-
Hola :
En el manual del Proton que lo puedes bajar free de la pagina de crownhill te explica en paginas 121 y 122 con las sencillas instrucciones BUSIN y BUSOUT como grabar y leer un dato de una memoria externa solo definiendo la variable a grabar en 1 8 o 16 bits solito sabra las posiciones que debe utilizar para ello.
La variable a guardar como te dije se define como BITE =1 bit , BYTE =8 BITES ,WORD=16 BITES .
Echale una mirada y tambien tienes ejemplos de conexion veras que en Proton es sumamente sencillo..
Saludos
kHASISTOS
-
Como bien dice el pana Khasistos, solo leer el Manual, puse un post de como leerlas y una muy breve explicacion, lo unico que tenes que hacer es guardar tu DATO en word,, o si es mas grande en DWORD, este ultimo dividirlos en hight y low word para procederlo a guardar, si usas este tipo de formato(word,dword,string) tendras que usar una variable direccion que lo soporte es decir WORD.
Elmismo EJEMPLO del post "Manejo de EEPROMS externas"
------------------------------------------------------------------------------------------------------------
DEVICE 16F628A
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, CP_OFF, BODEN_OFF, LVP_OFF, MCLRE_OFF
ALL_DIGITAL ON
PORTB_PULLUPS ON
DECLARE LCD_DTPIN PORTA.0
DECLARE LCD_ENPIN PORTB.3
DECLARE LCD_RSPIN PORTA.4
DECLARE SDA_PIN PORTB.0
DECLARE SCL_PIN PORTB.1
Dim NUMERO As WORD
Dim VAR2 As WORD
Dim DIRECCION As WORD "IMPORTANTE QUE SEA WORD, YA QUE SE USA
Cls "UNA VARIABLE TIPO STRING
Clear DIRECCION
NUMERO = 10000
Print "SALVANDO EN ROM" "COMPROBACION VISUAL DE ESCRITURA
BUSOUT %10100000,DIRECCION,[NUMERO]
DELAYMS 500
Clear DIRECCION
Cls
Print "LECTURA DE ROM" "COMPROBASION VISUAL DE LECTURA
BUSIN %10100001,DIRECCION,[VAR2]
DELAYMS 500
Cls
Print DEC; VAR2 "IMPRESION DE DATOS,FORMATO TEXTO
DELAYMS 500
End
---------------------------------------------------------------------------------------------------------
Salu2 panas
-
Tenes razon Marques ,yo uso el pic basic pro,y es para guardar el dato dentro de un pic 16f876.Le agradesco a todos las respuestas, ya con todos estos datos tengo una idea mas clara de como guardar ese dato.