1 | int main(void)
|
2 | {
|
3 |
|
4 | usart_init0(BAUDRATE); // setup the UART0
|
5 | usart_init1(BAUDRATE); // setup the UART1
|
6 |
|
7 |
|
8 | //Initialisierung der MMC/SD-Karte
|
9 | usart_writePC("System Ready!\r\n");
|
10 | while ( mmc_init() !=0) //ist der Rückgabewert ungleich NULL ist ein Fehler aufgetreten
|
11 | {
|
12 | usart_writePC("** Keine MMC/SD Karte gefunden!! **\n");
|
13 | }
|
14 | usart_writePC("Karte gefunden!!\n");
|
15 |
|
16 | fat_init();//laden Cluster OFFSET und Size
|
17 | //Initialisierung der MMC/SD-Karte ENDE!
|
18 |
|
19 | unsigned char Buffer[512];
|
20 | unsigned int tmp;
|
21 |
|
22 | mmc_read_csd (Buffer);
|
23 |
|
24 | for (tmp = 0;tmp<16;tmp++)
|
25 | {
|
26 | usart_writePC("%x ",Buffer[tmp]);
|
27 | };
|
28 |
|
29 |
|
30 | //Ausgabe des Root Directory
|
31 | unsigned int Clustervar;
|
32 | unsigned char Dir_Attrib = 0;
|
33 | unsigned long Size = 0;
|
34 | usart_writePC("\r\nDirectory\r\n");
|
35 | for (char a = 1;a < 240;a++)
|
36 | {
|
37 | Clustervar = fat_read_dir_ent(0,a,&Size,&Dir_Attrib,Buffer);
|
38 | if (Clustervar == 0xffff)
|
39 | {
|
40 | break;
|
41 | }
|
42 | tmp = (Size & 0x0000FFFF);
|
43 | usart_writePC("Cluster = %4x DirA = %2x FileName = ",Clustervar,Dir_Attrib);
|
44 | usart_writePC("%s",Buffer);
|
45 | usart_writePC("\r\n");
|
46 | }
|
47 | usart_writePC("\r\nDirectory Ende\r\n");
|
48 |
|
49 | //Lade Cluster für das index.htm File in den Speicher
|
50 | Clustervar = 0;//suche im Root Verzeichnis
|
51 | if (fat_search_file((unsigned char *)"mmc.txt",&Clustervar,&Size,&Dir_Attrib,Buffer) == 1)
|
52 | {
|
53 | usart_writePC("\nFile Found!!\r\n");
|
54 | //Lese File und gibt es auf der seriellen Schnittstelle aus
|
55 | for (int b = 0;b<52;b++)
|
56 | {
|
57 | fat_read_file (Clustervar,Buffer,b);
|
58 | for (int a = 0;a<512;a++)
|
59 | {
|
60 | usart_writePC("%c",Buffer[a]);
|
61 | }
|
62 | }
|
63 | }
|
64 |
|
65 | usart_writePC("FERTIG!!\r\n");
|
66 |
|
67 |
|
68 |
|
69 |
|
70 |
|
71 |
|
72 |
|
73 |
|
74 | //Konfiguration der Ausgänge bzw. Eingänge
|
75 | //definition erfolgt in der config.h
|
76 |
|
77 | //1=OUTPUT / 0=INPUT -> Bei 0 (Eingang) mit Portx den Pullup aktivieren
|
78 |
|
79 | DDRA = OUTA; //Eingang
|
80 | DDRC = OUTC;
|
81 |
|
82 | // Pullups einschalten PortA 1 Pull up aktiv = Eingang
|
83 | PORTA |= (1 << PORTA0) | (1 << PORTA1) | (1 << PORTA2) | (1 << PORTA3);
|
84 |
|
85 |
|
86 | //DDRB &= ~(1 << DDB1); // Pin B1 (Pollin Prog.-Jumper) als Eingang definieren
|
87 | //PORTB |= (1 << PORTB1); // Pullup einschalten PortB1
|
88 |
|
89 |
|
90 | eepvar_init(); // Grundeinstellungen einlesen
|
91 |
|
92 | com74hc595_init();
|
93 | ....
|