Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: respected - 11 Mayıs 2014, 00:33:22

Başlık: FatFS dosya işlemleri
Gönderen: respected - 11 Mayıs 2014, 00:33:22
char buf[100] =" %0.2d \r\n ";

res = f_open(&fsrc,"0:/test.txt", FA_CREATE_ALWAYS);//dosya olusturuldu
f_close(&fsrc);

while(1)
{
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0))
{

GPIO_ToggleBits(GPIOD,GPIO_Pin_15);
sprintf(buf,"\r\n %0.2d \r\n",tempdeger);
tempdeger++;
res = f_open(&fsrc,"0:/test.txt",  FA_WRITE);

if(res==FR_OK)
{

res = f_write(&fsrc,buf,sizeof(buf),&bw);


}
if(res==FR_OK)
f_close(&fsrc);
delay_nms(250);
}



}


Bu şekilde dosya oluşturup dosyaya butona her basıldığında artan bir sayıyı kaydetmek istiyorum. \r\n yaparak artan her değeri alt alta yazdırmak istiyorum fakat sd karta baktığımda butona kaç defa basılmışsa o sayı yazıyor ve alt alta değilde tek bir yere yani en son değeri tek bir yere yazıyor.
Nerede hata yapıyorum acaba?
Teşekkürler
Başlık: Ynt: FatFS dosya işlemleri
Gönderen: Kabil ATICI - 11 Mayıs 2014, 01:52:15
Öncelikle bu olayı sizin kullandığınız alanda bilmiyorum, sadece öneri diyelim O yüzde hatalı ise afola.

FA_WRITE yerine

FA_OPEN_ALWAYS

olabilir. Bu durumda ne şekilde bir dizin kullanılması gerekir bilemem.

Normalde bilgisayarda dosyaya verinin eklenmesi gerekir. Doğrudan yazdırırsanız eski verini yerini alır diye biliyorum.
Başlık: Ynt: FatFS dosya işlemleri
Gönderen: kimlenbu - 11 Mayıs 2014, 02:26:01
dosyayı açtıktan sonra f_lseek komutu ile yazacağın konumu ayarla.

http://elm-chan.org/fsw/ff/en/lseek.html (http://elm-chan.org/fsw/ff/en/lseek.html)
Başlık: Ynt: FatFS dosya işlemleri
Gönderen: respected - 11 Mayıs 2014, 13:22:15
Alıntı yapılan: kimlenbu - 11 Mayıs 2014, 02:26:01
dosyayı açtıktan sonra f_lseek komutu ile yazacağın konumu ayarla.

http://elm-chan.org/fsw/ff/en/lseek.html (http://elm-chan.org/fsw/ff/en/lseek.html)

Teşekkürler
res = f_lseek(&fsrc, f_size(&fsrc));
bu şekilde yazınca alt alta sayılar yazdırılabiliyor.