Memorias SD y Proton IDE

Hola.

Estoy trancado con la programación en un microcontrolador para generar un archivo en una memoria SD y guardar datos en el.

En principio comencé a leer y encontré que existen librerías para Proton IDE, como la librería SD_File_System. El tema es que la descargue y no me tira errores, supongo que no la reconoce el Proton.

tira errores al compilar, como: :unsure:

- ASM ERROR: Error [122] : illegal opcode (SD_FILE_SYSTEM)
- ASM ERROR: Error [128] : missing argument(s)
- ASM ERROR: Error [149] : Directive only allowed when generating an object file
- ASM ERROR: ASSEMBLER ERRORS. HEX file not Created

Alguien tiene alguna librería o algún ejemplo del manejo de una SD ? tengo una tarjeta " catalex micro sd card adapter ". y en lo posible quiero usar un 16F877A, pero como la librería SD requiere de mucho espacio, un 18F4550. Solo quiero generar un archivo y guardar datos en el de forma ordenada, si es posible también leerlos.

Alguien me puede ayudar ?? :confused:

MUCHAS GRACIAS!!!!!
 
Yo he trabajado con esa librería y no he tenido ningún problema.
Tal vez te está haciendo falta alguna declaración o adaptación.

Sube el programa completo dentro de un archivo comprimido para encontrar la posible causa del problema que mencionas.

 
Hola D@rkbytes !

El problema es que no he generado nada relacionado al programa.
Simplemente declaro la librería para ver si todo va bien y me salta ese error.

Device 18F4550

Include "Modedefs.bas"
Include "SD_File_System.pbp"

esto es lo único que escribí. Incluí esas dos librerías y la del SD me tira error, con la librería modedefs.bas no tengo problema. llevo tiempo trabajando con ella.

Tenes algun ejemplo medio simple para subir ? tampoco se como manejar esa libreria, es decir, "decirle como hacer para que cree el archivo en la SD"
Puede ser que este mal instalada la libreria en el proton ? simplemente descargue ese archivo .pbp y lo puse en la carpeta que estan las otras librerias.

Muchas gracias

---------- Actualizado ----------


Encontré un ejemplo.
Pero me sigue tirando los errores que mencione anteriormente . :cry:

Este mismo archivo a ustedes le compila ?

Gracias.
 

Adjuntos

  • PruebaSD.rar
    26.9 KB · Visitas: 53
Última edición por un moderador:
Mira. Como ese archivo ya tiene modificaciones, resulta complicado corregirlo, pero originalmente si se debe poder compilar.

Aquí hay algo muy importante que se tiene que tener en cuenta, y es que se debe tener instalado el programa plugin "Library Manager" para hacer mejor uso de la librería "SD_File_System.pbp"
Ya que así es más fácil poder acceder a sus funciones.

Aquí adjunto dos ejemplos ya compilados.
Uno lo adjunto con simulación y el otro lo dejé tal cual, tan sólo lo compilé para la verificación de tener correctamente instalada la librería.
También adjunto la librería y sus archivos correspondientes para usarlos con el plugin. (Incluye Documento de ayuda)

Suerte.
 

Adjuntos

  • 18F4520 SD_File_System.rar
    146.5 KB · Visitas: 65
  • SD File System Lib.rar
    239.8 KB · Visitas: 72
  • SD_File_System Library.zip
    156.8 KB · Visitas: 60
Última edición:
Gracias D@arkbytes,

Probé instalar nuevamente el "Library Manager", lo insalo correctamente pero me sigue tirando errores.. :confused: :cry:

Los ejemplos que me pasaste tampoco me compilan...

Como se agrega una libreria al Library Manager de Proton ?

Me tira un mensaje diciendo que no encuentra la librería que estoy incluyendo

- ERROR : Include file SD_FILE_SYSTEM_LIB.PBP
- ERROR : Library Files have changed - rebuild Library

si le escribo la libreria "SD_FILE_SYSTEM.bas " tambien me tira el mismo error (ERROR : Include file SD_FILE_SYSTEM.BAS). y solo me reconoce la libreria en el "code explorer" si antes abro la libreria en el programa.

Mil disculpas.. :cry:
Muchas gracias....



Los archivos que me pasaste de la librería SD, van dentro de alguna carpeta o ubicacion especial ?
 
Última edición:
Cuando haces uso de las librerías de Proton, la librería debe llamarse igual que el archivo principal .bas,
pero la librería debe tener "_lib" al final del nombre de archivo.
O sea, debe tener el siguiente formato en el nombre de archivo: "Nombre_de_archivo_lib.pbp"

Por ejemplo:
Nombre de archivo del programa principal = "Prueba_SD.bas"
Nombre que se le debe dar a la librería = "Prueba_SD_lib.pbp"

Y ese nombre es el que se debe poner para el "Include"
Include "Prueba_SD_lib.pbp"

Los archivos de las librerías se agregan con el mismo programa "Library Manager"
Y la carpeta por defecto es mostrada ahí mismo, pero se puede cambiar.
Para agregar librerías, debes dar click derecho sobre algún espacio en blanco dentro del plugin.
Aparecerá una ventana donde puedes agregarlas y también cambiar la carpeta de las librerías.
No te recomiendo que la cambies, usa la carpeta que viene por defecto.
Seleccionas los archivos "*.pbp, *.mcd y *.chm" y después presiona "Abrir"

