inicializar memoria ram do pic

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

inicializar memoria ram do pic

Mensagempor cristian » 06 Abr 2010 07:21

acho q o pic nao inicializa as variaveis em zero tivo problema com isso tb
como faço ja pra incializar as variaveis todas com zero menos as constantes

e como declarar variaveis no mikroc para ficarem sempre na mesma posiçao de memoria

pois toda vez q insisro uma variavel ela modifica os valores das outras ???

pra simular no proteus toda hora tenho q mudar os endereços da memoria
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor dreher » 06 Abr 2010 08:12

pra inicializar em 0 com certeza, podes fazer assim:

char minha_variavel = 0;

ai vai sempre inicializar com o valor que colocaste ali.

Ja para ficar sempre no mesmo endereço, utilize o absolute

char minha_variavel = 0 absolute 0x0099;
dreher
Byte
 
Mensagens: 489
Registrado em: 12 Out 2006 11:10
Localização: Blumenau - SC

Mensagempor cristian » 06 Abr 2010 14:55

mas ai a variavel nao se torna constante ??? ou nao por ser 0
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor dreher » 06 Abr 2010 15:33

só vai ser constante se tu usar o const antes dela. senão esse valor ali vai ser o valor inicial dela
dreher
Byte
 
Mensagens: 489
Registrado em: 12 Out 2006 11:10
Localização: Blumenau - SC

Mensagempor BolhaDigital » 08 Abr 2010 00:39

bom se eu entendi vc quer limpar a ram do pic, certo?

vai aí uma rotina que limpa toda a memória ram do pic, coloque ela na inicialização e se desejar inserir dados utilizando o mesmo processo é só alterar um pouquinho essa rotina, eu utilizo ela para zerar a ram na inicialização e também para (com pequenas alterações) para introduzir valores as variaveis...

essa rotina serve tanto para pic16 quanto para pic18....
bastando vc alterar os vetores do ponteiro,



;---------------
; *** INICIA BLOCO CLEAR RAM ***
;---------------
;Essa rotina limpa todas as posições de RAM (Pic16F877A)
;
clear_bank0:
bcf status, irp
movlw 0x7f
movwf fsr
loop_bank0:
clrf indf
decf fsr, f
movlw 0x1f
subwf fsr, w
btfss status, z
goto loop_bank0
bcf status, irp
;-----------
clear_bank1:
bcf status, irp
movlw 0xff
movwf fsr
loop_bank1:
clrf indf
decf fsr, f
movlw 0x9f
subwf fsr, w
btfss status, z
goto loop_bank1
bcf status, irp
;-----------
clear_bank2:
bsf status, irp
movlw 0x7f
movwf fsr
loop_bank2:
clrf indf
decf fsr, f
movlw 0x0f
subwf fsr, w
btfss status, z
goto loop_bank2
bcf status, irp
;-----------
clear_bank3:
bsf status, irp
movlw 0xff
movwf fsr
loop_bank3:
clrf indf
decf fsr, f
movlw 0x8f
BolhaDigital
Bit
 
Mensagens: 47
Registrado em: 07 Mar 2010 12:20

Mensagempor vtrx » 08 Abr 2010 08:43

Bolha,o Crsitian escreveu o tópico errado,não é inicializar a ram com zero,mas sim inicializar VARIÀVEIS com zero.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor cristian » 08 Abr 2010 12:55

isso eu quero limpar a ram
para garantir q as variaveis q so foram declaradas comecem em zero

e as q atribuir valor sejam inicializadas com seus valores

no ccs tem #zero_ram
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba


Voltar para PIC

Quem está online

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

cron

x