From 496490fee31f7bf331a9249e8976e6141bebae06 Mon Sep 17 00:00:00 2001 From: Sergi Hernandez Juan <shernand@iri.upc.edu> Date: Thu, 15 Oct 2020 15:30:52 +0200 Subject: [PATCH] Added a device ID to the memory structure to separate different slave devices EEPROM registers on the same microcontroller. --- memory/include/memory.h | 1 + memory/src/memory.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/memory/include/memory.h b/memory/include/memory.h index 5c14282..0753fb1 100644 --- a/memory/include/memory.h +++ b/memory/include/memory.h @@ -21,6 +21,7 @@ typedef struct TMemModule *mem_modules[MAX_NUM_MEM_MODULES]; unsigned short int (*eeprom_write_data)(unsigned short int address,unsigned short int data); unsigned short int (*eeprom_read_data)(unsigned short int address,unsigned short int *data); + unsigned char device_id; unsigned char data[RAM_SIZE]; unsigned short int total_eeprom; unsigned short int total_ram; diff --git a/memory/src/memory.c b/memory/src/memory.c index a2c9e59..c2bccc1 100644 --- a/memory/src/memory.c +++ b/memory/src/memory.c @@ -30,6 +30,7 @@ void mem_init(TMemory *memory) /* initialize internal variables */ memory->total_eeprom=0; memory->total_ram=0; + memory->device_id=0x00; } void mem_initialize_data(TMemory *memory) @@ -44,7 +45,7 @@ void mem_initialize_data(TMemory *memory) { for(i=0;i<EEPROM_SIZE;i++) { - if(memory->eeprom_read_data(i,&data)) + if(memory->eeprom_read_data((memory->device_id<<8)+i,&data)) eeprom_data[i]=0x00; else eeprom_data[i]=data&0x00FF; -- GitLab