FAT yapili SD karti okumak

Başlatan z, 30 Kasım 2013, 14:25:23

z

Yeni projemde bilgisayardan icine dosya konmus SD karti okumam gerekiyordu. PC de olusturulan dosya, SD kartin icine FAT yapisina uygun yerlestirildiginden islemcimin de FAT yapisini cozmesi gerekiyor.
Bununla ilgili olarak hazirladigim yazim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

engerex

 Eline sağlık. Kısa sürede sonuca vardın.
Umarım güzel bir proje ortaya çıkar.

muhittin_kaplan

Bununla ilgili bir kutuphane yaparsan bizi elmcihan dan kurtarmis olursun.

MC_Skywalker

Eline sağlık. Harika bir çalışma olmuş.

Das zuper

z

#4
Kutuphaneyi cok yakinda yayinlayacagim.

Bir zamanlar bu is icin ne kadar RAM gerekiyor diye sormustum.

Program, dosyayi 512 byte bloklar halinde okuyor ve ihtiyac olunan RAM sadece 528 byte.


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Elektroemre

Yakın zamanda Fat32 ve LongFileName desteği de bekliyoruz Bülent hocam  :D

z

#6
FAT32 nin hic bir espirisi yok. Long File'inda. Bu konuya ancak piyasada 2GB SD kartlar satilmaz oldugunda bakarim artik. 2GB alana yerlestirilecek verileri CNC uygulamalarimda hayal bile edemiyorum.

FAT32 kullanmak isterseniz bu konuyu arastirirken okudugum dokumanlardan aklimda kalan, sadece FAT de 16 bit yerine 32 bir zincir halkalari kullaniliyor. Bir de Root klasoru icin ofset verilebiliyor ve root altindaki 512 dosya sayisi sorunu asilmis oluyor. Fat16 yazilimi uzerindeki cok kucuk iki retuj ile hallolacak bir konu.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

#7
EasySD adını verdiğim programı 2GB SD kart ile denedim ve PC'den kopyaladığım dosyaları STM32F103C8 islemciyle sorunsuz okudum.



struct Dosya
{
   char Buffer[512];         
   int  Length;  
   int  V[2];
};

struct Dosya File;
extern void SysInit(void);
extern int fread(struct Dosya*);
extern int fopen(char*,struct Dosya*);

void SystemInit()
{
    SysInit();      
}

int main()
{
char err;

    err=fopen("BBB.TXT",&File);
    while(!err) 
       {
         err=fread(&File);// 512 Byte oku      
         ....             // Okunan 512 Byte'ı kullan
         ....
       }

/* Err kodlari

   -1: Dosyanin sonuna gelindi
    0: Hata yok
    1: SD kart bulunamadi 
    2: SD kart voltaji uygun degil 
    3: HCSD kart kullanamazsiniz
    4: SD kart Hatasi
    5: SD kartiniz FAT16 formatiyla formatlanmamis
    6: Dosya bulunamadi 
    7: Dosya okuma hatası */
    return(err);      
}


Programın linki ve detaylar için tıklayın.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Ramiz

#8
Mükemmel olmuş :) Congratulate!! :)

Şöyle bir kaç gün dinlendikten sonra usb flash bellek içinde bir şeyler yapmanızı bekliyoruz :) (Zira bunu çözsek, çok ama çok daha iyi olur :) )
Electrical & Electronics Engineering -> Step one

FxDev

Elmchan kullanmamanızın nedeni nedir acaba?
Forumda bazı bağnaz kişiler tarafından engellenip, atıldım. Tüm bu bağnaz kişilere rağmen Atatürkçülüğü sonuna kadar savunacağım; onlar da bağnazlıklarında boğulacaklar. Haberleşme için: info[at]firatdeveci.com / ©firatdeveci.com - ße Different Everytime!

Kazım


muhittin_kaplan

Alıntı yapılan: FxDev - 02 Aralık 2013, 10:07:09
Elmchan kullanmamanızın nedeni nedir acaba?
Kendi Yapacak Ya İlla.

z

Alıntı yapılan: FxDev - 02 Aralık 2013, 10:07:09
Elmchan kullanmamanızın nedeni nedir acaba?

İçinde kurt olabilir.
Yapamadım diye bir yerim şişebilir.

Bahane çok. 
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

FxDev

Alıntı yapılan: muhittin_kaplan - 02 Aralık 2013, 10:14:42
Kendi Yapacak Ya İlla.

Projelerde ilerledikçe insan şunu anlıyor; çok fazla kişi tarafından test edilmiş kütüphane en iyi kütüphanedir. Ha projeye özel bir şey vardır, hız/güvenlik vb. o zaman oturulup yazılabilir. Ben sadece ne farkı olduğunu merak ettim.
Forumda bazı bağnaz kişiler tarafından engellenip, atıldım. Tüm bu bağnaz kişilere rağmen Atatürkçülüğü sonuna kadar savunacağım; onlar da bağnazlıklarında boğulacaklar. Haberleşme için: info[at]firatdeveci.com / ©firatdeveci.com - ße Different Everytime!

muhittin_kaplan

Yok Yapmasın Demiyorum Yapsın.