keil no modo IDLE

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

keil no modo IDLE

Mensagempor gafar » 18 Ago 2008 11:32

Pessoal,
recentemente tive que usar o 89C2051 e AT90S2313 (sei que este não é daqui mas é compativeis pino a pino) no modo idle com um supercap. O problema surgiu que após delisgar e religar, os 2 não retiam informação.
Para o 89C2051 usei o keil e no AT90S2313 o codevision.
Após muita dor de cabeça, a conclusão foi que os compiladores ao gerarem os código fontes, eles incluem subrotinas de limpeza de registros e memória.
Para solucionar isto, no Codevision editei o fonte, apaguei as subrotinas e recompilei com o Studio AVR.
No Keil não tive tanta sorte, tive que refazer o programa do velho assembler por não conhecer o montador que use o arquivo gerado por ele.
E possível eliminarmos isto no C, pois não conheço muito da linguagem. Li em um fórum lá fora, que isto é normal e o cara aconselhava quem fosse usar neste modo deveria fazer em assembler.
Agradeço qualquer dica neste sentido.
Avatar do usuário
gafar
Bit
 
Mensagens: 26
Registrado em: 23 Out 2006 08:07
Localização: São Paulo SP

Mensagempor helton » 18 Ago 2008 13:03

O que vc quis dizer com "desligar e ligar" novamente ?...tirar alimentacao, e manter os valores nos registradores (RAM) ?....Nao seria mais conveniente utilizar uma ROM(flash, eeprom) para armazenar esses valores ?
Helton Marques
"Priorize as Prioridades"
helton
Byte
 
Mensagens: 146
Registrado em: 16 Out 2006 09:18
Localização: São José-SC

Mensagempor gafar » 18 Ago 2008 14:09

Helton,
O 89C2051 não tem flash ou EEPROM, outra coisa é a quantidade de liga e desliga é muito grande, coisa de 1 por minuto, durante anos a fio.
Avatar do usuário
gafar
Bit
 
Mensagens: 26
Registrado em: 23 Out 2006 08:07
Localização: São Paulo SP

Mensagempor helton » 18 Ago 2008 14:50

entao, vc precisa de um supercap para manter a tensão de alimentacao (5V) no processador...porque (eu acredito) que o fabricante NAO garante os valores da RAM apos um RESET...
Helton Marques
"Priorize as Prioridades"
helton
Byte
 
Mensagens: 146
Registrado em: 16 Out 2006 09:18
Localização: São José-SC

Mensagempor barboza » 19 Ago 2008 08:12

As rotinas de inicialização da RAM no Keil ficam no arquivo startup.a51 que é adcionado ao projeto no momento da criação (se vc escolher).

Como o Helton disse, os valores não são garantidos, mas após o power up da alimentação, a mudança entre IDLE e NORMAL não deve afetar o conteúdo da RAM.

Se esta transição passa pelas rotinas de inicialização, você deverá implementar um flag de teste ou verificar se você consegue saber pelo hardware do MCU quem esta gerando a interrupção de reset e inicializar ou não suas variaveis/RAM.
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar


Voltar para 8051

Quem está online

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

x