-diese Library dient zum ansteuern der SD-Karte auf
der STAMP “myAVR STAMP 256plus”
-die SD-Karte ist an den SPI-Bus angeschlossen.
-die SD-Karte muss mit dem FAT-Dateisystem formatiert sein
-Filenamen im Format 8+3 -> 8 Zeichen fuer den Filnamen und 3 fuer die Dateiendung
-den Hauptteil von dieser Library habe ich von Roland Riegel FAT16-Dateisystem-Treiber (siehe Copyrighthinweis im Header der Library)
-Es gibt noch eine “einfachere” Library die allerdings langsamer ist.
(MK3_2560_FAT16.h)
Funktionen :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | MK3_SD_READ_FILE_IN_ROOT(); // oeffnet ein File zum lesen MK3_SD_WRITE_FILE_IN_ROOT(); // oeffnet ein File zum schreiben MK3_SD_CLOSE_FILE(); // schliesst ein File sd_raw_init(); // init und Check ob eine SD-Karte vorhanden ist partition_open(); // Partition oeffnen fat_open(); // FAT oeffnen fat_get_dir_entry_of_path(); // ROOT oeffnen fat_open_dir(); // Directory oeffnen open_file_in_dir(); // File oeffnen fat_read_file(); // aus dem File lesen (in einen Puffer) fat_write_file(); // in das File schreiben (von einem Puffer) fat_close_file(); // File schliessen fat_close_dir(); // Directory schliessen fat_close(); // FAT schliessen partition_close(); // Partition schliessen find_file_in_dir(); // Test ob File vorhanden ist fat_read_dir(); // Directory auslesen fat_delete_file(); // File loeschen fat_create_file(); // File anlegen fat_create_dir(); // Direktory anlegen fat_move_file(); // File verschieben fat_seek_file(); // Schreib Pointer verschieben |
Beispiel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | //----------------------------------------------------------------------------- // Title : bsp_ub052_mk3_fastfat_w //----------------------------------------------------------------------------- // Funktion : SD-Card Test [WRITE] (mit FastFat16-Treiber) // Schaltung : myAVR MK3 //----------------------------------------------------------------------------- // Prozessor : ATMega2560 // Takt : 16 MHz // Sprache : C // Date : 05.07.2012 // Version : 1.0 // Autor : UB //----------------------------------------------------------------------------- #define F_CPU 16000000 #include <avr/io.h> #include <ub_mk3_2560/MK3_2560_LCD.h> #include <ub_mk3_2560/MK3_2560_FASTFAT16.h> //----------------------------------------------------------------------------- // Hinweis : Quick-Jumper Port-C+A muss gesetzt sein // - testet ob eine SD-Karte eingelegt ist // - legt ein File an und schreibt einen Text rein // - zeigt bei Erfolg eine OK-Meldung an //----------------------------------------------------------------------------- int main (void) { unsigned int n; FFW_Status_t check; char buffer[30]; // puffer für das schreiben strcpy(buffer,"FASTFAT in funktion..."); MK3_INIT_LCD(); // init des LCD MK3_LCD_CLEAR(); // LCD loeschen MK3_LCD_LIGHT(true); // beleuchtung einschalten MK3_LCD_STRING_AT(0,0,"FASTFAT16 WRITE"); MK3_LCD_STRING_AT(0,16,"suche SD-Karte:"); check=MK3_SD_WRITE_FILE_IN_ROOT("ff_file.txt"); if(check==SDW_WRITE_OK) { MK3_LCD_STRING_AT(0,24,"Karte gefunden"); // 20 Zeichen aus dem Puffer in das File schreiben fat_write_file(MK3_SD.file, (uint8_t*) buffer, 20); // File schliessen MK3_SD_CLOSE_FILE(); MK3_LCD_STRING_AT(0,40,"File geschrieben"); } else if(check==SDW_NO_CARD) { MK3_LCD_STRING_AT(0,24,"Err...keine Karte"); } else if(check==SDW_FILE_NOT_FOUND) { MK3_LCD_STRING_AT(0,24,"Err...File not found"); } else { MK3_LCD_STRING_AT(0,24,"Err...Dateifehler"); } while (true) { } return 0; } |
Hier die Library zum download :