SD kaart

Seotud mooduliga: [HW] Kontrollermoodul

See teegi osa sisaldab Kodulabori SD kaardi kasutamise funktsioone.

Andmetüübid

  • static FATFS FATFS_Obj - FATFS_Obj on FATFS andmestruktuuri instants. Sisaldab ketaste identifikaatoreid.
  • FIL fil_obj - Failisüsteemi andmestruktuur, kuhu salvestatakse failide identifikaatorid.
  • DSTATUS - Koodid, mida kettaga seotud funktsioonid tagastavad.
    • RES_OK - (0) Toiming õnnestus.
    • RES_ERROR - (1) R/W viga.
    • RES_WRPRT - (2) Kirjutuskaitstud.
    • RES_NOTRDY - (3) Ketas ei ole valmis.
    • RES_PARERR - (4) Mõni parameetritest on vale.
  • FRESULT - Tähtsamad koodid, mida failidega seotud funktsioonid tagastavad.
    • FR_OK - (0) Toiming õnnestus.
    • FR_DISK_ERR - (1) Ketta I/O kihi viga.
    • FR_INT_ERR - (2) Üldine ketta viga.
    • FR_NOT_READY - (3) Ketas ei ole toiminguks valmis.
    • FR_NO_FILE - (4) Faili ei leitud.
    • FR_NO_PATH - (5) Aadressi ei leitud.
    • FR_INVALID_NAME - (6) Vale faili nimeformaat.
    • FR_DENIED - (7) Ketas on täis.
    • FR_EXIST - (8) Juurdepääs on keelatud.
    • FR_INVALID_OBJECT - (9) Faili / kausta objekt on vigane.
    • FR_WRITE_PROTECTED - (10) Ketas on kirjutuskaitstud.
    • FR_INVALID_DRIVE - (11) Ketta number on vale.
    • FR_NO_FILESYSTEM - (13) Toetatud FAT failisüsteemi ei leitud.
    • FR_TIMEOUT - (15) Kettaga ei saadud ühendust.
    • FR_INVALID_PARAMETER - (19) Mõni parameeter on vale.
  • ModeFlags - Faili võimalikud avamisrežiimid.
    • FA_READ - Fail avatakse lugemisrežiimis.
    • FA_WRITE - Fail avatakse kirjutusrežiimis.
    • FA_OPEN_EXISTING - Avab faili. Kui faili ei ole, siis tagastatakse veakood.
    • FA_OPEN_ALWAYS - Avab faili. Kui faili ei ole, siis loob selle.
    • FA_CREATE_NEW - Loob uue faili. Kui fail on juba olemas, siis tagastatakse veakood.
    • FA_CREATE_ALWAYS - Loob uue faili. Kui fail on juba olemas, siis kirjutatakse see üle.

Funktsioonid

  • DSTATUS disk_initialize (BYTE drv)

Seadistab ketta. Parameetrid:

  • drv - Ketta number. Enamus juhtudel 0.
  • Tagastab DSTATUS koodi.
  • DSTATUS disk_status (BYTE drv)

Näitab ketta olekut. Parameetrid:

  • drv - Ketta number. Enamus juhtudel 0.
  • Tagastab DSTATUS koodi.
  • FRESULT f_mount (BYTE Drive, FATFS* FileSystemObject)

Seadistab failisüsteemi. Parameetrid:

  • Drive - Ketta number. Enamus juhtudel 0.
  • FileSystemObject - Viit failisüsteemi objektile.
  • Tagastab FRESULT koodi.
  • FRESULT f_open (FIL* FileObject, const TCHAR* FileName, BYTE ModeFlags)

Avab või loob faili. Parameetrid:

  • FileObject - Viit failisüsteemi objektile.
  • FileName - Faili nimi.
  • ModeFlags - Avamisrežiimi lipp.
  • Tagastab FRESULT koodi.
  • FRESULT f_close (FIL* FileObject)

Suleb faili. Parameetrid:

  • FileObject - Viit failisüsteemi objektile.
  • Tagastab FRESULT koodi.
  • FRESULT f_read (FIL* FileObject, void* Buffer, UINT ByteToRead, UINT* ByteRead)

