Das Modul kann die SD Karte nicht richtig initialisieren. Und zwar hängt es sich beim Aufruf der sdraw_init() durch die Funktion f16_init() auf.
Genauer gesagt bleibt er hier hängen:
for(uint16_t i = 0; ; ++i)
{
// ACMD41 für "dünne" und "normale" SD-Karten (wil)
response = sd_raw_send_command_r1(55, 0); // APP_CMD
response = sd_raw_send_command_r1(41, 0); // SD_SEND_OP_COND
if(!(response & (1 << R1_IDLE_STATE)))
break;
if(i == 0x7fff)
{
unselect_card();
spi_rec_byte();
spi_high_frequency();
return 0;
}
}
Nach einer gewissen Zeit springt er hier zwar raus, aber ohne die Karte richtig zu Initialisieren. Ich habe auch bereits response = sd_raw_send_command_r1(55, 0); auskommentiert, hat aber leider nicht geholfen.
Edit: "Ich benutze eine 4 Gig Mirco SD Karte (mit Fat 16 auf 2 Gig gedrosselt liegt hier das Problem?"
Edit2: Ein Aufruf einer sd_raw_send_command_r1 Funktion gibt hierbei jeweils den Rückgabewert 1. Leider kann weiß ich nicht genau, was zurückgegeben werden soll. Falls response = sd_raw_send_command_r1(55, 0); auskommentiert wird, beträgt der Rückgabewert von sd_raw_send_command_r1(41, 0); den Wert 5
Welcher Wert ist erwünscht?
Edit3: Soweit nachgeschaut, sollte steht der Wert 5 für R1_ADDR_ERR stehen. Kann es sich hierbei darum handeln, dass ich eine Mikro SD Karte verwende anstelle einer normalen SD Karte oder vielleicht wurde das FAT Dateisystem falsch Formatiert? (Habe gelesen das es vorkommt wenn man mit XP FAT16 formatiert, dass dann Fehler auftretten können). Kann hier der Fehler liegen (eigentlich habe ich bis dahin doch nur die Karte angesprochen jedoch nicht das Dateisystem.
Bin für jede Hilfe Dankbar !
Gruss
Alex