Forum: Compiler & IDEs Probleme beim schreiben in ein file FAt16 lib vonRoland Riegel


von herrmann (Gast)


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

von holger (Gast)


Lesenswert?

Was sagt Roland denn zu dem Problem ?

von herrmann (Gast)


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

von holger (Gast)


Lesenswert?

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

Wieviel RAM hat dein uC ?

von herrmann (Gast)


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

von herrmann (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.