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
Ö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.
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)
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.