Atmega 128 und MMC/SD Karte mit codevision

Gast #658425
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:
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.