
Aquí también es efectivo el concepto de con-
trolador modular porque permite sustituir los
medios de comunicación de almacenamiento
cambiando una sola instrucción. Esto no sólo
facilita el comportamiento de aplicaciones de
programas en un entorno de DOS probado, sino
también el almacenamiento de los datos reales
en un medio de almacenamiento en RAM
externa. Según las recomendaciones de Micro-
soft, un tamaño de disco de 59 kB debe gestio-
narse usando FAT12 (hasta 4 MB) y no FAT16.
Sin embargo, como esta 'partición' es sólo vir-
tual e intencionada para los propósitos de la
prueba, este incumplimiento de las normas no
tiene consecuencias negativas.
(030169-1)
Simulación
El programa de aplicación de BAS-
COM contiene un simulador fácil de
usar que permite ejecutar un pro-
grama recientemente escrito en el PC
antes de encenderlo. La tarjeta CF
también permite hacer esto, en cierto
modo. Esto se logró con la ayuda de un
controlador que simula una tarjeta CF
(con sólo 59 kB reconocidos y un
tamaño de directorio más grande, de
sólo 16 archivos) en la RAM extendida
del AVR. Con este fin, un controlador,
llamado XRAM, se ejecuta en lugar del
controlador normal de la tarjeta CF.
MICROCONTROLADOR
39
Elektor
Tabla 1. Lista de Comandos
• GetFileSystem Lee la información requerida del sector de arranque (MBR) y el sector de particio-
nes (PBR) de la tarjeta CF para inicializar el sistema de archivos (no contiene sinta-
xis QBASIC/VBA/VB).
• DISKSIZE Capacidad de almacenamiento total de la tarjeta CF en bytes.
• DISKFREE Capacidad de almacenamiento disponible de la tarjeta CF en bytes.
• KILL <FileName> Borra un archivo de la tarjeta CF.
• DIR([<FileName>]) Busca el primer o segundo nombre de archivo correspondiente en la tarjeta CF.
• FILELEN([<FileName>]) Tamaño del archivo en el directorio raíz correspondiente al nombre del archivo o al
último archivo encontrado usando DIR.
• FILEDATETIME([<FileName>]) Fecha y hora de un archivo en el directorio raíz correspondiente al nombre de
archivo o al último archivo encontrado usando DIR.
• FILEDATE *) ([<FileName>]) Fecha de un archivo en el directorio raíz correspondiente al nombre de archivo o al
último archivo encontrado usando DIR.
• FILETIME *) ([<FileName>]) Hora de un archivo en el directorio raíz correspondiente al nombre de archivo o al
último archivo encontrado usando DIR.
Creación, Apertura, escritura y lectura de archivos
• Open <FileName> FOR INPUT/OUTPUT/APPEND/BINARY AS #<File#> Abre/crea un archivo, con INPUT en modo lectura, con
OUTPUT/APPEND en modo escritura, con BINARY en modo lectura/escritura.
• FREEFILE() Devuelve el número de archivo libre, esto puede ser usado para la función OPEN.
• CLOSE <File#> Cierra el archivo y libera el archivo temporal.
• FLUSH [<File#>] Escribe el buffer de datos activo en la RAM de la tarjeta CF y actualiza el contenido
(no contenido en la sintaxis QBASIC/VBA/VB).
• PRINT #<File#> , Variable1 ; Variable2; ... Escribe los datos en formato texto en un archivo de texto que fue abierto con
OUTPUT/APPEND
• WRITE #<File#> , Variable1 , Variable2, ... Escribe los datos en formato texto en un archivo de texto que fue abierto con
OUTPUT/APPEND. Los ficheros de datos individuales están separados con una
coma y las cadenas de caracteres se ponen entre comillas.
• INPUT #<File#> , Variable1 , Variable2, ... Lee los datos de un archivo de texto a las variables del programa, principalmente
datos escritos en un archivo usando el comando WRITE. Los ficheros de datos
están separados con una coma y las cadenas de caracteres se ponen entre comillas.
• LINE INPUT #<File>, StringVariable Lee una línea del archivo de texto a una variable carácter de tipo ‘string’.
• GET #<File#>, <Variable> [, Position] Lee los datos en formato binario a una variable del programa de un archivo abierto
en modo BINARY.
• PUT #<File#>, <Variable> [, Position] Escribe una variable del programa en formato binario a un archivo abierto en for-
mato binario.
• SEEK #<File#> [,<New Position>] Devuelve la posición en el archivo del próximo acceso de lectura/escritura. El pará-
metro adicional <New Position> permite cambiar la posición sólo con archivos en
modo binario.
Información del estado de los archivos abiertos
• EOF #<File#> Devuelve el estado ‘End’ del archivo.
• LOC #<File#> Indica la posición en el archivo del último acceso de lectura/escritura.
• LOF #<File#> Indica la longitud del archivo.
• FILEATTR #<File#> Devuelve el modo de apertura del archivo.
Miscelánea
• BLOAD <FileName>, <SRAM Address> Escribe el contenido de la RAM del microcontrolador, comenzando con la dirección
de la SRAM.
• BSAVE <FileName>, <SRAM Address>, <Length>Salva la RAM del microcontrolador en un archivo.
[1] Archivo de Ayuda BASCOM-AVR
www
.mcselec.com/download/avr/beta/bashtml.zip
[2] Información de DOS FAT
www
.beginningtoseethelight.org/fat16/index.php
www.win.tue.nl/~aeb/linux/smartmedia/ SmartMedia_Format.pdf
[3] Microsoft Extensible Firmware Initiative, Especificación de sistemas de archivos FAT32
http://www.microsoft.com/hwdev/download/hardware/FATGEN103. doc
Comentários a estes Manuais