Así que tengo una lista de tiempos en mi udata en, digamos, clock.c
.
He leído que se debe acceder a udata a través de un puntero, bueno, está bien.
Por encima de defines.h
//Warning! This has to be conform the linkerscript, you can not just increase it.
#define CLOCKINGLISTLENGTH 50
#define KEYLENGTH 6
//A clocking consists out of a key, time and in/out (and status)
//All the clockings together are the "clockings" list.
//These clockings will await to be transmitted.
typedef struct
{
unsigned isActive:1;
unsigned needsTransmit:1;
unsigned inOut:1;
unsigned val1:1;
unsigned val2:1;
unsigned val3:1;
unsigned val4:1;
unsigned val5:1;
} byte;
typedef struct
{
byte bits;
unsigned char key[KEYLENGTH];
unsigned char time[6];
} Clocking;
Por encima del archivo clock.c
.
#include "defines.h"
#pragma udata large_udata
Clocking clocking_queue[CLOCKINGLISTLENGTH];
#pragma udata
Clocking *clockings = clocking_queue;//Access udata through pointer!
En el archivo eeprom.c
.
#include "defines.h"
extern Clocking *clockings;
void writeClockingToEEPROM(char clockingIndex){
int eepromIndex = 0;
Write_b_eep(eepromIndex,clockings[clockingIndex].key[0]);
}
Mi pregunta es: "Cómo acceder a udata desde otro archivo a través de un puntero". Simplemente quiero usar mi clockings_queue (que debería accederse a través de * clockings pointer) en mi EEPROM.c, para poder almacenar los tiempos en EEPROM.