Wenn nichts meht geht,
probier mal das sdformatter-tool
http://www.pctipp.ch/praxishilfe/kum...rmatieren.html
Druckbare Version
Wenn nichts meht geht,
probier mal das sdformatter-tool
http://www.pctipp.ch/praxishilfe/kum...rmatieren.html
Super das hat etwas gebracht eine meiner 4!! Karten funktioniert nun damit
Woher kommt das denn, ist der Windows Formatter nicht ordentlich genug oder formatiert er erst über 32MB die Karte mit FAT16 ?
-Rein aus Interesse gefragt.
das dos-fat-system (demoprogramm von bascom) von der speicherkarte läuft nicht nur auf dem atmega128, sondern ich habe einfach den atmega32 raus und den atmega644 rein , sind pincompatibel und es läuft. der grund ist, das der atmega644 genauso viel sram hat wie der atmega128. ansonsten läuft es nicht auf den kleinen atmegas.
genau so ist es.....
wenn man nur den zugriff auf die speicherkarten haben will, (also ohne dos-filesystem) geht das auch mit nem mega32. für das komplette dos fat.. benötigt man dann bei dein dip-40 gehäusen schon einen 644er und ne vernünftige version von bascom.
ich meine damit ne gekaufte originalversion.
gruss
.....ich meine damit ne gekaufte originalversion......
du kommst mit dem 4kb bei der free-version von bascom nicht hin.
hallo ihr...
lange habe ich es vor mir hergeschoben... nun angepackt ! mega 32 raus ... 644 rein (wie roboterheld es schrieb und ich es schon immer dachte) ..... und vor allem... mal ein wenig an diesen ganzen includes und lib-einbindungen gebastelt.
die beispieldateien von bascom sind ja extrem informativ (smile)
ein datenlogger zeichnet sich meines erachtens auch dadurch, dass er sagen , welche daten er wann genommen hat.
bei der einbindung einer real-time-clock (rtc) einheit (pcf8583) wollte ich zunächst den code aus den beispielen von bascom übernehmen. im beispiel von bascom sieht es so aus:
beim mega 644 muss es aber so aussehen:Code:'These are pointers to tm() for simple handling.
Dim S As Byte At &H60 Overlay
Dim M As Byte At &H61 Overlay
Dim H As Byte At &H62 Overlay
Dim D As Byte At &H63 Overlay
Dim Month As Byte At &H64 Overlay
Code:
''These are pointers to tm() for simple handling.
Dim S As Byte At &H100 Overlay
Dim M As Byte At &H101 Overlay
Dim H As Byte At &H102 Overlay
Dim D As Byte At &H103 Overlay
Dim Month As Byte At &H104 Overlay
[/code]
nun ... was solls... irgendwann liest man andere samples von bascom und lernt dir variablen date$ und time$ kennen. da passen die vorher gelernten sachen dann garnicht mhr rein.
mein grosser erfolg wird ein "bullet proof" datenlogger sein. ich bin nah dran.... wenn fertig... dann gibzs hier die schaltpläne und die fakten.
gebt mir noch 1 bis 2 wochen
gruss klaus
Hey Jungs,
da anscheinend so viele probleme mit der Formatierung haben, und einige echte Profis sind, würde ich vorschlagen das einer eine Format-Routine für FAT schreibt. So kann die SD-Karte formatiert werden wie es der uC braucht und Windows versteht!
....Woher kommt das denn, ist der Windows Formatter nicht ordentlich genug oder formatiert er erst über 32MB die Karte mit FAT16 ?...
windows formatiert erst über 32MB die Karte mit FAT16!
befasse dich mal mit den formatierungsarten unter windows, man kann die mmc-karte auch zu fuss formatieren.
Hallo zusammen,
ich hab diesen Thread mit Interesse gelesen und er hat mich auch soweit gebracht, dass eine Datei über den ATMega32 auf meiner SD-Karte (1GB) angelegt wird.
Mehr ist allerdings nicht drin, sprich: der speichert nix drinnen.
Ich hab den Beispiel-Quellcode aus diesem Thread verwendet und die includes entsprechend angepasst:
Den Schaltplan von der SD-Karten-Platine sowie meine include-files habe ich auch mal hochgeladen.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
Wait 3
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( "TEST3.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 = "test3.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
Open Fl For Output As #ff
' 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 , "A constant"
'Testsb Ff
Put #ff , S
Write #ff , "Write test"
Flush #ff
Close #ff
Print "fertig"
End
' If you want to test with File-System Interpreter uncomment next line
'$include "FS_Interpreter.bas"
Wäre sehr dankbar, falls jemand eine Idee hätte, woran das liegen könnte.
So long und viele Grüße!