Página 1 de 1

Ajuda na escrita da Eeprom

MensagemEnviado: 13 Set 2008 21:42
por ivansousa
Boas!
Preciso de escrever na eeorom da pic 18f258 valores de 16 bits. Só estou a conseguir escrever 8 bits, pk só dá para escrever 8. Estava a escrever 8 num endereço e mais os outros 8 noutro e dps a somalos mas n consegui. Alguem me pode ajudar? tou a trabalhar no compilador CCS
Obrigado

MensagemEnviado: 14 Set 2008 09:06
por phophollety
Código: Selecionar todos

int valorDe16BitsASerGravado = 0xFFFF;
char valorLow, valorHigh;

// Gravar...

valorLow = valorDe16BitsASerGravado;
valorHigh = valorDe16BitsASerGravado >> 8;

// Ler...

valorLow = valorDe16BitsASerGravado;
valorHigh += unsigned int ( valorDe16BitsASerGravado << 8 );

// este unsigned int é um casting, quer dizer que esta operação será feita dentro de um registrador de 16 bits ( um int ) pois se vc rotacionar qualquer valor mesmo que seja 0xFF 8 vezes a esquerda, vai ter um 0x00 mas, se o fizer em 16 bits, terás 0xFF00



Só salvar o valorLow e o valorHigh, grave o High primeiro, no endereço 0x00 por exemplo e o low no 0x01, não que faça diferença no funcionamento mas, na hora de usar um for ou ter um mapa de memória ajuda...

MensagemEnviado: 14 Set 2008 10:25
por ivansousa
obrigado