Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

FatFS dosya işlemleri

Başlatan respected, 11 Mayıs 2014, 00:33:22

respected

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

Kabil ATICI

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

kimlenbu

dosyayı açtıktan sonra f_lseek komutu ile yazacağın konumu ayarla.

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

respected

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

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