Página 1 de 1

Gravar Data e Hora

MensagemEnviado: 08 Nov 2007 15:03
por ffkammer
Boa tarde à todos,

Estou desenvolvendo um projeto para um PIC 16F628A, a programação estou fazendo em assembly e preciso gravar na memória não volátil a data e hora em que um botão foi pressionado e quando este botão for desabertado precisarei gravar a data e a hora novamente.
Consigo gravar informações na memória não volátil, mas não faço nem idéia de como gravar a data e a hora de cada vez que o botão for abertado/desapertado.

Me disseram que precisarei trabalhar com real time para fazer isto, mas não faço nem idéia de como fazê-lo.

Alguém da lista poderia me auxiliar com isto?

Agradeço desde já

Fabrício

MensagemEnviado: 08 Nov 2007 15:28
por jean
Ola Fabrício
Dê uma olhada nesse tópico http://www.asm51.eng.br/phpbb/viewtopic.php?t=1667&highlight=rel%F3gio
Pode ser q te ajude..

MensagemEnviado: 08 Nov 2007 15:39
por ffkammer
jean escreveu:Ola Fabrício
Dê uma olhada nesse tópico http://www.asm51.eng.br/phpbb/viewtopic.php?t=1667&highlight=rel%F3gio
Pode ser q te ajude..


Boa tarde Jean,

Quando tento acessar este tópico sou redirecionado para a página principal do fórum, você poderia confirmar o endereço do tópico, por favor.

Fabrício

MensagemEnviado: 09 Nov 2007 13:42
por jean
Fabricio testei ele agora e esta direcionando pro local certo..

MensagemEnviado: 09 Nov 2007 20:23
por phophollety
jean escreveu:Fabricio testei ele agora e esta direcionando pro local certo..


Tá indo para o índice do fórum mesmo...

Uma maneira simples é fazer um RTC interno do PIC, como!?

Usando o Timer1 Que tem oscilador próprio pode fazer por exemplo, um cristal de 32768KHz estourar de tempos em tempos (digamos, de 100 em 100mS, de 1 em 1 segundo, enfim, basta ajustar o preescaler interno e mover o valor de ajuste para os registradores do Timer)

Com o incremento da base de tempo, dentro da própria Interrupção você faz fácil fácil um relógio com horas minutos e segundos.

Caso não queira usar o oscilador interno, também pode usar os timers internos para estourarem sendo incrementados conforme o oscilador da máquina (neste caso não recomendaria o uso de oscilador interno, pois ele tem baixa precisão para um relógio).

Também pode claro, usar um relógio por I2C esta seria uma opção caso você precisasse dos timers para outra coisa ou não quisesse uma interrupção do seu processamento, creio que para sua aplicação isto não é problema e tarefa parece ser simples e dá para fazer tudo dentro do pic mesmo. Mais barato e fácil.

MensagemEnviado: 12 Nov 2007 19:51
por ffkammer
jean escreveu:Fabricio testei ele agora e esta direcionando pro local certo..


Jean, ainda não consegui acessar este tópico. Caso vc possa recolocar o link agradeço.

Obrigado

MensagemEnviado: 12 Nov 2007 19:53
por ffkammer
phophollety escreveu:
jean escreveu:Fabricio testei ele agora e esta direcionando pro local certo..


Tá indo para o índice do fórum mesmo...

Uma maneira simples é fazer um RTC interno do PIC, como!?

Usando o Timer1 Que tem oscilador próprio pode fazer por exemplo, um cristal de 32768KHz estourar de tempos em tempos (digamos, de 100 em 100mS, de 1 em 1 segundo, enfim, basta ajustar o preescaler interno e mover o valor de ajuste para os registradores do Timer)

Com o incremento da base de tempo, dentro da própria Interrupção você faz fácil fácil um relógio com horas minutos e segundos.

Caso não queira usar o oscilador interno, também pode usar os timers internos para estourarem sendo incrementados conforme o oscilador da máquina (neste caso não recomendaria o uso de oscilador interno, pois ele tem baixa precisão para um relógio).

Também pode claro, usar um relógio por I2C esta seria uma opção caso você precisasse dos timers para outra coisa ou não quisesse uma interrupção do seu processamento, creio que para sua aplicação isto não é problema e tarefa parece ser simples e dá para fazer tudo dentro do pic mesmo. Mais barato e fácil.


Boa noite phophollety,

Tenho um problema, preciso ter condição de acertar a data/hora inicial e preciso que a data e hora se mantenha caso a energia páre e volte rapidamente.

