Está complicado pra mim!!!!

Ola a todos e agradeço desde já a ajuda que possa receber.

O meu problema é o seguinte:

Como dividir em 2 a 2 um valor em HEX - FFAADD88 ???
Valor que é recebido por leitura de sensor e que gostaria de gravar na EEPROM.
do género:

EEPROM.write(0 , FF);
EEPROM.write(0 , AA);
EEPROM.write(0 , DD);
EEPROM.write(0 , 88);

Muito simples até

void setup()
{
  Serial.begin(9600);
  Serial.println("Start decomposing ...");
}

void loop()
{
  decomposeVariable();
  delay(5000);
  Serial.println();
}


void decomposeVariable()
{
 unsigned long variableToDecompose = 0xFFAADD88;
 Serial.println(variableToDecompose,HEX);
 
 uint8_t var1 = variableToDecompose >>24;
 Serial.println(var1,HEX);
 uint8_t var2 = (variableToDecompose >>16) & 0xff;
 Serial.println(var2,HEX);
 uint8_t var3 = (variableToDecompose >>8) & 0xff;
 Serial.println(var3,HEX);
 uint8_t var4 = variableToDecompose & 0xff;
 Serial.println(var4,HEX); 
}

A funçao EEPROM.write no primeiro parametro aceita o endereço onde vais guardar o valor, logo nao podes estar sempre a usar o endereço 0 senao estas sempre a gravar sobre a mesma posiçao na eeprom, o que tu nao queres acho eu ...
Se usares a funçao nativa do avr-libc podes escrever o valor de uma só vez em vez de teres de o partir aos bocados para poderes gravar na eeprom.
A funçao nativa tem a seguinte funçao:

void eeprom_write_dword ( uint32_t * __p,
uint32_t __value
)

Tambem existem uma funçao read para depois ser mais facil recuperar o que la escreveste.
Tens a informaçao toda aqui:
http://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.html#ga012c7fa61d9695b7f0f5187d2560e598
Tem atençao que a escrita da eeprom tem numero de vezes que pode ser escrita por isso nao tentes por a escrever ao longo do teu loop pois iras destruir a eeprom!
Usa-a apenas periodicamente

HugoPT muito obrigado pela resposta, e sim tem razão na parte em que fala sobre eu não escrever sempre
no mesmo endereço! Erro meu! Durante a questão que estava a colocar....