LCD C18

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

LCD C18

Mensagempor ÁgioFelipe » 13 Dez 2010 11:41

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.
ÁgioFelipe
Word
 
Mensagens: 626
Registrado em: 27 Out 2006 20:04

Mensagempor Red Neck Guy » 13 Dez 2010 12:12

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);
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Mensagempor ze » 13 Dez 2010 12:39

tente algo assim
LCD_write_char('0'+tabela[1]/10);
LCD_write_char('0'+tabela[1]%10);
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor ÁgioFelipe » 13 Dez 2010 12:45

Aquino,

Não funcionou, porque esse 'A' na função:
charToIntStr('A',dispTmp);
ÁgioFelipe
Word
 
Mensagens: 626
Registrado em: 27 Out 2006 20:04

Re: LCD C18

Mensagempor barboza » 13 Dez 2010 12:57

Á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.
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor Red Neck Guy » 13 Dez 2010 13:14

Á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...
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Mensagempor ÁgioFelipe » 13 Dez 2010 14:51

Obrigado a todos pelas colaborações.

Funcionou do jeito que lellis colocou.
ÁgioFelipe
Word
 
Mensagens: 626
Registrado em: 27 Out 2006 20:04


Voltar para PIC

Quem está online

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

x