Olá,
Estou utilizando a biblioteca 24515.c do CCS para gravar numa memoria externa 24LC515 e posteriormente Lê-la e apresentar os dados na tela de hyperterm. Porém não estou conseguindo muito sucesso, pois no momento em que eu leio a memoria e apresento os dados na tela, algumas informações não batem, segue o trecho do codigo abaixo:
write_ext_eeprom(1,0,0x01); // escreve 01 no banco 0 do dispos. 1
write_ext_eeprom(1,1,0x01);
write_ext_eeprom(1,2,0x01);
write_ext_eeprom(1,3,0x01);
write_ext_eeprom(1,4,0x01);
write_ext_eeprom(1,5,0x01);
write_ext_eeprom(1,6,0x01);
write_ext_eeprom(1,7,0x01);
write_ext_eeprom(1,8,0x01);
retorno=read_ext_eeprom(1,0); // Lê o Banco 0 do Disp. 1
retorno=retorno+0x30; // Converte em algarismo legivel
fputc(retorno,IRDA); // Exibe no terminal pela Stream IRDA
retorno=read_ext_eeprom(1,1);
retorno=retorno+0x30;
fputc(retorno,IRDA);
retorno=read_ext_eeprom(1,2);
retorno=retorno+0x30;
fputc(retorno,IRDA);
retorno=read_ext_eeprom(1,3);
retorno=retorno+0x30;
fputc(retorno,IRDA);
retorno=read_ext_eeprom(1,4);
retorno=retorno+0x30;
fputc(retorno,IRDA);
retorno=read_ext_eeprom(1,5);
retorno=retorno+0x30;
fputc(retorno,IRDA);
retorno=read_ext_eeprom(1,6);
retorno=retorno+0x30;
fputc(retorno,IRDA);
retorno=read_ext_eeprom(1,7);
retorno=retorno+0x30;
fputc(retorno,IRDA);
retorno=read_ext_eeprom(1,8);
retorno=retorno+0x30;
fputc(retorno,IRDA);
Quando executo o mesmo procedimento para a memória interna do PIC o retorno no terminal fica correto. Mas na memória externa aparece o seguinte:
11/1/1/1/ ou em Hex 01 01 FF 01 FF 01 FF 01 FF.
Se alguem souber onde estou errando...
Desde já agradeço qualquer informação que me ajude...