Matriz de Char com Variaveis

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Matriz de Char com Variaveis

Mensagempor GMO » 19 Jun 2017 17:07

Olá a todos,

O código abaixo mostra o erro: "(188) Constant Expression Requerida" quando compilado no XC8.
Essa mensagem diz que o compilador não está aceitando variável dentro da char matriz.

Código: Selecionar todos
    const char matrizA[] = {100, 70, 31, 60, 101};
    char valor;   
 
    valor = 150;

    char enviar[] = {0x17, matrizA[3], valor, null};
    putsUSART(enviar);


se pôr valores fixos funciona. como no exemplo abaixo, mas não funciona com variáveis:

Código: Selecionar todos
    const char varteste[] = {0x17, 10};
    putsUSART(varteste);


eu sei que no C18 compila perfeitamente, mas não compila do XC8

Alguém poderia ajudar ?
Grato
GMO
Bit
 
Mensagens: 5
Registrado em: 19 Jun 2017 16:36

Re: Matriz de Char com Variaveis

Mensagempor denis » 20 Jun 2017 07:27

Faça um teste:
Código: Selecionar todos
const char valor;
denis
Byte
 
Mensagens: 257
Registrado em: 06 Mar 2007 12:29
Localização: Americana - SP

Re: Matriz de Char com Variaveis

Mensagempor GMO » 20 Jun 2017 11:10

vou testar, mas o problema mesmo está no matrizA[]
obrigado
GMO
Bit
 
Mensagens: 5
Registrado em: 19 Jun 2017 16:36

Re: Matriz de Char com Variaveis

Mensagempor andre_luis » 20 Jun 2017 12:00

Não sei se foi a isso que o Denis se referiu, mas tentou algo do tipo um casting para constante ?

cpp code
char enviar[] = {0x17, (const)matrizA[3], valor, null};
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Matriz de Char com Variaveis

Mensagempor GMO » 20 Jun 2017 13:47

sim tentei de tudo, o problema está na versao xc8 do compilador. no c18 funciona.
o xc8 nao aceita constantes dentro e matriz
GMO
Bit
 
Mensagens: 5
Registrado em: 19 Jun 2017 16:36

Re: Matriz de Char com Variaveis

Mensagempor andre_luis » 20 Jun 2017 14:43

Tenta colocar tudo dentro de uma variavel do tipo tipo struct, e entao indexar por ponteiro. No compilador do AVR por exemplo, há uma diretiva que me garante que a alocação será inline, de modo que eu tenho a certeza de que cada elemento da estrutura está encadeado ao seguinte, bastando apenas referenciar pela sua posição.

Mas a propósito, teria como identificar exatamente em qual linha do código acima está ocorrendo o erro ? Se na declaração da variavel ou se na sua utilização dentro da função putsUSART ?
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Matriz de Char com Variaveis

Mensagempor GMO » 20 Jun 2017 16:27

a ideia da struct é boa, vou tentar.

a linha que mostra o erro é na compilação do char abaixo:
char enviar[] = {0x17, matrizA[3], valor, null};
GMO
Bit
 
Mensagens: 5
Registrado em: 19 Jun 2017 16:36

Re: Matriz de Char com Variaveis

Mensagempor andre_luis » 20 Jun 2017 20:24

Já experimentou substituir o array dentro do outro por 3 caracteres quaisquer, sendo que voce os iria superpor com outro valor antes de enviar ?
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Matriz de Char com Variaveis

Mensagempor eletroinf » 20 Jun 2017 21:01

Veja no manual dele tem algumas dicas que eu achei procurando por 'const' no find do leitor de pdf.
Na página 19 tem um exemplo:

const char myName[] = "Bj\370rk\n";

Na página 27:
const char keys[] __at(124) = { ’r’, ’s’, ’u’, ’d’};

Neste caso, especificando o endereço ao que me parece. Veja se ajuda.

Link do manual:
http://ww1.microchip.com/downloads/en/D ... 02053G.pdf
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 948
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: Matriz de Char com Variaveis

Mensagempor GMO » 20 Jun 2017 22:13

ja tentei sim, na verdade o xc8 nao aceita nenhum tipo de variavel dentro de um array

eu baixei o manual do xc8 que o nosso amigo deixou no link e vi que tem bastante coisa interessante de constantes lá.
GMO
Bit
 
Mensagens: 5
Registrado em: 19 Jun 2017 16:36


Voltar para PIC

Quem está online

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

x