Forum: Mikrocontroller und Digitale Elektronik Atmega 128 und MMC/SD Karte mit codevision


von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Hallo
habe folgendes Problem ich versuche die SD karte in das Programm mit 
einzubinden doch er sagt mir jedesmal das er die Karte nicht finden kann 
habe den Code von Ulrich Radig verwendet könnte da vielleicht mal jemand 
drüber schauen woran es eventuell liegen könnte. Die mmc.h ist folgende:



/*###################################################################### 
#################
Connect ARM to MMC/SD

Copyright (C) 2004 Ulrich Radig

ARM modifications by Ingo Busker 2005
######################################################################## 
###############*/

#ifndef MMC_H
 #define MMC_H

//#include "typedefs.h"


//#define SPI_Mode    1    //1 = Hardware SPI | 0 = Software SPI
#define SPI_Mode    0

#define MMC_Write    PORTB  //Port an der die MMC/SD-Karte angeschlossen 
ist also des SPI
#define MMC_Read    PINB
#define MMC_Direction_REG  DDRB


#define SPI_DI      3    //Port Pin an dem Data Output der MMC/SD-Karte 
angeschlossen ist
#define SPI_DO      7    //Port Pin an dem Data Input der MMC/SD-Karte 
angeschlossen ist
#define SPI_Clock    5    //Port Pin an dem die Clock der MMC/SD-Karte 
angeschlossen ist (clk)
#define MMC_Chip_Select    1    //Port Pin an dem Chip Select der 
MMC/SD-Karte angeschlossen ist
#define SPI_SS      1    //Nicht Benutz muß aber definiert werden


//Prototypes
inline uint8_t mmc_read_byte(void);

inline void mmc_write_byte(uint8_t);

extern void mmc_read_block(uint8_t *,uint8_t *,uint16_t);

extern uint8_t mmc_init(void);

extern uint8_t mmc_read_sector (uint32_t,uint8_t *);

extern uint8_t mmc_write_sector (uint32_t,uint8_t *);

extern uint8_t mmc_write_command (uint8_t *);

extern uint8_t mmc_read_csd (uint8_t *);

extern uint8_t mmc_read_cid (uint8_t *);

//set MMC_Chip_Select to high (MMC/SD-Karte Inaktiv)
#define MMC_Disable() MMC_Write|= (1<<MMC_Chip_Select);

//set MMC_Chip_Select to low (MMC/SD-Karte Aktiv)
#define MMC_Enable() MMC_Write&=~(1<<MMC_Chip_Select);

#define nop()  _asm__ __volatile_ ("nop" ::)

#endif //_MMC_H_


und im Anhang ist die Datei mmc.c

im main mache ich zum test ob eine Karte vorhanden und erkannt wurde 
eine abfrage bevor er in die eigentliche programm schleife geht mit:

//MMC-Karte Initialisieren
card_found = mmc_init();

//delay_ms(4000);

if (card_found != 0)
{
        lcd_string(mmc_nfound);
        delay_ms(4000);
}

if (card_found == 0)
{
        lcd_string(mmc_found);
        delay_ms(4000);
}

wäre nett wenn mit jemand helfen könnte:

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.