From 667cb2fd853d0577426a23eb6e94d9023c160cda Mon Sep 17 00:00:00 2001
From: Thomas Eichinger <thomas.eichinger1@gmail.com>
Date: Tue, 23 Jul 2013 16:03:52 +0200
Subject: [PATCH] small fixes

---
 redbee-econotag/drivers/Makefile       |  2 +-
 redbee-econotag/drivers/include/maca.h |  2 ++
 redbee-econotag/drivers/maca.c         | 21 +++++++++++++++++++--
 3 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/redbee-econotag/drivers/Makefile b/redbee-econotag/drivers/Makefile
index 8b8b6094b9..0a40ae1d50 100644
--- a/redbee-econotag/drivers/Makefile
+++ b/redbee-econotag/drivers/Makefile
@@ -3,7 +3,7 @@ BINDIR = $(RIOTBOARD)/$(BOARD)/bin/
 OBJ = $(SRC:%.c=$(BINDIR)%.o)
 DEP = $(SRC:%.c=$(BINDIR)%.d)
 
-INCLUDES += -I$(RIOTBASE)/sys/include/ -I$(RIOTBASE)/drivers/cc110x_ng/include/
+INCLUDES += -I$(RIOTBASE)/sys/include/
 
 .PHONY: redbee-econotag_drivers.a
 
diff --git a/redbee-econotag/drivers/include/maca.h b/redbee-econotag/drivers/include/maca.h
index 3e8c26c15a..79195fc7dd 100644
--- a/redbee-econotag/drivers/include/maca.h
+++ b/redbee-econotag/drivers/include/maca.h
@@ -29,6 +29,8 @@ void maca_check ( void );
 /* functions to configure MACA */
 void maca_set_power ( uint8_t power );
 void maca_set_channel ( uint8_t channel );
+uint16_t maca_set_address ( uint16_t addr );
+uint16_t maca_get_address ( void );
 
 /* get Link Quality Indicator */
 //extern uint8_t (*get_lqi) ( void );
diff --git a/redbee-econotag/drivers/maca.c b/redbee-econotag/drivers/maca.c
index 3283d37b2d..596002daeb 100644
--- a/redbee-econotag/drivers/maca.c
+++ b/redbee-econotag/drivers/maca.c
@@ -827,7 +827,7 @@ const uint32_t AIMVAL[19] = {
 #define ADDR_POW2 (ADDR_POW1 + 12)
 #define ADDR_POW3 (ADDR_POW1 + 64)
 
-void set_power ( uint8_t power ) {
+void maca_set_power ( uint8_t power ) {
     safe_irq_disable ( INT_NUM_MACA );
 
     * ( ( uint32_t * ) ( ADDR_POW1 ) ) = PSMVAL[power];
@@ -865,7 +865,7 @@ const uint32_t VCODivF[16] = {
 #define ADDR_CHAN3 (ADDR_CHAN1+16)
 #define ADDR_CHAN4 (ADDR_CHAN1+48)
 
-void set_channel ( uint8_t chan ) {
+void maca_set_channel ( uint8_t chan ) {
     volatile uint32_t tmp;
     safe_irq_disable ( INT_NUM_MACA );
 
@@ -895,6 +895,23 @@ void set_channel ( uint8_t chan ) {
     }
 }
 
+uint16_t maca_set_address ( uint16_t addr ) {
+    safe_irq_disable ( INT_NUM_MACA );
+    
+    MACA->MAC16ADDR = addr;
+    
+    irq_restore();
+    
+    if ( ITC->NIPENDbits.MACA ) {
+        ITC->INTFRCbits.MACA = 1;
+    }
+    return MACA->MAC16ADDR;
+}
+
+uint16_t maca_get_address ( void ) {
+    return MACA->MAC16ADDR;
+}
+
 #define MACA_ROM_END 0x0013ffff
 #define MACA_ENTRY_EOF 0x00000e0f
 uint32_t _exec_init_entry ( volatile uint32_t *entries, uint8_t *value_buffer ) {
-- 
GitLab