Página 1 de 1

Posição da RAM sendo zerada

MensagemEnviado: 16 Dez 2010 21:32
por eliandrostz
Senhores,

Num projetinho que estou fazendo, usando PIC18F252 e Mikroc a variável que está na posição 0x006E da RAM é zerada toda vez que uso a função IntToStr do Mikroc.

Alguém tem idéia do porquê que isso acontece??

Será que vou precisar declarar posições absolutas para todas variáveis, ou existe uma forma de impedir que alguma variável caia nessa posição da RAM??

Grato.

MensagemEnviado: 20 Dez 2010 18:18
por leoabubauru
Um palpite:
Estouro de pilha???
Acho que o PIC usa a RAM para pilha...

MensagemEnviado: 21 Dez 2010 07:39
por eliandrostz
leoabubauru escreveu:Um palpite:
Estouro de pilha???
Acho que o PIC usa a RAM para pilha...


Se houvesse um estouro da pilha, consequentemente não haveria um reset??

MensagemEnviado: 21 Dez 2010 16:19
por barboza
Toda string termina com um caracter nulo '\0' = 0x00, então sua alocação de memória para a string deve estar pequena (-1) e com isso sobreescreve endereço que deve ser o próximo.

MensagemEnviado: 22 Dez 2010 00:33
por leoabubauru
eliandrostz escreveu:
Se houvesse um estouro da pilha, consequentemente não haveria um reset??



Nem sempre...


E acho que a dica do barboza é bem a cara do seu problema...

MensagemEnviado: 22 Dez 2010 06:59
por eliandrostz
barboza escreveu:...então sua alocação de memória para a string deve estar pequena (-1)


Mesmo aumentando o tamanho o problema continuou, então declarei uma variavel qualquer sem uso no programa com a diretiva absolute 0x006E para impedir que uma outra caisse nessa posição, pode não ser o mais indicado, mas resolveu o problema.

obrigado leoabubauru e barboza pela atenção.

MensagemEnviado: 22 Dez 2010 08:07
por Djalma Toledo Rodrigues
De 0 a 07Fh é área de Acess Ram

Porque não na área GPR da Ram
Endereço a partir de 080h ?

Ver Datasheet fig. 4-6 página 45

DJ