pic16f628/tempo de escrita eprom

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

pic16f628/tempo de escrita eprom

Mensagempor alex1000 » 19 Set 2008 14:22

Surgiu um problema e gostaria de saber se alguem tem solução:

tenho um programa que sai em um pino uma onda ciclica de 10ms em nivel alto(sendo esse tempo variavel) e 20ms em nivel baixo.
Após a execução da intrução se saida do sinal no pino executa uma instrução de escrita de eprom(write_eeprom) para guardar uma variavel.
Pois bem esta escrita faz com que o tempo do nivel 0 faz com que o tempo de 20ms passe a ser de 30 ms.
Há algum jeito de executar a escrita na eprom e não afetar o tempo de nivel 0?
alex1000
Byte
 
Mensagens: 104
Registrado em: 02 Out 2007 23:39

Re: pic16f628/tempo de escrita eprom

Mensagempor Djalma Toledo Rodrigues » 19 Set 2008 14:41

Facil amigo

t(off) = 20ms - t(w_eeprom)

t(off) = 20ms - 10ms

t(off) = 10 ms

Abraço e bom tempo off.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor RobL » 19 Set 2008 17:50

Eu não entendí bem o seu problema.
Quantos bytes está sendo gravado? Cada byte leva em torno de 4ms.
Você tem um período de 30ms a cada gravação ?
Se sua saída é um nível que dura 10ms alta e 20ms baixa e ao final desses 20ms chama a rotina para gravar, pergunto, por que sua gravação tem que ficar presa?
Se for o caso, chame a rotina para gravar e vai para outras tarefas.
Se for um monte de bytes, primeiro coloque nível alto e aí chame a rotina de gravação, pois terá até 30ms gravando.
Está usando interrupção?
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor Renie » 19 Set 2008 21:35

Olá Alex,

Você está gravando na Eeprom do PIC a cada 30 ms?

Se for, seu PIC terá uma vida útil de pouco mais de 8 horas!!!
[]'s
Renie
-------------------------------------------------------------------------------------------------------------
Meu velho site com eletrônica praticamente parado http://www.reniemarquet.com
Nosso Blog http://artemadeiraevida.blogspot.com.br
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor RobL » 20 Set 2008 10:08

Renie
Boa observação. Está aí, ninguém percebeu essa impossibilidade.
Isto é que é ajuda com qualidade.

Refiz as contas e parece que não chega a uma hora (100.000 gravações)!!!

O jeito seria usar essas novas flashs externas que podem ser gravadas sei lá quantas vezes (deu branco, não lembro do nome delas nem do fabricante) ou se possível, mudar o procedimento.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor zielpunkt » 20 Set 2008 10:48

Então, Alex,

Além do que o Renie afirmou (corretíssimo - gravar eeprom dessa forma f... tudo) e da dica do Robl e do Djama, de calcular o tempo perdido numa gravação, o ideal é fazer por timer. Mas, mesmo assim, terá que tomar cuidado entre as tarefas de gravação, seja ou não numa memória mais sofisticada (que aceite o volume de gravações que parece querer utilizar), ou seja, garantir que uma gravação só ocorra entre os intervalos da temporização. Ou, também, buferizar os dados e escolher o melhor momento para gravar. Ou estruturar o seu programa de outra forma mas, sem saber o que está fazendo, não dá pra opinar.


Abço.
"Talento é mais barato que sal. O que separa a pessoa talentosa da bem-sucedida é muito trabalho duro." [ Stephen King ]
zielpunkt
Byte
 
Mensagens: 376
Registrado em: 12 Out 2006 11:36
Localização: Sao Paulo - SP

Mensagempor Renie » 21 Set 2008 13:56

Olá RobL,

No Dxit do 628 não tem essa informação mas, no do 877 diz
100.000 gravações para a flash, para a eeprom são 1.000.000 gravações.
[]'s
Renie
-------------------------------------------------------------------------------------------------------------
Meu velho site com eletrônica praticamente parado http://www.reniemarquet.com
Nosso Blog http://artemadeiraevida.blogspot.com.br
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor alex1000 » 22 Set 2008 19:34

Senhores, depois das observações percebi que estava tratando o problema de maneira errada, afinal não seria necessário esta quantidade de gravações.
No final adicionei duas chaves ao projeto onde uma escreve na eprom e outra obtem o resultado da escrita, todas acionando rotinas conforme o Robl sugeriu.
Vo executar a gravação do programa amanhã e verei como se comporta.
Obrigado pela ajuda.
alex1000
Byte
 
Mensagens: 104
Registrado em: 02 Out 2007 23:39


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

x