Loeb failist etteantud arv baite andmeid. Parameetrid:

  • FileObject - Viit failiobjektile.
  • Buffer - Viit puhvrile, kuhu kirjutatakse loetud andmed.
  • ByteToRead - Loetavate baitide arv.
  • ByteRead - Viit muutujale, kuhu tagastatakse loetud baidid.
  • Tagastab FRESULT koodi.
  • FRESULT f_write (FIL* FileObject, const void* Buffer, UINT ByteToWrite, UINT* ByteWritten)

Kirjutab faili etteantud arv baite andmeid. Parameetrid:

  • FileObject - Viit failiobjektile.
  • Buffer - Viit andmetele, mis kirjutatakse faili.
  • ByteToWrite - Kirjutatavate baitide arv.
  • ByteWritten - Viit muutujale, kuhu tagastatakse kirjutatud baidid.
  • Tagastab FRESULT koodi.
  • FRESULT f_sync (FIL* FileObject)

Kirjutab puhvrites olevad andmed fail, et vähendada andmekadu voolukatkestuse korral. Kasutatakse rakendustes, kus fail on väga pikka aega avatud. Parameetrid:

  • FileObject - Viit failiobjektile.
  • Tagastab FRESULT koodi.
  • FRESULT f_mkdir (const TCHAR* DirName)

Loob kausta. Parameetrid:

  • DirName - Kausta nimi.
  • Tagastab FRESULT koodi.
  • FRESULT f_unlink (const TCHAR* FileName)

Kustutab faili või kausta. Parameetrid:

  • FileName - Objekti nimi.
  • Tagastab FRESULT koodi.
  • FRESULT f_rename (const TCHAR* OldName, const TCHAR* NewName)

Nimetab faili või kausta ümber. Parameetrid:

  • OldName - Objekti vana nimi.
  • NewName - Objekti uus nimi.
  • Tagastab FRESULT koodi.
  • TCHAR* f_gets (TCHAR* Str, int Size, FIL* FileObject)

Loeb failist etteantud pikkusega stringi. Parameetrid:

  • Str - Puhver, kuhu loetud andmed salvestatakse.
  • Size - Stringi pikkus.
  • FileObject - Viit failiobjektile.
  • Tagastab Str puhvri, kui oli edukas.
  • int f_putc (TCHAR Chr, FIL* FileObject)

Lisab faili tähemärgi. Parameetrid:

  • Chr - Tähemärk, mis lisatakse faili.
  • FileObject - Viit failiobjektile.
  • Tagastab 1, kui oli edukas.
  • int f_printf (FIL* FileObject, const TCHAR* Foramt, …)

Lisab faili vormindatud stringi. Parameetrid:

  • FileObject - Viit failiobjektile.
  • Foramt - Stringi formaat.
  • Tagastab kirjutatud märkide arvu, kui oli edukas.
  • DWORD f_tell (FIL* FileObject)

Kursori asukoht failis. Parameetrid:

  • FileObject - Viit failiobjektile.
  • Tagastab viitena lugemis/kirjutamiskursori asukoha failis.
  • FRESULT f_lseek (FIL* FileObject,DWORD Offset)

Viib kursori sooovitud asukohta failis. Parameetrid:

  • FileObject - Viit failiobjektile.
  • Offset - Soovitud asukoht baitides faili algusest.
  • Tagastab FRESULT koodi.

 

Näide

#include <stdio.h>
#include <homelab/module/ff.h>
#include <homelab/module/diskio.h>
 
int main (void)
{
    static FATFS FATFS_Obj;
    FIL fil_obj;
 
	// SD kaardi initsialiseerimine. 
	disk_initialize(0);
 
	// Failisüsteemi initsialiseerimine. 
	f_mount(0, &FATFS_Obj);
 
	// Tekitatakse tekstifail "fail.txt".
	f_open(&fil_obj, "/fail.txt", FA_CREATE_NEW);
 
	// Fail avatakse kirjutusreziimis.
	f_open(&fil_obj, "/fail.txt", FA_WRITE);
 
	// Faili kirjutamine.
	f_printf(&fil_obj, "SD Card test");
 
 	// Faili sulgemine
	f_close(&fil_obj);	
}
et/software/homelab/library/module/sdcard.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0