MensagemEnviado: 12 Nov 2007 19:54
por ffkammer
phophollety escreveu:
jean escreveu:Fabricio testei ele agora e esta direcionando pro local certo..


Tá indo para o índice do fórum mesmo...

Uma maneira simples é fazer um RTC interno do PIC, como!?

Usando o Timer1 Que tem oscilador próprio pode fazer por exemplo, um cristal de 32768KHz estourar de tempos em tempos (digamos, de 100 em 100mS, de 1 em 1 segundo, enfim, basta ajustar o preescaler interno e mover o valor de ajuste para os registradores do Timer)

Com o incremento da base de tempo, dentro da própria Interrupção você faz fácil fácil um relógio com horas minutos e segundos.

Caso não queira usar o oscilador interno, também pode usar os timers internos para estourarem sendo incrementados conforme o oscilador da máquina (neste caso não recomendaria o uso de oscilador interno, pois ele tem baixa precisão para um relógio).

Também pode claro, usar um relógio por I2C esta seria uma opção caso você precisasse dos timers para outra coisa ou não quisesse uma interrupção do seu processamento, creio que para sua aplicação isto não é problema e tarefa parece ser simples e dá para fazer tudo dentro do pic mesmo. Mais barato e fácil.


Boa noite phophollety,

Tenho um problema, preciso ter condição de acertar a data/hora inicial e preciso que a data e hora se mantenha caso a energia páre e volte rapidamente. Sabe me dizer se isto é possível?

PS: Estou começando a trabalhar com PIC.

Obrigado desde já

MensagemEnviado: 12 Nov 2007 21:01
por phophollety
ffkammer escreveu:
Boa noite phophollety,

Tenho um problema, preciso ter condição de acertar a data/hora inicial e preciso que a data e hora se mantenha caso a energia páre e volte rapidamente. Sabe me dizer se isto é possível?

PS: Estou começando a trabalhar com PIC.

Obrigado desde já


Então, é, desde que você alimente o pic com uma bateria, não que seja o melhor caminho, mas um 16f628 que seje rodando em 3.0 consome bem pouco ou pode recorrer a um 16f636 que tem NanoWatt (Tecnologia).

Claro, se ainda assim quiser, um RTC é muito convidativo no custo, mas vai obrigar-te a usar rotina de I2C, tem muita coisa na pronta sobre isto, mas para quem está començando agora é uma coisa a mais para quebrar a cabeça.

Ajusta a hora é simples, basta você incrementar e decrementar o seu registrador de horas e minutos (até segundos, se quiser), da mesma maneira que o pic faria, mas através de uma rotina para isto.

Se for com RTC I2C aqui está um bom ponto de partida:
http://www.geocities.com/leibowitz.geo/ ... clock.html

Se for com contador interno:

esquema: http://www.kitsrus.com/pdf/k73.pdf
fonte: http://www.kitsrus.com/zip/clocksrus.zip

[]s

MensagemEnviado: 12 Nov 2007 21:30
por Maurício
Estranho.... aqui vai! E eu uso Ópera.

O fórum é o HOLTEK e o tópico é:

HT1380 (RTC) Atrasa....Adianta...

Usa PESQUISAR para achar o tópico.
O mais simples, eu acho que é usando este RTC, mesmo!

[]'s

MensagemEnviado: 13 Nov 2007 07:27
por ffkammer
Obrigado phophollety,

Vou verificar estas sugestões suas, como não precisarei de precisão acredito que o uso to time1 resolverá meus problemas.

Vou testar e qualquer coisa posto os problemas por aqui!

Muito obrigado

Fabrício

MensagemEnviado: 13 Nov 2007 08:43
por phophollety
ffkammer escreveu:Obrigado phophollety,

Vou verificar estas sugestões suas, como não precisarei de precisão acredito que o uso to time1 resolverá meus problemas.

Vou testar e qualquer coisa posto os problemas por aqui!

Muito obrigado

Fabrício



Se fizer a rotina corretamente a precisão vai igual a de um RTC I²C, pois ambos serão baseados em cristais quartzo (use a sugestão de um cristal rodando em 32768KHz, pelo que me lembre estes cristais variam até 100ppm, o que dava algo em torno de menos de 30s/mês)

Outras sugestões de RTC:

MAXIM/DALLAS
DS1302
DS1305
DS1306
DS1307

Philips
PCF8563
PCF8583

No caso do seu projeto ser simples, acho que ainda vale a pena usar o timer e a eeprom e depois cair para rotina de comunicação I²C

[]s!