Probleme beim schreiben in ein file FAt16 lib vonRoland Riegel

Gast #843571
Lesenswert?

Hi


bei folgenden punkt tut sich nichts mehr

fd->dir_entry.cluster = cluster_num = fat16_append_clusters(fd->fs, 0, 
1);

in der int16_t fat16_write_file(struct fat16_file_struct* fd, const 
uint8_t* buffer, uint16_t buffer_len)



Datei ist erzeugt und leer.

Hat jemand einen tip????

        Danke
Gast #843712
Lesenswert?

Habe das Problem gefunden aber weiß nicht warum es so ist


ich habe nun versucht ein unsigned char tmp[264]
mit

strcpy(tmp,"1234567890");
zu füllen und es so zu übergeben

if(fat16_write_file(fd, (uint8_t*) tmp, 15) != 15)


das klappt


aber wenn ich


read_daten(ende,tmp);

// ZUGRIFF AUF ATMEL FLASH
char *read_daten(unsigned int page,unsigned char *daten)
{
read_from_main_memory(page,&daten[0]);
return (&daten[0]);
}

sind die daten auch in tmp habe ich über die UART angeschaut.

nun übergebe ich wieder

if(fat16_write_file(fd, (uint8_t*) tmp, 15) != 15)

nun habe ich wieder das Problem wie oben beschrieben

warum????

ist die dekleration falsch????


Danke
Gast #843762
Lesenswert?

Ich habe einen 128 iger


Problem lag am SPI.


Aber jetzt habe ich das Problem ich will 7 x ein tmp[222] schreiben.

beim 4. mal hängt er sich auf

if(fat16_write_file(fd, (uint8_t*) tmp, 222) != 222)



Danke
Gast #844194
Lesenswert?

Habe jetzt die libs von www.mikro-control.de genommen

soweit geht alles bis auf dieses
ich will herausfinden beim schreiben von dateien ob diese schon 
existiert.

in dieser funktion existiert jeder dateiname warum weiß ich nicht habe

alles möglich probiert die sd formatiert usw.immer wieder das selbe



//______________________________________________________________________ 
________________________________________________________________
// Funtion:   u8 fexist_(u8*, File *file);
//
// Description:  This function searches the specified file and returns 0 
if the file was not found.
//
//
//  Return:    0 = file does not exist
//        1 = file exists
//______________________________________________________________________ 
________________________________________________________________

u8 fexist_(s8 *fname)
{
  File *file;


  file = ReserveFilePointer();

  if(file != NULL)
  {
    if((file = fopen_(fname,'r'))!= NULL)
    {
    send_UART("EXISTS\r");
      fclose_(file);
      return(1);
    }
    else
    {
      return(0);
    }
  }
  else
  {
    return(0);
  }
}




übergen tu ich die Funktion so

if(fexist_("test.txt"))
{
send_UART("!!IGC FILE  ");
send_UART(flashdatenbank.igcfile);
send_UART("existiert bereits ignoriert!!\r");
sdnf++;
}


Danke

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren