Hallo,
an meinem mega644 hängt eine sd-Karte, die ich problemlos mit den
sd-Karten Routinen von U. Radig beschreiben kann. In der Main werden nur
ein paar Zeichen aus einem Buffer auf die Karte übertragen. Da das
Programm aber später noch erweitert werden soll, möchte ich mit einem
AVR-Dragon über JTAG debuggen.
Erst wird die Karte initialisiert und dann eine Datei geöffnet. Für
beides wird die unten stehende Funktion verwendet. Bei der
Initialisierung läuft alles prima nur beim öffnen der Datei bleibt das
Programm in dieser Funktion hängen:
1 | uint8_t spi_rec_byte(void)
|
2 | {
|
3 | /* send dummy data for receiving some */
|
4 | SPDR = 0xff;
|
5 | while(!(SPSR & (1 << SPIF)));
|
6 |
|
7 | return SPDR;
|
8 | }
|
Scheinbar werden keine Daten mehr von der SPI-Schnittstelle empfangen.
Wie kann das sein? Die spi- Initialisierung funktioniert ja auch mit
dieser Funktion + jtag.
Gruß
Andi