Página 1 de 1

LCD C18

MensagemEnviado: 13 Dez 2010 11:41
por ÁgioFelipe
Olá pessoal.

Vejam código seguinte:

Código: Selecionar todos
rom const unsigned char tabela[1] = { 65 };

LCD_write_char(tabela[1]);



Neste código, é escrito no LCD o caractere 'A', pois 65 é o código ASCII para o 'A'.
O meu problema é que quero pegar o valor da tabela e escrever aquele mesmo valor no LCD sem ter que fazer nenhuma função de conversão, no exemplo anterior, quero que apareça no LCD o valor '65'.
Não existe nenhuma biblioteca de lcd para o C18 que eu possa usar um printf por exemplo?

Valeu.

MensagemEnviado: 13 Dez 2010 12:12
por Red Neck Guy
Tu poderia fazer assim:

Código: Selecionar todos
void charToIntStr(char valor,char *string){
 
  string[0] = '0' + (valor/10)%10;
  string[1] = '0' + valor % 10;
  string[2] = 0;
}


....

utilizando a função:

Código: Selecionar todos
char dispTmp[3];
charToIntStr('A',dispTmp);
FUNCAO_ESCRITA_STRING_LCD(dispTmp);
....

[/code]


ou poderia usar isso:

Código: Selecionar todos
char dispTmp[3];
sprintf(dispTmp,"%d",'A');

FUNCAO_ESCRITA_LCD(dispTmp);

MensagemEnviado: 13 Dez 2010 12:39
por ze
tente algo assim
LCD_write_char('0'+tabela[1]/10);
LCD_write_char('0'+tabela[1]%10);

MensagemEnviado: 13 Dez 2010 12:45
por ÁgioFelipe
Aquino,

Não funcionou, porque esse 'A' na função:
charToIntStr('A',dispTmp);

Re: LCD C18

MensagemEnviado: 13 Dez 2010 12:57
por barboza
ÁgioFelipe escreveu:Olá pessoal.

Vejam código seguinte:

Código: Selecionar todos
rom const unsigned char tabela[1] = { 65 };

LCD_write_char(tabela[1]);



Neste código, é escrito no LCD o caractere 'A', pois 65 é o código ASCII para o 'A'.
O meu problema é que quero pegar o valor da tabela e escrever aquele mesmo valor no LCD sem ter que fazer nenhuma função de conversão, no exemplo anterior, quero que apareça no LCD o valor '65'.
Não existe nenhuma biblioteca de lcd para o C18 que eu possa usar um printf por exemplo?

Valeu.


Cuidado, o índice de acesso é o 0.

MensagemEnviado: 13 Dez 2010 13:14
por Red Neck Guy
ÁgioFelipe escreveu:Aquino,

Não funcionou, porque esse 'A' na função:
charToIntStr('A',dispTmp);


Não entendi muito bem. Vejamos: Tu tem uma tabela com caracteres ASCII e quer jogá-los no LCD, é isso? No fundo tudo e bit...

Então pelo que entendi agora tu tens um vetor cheio de valores que na verdade são uma string e quer jogá-los no LCD. É só mandar pra lá então...

MensagemEnviado: 13 Dez 2010 14:51
por ÁgioFelipe
Obrigado a todos pelas colaborações.

Funcionou do jeito que lellis colocou.