{"id":620,"date":"2017-11-25T20:00:12","date_gmt":"2017-11-25T19:00:12","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=620"},"modified":"2017-12-30T19:47:46","modified_gmt":"2017-12-30T18:47:46","slug":"09-fat16-library-atmega","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/atmega2560\/komplette-library-liste-atmega\/09-fat16-library-atmega\/","title":{"rendered":"09-FAT16-Library (ATMega)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/atmega2560\/komplette-library-liste-atmega\/08-beep-library-atmega\/\" title=\"08-Beep-Library (ATMega)\"><span class=\"meta-nav\">\u2190<\/span> 08-Beep-Library (ATMega)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/atmega2560\/komplette-library-liste-atmega\/10-twi_lm75-library-atmega\/\" title=\"10-TWI_LM75-Library (ATMega)\">10-TWI_LM75-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 \u201c<a href=\"http:\/\/shop.myavr.de\/index.php?sp=article.sp.php&amp;artID=100062\" target=\"_blank\" rel=\"noopener\">myAVR STAMP 256plus<\/a>\u201d<\/p>\n<p>-die SD-Karte ist an den SPI-Bus angeschlossen,<br \/>\naus dem Grund wird auch der SPI-Treiber<br \/>\n\u201cMK3_2560_SPI.h\u201d benoetigt<\/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\u00a0Stephan Buskers FAT16-Dateisystem-Treiber (siehe Copyrighthinweis im Header der Library)<\/p>\n<p>-Es gibt noch eine \u201cschnellere\u201d Library die allerdings etwas komplexer ist.<br \/>\n(MK3_2560_FASTFAT.h)<\/p>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">MK3_INIT_FAT16()     \/\/ zum initialisieren der Funktionen\r\nMK3_FAT16_CHKDSK()   \/\/ Check ob eine SD-Karte vorhanden ist\r\nF21_fopen_()         \/\/ oeffnet ein File (zum lesen oder schreiben)\r\nF22_fclose_()        \/\/ zum schliessen eines Files\r\nF28_fputs_()         \/\/ String in ein File schreiben\r\nF29_fgets_()         \/\/ String aus einem File lesen\r\nF24_fwrite_()        \/\/ Objekt in ein File schreiben\r\nF23_fread_()         \/\/ Objekt aus einem File lesen\r\n\r\nF30_fexist_()        \/\/ test ob ein File existiert\r\nF45_mkdir_()         \/\/ erstellt ein Directory\r\nF46_chdir_()         \/\/ wechselt in ein Directory\r\nF48_findfirst_()     \/\/ findet das erste Objekt\r\nF49_findnext_()      \/\/ findet das naechste Objekt\r\nF50_fdelete_()       \/\/ loeschet ein File\r\nF51_rmdir_()         \/\/ loeschet ein Directory\r\nF52_feof_()          \/\/ test ob File-Ende erreicht<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/-----------------------------------------------------------------------------\r\n\/\/ Title      : bsp_ub015_mk3_fat16\r\n\/\/-----------------------------------------------------------------------------\r\n\/\/ Funktion   : SD-Card Test\r\n\/\/ Schaltung  : myAVR MK3\r\n\/\/-----------------------------------------------------------------------------\r\n\/\/ Prozessor  : ATMega2560\r\n\/\/ Takt       : 16 MHz\r\n\/\/ Sprache    : C\r\n\/\/ Date       : 22.02.2010\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_FAT16.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\n\r\nint main (void)\r\n{\r\n  bool s_ok=false;\r\n  File *myfile;\r\n\r\n  MK3_INIT_LCD(); \/\/ init des LCD\r\n\r\n  MK3_LCD_CLEAR(); \/\/ LCD loeschen\r\n  MK3_LCD_LIGHT(true); \/\/ beleuchtung einschalten\r\n\r\n  MK3_INIT_FAT16();\r\n\r\n  MK3_LCD_STRING_AT(0,0,\"suche SD-Karte:\");\r\n\r\n  s_ok=MK3_FAT16_CHKDSK();\r\n\r\n  if(s_ok==true) {\r\n    MK3_LCD_STRING_AT(0,8,\"Karte gefunden\");\r\n    if(myfile=F21_fopen_(\"file1.txt\",'w')) {\r\n      F28_fputs_(myfile,\"Dieser Text wird geschrieben\");\r\n      F22_fclose_(myfile);\r\n      MK3_LCD_STRING_AT(0,16,\"Datei geschrieben\");\r\n    }\r\n    else {\r\n      MK3_LCD_STRING_AT(0,16,\"error\");\r\n    }\r\n  }\r\n  else {\r\n    MK3_LCD_STRING_AT(0,8,\"...keine Karte\");\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_FAT16_v201.zip\">UB_MK3_2560_FAT16_v201<\/a><\/p>\n<h3 id=\"comments-title\">2 Antworten auf <em>09-FAT16-Library (ATMega)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-3048\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-3048\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/00603c68874a32ca3ff149aa2dc8b51e?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">zimmermann<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">27. M\u00e4rz 2015 um 13:48<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>c:\/winavr-20080512\/lib\/gcc\/..\/..\/avr\/include\/ub_mk3_2560\/MK3_2560_LCD.h:266: error: \u2018wert\u2019 undeclared (first use in this function)<br \/>\nc:\/winavr-20080512\/lib\/gcc\/..\/..\/avr\/include\/ub_mk3_2560\/MK3_2560_LCD.h:266: error: (Each undeclared identifier is reported only once<br \/>\nc:\/winavr-20080512\/lib\/gcc\/..\/..\/avr\/include\/ub_mk3_2560\/MK3_2560_LCD.h:266: error: for each function it appears in.)<br \/>\n..\/2560_sd_karte.c:38: error: \u2018mwert\u2019 undeclared (first use in this function)<br \/>\nHilfe ,das zu der Fehlermeldung komm nicht weiter<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-3056\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-3056\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">30. M\u00e4rz 2015 um 18:30<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>steht doch alles da\u2026Fehler in Zeile 266 vom File \u201cMK3_2560_LCD.h\u201d<br \/>\ner kennt die Variable \u201cwert\u201d nicht<br \/>\neventuell fehlende deklaration vom typ der variablen<br \/>\n(welche das ist musst du selber nachschauen)<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ol>\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, aus dem Grund wird auch der SPI-Treiber \u201cMK3_2560_SPI.h\u201d benoetigt -die SD-Karte muss mit dem FAT-Dateisystem formatiert sein -Filenamen im Format &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/atmega2560\/komplette-library-liste-atmega\/09-fat16-library-atmega\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":554,"menu_order":9,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[127],"tags":[11,25,9,26],"class_list":["post-620","page","type-page","status-publish","hentry","category-atmega","tag-atmega2650","tag-fat16","tag-library","tag-sd-karte"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/comments?post=620"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/620\/revisions"}],"predecessor-version":[{"id":944,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/620\/revisions\/944"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/554"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/media?parent=620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}