{"id":670,"date":"2017-11-26T19:46:16","date_gmt":"2017-11-26T18:46:16","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=670"},"modified":"2017-12-30T19:50:38","modified_gmt":"2017-12-30T18:50:38","slug":"31-fastfat-library-atmega","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=670","title":{"rendered":"31-FASTFAT-Library (ATMega)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=667\" title=\"30-TWI_MyEth-Library (ATMega)\"><span class=\"meta-nav\">\u2190<\/span> 30-TWI_MyEth-Library (ATMega)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=672\" title=\"32-WAV-Library (ATMega)\">32-WAV-Library (ATMega) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>-diese Library dient zum ansteuern der SD-Karte auf<br \/>\nder STAMP \u201cmyAVR STAMP 256plus\u201d<\/p>\n<p>-die SD-Karte ist an den SPI-Bus angeschlossen.<\/p>\n<p>-die SD-Karte muss mit dem FAT-Dateisystem formatiert sein<\/p>\n<p>-Filenamen im Format 8+3 -&gt; 8 Zeichen fuer den Filnamen und 3 fuer die Dateiendung<\/p>\n<p>-den Hauptteil von dieser Library habe ich von Roland Riegel\u00a0FAT16-Dateisystem-Treiber (siehe Copyrighthinweis im Header der Library)<\/p>\n<p>-Es gibt noch eine \u201ceinfachere\u201d Library die allerdings langsamer ist.<br \/>\n(MK3_2560_FAT16.h)<\/p>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">MK3_SD_READ_FILE_IN_ROOT();   \/\/ oeffnet ein File zum lesen\r\nMK3_SD_WRITE_FILE_IN_ROOT();  \/\/ oeffnet ein File zum schreiben\r\nMK3_SD_CLOSE_FILE();          \/\/ schliesst ein File\r\n\r\nsd_raw_init();                \/\/ init und Check ob eine SD-Karte vorhanden ist\r\npartition_open();             \/\/ Partition oeffnen\r\nfat_open();                   \/\/ FAT oeffnen\r\nfat_get_dir_entry_of_path();  \/\/ ROOT oeffnen\r\nfat_open_dir();               \/\/ Directory oeffnen\r\nopen_file_in_dir();           \/\/ File oeffnen\r\nfat_read_file();              \/\/ aus dem File lesen (in einen Puffer)\r\nfat_write_file();             \/\/ in das File schreiben (von einem Puffer)\r\nfat_close_file();             \/\/ File schliessen\r\nfat_close_dir();              \/\/ Directory schliessen\r\nfat_close();                  \/\/ FAT schliessen\r\npartition_close();            \/\/ Partition schliessen\r\n\r\nfind_file_in_dir();           \/\/ Test ob File vorhanden ist\r\nfat_read_dir();               \/\/ Directory auslesen\r\nfat_delete_file();            \/\/ File loeschen\r\nfat_create_file();            \/\/ File anlegen\r\nfat_create_dir();             \/\/ Direktory anlegen\r\nfat_move_file();              \/\/ File verschieben\r\nfat_seek_file();              \/\/ Schreib Pointer verschieben<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/-----------------------------------------------------------------------------\r\n\/\/ Title      : bsp_ub052_mk3_fastfat_w\r\n\/\/-----------------------------------------------------------------------------\r\n\/\/ Funktion   : SD-Card Test [WRITE] (mit FastFat16-Treiber)\r\n\/\/ Schaltung  : myAVR MK3\r\n\/\/-----------------------------------------------------------------------------\r\n\/\/ Prozessor  : ATMega2560\r\n\/\/ Takt       : 16 MHz\r\n\/\/ Sprache    : C\r\n\/\/ Date       : 05.07.2012\r\n\/\/ Version    : 1.0\r\n\/\/ Autor      : UB\r\n\/\/-----------------------------------------------------------------------------\r\n#define F_CPU 16000000\r\n#include &lt;avr\/io.h&gt;\r\n#include &lt;ub_mk3_2560\/MK3_2560_LCD.h&gt;\r\n#include &lt;ub_mk3_2560\/MK3_2560_FASTFAT16.h&gt;\r\n\r\n\/\/-----------------------------------------------------------------------------\r\n\/\/ Hinweis : Quick-Jumper Port-C+A muss gesetzt sein\r\n\/\/ - testet ob eine SD-Karte eingelegt ist\r\n\/\/ - legt ein File an und schreibt einen Text rein\r\n\/\/ - zeigt bei Erfolg eine OK-Meldung an\r\n\/\/-----------------------------------------------------------------------------\r\nint main (void)\r\n{\r\n  unsigned int n;\r\n  FFW_Status_t check;\r\n  char buffer[30]; \/\/ puffer f\u00fcr das schreiben\r\n\r\n  strcpy(buffer,\"FASTFAT in funktion...\");\r\n\r\n  MK3_INIT_LCD(); \/\/ init des LCD\r\n  MK3_LCD_CLEAR(); \/\/ LCD loeschen\r\n  MK3_LCD_LIGHT(true); \/\/ beleuchtung einschalten\r\n\r\n  MK3_LCD_STRING_AT(0,0,\"FASTFAT16 WRITE\");\r\n  MK3_LCD_STRING_AT(0,16,\"suche SD-Karte:\");\r\n\r\n  check=MK3_SD_WRITE_FILE_IN_ROOT(\"ff_file.txt\");\r\n  if(check==SDW_WRITE_OK) {\r\n    MK3_LCD_STRING_AT(0,24,\"Karte gefunden\");\r\n    \/\/ 20 Zeichen aus dem Puffer in das File schreiben\r\n    fat_write_file(MK3_SD.file, (uint8_t*) buffer, 20);\r\n    \/\/ File schliessen\r\n    MK3_SD_CLOSE_FILE();\r\n    MK3_LCD_STRING_AT(0,40,\"File geschrieben\");\r\n  }\r\n  else if(check==SDW_NO_CARD) {\r\n    MK3_LCD_STRING_AT(0,24,\"Err...keine Karte\");\r\n  }\r\n  else if(check==SDW_FILE_NOT_FOUND) {\r\n    MK3_LCD_STRING_AT(0,24,\"Err...File not found\");\r\n  }\r\n  else {\r\n    MK3_LCD_STRING_AT(0,24,\"Err...Dateifehler\");\r\n  }\r\n\r\n  while (true)\r\n  {\r\n\r\n  }\r\n  return 0;\r\n}\r\n<\/pre>\n<p>Hier die Library zum download :<\/p>\n<p><a href=\"wp-content\/uploads\/2013\/02\/UB_MK3_2560_FASTFAT_v100.zip\">UB_MK3_2560_FASTFAT_v100<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>-diese Library dient zum ansteuern der SD-Karte auf der STAMP \u201cmyAVR STAMP 256plus\u201d -die SD-Karte ist an den SPI-Bus angeschlossen. -die SD-Karte muss mit dem FAT-Dateisystem formatiert sein -Filenamen im Format 8+3 -&gt; 8 Zeichen fuer den Filnamen und 3 &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=670\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":554,"menu_order":31,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[127],"tags":[11,9,60,26],"class_list":["post-670","page","type-page","status-publish","hentry","category-atmega","tag-atmega2650","tag-library","tag-myavr-stamp-256plus","tag-sd-karte"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/670","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=670"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/670\/revisions"}],"predecessor-version":[{"id":1234,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/670\/revisions\/1234"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/554"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}