From 29128acbff6b9e40672c7025df30bb66f1360ac0 Mon Sep 17 00:00:00 2001 From: Nidan Date: Fri, 13 Jan 2012 23:12:31 +0100 Subject: [PATCH] added adjustable delay to mmc read/write --- mmc.c | 52 ++++++++++++++++++++++++++-------------------------- mmc.h | 4 ++-- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/mmc.c b/mmc.c index 2065452..7df9a42 100644 --- a/mmc.c +++ b/mmc.c @@ -135,24 +135,25 @@ unsigned char mmc_read_byte (void) unsigned char Byte = 0; #if SPI_Mode //Routine für Hardware SPI SPDR = 0xff; - while(!(SPSR & (1<0; a--) //das Byte wird Bitweise nacheinander Empangen MSB First - { + for(unsigned char a=8; a>0; a--) //das Byte wird Bitweise nacheinander Empangen MSB First + { MMC_Write &=~(1< 0) //Lesen des Pegels von MMC_DI - { - Byte |= (1<<(a-1)); - } - else - { - Byte &=~(1<<(a-1)); - } - MMC_Write |=(1< 0) //Lesen des Pegels von MMC_DI + { + Byte |= (1<<(a-1)); + } + else + { + Byte &=~(1<<(a-1)); } + MMC_Write |=(1<0; a--) //das Byte wird Bitweise nacheinander Gesendet MSB First + for(unsigned char a=8; a>0; a--) //das Byte wird Bitweise nacheinander Gesendet MSB First { - if (bit_is_set(Byte,(a-1))>0) //Ist Bit a in Byte gesetzt - { - MMC_Write |= (1<0) //Ist Bit a in Byte gesetzt + { + MMC_Write |= (1< +#include #include "ringbuf_small.h" //#define SPI_Mode 1 //1 = Hardware SPI | 0 = Software SPI #define SPI_Mode 0 +#define WAIT_HALF_CLOCK _delay_us(1) #define MMC_Write PORTB //Port an der die MMC/SD-Karte angeschlossen ist also des SPI #define MMC_Read PINB @@ -87,5 +89,3 @@ extern unsigned char mmc_read_cid (unsigned char *); #define nop() __asm__ __volatile__ ("nop" ::) #endif //_MMC_H_ - -