also für den mega32 habe ich folgendes geändert....
hast du die neueste Bascom version mit dem avr_dos ordner in den samples?
in config_avr_dos habe ich folgendes geändert damit es nicht soviel sram speicher braucht:
Code:
' Count of file-handles, each file-handle needs 524 Bytes of SRAM
Const Cfilehandles = 1 ' [default = 2]
' Handling of FAT-Buffer in SRAM:
' 0 = FAT- and DIR-Buffer is handled in one SRAM buffer with 561 bytes
' 1 = FAT- and DIR-Buffer is handled in separate SRAM buffers with 1078 bytes
' Parameter 1 increased speed of file-handling
Const Csepfathandle = 0 ' [default = 1]
dann die datei speichern...
in config_mmc musst du natürlich deine anschlusspins ändern und ob du hardware oder software spi nutzen willst...
datei speichern....
danach kannst du test_dos_drive öffnen und da musst du das mmc_config file einbinden damit es den richtigen karten treiber hat und die letzte zeile für den fs_interpreter auskommentieren da dies nicht auf den mega32 passt...
danach compilieren und übertragen....
dies sieht bei mir dan folgendermassen aus:
Code:
$regfile = "m32def.dat"
$crystal = 16000000
' Adjust HW Stack, Soft-Stack and Frame size to 128 minimum each!!!
$baud = 9600
'Open "Com1:" As Binary As #1 ' use #1 for fs_interpreter
Config Clock = Soft
Enable Interrupts
Config Date = Mdy , Separator = .
Dim Btemp1 As Byte
Print "Wait for Drive"
$include "Config_MMC.bas"
' Include here you driver for Compactflash/HardDisk or other
'$include "Config_CompactFlash_M128.bas" ' Does drive init too
'$Include "Config_HardDisk_M128.bas"
If Gbdriveerror = 0 Then
' Include AVR-DOS Configuration and library
$include "Config_AVR-DOS.BAS"
Print "Init File System ... ";
Btemp1 = Initfilesystem(1) ' Partition 1
' use 0 for drive without Master boot record
If Btemp1 <> 0 Then
Print "Error: " ; Btemp1 ; " at Init file system"
Else
Print " OK"
Print "Filesystem: " ; Gbfilesystem
Print "FAT Start Sector: " ; Glfatfirstsector
Print "Root Start Sector: " ; Glrootfirstsector
Print "Data First Sector: " ; Gldatafirstsector
Print "Max. Cluster Nummber: " ; Glmaxclusternumber
Print "Sectors per Cluster: " ; Gbsectorspercluster
Print "Root Entries: " ; Gwrootentries
Print "Sectors per FAT: " ; Glsectorsperfat
Print "Number of FATs: " ; Gbnumberoffats
Print "Disksize : " ; Disksize() ' show disk size in bytes
'Print "Disk free: " ; Diskfree()
Print "File Len: " ; Filelen( "TEST2.TXT") ' show free space too
End If
Else
Print "Error during Drive Init: " ; Gbdriveerror
End If
'File erstellen und etwas reinschreiben
'dim some test variables
Dim S As String * 60 , Fl As String * 12 , Ff As Byte
Dim X As Byte
Dim I As Word
Dim Sdatetime As String * 18
Fl = "test.txt"
S = "test this"
'Now we are getting to it
'We can specify a file handle with #1 or #2 etc. or we can ask for a free
' file handle with the FreeFile function. It will return a free handle if there is one.
Ff = Freefile() ' get a file handle
'With this file handle we refer to a file
Open Fl For Output As #ff ' open fikle for output
' we need to open a file before we can use the file commands
' we open it for OUTPUT, INPUT , APPEND or BINARY
' In this case we open it for OUTPUT because we want to write to the file.
' If the file existed, the file would be overwritten.
Print #ff , S ' print some data
Print #ff , S
Print #ff , S
Print #ff , "A constant" ; S
'Testsb Ff
Close #ff
Print "fertig"
End
' If you want to test with File-System Interpreter uncomment next line
'$include "FS_Interpreter.bas"
gruss bluesmash
Lesezeichen