Página 1 de 1

Erro na compilação

MensagemEnviado: 29 Out 2006 17:41
por moacir
Olá, ja algum tempo faço programas em c ccs. Agora estou tentando fazer alterações em programa escrito em assembly,não tenho muita intimidade com esta linguagem. Inicialmente o programa foi escrito para um pic16f84a, como esta dificil consegui-lo resolvi alterar para o pic16f628a. Realizei as alterações que conheço, como direcionar as entradas porta para I/O, etc...Quando compilo o mplab da a seguinte mensagem (128: Invalid RAM location specified.).

Verificando a linha 128 do programa tem:
btfss teste1

teste1 esta definido da seguinte forma

Mode equ 20
#define teste1 Mode,1

com o 16f84a a mensagem não aparece. Desculpe se esta meio confuso. Mas agradeço se puderem ajudar.

MensagemEnviado: 29 Out 2006 19:26
por ric_vas
Tb. não tenho intimidade...em todo caso tente:

Mode equ 0x20 ;hexadecimal 20 (32 decimal)

Ric

MensagemEnviado: 29 Out 2006 19:56
por moacir
RIC_VAS, vou tentar a opção. Retorno com o resultado.
Agradeço a sua atenção.

MensagemEnviado: 29 Out 2006 20:02
por moacir
Ric, fiz a alteração e na compilação não apareceu o erro.

Agoro pergunto, qual a diferença de (equ 20) para equ 0x20?

Os valores não vão ficar alterados? ou tenho que alterar 20 decimal para hex?

20 decimal - 0x14 hex

MensagemEnviado: 29 Out 2006 21:59
por ric_vas
Considerando que Mode seja uma variável qualquer, você apenas redefiniu sua posição. O erro aparecia porque, no 16f628a, esta posição de memória (0x14) não está implementada (pag. 16 do datasheet), no 16f84a sim. Você deve verificar no seu programa se esta alteração não afetará uma outra variável que já está definida para esta posição.

Acho que era isso.

Ric

MensagemEnviado: 30 Out 2006 10:25
por moacir
RIC, agradeço pela dica, ate agora esta funcionando.