mmc.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*#######################################################################################
  2. Connect ARM to MMC/SD
  3. Copyright (C) 2004 Ulrich Radig
  4. #######################################################################################*/
  5. #ifndef _MMC_H_
  6. #define _MMC_H_
  7. #include <avr/io.h>
  8. //#define SPI_Mode 1 //1 = Hardware SPI | 0 = Software SPI
  9. #define SPI_Mode 0
  10. #define MMC_Write PORTC //Port an der die MMC/SD-Karte angeschlossen ist also des SPI
  11. #define MMC_Read PINC
  12. #define MMC_Direction_REG DDRC
  13. #if defined (__AVR_ATmega8__)
  14. #define MMC_CS PC0
  15. #define MMC_DO PC1
  16. #define MMC_DI PC2
  17. #define MMC_CLK PC3
  18. #define SPI_SS 4 //Nicht Benutz muß aber definiert werden
  19. #endif
  20. //Prototypes
  21. extern unsigned char mmc_read_byte(void);
  22. extern void mmc_write_byte(unsigned char);
  23. extern void mmc_read_block(unsigned char *,unsigned char *,unsigned in);
  24. extern unsigned char mmc_init(void);
  25. extern unsigned char mmc_read_sector (unsigned long,unsigned char *);
  26. extern unsigned char mmc_write_sector (unsigned long,unsigned char *);
  27. extern unsigned char mmc_write_command (unsigned char *);
  28. extern unsigned char mmc_read_csd (unsigned char *);
  29. extern unsigned char mmc_read_cid (unsigned char *);
  30. //set MMC_Chip_Select to high (MMC/SD-Karte Inaktiv)
  31. #define MMC_Disable() MMC_Write|= (1<<MMC_CS);
  32. //set MMC_Chip_Select to low (MMC/SD-Karte Aktiv)
  33. #define MMC_Enable() MMC_Write&=~(1<<MMC_CS);
  34. #define nop() __asm__ __volatile__ ("nop" ::)
  35. #endif //_MMC_H_