Duvida LCD 16x4

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Duvida LCD 16x4

Mensagempor gilliard » 07 Ago 2009 22:57

:D Fala Pessoal !!!! :D

Bom, dessa vez estou com um problema com meu Lcd 16x4.

Bom, no meu software, eu peço para serem exibidos, nas quatro linhas, na primeira coluna. Mas quando eu rodo o software no PIC, apartir na 3ª linha, as palavras aparecem na sexta coluna, mas meu software esta certinho. vejam :

Imagem

Código: Selecionar todos
Lcd_custom_Cmd(Lcd_Clear);
         Lcd_custom_out(1,1,"1 - Teste");
         Lcd_custom_out(2,1,"2 - Teste");
         Lcd_custom_out(3,1,"3 - Teste");
         Delay_ms(20);


Oque pode ser isso ?!?!? Como solucionar ?!?!?

Toda ajuda será muito bem vinda.

Flw
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor fabim » 07 Ago 2009 23:13

cpp code
Lcd_custom_Cmd(Lcd_Clear); 
Lcd_custom_out(1,1,"1 - Teste\0");
Lcd_custom_out(2,1,"2 - Teste\0");
Lcd_custom_out(3,1,"3 - Teste\0");
Delay_ms(20);

Lcd_custom_Cmd(Lcd_Clear);
Lcd_custom_out(1,1,"1 - Teste"+'\0');
Lcd_custom_out(2,1,"2 - Teste"+'\0');
Lcd_custom_out(3,1,"3 - Teste"+'\0');
Delay_ms(20);
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor rona123 » 08 Ago 2009 05:05

fabim,

explica que eu boiei....rsrsrs
sds/rona123
rona123
Byte
 
Mensagens: 214
Registrado em: 07 Mai 2009 20:01

Mensagempor fabim » 08 Ago 2009 09:03

rona123 escreveu:fabim,

explica que eu boiei....rsrsrs
sds/rona123


testou ?

as rotinas prontas do mikroC foram feitas par col20.
Ou seja 20 linhas, 20 bytes etc.

99,99999% Dos lcds 16*4, é o seguinte.
O controlador da 1° linha é o mesmo da 3° linha.
O controlador da 2° linha é o mesmo da 4° linha.

É exatamente por isso que quando c mandar os dados, tem que mandar um comando de terminação depois do ultimo byte deste array.

Sabe la Deus o porque fizeram assim...

FAbim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor gilliard » 08 Ago 2009 09:33

:D Falae rona123 e fabim !!!

Então.... aqui não funcionou deu erro de compilação. Não foi reconhecido o sinal de +.

Vixi colegas, ferrou agora rrssss. e agora oque eu posso fazer ?!?!?
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor barboza » 08 Ago 2009 12:37

fabim escreveu:
rona123 escreveu:fabim,

explica que eu boiei....rsrsrs
sds/rona123


testou ?


É exatamente por isso que quando c mandar os dados, tem que mandar um comando de terminação depois do ultimo byte deste array.


FAbim


A propria string é terminada com o caracter nulo. Isso diferencia um array de uma string.
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 fabim » 08 Ago 2009 14:57

barboza escreveu:
fabim escreveu:
rona123 escreveu:fabim,

explica que eu boiei....rsrsrs
sds/rona123


testou ?


É exatamente por isso que quando c mandar os dados, tem que mandar um comando de terminação depois do ultimo byte deste array.


FAbim


A propria string é terminada com o caracter nulo. Isso diferencia um array de uma string.


