From 31ed6685b81c467affdab860816af37b5841f707 Mon Sep 17 00:00:00 2001
From: Sergi Hernandez Juan <shernand@iri.upc.edu>
Date: Mon, 6 Apr 2020 18:10:04 +0200
Subject: [PATCH] Solved a bug in the adc_start and adc_stop functions: the
 check was not done on the proper registers (ram_base_address missing).

---
 src/adc_dma.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/adc_dma.c b/src/adc_dma.c
index f26af0a..f3bb3dc 100755
--- a/src/adc_dma.c
+++ b/src/adc_dma.c
@@ -320,7 +320,7 @@ uint8_t adc_init(TMemory *memory,TScheduler *scheduler,unsigned short int eeprom
 
 void adc_start(void)
 {
-  if((darwin_adc.memory->data[ADC_CONTROL_OFFSET]&ADC_RUNNING)==0x00)
+  if((darwin_adc.memory->data[darwin_adc.ram_base_address+ADC_CONTROL_OFFSET]&ADC_RUNNING)==0x00)
   {
     darwin_adc.memory->data[darwin_adc.ram_base_address+ADC_CONTROL_OFFSET]|=ADC_RUNNING;
     scheduler_enable_channel(darwin_adc.scheduler,SCHED_CH1);
@@ -329,7 +329,7 @@ void adc_start(void)
 
 void adc_stop(void)
 {
-  if(darwin_adc.memory->data[ADC_CONTROL_OFFSET]&ADC_RUNNING)
+  if(darwin_adc.memory->data[darwin_adc.ram_base_address+ADC_CONTROL_OFFSET]&ADC_RUNNING)
   {
     darwin_adc.memory->data[darwin_adc.ram_base_address+ADC_CONTROL_OFFSET]&=(~ADC_RUNNING);
     scheduler_disable_channel(darwin_adc.scheduler,SCHED_CH1);
-- 
GitLab