www.mikrocontroller.net

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


Autor: Michael (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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:

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.