From b0b702ff0c9cebdcb1dbbfa43d01468937cfd3f0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergi=20Hern=C3=A1ndez?= <shernand@iri.upc.edu>
Date: Mon, 2 Nov 2015 15:15:16 +0000
Subject: [PATCH] Solved some minor bugs in the command processing loop.

---
 include/dac.h        | 2 +-
 include/memory_map.h | 2 +-
 include/pwm.h        | 2 +-
 src/dyn_common.c     | 8 ++++----
 src/pwm.c            | 1 +
 5 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/include/dac.h b/include/dac.h
index 3c6de96..45b7f3b 100644
--- a/include/dac.h
+++ b/include/dac.h
@@ -4,7 +4,7 @@
 #include <avr/io.h>
 #include <avr/interrupt.h>
 
-typedef enum {dac0,dac1} dac_ch_t;
+typedef enum {dac0=0,dac1=1} dac_ch_t;
 
 void dac_init(void);
 void dac_start(void);
diff --git a/include/memory_map.h b/include/memory_map.h
index 0ed6811..9c1ea1c 100644
--- a/include/memory_map.h
+++ b/include/memory_map.h
@@ -14,7 +14,7 @@
 #define ADC_CONTROL               0x20   //32 - 0x20 R/W  ADC control  bit 7 | bit 6 | bit 5 | bit 4 | bit 3 |  bit 2  | bit 1 | bit 0
                                          //                                                                    running   stop    start
 #define ADC_NUM_SAMPLES           0x21   //33 - 0x21 R/W  Number of sample to average
-#define ADC_SAMPLE_PERIOD         0x21   //33 - 0x21 R/W  ADC sample period in ms
+#define ADC_SAMPLE_PERIOD         0x22   //33 - 0x22 R/W  ADC sample period in ms
 #define GPIO0_config              0x30   //48 - 0x30 R/W  GPIO 0 configuration bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
                                          //                                                                                            mode (0 -> input, 1 -> output)
 #define GPIO0_data                0x31   //49 - 0x31 R/W  GPIO 0 data bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
diff --git a/include/pwm.h b/include/pwm.h
index 0e7bb39..f63ca7b 100644
--- a/include/pwm.h
+++ b/include/pwm.h
@@ -4,7 +4,7 @@
 #include <avr/io.h>
 #include <avr/interrupt.h>
 
-typedef enum {pwm0,pwm1,pwm2,pwm3} pwm_id_t;
+typedef enum {pwm0=0,pwm1=1,pwm2=2,pwm3=3} pwm_id_t;
 
 void pwm_init(void);
 void pwm_start(void);
diff --git a/src/dyn_common.c b/src/dyn_common.c
index 627e03b..dcf85a4 100644
--- a/src/dyn_common.c
+++ b/src/dyn_common.c
@@ -43,9 +43,9 @@ uint8_t do_write(uint8_t address,uint8_t length,uint8_t *data)
     else if(i==ADC_CONTROL)
     {
       if(data[num]&0x01)
-        adc_stop();
-      else if(data[num]&0x02)
         adc_start();
+      else if(data[num]&0x02)
+        adc_stop();
     }
     else if(i==ADC_NUM_SAMPLES)
       adc_set_num_samples(data[num]);
@@ -71,7 +71,7 @@ uint8_t do_write(uint8_t address,uint8_t length,uint8_t *data)
         pwm_disable_ch(pwm1);
       if(data[num]&0x04)
         pwm_enable_ch(pwm2);
-      else if(data[num]&0x40);
+      else if(data[num]&0x40)
         pwm_disable_ch(pwm2);
       if(data[num]&0x08)
         pwm_enable_ch(pwm3);
@@ -96,7 +96,7 @@ uint8_t do_write(uint8_t address,uint8_t length,uint8_t *data)
     {
       if(data[num]&0x01)
         dac_enable_channel(dac0);
-      else if(data[num]&0x04);
+      else if(data[num]&0x04)
         dac_disable_channel(dac0);
       if(data[num]&0x02)
         dac_enable_channel(dac1);
diff --git a/src/pwm.c b/src/pwm.c
index 4e82601..3d882ca 100644
--- a/src/pwm.c
+++ b/src/pwm.c
@@ -1,5 +1,6 @@
 #include "pwm.h"
 #include "mem.h"
+#include "ports.h"
 
 #define      DEFAULT_PWM_FREQ     50// Hz
 #define      DEFAULT_PWM_DUTY     50// %
-- 
GitLab