En Windows 7 y superiores, "Library Manager" no puede copiar los archivos porque se requieren derechos de administrador.
Desafortunadamente, al darle derechos de administrador permanentes, ya no se ejecuta el plugin.
Entonces se deben agregar manualmente a la carpeta "Library"
Posteriormente en el "Library Manager" seleccionar la librería y construirla.
Para construirla se debe seleccionar la opción "Build Library" presionando la flecha a lado derecho de "Library Explorer"

La carpeta Library se encuentra en la siguiente ruta:
"C:\Users\Nombre_Usuario\PDS"
Donde "Nombre_Usuario" será el nombre que se le haya dado al sistema.


Si después de seguir éstos pasos sigues teniendo problemas, actualiza tu compilador.
Cuando no se tiene actualizado, surgen varios problemas de incompatibilidad.

Nota:
Las librerías agregadas deben tener su nombre original.
La que cambia de nombre es la que se debe tener dentro de la carpeta del proyecto.

Suerte.
 
Última edición:
Gracias !!

Probé todo eso que me describiste. Hasta desinstale el Proton y lo instale nuevamente.
Ahora me reconoce el archivo pero me da un error en la librería que me pasaste, subo el archivo para saber si esta bien lo que hice. Copie cada archivo de los que se encuentran en: SD File System Lib.rar (239,8 KB (Kilobytes) , pegue todo en la ubicación de "PruebaSD4" y le cambie el nombre siguiendo el procedimiento. Pero no encuentra las variable SD_CS, SD_DI, SD_DO, SD_CLK y entonces no compila.

- ERROR : Variable 'SD_CS' not found! (PruebaSD4_lib.bas)... y asi con las otras variables....

Adjunto el programa para ver si les aparece lo mismo

GRACIAS !!!
 

Adjuntos

  • PruebaSD4.rar
    194 KB · Visitas: 26
Es lógico que te de ese error porque esas definiciones no las estás incluyendo en el archivo principal.
Debes usar todas las definiciones y variables que se usan en la librería, de otra manera nunca podrás compilar.

Te recomiendo que uses cualquiera de los ejemplos que subí y los modifiques conforme a lo que quieras hacer.
Pero recuerda mantener la estructura y no elimines nada que deba ser usado por la librería.
 
Hola, Prueba de esta forma con el archivo que subio D@rkbyte
PHP:
Device 18F4550

Include "Modedefs.bas"

$define SD_CS   PORTC.2         'SPI CS  -->  SD CS (SD pin 1)
$define SD_DI   PORTC.5         'SPI DO  -->  SD DI (SD Pin 2)
$define SD_CLK  PORTC.3         'SPI CLK -->  SD CLK (SD Pin 5)
$define SD_DO   PORTC.4         'SPI DI  <--  SD DO (SD Pin 7)

Include "SD_Lib.pbp"                             'Libreria del ejemplo de D@rkbyte
    Cls

PD: Otra cosa muy importante es que tienes que compilar con el proton ide 3.5.2.7, porque con el 3.2.2 no lo compila y marca errores.
Yo lo comprobe bajando el ejemplo de D@rkbyte y no me compilo en el 3.2.2 pero si en el 3.5.2.7
 
Perfecto !!!!

Amigos. Al fin pude compilar el programa !!! :D
Muchas gracias por la paciencia y la ayuda !

El problema principal como ustedes bien lo mencionaban, era el compilador.
Además de no agregar la librería al "Library Manager" como decia D@rkbytes.

roberttorres, como bien decías, es muy importante compilar con el Proton 3.5.2.7.

El compilador que tiene el Proton 3.2.2 aparentemente no reconoce esa librería y no deja de tirar errores, pero funciona perfectamente en la versión 3.5.2.7. En la versión 3.2.2 por mas que se declare las variables no recnoce los $define, los deja en negro... y en la version 3.5.2.7. si los reconoce y quedan $define (lo menciono por si alguien a futuro tiene el mismo problema).

Nuevamente les agradezco por la ayuda D@rkbytes y roberttorres.
Me sirvió muchísimo ese ejemplo con simulación que subió D@rkbytes para lo que estoy haciendo.
 
Amigos. Hola de nuevo.

Saben como modificar un archivo para continuar escribiendo datos ? Es decir, creo un archivo ("Archivo1.txt") que tiene determinada información guardada. Luego a este "Archivo1", le quiero agregar mas información cada determinado periodo de tiempo, que se vaya actualizando... sin generar mas archivos.

Saben si se puede hacer eso ?
Se pueden crear planillas Excel con esta librería?

Tienen información sobre la utilidad de los macros de esta librería ?

Espero que me haya expresado bien..
Gracias ! (y)
 
Busca en el documento de ayuda de la librería.
Y no, no se pueden crear archivos de excel con esa librería, porque esos archivos tienen un formato.
 
D@rkbytes,
como hiciste para generar la imagen de la tarjeta SD en la simulación del ejemplo que subiste ??

Modifico el SD.bas del ejemplo y la simulación deja de funcionar. Tenes idea a que se puede deber esto ?

Gracias
 
Atrás
Arriba