Como gravar uma variável Float na memória EEPROM? PIC 18F452

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Como gravar uma variável Float na memória EEPROM? PIC 18F452

Mensagempor Alex_Marques » 11 Jan 2007 02:30

Boa Noite, amigos.
Gostaria que vocês me ajudassem. Como é que eu faço para gravar uma variável do tipo Float na memória EEPROM do PIC.
Obs.: Estou utilizando a linguagem de programação C (compilador CCS).
Alex_Marques
 
Mensagens: 4
Registrado em: 11 Jan 2007 02:22
Localização: Recife-PE

Mensagempor Maia » 11 Jan 2007 08:15

Eu uso o PICC da Hi-Tech. Nele eu faço assim:
Escrever a variável ra no endereço 4
pByte = ( unsigned char * )&ra;
nByte = sizeof( ra );
while( nByte > 0 ){
nByte--;
EEPROM_WRITE(nByte + 4, *pByte++ );
}

Ler a variável
pByte = ( unsigned char * )&ra;
nByte = sizeof( ra );
while( nByte > 0 ){
nByte--;
*pByte++ = EEPROM_READ( nByte + 4 );
}

Vc tem que verificar o tamanho do float para saber quantos bytes da EEPROM sua variável vai ocupar.
Abraços,
Maia
Avatar do usuário
Maia
Byte
 
Mensagens: 348
Registrado em: 15 Out 2006 16:25
Localização: Rio de Janeiro

Mensagempor microeletronica » 13 Jan 2007 20:08

Ola Amigo, para o C18, posso ajudar:


Código: Selecionar todos
void Escrever_EEPROM(unsigned int address, unsigned char data)
{
   unsigned char      EEPROMGIE_Temp;

   EEPROMGIE_Temp    =    INTCONbits.GIE;
   
   EEADR =  address;   
   EEDATA = data;         
   EECON1bits.EEPGD = 0;   
   EECON1bits.CFGS = 0;   
   EECON1bits.WREN = 1;   
   INTCONbits.GIE = 0;      
   EECON2 = 0x55;         
   EECON2 = 0xaa;         
   EECON1bits.WR = 1;      

   INTCONbits.GIE = EEPROMGIE_Temp;
   
   while (!PIR2bits.EEIF);   
   PIR2bits.EEIF = 0;      
   EECON1bits.WREN = 0;   
}


void Escrever_Unsigned_Float_EEPROM(unsigned int endereco, unsigned float dado)
{
   unsigned int indice;
      for (indice = 0; indice < 4; indice++)
      Write_EEPROM(endereco + indice, *(((unsigned char*)(&dado))+indice));
}


conforme o datasheet.
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x