Code: Alles auswählen
#include <stdlib.h>
#include <stdio.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include "config.h"
#include "lcd.h"
#include "sdkarte/fat16.h"
#include "sdkarte/sdcard.h"
#include "util/delay.h"
int main(void){
int bufferlen=512;
char buffer[]="oder doch";
//Spielerrei mit einem LCD
lcd_init();
lcd_clear();
back_light = 10;
lcd_print(0,0,"lcdinit");
_delay_ms(2000);
lcd_print(0,0,"delay ");
//sd-Karte starten
f16_init();
f16_check(); // Ein-/Ausstecken der SD-Karte erkennen
lcd_print(0,0,"sdinit ");
if(cwdir_ptr){ // falls SD-Karte vorhanden
lcd_print(0,0,"cwdir ");
File *picfile = f16_open("camera.jpg","a");
lcd_print(0,0,"open ");
f16_fseek(picfile,0,0);
lcd_print(0,0,"seek ");
fat16_write_file(picfile, (uint8_t *)&buffer[0], bufferlen);
lcd_print(0,0,"write ");
f16_flush(); // Cache leeren
lcd_print(0,0,"flush ");
f16_close(picfile);
}
lcd_print(0,0,"while ");
while(1){
#if USE_MMC
f16_check(); // Ein-/Ausstecken der SD-Karte erkennen
#endif
}
return(0);
}
Ohne delay läuft alles Problemlos durch, die Karte wird beschrieben.
Wie kann das sein? Habe ich irgendwas übersehen?
Ich such jetzt schon min. 20 h an dem Problem, kann aber den Fehler nicht finden