glcd+rtc

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

glcd+rtc

Mensagempor fernandor » 25 Mar 2009 22:23

galera...fiz o seguinte codigo ccs. A ideia é mostrar as horas no glcd. O que esta acontecendo é que a variavel secs fica piscando. Alguem tem alguma ideia de como fazer ela parar de piscar..?

#include <16F877.h>
#use delay(clock=4000000)
#include <glcd.c>
#include <ds1307.c>


void main()
{
byte hora,min,sec;
int status = 1;
char secs[8];

init_ds1307();
sec=write_ds1307(0,0x00);


delay_ms(100);
glcd_init(ON);
glcd_fillScreen(OFF);

while(TRUE){
sec=read_ds1307(0);
sprintf(secs, "%X", (byte)sec); // Converts sec to text
glcd_text57(15, 15, secs, 1, ON);
glcd_text57(15, 15, secs, 1, OFF);
}

}
fernandor
Bit
 
Mensagens: 29
Registrado em: 12 Mar 2009 15:01

Re: glcd+rtc

Mensagempor Renie » 25 Mar 2009 23:37

Olá Fernando,

Você está ligando e desligando em seguida, se fosse um interruptor
normal, iria piscar por mais rápido que fosse o atuador!

Como é um código "traduzido" do C para asm, várias instruções
podem estar entre liga e desliga!

E, a princípio , se não houver um "tempo ON para ser visto", se usasse
lâmpadas, teria um efeito parecido com PWM!

LCD, tem tempo de resposta bem definidos, não muito fácil de converter
para percistência ótica, mas, se não forem respeitados os limites de
ambas, não conseguirá o que precisa.

[]'s
Renie
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor fabim » 25 Mar 2009 23:58

meu querido, tudo bom !!
glcd_text57(15, 15, secs, 1, ON);
glcd_text57(15, 15, secs, 1, OFF);

Eu infelizmente não utilizo o CCS, e nem sei ao certo quais as entradas que são colocadas nesta função mais.

glcd_text57(doth X 15 ?, doth y 15 ?, array de dados ?,o que quer dizer este 1 ?,porque on ?);


respondendo aí, acho que ja da pra entender o erro.

fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

glcd+rtc

Mensagempor fernandor » 26 Mar 2009 06:52

obrigado renie e fabim...

fabim...a funcao tem os seguintes parametros

glcd_text57(x, y, texto,tamanho da fonte,cor);

valeu

Fernando
fernandor
Bit
 
Mensagens: 29
Registrado em: 12 Mar 2009 15:01

Mensagempor fabim » 26 Mar 2009 08:42

Slave meu querido !!

glcd_text57(15, 15, secs, 1, ON);
glcd_text57(15, 15, secs, 1, OFF);

Seu erro é.!! Manda texto, liga digitos, logo apos manda texto desliga digito.

Exatamente por isso que ele esta piscando.

Expeguimente, acer solamiente..
Código: Selecionar todos
 #include <16F877.h>
#use delay(clock=4000000)
#include <glcd.c>
#include <ds1307.c>


void main()
{
byte hora,min,sec;
int status = 1;
char secs[8];

init_ds1307();
sec=write_ds1307(0,0x00);


delay_ms(100);
glcd_init(ON);
glcd_fillScreen(OFF);

while(TRUE){
sec=read_ds1307(0);
sprintf(secs, "%X", (byte)sec); // Converts sec to text
glcd_text57(15, 15, secs, 1, ON);


 // se colocar a outra linha de comando
//como os caracteres dentro da array"secs" são o mesmos,
// você vai sobre escrever no display os mesmos valores, mais desta vez
//com os digitos apagados. O tempo que ele fica apagado,
//proporcional ao tempo que ele leva para ler o DS1307, executar
//sprintf, e escrever novamente os digitos, mais desta vez em on

}

}
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

glcd

Mensagempor fernandor » 26 Mar 2009 10:02

meu amigo...

tentei simular aqui e esta sobrescrevendo um numero sobre o outro.
Tem alguma outra ideia?

abraço

fernando
fernandor
Bit
 
Mensagens: 29
Registrado em: 12 Mar 2009 15:01

Mensagempor fabim » 26 Mar 2009 10:24

tenho.
IF novo valor diferente do anterior{
escreve tudo 0000 para apagar os char´s
escreve novo valor para aparecer o valor no LCD
}

só isso
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

glcd

Mensagempor fernandor » 26 Mar 2009 15:35

beleza pura...funcionou...
valeu mesmo fabim pela sua ajuda..

abraço

fernando
fernandor
Bit
 
Mensagens: 29
Registrado em: 12 Mar 2009 15:01


Voltar para PIC

Quem está online

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

x