Mostrar texto gravado na EEPROM no LCD

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mostrar texto gravado na EEPROM no LCD

Mensagempor klausenner » 25 Jan 2007 17:54

Saudaçoes!
Estou tentando ler uma frase gravada na EEPROM para que possa imprimi-la no LCD mas não estou conseguindo, fiz uma função na qual passo como parametro o endereço inicial da frase e vou incrementando até chagar no final, mas não aparece nada no LCD. alguém pode dar uma luz :)
*************************************************************
#include <16F877.h>
#device adc=10
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=8000000)
#include <LCD.c>
#include <string.h>
#rom 0x2100 = {10,02,07}


#define epron_dia 0x2100
#define epron_mes 0x2101
#define epron_ano 0x2102
#define epron_potencia 0x2103
#define epron_temp 0x2104
#define m_motor 0x2105

#ROM 0x2106 = {"Use as teclas + e - para selecionar o valor da temperatura e depois Apert o botao Menu para salvar \0"}
#ROM 0x2169 = { "A data foi gravada com exito ! \0"}

************ FUNÇÃO ********************************

void ler_eeprom (int16 ende)
{

while (read_eeprom(end) != 0) // roda até char o fim da frase
{
lcd_init();
lcd_gotoxy(1,2);
printf(lcd_putc,"%c\n\r",read_eeprom(ende));
delay_ms(100);
ende++; // incrementa o endereço para ler o restante da frase
}
}

ler_eeprom(0x2106); // não aparece nada no LCD
klausenner
Bit
 
Mensagens: 18
Registrado em: 09 Nov 2006 15:33

Mensagempor Ander_sil » 26 Jan 2007 10:18

Bom, quando voce chama a função read_eeprom, passa como endereço
a variavel "end", mas no printf voce imprime e incrementa a
variavel "ende", mas a funcão retorna o conteudo do end. que tem que ser atribuido a uma variavel.
Tenta assim:
printf(lcd_putc,"%c\n\r",ende = read_eeprom(end));
end++;

No while não seria, while(ende = read_eeprom(end) != '\0')

Outra maneira seria usando um "for"

for(i=end;;i++)
{
ende = read_eeprom(i);
if(ende=='\0') return;
printf(lcd_putc,"%c\n\r",ende);
delay_ms(100);
i++;
}

at.
Anderson Chrispim da Silva
chrispimdasilva@gmail.com
Ander_sil
Byte
 
Mensagens: 368
Registrado em: 30 Out 2006 09:58
Localização: Campinas - SP

Mensagempor klausenner » 27 Jan 2007 10:33

Valeu Andre, era esse mesmo o problema fiz como você mostrou e funcionou perfeitamente. fiz com o laço for

for(i=end;;i++)
{
ende = read_eeprom(i);
if(ende=='\0') return;
printf(lcd_putc,"%c\n\r",ende);
delay_ms(100);
i++;
}
klausenner
Bit
 
Mensagens: 18
Registrado em: 09 Nov 2006 15:33


Voltar para PIC

Quem está online

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

cron

x