Página 1 de 1

Problema com array de constantes...

MensagemEnviado: 13 Jan 2010 18:25
por rod_ladeira
Estou com um problema na declaração de um array de string constante.

Se eu declaro da seguinte forma:

const unsigned char texto[][17] =
{"ANGOERA SE ",
" ",
" INICIO ",
" APAGANDO... ",
" GRAVANDO... ",
" VERIFICA FW ... ",
" GRAVA CONFIG...",
" ERRO ",
" OK ",
" **** FIM ***** " };

Funciona perfeitamente, o problema ocorre quando eu aumento o número de palavras tal como:

const unsigned char texto[][17] =
{"ANGOERA SE ",
" ",
" INICIO ",
" APAGANDO... ",
" GRAVANDO... ",
" VERIFICA FW ... ",
" GRAVA CONFIG...",
" ERRO ",
" OK ",
" **** FIM ***** " ,
" TESTE " };

O numero de colunas está correto ( mesmo não parecendo no texto acima) e o compilador que estou utilizando é o HI-TECH

Obrigado desde já...........

MensagemEnviado: 13 Jan 2010 18:57
por guest2003
Posta o erro... e qual o PIC ?

[]'s

MensagemEnviado: 13 Jan 2010 20:35
por ze
não sei qual é o erro mas chutando caso seja de limitação "anormal" de memória flash coloque antes do array
#pragma psect text=qualquer_coisa //não exija comentário por favor

chute++:
const char* dsem[] = "Domingo","Segunda","Terca ","Quarta ","Quinta ","Sexta ","Sabado ";

gozado na forma do meu o ex. acima funcionou 1 dia há uns 3 anos. Ao invés de display("segunda") eu fazia display(dsem[1]). Agora só com a forma do seu ex.
ex.:
const unsigned char dsem[][7] = {"Domingo","Segunda","Terca ","Quarta ","Quinta ","Sexta ","Sabado "} e display(dsem[1]) ---> ok.

abç e eu hein... este compilador ta pirado que nem eu

e obrigado!

MensagemEnviado: 24 Fev 2010 16:49
por rod_ladeira
Eu utilizo essa constante para escrever texto no LCD.

Eu utilizava essa estrutura no CCS e sempre funcionou, mas troquei o compilador para o HI TECH e o problema que surgiu é que aparece um caractere estranho no LCD....

MensagemEnviado: 24 Fev 2010 17:30
por helton
Verifica se assim dá certo:

Código: Selecionar todos

const  char  * const lcd_str_list[] = {
    ("ANGOERA SE "),
    (" "),
    (" INICIO "),
    (" APAGANDO... "),
    (" GRAVANDO... "),
   (" VERIFICA FW ... "),
   (" GRAVA CONFIG..."),
   (" ERRO "),
   (" OK "),
   (" **** FIM ***** ")
};

#define STR_ANGOERA_SE     (lcd_str_list[0])
#define STR_SPACE               (lcd_str_list[1])
#define STR_INICIO              (lcd_str_list[2])
#define STR_APAGANDO       (lcd_str_list[2])
#define STR_GRAVANDO       (lcd_str_list[3])
#define STR_VERIFICA_FW    (lcd_str_list[4])
#define STR_GRAVA_CONFIG (lcd_str_list[5])
#define STR_ERRO                 (lcd_str_list[6])
#define STR_OK                    (lcd_str_list[7])
#define STR_FIM                   (lcd_str_list[8])


...
lcd_puts(STR_FIM);
...



[/code]