From 667cb2fd853d0577426a23eb6e94d9023c160cda Mon Sep 17 00:00:00 2001 From: Thomas Eichinger 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 8b8b6094b917..0a40ae1d5068 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 3e8c26c15a36..79195fc7ddad 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 3283d37b2dab..596002daeb6a 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 ) {