Hallo.
Ich bin gerade dabei die eine MMC mit der LIB von Ulrich Radig
anzusteuern. Ich habe überall wo Mega32 steht Mega16 reingeschrieben
(sind ja PIN kompatibel)
(ich nutze die beispiel funktion)
Dann hab ich noch ein paar zusätzliche UART-Debug strings hinzugefügt.
(und eine funtkion die Wartet bis eine Taste gedrückt wird:
1 | //Initzialisierung der seriellen Schnittstelle
|
2 | IOInit();
|
3 |
|
4 | //öffnet einen kanal für printf
|
5 | fdevopen (uart_putchar, NULL, 0);
|
6 |
|
7 | DDRC = 0x00;
|
8 | PORTC = 0xFF;
|
9 | printf ("~"); //Debug String
|
10 | while ((PINC|0b11111110)==0xFF); //Warte bis taste gedrückt
|
11 |
|
12 | //Initialisierung der MMC/SD-Karte
|
13 | printf ("System OK\n\n"); //Debug String
|
14 | while ( mmc_init() !=0) //ist der Rückgabewert ungleich NULL ist ein
|
15 | Fehler aufgetreten
|
16 | {
|
17 | printf("** Keine MMC/SD Karte gefunden!! **\n");
|
18 | }
|
19 |
|
20 | printf("Karte gefunden!!\n"); //Debug String
|
21 | printf("0"); //Debug String
|
22 | Cluster_Data_Store();//laden Cluster OFFSET und Size ins EEPROM
|
23 | //Initialisierung der MMC/SD-Karte ENDE!
|
24 | printf("1"); //Debug String
|
25 | unsigned char Buffer[512];
|
26 | unsigned int tmp;
|
27 | ........
|
über den UART komt folgende rein: (solange ich die taste Drücke)
~System OK
Karte gefunden!!
0~System OK
Karte gefunden!!
0~System OK
Karte gefunden!!
0~
d.h nach der Funktion Cluster_Data_Store(); wird ein Reset ausgelöst (/
die funktion main beginnt von vorne)
Wodurch könnte das zu stande kommen ?