根据http://members.aon.at/voegel/index.html网站上提供的资料,试验了用BASCOM读写SD卡,完全可以把SD卡当作磁盘来操作,与VB/QB语法兼容,编程非常简单。
AVR-DOS介绍 Features: · Read and write ASCII-Files · Read and write Binary-Files · Drivers available for Compact Flash Cards, Hard disk, MMC, SD etc. · Completly integrated in BASCOM-AVR Compiler · QB/VB compatible syntax · Completly written in AVR-Assembler (fast and compact) It works with: · DOS-FAT16 and FAT32 formatted partitions · Files in Root directory and sub directories · Short DOS File names (8.3) · Sector Size of 512 Bytes (nearly all CF-Cards and HD) · Linear sector addressing (LBA-Mode). (all newer CF-Cards and HD). C/H/S-Mode of old HD is not supported. Please note: AVR-DOS is only free for non commercial use. For commercial use, or when you are interested in ASM-Code and complete documentation please check License directives Functions:
Here is a list of all in BASCOM-AVR integrated statements, which uses AVR-DOS functionality.
Disk/Directory:
· InitFileSystem (<Partition#>) · DiskSize · DiskFree · Kill <FileName> · Dir ([ <FileName> ]) · FileLen ([ <FileName> ]) · FileDateTime ([ <FileName> ]) · FileDate ([ <FileName> ]) · FileTime ([ <FileName> ]) · GetAttr ([ <FileName> ]) · Name<OldFileName> As <NewFileName> · ChDir <PathName>]) · MkDir <PathName>]) · RmDir <PathName>]) File create, open, read, write, close: · FreeFile · Open <FileName> For Input/Output/Append/Binary as #<File#> · Close <File#> · Flush [<File#>] · Print #<File#>, Variable1; Variable2; … · Write #<File#>, Variable1, Variable2, … · Input #<File#>, Variable1, Variable2, … · Line Input #<File#>, StringVariable · Get #<File#>, <Variable> [,<Position>] · Put #<File#>, <Variable> [,<Position>] · Seek #<File#> [,<New Position>] Infos about opened files:
· EOF (#<File#>) · LOC (#<File#>) · LOF (#<File#>) · FileAttr (#<File#>)
Others:
· Bload <FileName>, <SRAM-Address>
· Bsave <FileName>, <SRAM-Address>, <Length>
SD卡与AVR数据信号电平转换示意图:
我做的转换电路板:Vcc使用2个二极管降压。
BASCOM源程序下载:
|