diff --git a/gg.c b/gg.c index 35842b4..b01c94e 100644 --- a/gg.c +++ b/gg.c @@ -28,10 +28,10 @@ void timer_init_tiny26(void) TIMSK = 1 << TOIE1;/* interrupt on overflow */ } -#define BUFFER_SIZE 32 +#define BUFFER_SIZE 16 uint16_t buffer[BUFFER_SIZE];/* buffer for mmc data */ ringbuf_t rb; -uint32_t length;/* remaining samples */ +int32_t length;/* remaining samples */ /*ISR(TIMER1_OVF1_vect, ISR_NAKED) { @@ -58,7 +58,7 @@ ISR(TIMER1_OVF1_vect){ if(!--cnt_to_next){ ringbuf_get(&rb, &next); OCR1B = next>>8; - cnt_to_ocr_incr = 8 - (next & 0x7); + cnt_to_ocr_incr = 8 - ((next>>5) & 0x7); cnt_to_next = 8; /* if(!--length) { @@ -90,25 +90,19 @@ int main(void) timer_init_tiny26(); sei(); _delay_ms(1); - char_to_sound(25); - debug = mmc_read_part(1, (unsigned char *) &length, 4); - debug = 1; - if(length==0){ - debug = 2; - } - char_to_sound((length>>24) & 0xff); mmc_read_part(0, (unsigned char *) &length, 4); - char_to_sound((length>>8) & 0xff); -/* + unsigned long block = 0; - for(;; block++) + while(length > 0) { //mmc_read_to_ringbuffer(block, &rb); - mmc_read_to_ringbuffer(0, &rb); + mmc_read_to_ringbuffer(block, &rb); + length -= 256; + block++; } // */ // debug = 0; diff --git a/mmc.h b/mmc.h index e86ded2..70b0b08 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(0.5) +#define WAIT_HALF_CLOCK _delay_us(0.1) #define WAIT_HALF_CLOCK_SLOW _delay_us(20) #define MMC_Write PORTA //Port an der die MMC/SD-Karte angeschlossen ist also des SPI