Eeprom teste

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mensagempor antonio » 04 Fev 2010 17:35

Barboza
esta continuando dando erro no Ano
assim oh;
Imagem

Logo que o codigo funciona corretamente eu vou estudar bem ele ,porque na questão de ponteiros não eh coisa facil não.
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Mensagempor barboza » 04 Fev 2010 17:58

antonio escreveu:Barboza
esta continuando dando erro no Ano
assim oh;
Imagem

Logo que o codigo funciona corretamente eu vou estudar bem ele ,porque na questão de ponteiros não eh coisa facil não.



Acho que este é um bom momento para começar a aprender.....
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor antonio » 04 Fev 2010 18:02

Barbora a mim vontade de aprender não ,não falta,agora se sei pouco isso è diferente, mas aqui oh;
foi resolvido olhe que blz!
Imagem

Eu quando posto aqui alguma coisa è porque não encontro mais ajuda por lado ninhum :oops:
Abração
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Mensagempor barboza » 04 Fev 2010 18:03

Última chance:

Código: Selecionar todos
void write_to_eeprom(long int addr_eep, BYTE *ptr_ram, long int size)
{
    while (size--)
    {
        write_ext_eeprom(addr_eep, *ptr_ram);
        addr_eep++;
        ptr_ram++;
    }
}

void read_from_eeprom(long int addr_eep, BYTE *ptr_ram, long int size)
{
    while (size--)
    {
        *ptr_ram = read_ext_eeprom(addr_eep);
        addr_eep++;
        ptr_ram++;
    }
}
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor barboza » 04 Fev 2010 18:04

antonio escreveu:Barbora a mim vontade de aprender não ,não falta,agora se sei pouco isso è diferente, mas aqui oh;
foi resolvido olhe que blz!
Imagem

Eu quando posto aqui alguma coisa è porque não encontro mais ajuda por lado ninhum :oops:
Abração



Então registre aqui o que você fez, para ajudar outros colegas tb....
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor antonio » 04 Fev 2010 18:11

Então registre aqui o que você fez, para ajudar outros colegas tb....


Claro que sim,comigo não tem segredo não, eu segredo nem os quero!
Olha aqui oh,soh foi tracar o tipo de variavel de int e bytes por long, porque 2010 ocupa dois bytes!
Pode não ser o mais aconselhado ,mas funciona sim!!
Código: Selecionar todos
#include <16F877A.H>
#fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock = 4000000)
//#use i2c(master,sda=EEPROM_SDA,scl=EEPROM_SCL)

#define EEPROM_SDA  PIN_D1
#define EEPROM_SCL  PIN_D0
#include <flex_lcd.c>
#include <24256.c>

//=====================================
void write_to_eeprom(long int addr_eep, BYTE *ptr_ram, long int size)
{
    while (size--)
    {
        write_ext_eeprom(addr_eep++, *ptr_ram++);
    }
}

void read_from_eeprom(long int addr_eep, BYTE *ptr_ram, long int size)
{
    while (size--)
    {
        *ptr_ram++ = read_ext_eeprom(addr_eep++);
    }
}

void main(void)
{

    BYTE dia = 4;
    BYTE mes = 2;
    long ano = 2010;
 lcd_init();
delay_ms(100);                   
printf(lcd_putc,"Start\n\r");

init_ext_eeprom();                                                           

    write_to_eeprom(0, &dia, sizeof(dia));
    write_to_eeprom(1, &mes, sizeof(mes));
    write_to_eeprom(2, (long *) &ano, sizeof(ano));

    read_from_eeprom(0, &dia, sizeof(dia));
    read_from_eeprom(1, &mes, sizeof(mes));
    read_from_eeprom(2, (long *) &ano, sizeof(ano));

    lcd_gotoxy(1,1);
    printf(lcd_putc,"%02d/%02d/%lu", dia, mes, ano);
   while(1);
}


Peço aqui a galera para se algem souber melhorar o codigo que faço, assim aprendemos todos!!

Aquelas duas funcões pouco entendo vamos là ver se entendo ou não direito, mas tah feio mesmo !!
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Mensagempor barboza » 04 Fev 2010 18:17

Coisas de CCS..... eca....

O data types dele, meu Deus.... Passou longe do ANSI

Essas linhas devem ficar como estavam, pois o casting é para a função que recebe não para o tipo passado.

Código: Selecionar todos
write_to_eeprom(2, (BYTE *) &ano, sizeof(ano));
read_from_eeprom(2, (BYTE *) &ano, sizeof(ano));
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor antonio » 04 Fev 2010 18:37

barboza jah alterei as linhas e funciona bem como vc indicou!
Valeu!
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Anterior

Voltar para PIC

Quem está online

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

x