09-FAT16-Library (ATMega)

-diese Library dient zum ansteuern der SD-Karte auf
der STAMP “myAVR STAMP 256plus

-die SD-Karte ist an den SPI-Bus angeschlossen,
aus dem Grund wird auch der SPI-Treiber
“MK3_2560_SPI.h” benoetigt

-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 Stephan Buskers FAT16-Dateisystem-Treiber (siehe Copyrighthinweis im Header der Library)

-Es gibt noch eine “schnellere” Library die allerdings etwas komplexer ist.
(MK3_2560_FASTFAT.h)

Funktionen :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
MK3_INIT_FAT16()     // zum initialisieren der Funktionen
MK3_FAT16_CHKDSK()   // Check ob eine SD-Karte vorhanden ist
F21_fopen_()         // oeffnet ein File (zum lesen oder schreiben)
F22_fclose_()        // zum schliessen eines Files
F28_fputs_()         // String in ein File schreiben
F29_fgets_()         // String aus einem File lesen
F24_fwrite_()        // Objekt in ein File schreiben
F23_fread_()         // Objekt aus einem File lesen
 
F30_fexist_()        // test ob ein File existiert
F45_mkdir_()         // erstellt ein Directory
F46_chdir_()         // wechselt in ein Directory
F48_findfirst_()     // findet das erste Objekt
F49_findnext_()      // findet das naechste Objekt
F50_fdelete_()       // loeschet ein File
F51_rmdir_()         // loeschet ein Directory
F52_feof_()          // test ob File-Ende erreicht

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
//-----------------------------------------------------------------------------
// Title      : bsp_ub015_mk3_fat16
//-----------------------------------------------------------------------------
// Funktion   : SD-Card Test
// Schaltung  : myAVR MK3
//-----------------------------------------------------------------------------
// Prozessor  : ATMega2560
// Takt       : 16 MHz
// Sprache    : C
// Date       : 22.02.2010
// 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_FAT16.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)
{
  bool s_ok=false;
  File *myfile;
 
  MK3_INIT_LCD(); // init des LCD
 
  MK3_LCD_CLEAR(); // LCD loeschen
  MK3_LCD_LIGHT(true); // beleuchtung einschalten
 
  MK3_INIT_FAT16();
 
  MK3_LCD_STRING_AT(0,0,"suche SD-Karte:");
 
  s_ok=MK3_FAT16_CHKDSK();
 
  if(s_ok==true) {
    MK3_LCD_STRING_AT(0,8,"Karte gefunden");
    if(myfile=F21_fopen_("file1.txt",'w')) {
      F28_fputs_(myfile,"Dieser Text wird geschrieben");
      F22_fclose_(myfile);
      MK3_LCD_STRING_AT(0,16,"Datei geschrieben");
    }
    else {
      MK3_LCD_STRING_AT(0,16,"error");
    }
  }
  else {
    MK3_LCD_STRING_AT(0,8,"...keine Karte");
  }
 
  while (true)
  {
 
  }
  return 0;
}

Hier die Library zum download :

UB_MK3_2560_FAT16_v201

2 Antworten auf 09-FAT16-Library (ATMega)

  1. zimmermann sagt:

    c:/winavr-20080512/lib/gcc/../../avr/include/ub_mk3_2560/MK3_2560_LCD.h:266: error: ‘wert’ undeclared (first use in this function)
    c:/winavr-20080512/lib/gcc/../../avr/include/ub_mk3_2560/MK3_2560_LCD.h:266: error: (Each undeclared identifier is reported only once
    c:/winavr-20080512/lib/gcc/../../avr/include/ub_mk3_2560/MK3_2560_LCD.h:266: error: for each function it appears in.)
    ../2560_sd_karte.c:38: error: ‘mwert’ undeclared (first use in this function)
    Hilfe ,das zu der Fehlermeldung komm nicht weiter

    • admin_ub sagt:

      steht doch alles da…Fehler in Zeile 266 vom File “MK3_2560_LCD.h”
      er kennt die Variable “wert” nicht
      eventuell fehlende deklaration vom typ der variablen
      (welche das ist musst du selber nachschauen)


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert