www.mikrocontroller.net

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


Autor: herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was sagt Roland denn zu dem Problem ?

Autor: herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich habe nun versucht ein unsigned char tmp[264]

Wieviel RAM hat dein uC ?

Autor: herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.