Sim até seria, se não fosse um bug...
Olhe o asm que ele gera nas chamadas do lcd....
se são 5 bytes validos, ele move os 5 para a rotina do lcd e lá no lcd, while(data!=\0 or point<20){
tendeu ? se não encontrar o \0 ele manda 20 bytes.
É exatamente por isto que ocorre o erro.
veja que ele esta escrevendo na 3° linha, apos o 4° digito..

Não é erro do proteus, nem do microC..
É que 99% dos programadores sabem que o C procura um \0 pra saber que acabou..
abraços
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor gilliard » 08 Ago 2009 15:27

Muito boa as explicações, parabens galera !!!!

Mas aqui não consegui testar, dá erro durante a compilação.

Vamos lá:

Como ficaria, se eu quiser exibir no LCD 16x4, a palavras ASM51, na 1ª, 2ª 3ª e 4ª linha, na primeira coluna.

Como fficaria ?!?!?

Me mostrem um exemplo, pois aqui deu erro no meu MikroC.
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor fabim » 08 Ago 2009 16:31

velho, se tu estiver usando o lcdcustom da mikroE ja disse que esta bugado..
Pega um datasheet qualquer de um LCD 16*4.

Olha na tabela onde informa a posição coluna "um" de cada linha, ou seja, o comando cuja o valor o controlador do lcd sabe que você quer escrever algo apartir daquele endereço.

Lcd_Cmd(0xcoluna_um_da_linha_um);

isso vala para o controlador do lcd, em qual posição você vai começar a escrever.

Utilizando a mesma m**** de libi.

Lcd_Chr_Cp(byte a byte, apartir do ponto que você setou alí atraz);

Exemplo simples de uma sub_rotina;;; que vai usar o lcd_chr_cp..

void manda_bala( short *dado){

while(dado){ //enquanto ponto dif \0 manda char´s
Lcd_Chr_Cp(dado);
*dado++;
}
}

giliard, isso aí é um basição só pra você entender a idéia..
Briga mais um pouquinho aí que c acha o pau..

Abraços

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Djalma Toledo Rodrigues » 08 Ago 2009 21:25

Linha Coluna.
.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor gilliard » 08 Ago 2009 22:37

Deixa eu ver se eu entendi.

Segundo esse Datasheet:

http://www.datasheetcatalog.org/datasheet/vishay/016m004b.pdf

Ficaria assim a primeira, segunda linha, terceira e quarta ?!?!?

Lcd_Cmd(0x00);
Lcd_Chr_Cp(0x00,"1 - Teste");
Lcd_Cmd(0x40);
Lcd_Chr_Cp(0x40,"2 - Teste");
Lcd_Cmd(0x10);
Lcd_Chr_Cp(0x10,"3 - Teste");
Lcd_Cmd(0x50);
Lcd_Chr_Cp(0x50,"4 - Teste");
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor gilliard » 09 Ago 2009 08:16

Galera, estou fazendo varios teste aqui, e nenhum funcionou, alguem poderia me passar um exemplo funcional, somente da parte do lcd_cmd e lcd_chr ????

:D :D
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor gilliard » 09 Ago 2009 12:17

Galera, me passem um exemplo funcional, to testando, testando e testando, e nada !!!!
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor fabim » 09 Ago 2009 13:07

gilliard escreveu:Galera, me passem um exemplo funcional, to testando, testando e testando, e nada !!!!

O tio, quer um conselho se atende mais a fuçar no compilador e dibuiar o mardito do que ficar pesquisando sobre soluções.
O problema eu ja disse qual era, e mesmo assim tu nem deu importancia.

Lcd_Init(); // Initialize LCD
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_out(1,1,"1a - linha");
Lcd_out(2,1,"2a - linha");
Lcd_out(1,17,"3a - linha");
Lcd_out(2,17,"4a - linha");

por favor, para o bem da zumanidade asm51teriana, se esforce mais, é bom para você e para nós.

Porque?
Facil, se realmente quer aprender, você tem que participar.
Imagine assim, tu aprende ou talves por alguma dica descobre o problema e não coloca aqui para outros iniciantes verem....
Ja se for batalhando, perguntando DICAS e SUGESTÕES, tudo aqui no forum, outros que estão com o mesmo probrema vão aprender também.

Tendeu ? leva a mau não, é que isto é um forum, e informações são para serem postadas e capturadas, nada de xupinhagem..

Abraços

E bom LCD-16*4

fabim
Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor gilliard » 09 Ago 2009 17:03

:D Boa Tarde Fabim :D

Fabim, na boa, agradeço pela sua força, e em nenhum momento disse que não dei importância para oque você havia dito, inclusive disse, que estava testando, e tentando, e nada havia acontecido, e estava dando erro de compilação, seguindo sua sugestão. ( Acho que você que não deu importância, para essa parte do meu post ).
E você não sabe, se eu fucei ou não o compilador, pesquisei inclusive no manual do Mikroc, e não encontrei nada, então amigo, na boa, não fale oque vc não sabe, e não me chame de Chupa Cabra, como você insinuou, que eu só pergunto e não posto o resultado.

Desculpe ter pedido sua ajuda, não foi por mal, apenas estava afim de aprender.

Leva a mal não, mas é meu ponto de vista colega.
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Próximo

Voltar para PIC

Quem está online

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

cron

x