From 4d9f2efbfefa6f92a1ba5fac62763abcd2499fb4 Mon Sep 17 00:00:00 2001 From: Paul Goeser Date: Sat, 14 Jan 2012 13:34:23 +0100 Subject: [PATCH] found bugs, still debugging --- gg.c | 19 +++++++++++++------ mmc.c | 18 ++++++++++-------- mmc.h | 6 +++--- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/gg.c b/gg.c index ca9a222..a893f8a 100644 --- a/gg.c +++ b/gg.c @@ -86,15 +86,22 @@ int main(void) // while(debug){ debug=mmc_init(); // } -// debug = 2; + debug = 2-debug; - mmc_read_part(0, (unsigned char *) &length, 4); + debug = mmc_read_part(0, (unsigned char *) &length, 4); + debug = 1; + if(length==0){ + debug = 2; + } + debug = ((length>>0)&0x3) + 1; + + debug += 1; timer_init_tiny26(); sei(); -/* - unsigned long block = 0; + +/* unsigned long block = 0; for(;; block++) { mmc_read_to_ringbuffer(block, &rb); @@ -102,8 +109,8 @@ int main(void) // debug = 0; uint8_t i,r; - uint16_t a; - for(;;){ + uint16_t a,to; + for(to=0; to<16000; to++){ i += debug*8; a = i<<8; r=1; diff --git a/mmc.c b/mmc.c index 6ebe22d..8f5e4e2 100644 --- a/mmc.c +++ b/mmc.c @@ -33,6 +33,7 @@ unsigned char mmc_init () //############################################################################ { unsigned int Timeout = 0; + uint8_t debug; //Konfiguration des Ports an der die MMC/SD-Karte angeschlossen wurde MMC_Direction_REG &=~(1< 200) { @@ -69,6 +70,7 @@ unsigned char mmc_init () return(1); //Abbruch bei Commando1 (Return Code1) } } +// return(((debug >>1) & 1)+1); //FIXME //Sendet Commando CMD1 an MMC/SD-Karte Timeout = 0; CMD[0] = 0x41;//Commando 1 @@ -151,6 +153,7 @@ unsigned char mmc_read_byte (void) #else //Routine für Software SPI for(unsigned char a=8; a>0; a--) //das Byte wird Bitweise nacheinander Empangen MSB First { + Byte <<= 1; MMC_Write &=~(1<>16 ); cmd[3] = ((addr & 0x0000FF00) >>8 ); - mmc_read_block_part(cmd, Buffer, count, 512); + return mmc_read_block_part(cmd, Buffer, count, 512); } //############################################################################ diff --git a/mmc.h b/mmc.h index c7ad943..4d74844 100644 --- a/mmc.h +++ b/mmc.h @@ -14,7 +14,7 @@ Copyright (C) 2004 Ulrich Radig //#define SPI_Mode 1 //1 = Hardware SPI | 0 = Software SPI #define SPI_Mode 0 -#define WAIT_HALF_CLOCK _delay_us(50) +#define WAIT_HALF_CLOCK _delay_us(18) #define MMC_Write PORTA //Port an der die MMC/SD-Karte angeschlossen ist also des SPI #define MMC_Read PINA @@ -64,9 +64,9 @@ extern unsigned char mmc_init(void); extern unsigned char mmc_read_sector (unsigned long,unsigned char *); -extern void mmc_read_block_part(unsigned char *, unsigned char *, uint16_t, unsigned int); +extern uint8_t mmc_read_block_part(unsigned char *, unsigned char *, uint16_t, unsigned int); -extern void mmc_read_part(unsigned long, unsigned char *, uint16_t); +extern uint8_t mmc_read_part(unsigned long, unsigned char *, uint16_t); extern void mmc_read_block_to_ringbuffer(unsigned char *, ringbuf_t *, unsigned int);