diff --git a/src/adc_dma.c b/src/adc_dma.c
index f1799eeb9a5c5903796c12a1cd8f75ab2e4b0e90..f26af0a005ee25ddbe30af8220d2335ba6b506a6 100755
--- a/src/adc_dma.c
+++ b/src/adc_dma.c
@@ -112,7 +112,9 @@ void adc_write_cmd(void *module,unsigned short int address,unsigned short int le
 
 void adc_read_cmd(void *module,unsigned short int address,unsigned short int length,unsigned char *data)
 {
-  ram_read_table(module,address,length,data);
+  TADC *adc=(TADC *)module;
+
+  ram_read_table(adc->memory,address,length,data);
 }
 
 // interrupt handlers