PIC e GLCD - fazendo linhas

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

PIC e GLCD - fazendo linhas

Mensagempor Alexandro » 23 Set 2013 09:15

O compilador é o CCSC com a biblioteca do GLCD (64x128 e 80x160).
Eu não sei porque as linhas feitas nos LCD graficos com processadores diferentes falham quando em tamanhos acima de 100 pixels. elas não passam desse tamanho, alguem ja teve esse problema ?
Ja olhei o codigo da biblioteca do GLCD mas não tem o porque disso.
Avatar do usuário
Alexandro
Byte
 
Mensagens: 436
Registrado em: 23 Out 2006 16:49
Localização: São José do Rio Preto - SP e Sao Paulo-SP

Re: PIC e GLCD - fazendo linhas

Mensagempor tcpipchip » 23 Set 2013 11:24

explique melhor para turma...
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: PIC e GLCD - fazendo linhas

Mensagempor ze2 » 25 Set 2013 16:03

por coincidencia estive fazendo (com relativo sucesso) um driver pra um glcd em c puro. o módulo que usei tem 2 controladores (tem glcd com mais). tem-se que habilitar 1 a cada metade da área do lcd. bem, seu problema pode até não ser este, pelo menos poderia lhe servir de inspiração. o problema II é que está usando os mastigados do ccs e fica difícil depurar a um nível + baixo.
ze2
Byte
 
Mensagens: 193
Registrado em: 09 Fev 2009 13:37

Re: PIC e GLCD - fazendo linhas

Mensagempor tcpipchip » 25 Set 2013 16:30

hummm....entao é um KS0108 ?

Voce vai ter 2 CS, uma para a página 1 e outro para página 2.

É muito parecido com o hitachi, voce vai ter um uma barramento para dados ou instruções e um bit informando a funcao do barramento e pino de escrita leitura.

Uma vez selecionada a pagina, dentro dela voce tem endereços de bytes que formam pixels, que sao escritos verticalmente. Coluna a coluna.

Se duvidas continuarem,te mando o emulador.

TCPIPCHIP
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: PIC e GLCD - fazendo linhas

Mensagempor ze2 » 27 Set 2013 16:01

permita-me registrar o método que usei para selecionar os 2 controladores. num é lá grande coisa não e não está 100% mas com transpirações atendeu minhas aspirações. Note-se que procuro maximizar o minimalismo (cara acho que ja disse isso)

Código: Selecionar todos
#define GLCD_SET_PAGE       0xB8    // 10111XXX: set lcd page (X) address --- ver datasheet
#define GLCD_SET_Y_ADDR     0x40    // 01YYYYYY: set lcd Y address --- ver datasheet

#define GLCDCS1 RA4
#define GLCDCS2 RA5
#define GLCDDI RB4 //instrução , dado
#define GLCDRW RB5
#define GLCDEN RB6
#define GLCDRST RB7
#define GLCDDATA PORTC
#define GLCDDDR TRISC
#define GLCDCTR PORTB
#define GLCDCS PORTA
#define GLCDBUSY RC7

void glcdDataWrite(uchar controller, uchar data)
{
GLCDCS=controller<<4;//seleciona o chip << aqui está a extensão do pulo do gato: aciona cada cs em RA5,4
glcdBusyWait(controller);//espera controlador
GLCDDDR=0;//saída
GLCDDI=1;//dado
GLCDRW=0;//escrita
GLCDEN=1;//habilita controlador
GLCDDATA=data;
    asm  ("nop"); asm  ("nop");
    asm  ("nop"); asm  ("nop");
    asm  ("nop"); asm  ("nop");
    asm  ("nop"); asm  ("nop");
GLCDEN=0;
}


void glcdWriteChar(uchar x, uchar y, uchar c, uchar color) //x,y,caracter em asc-ii,invertido ou não
{
uchar i,cs;
cs=x/64;cs++; //<< aqui está o pulo do gato. o argumento x que é a coluna ... x! de 0 a 127 ja vai me identificar qual controlador na rotina acima
//GLCDCS=cs;//seleciona o chip
glcdControlWrite(cs,GLCD_SET_Y_ADDR|(x%64)); //cada controlador controla 64 pixels
glcdControlWrite(cs,GLCD_SET_PAGE | y);//posição y

for(i=0; i<5; i++)
   {
   if (color)
   glcdDataWrite(cs,Font5x7[((c - 0x20) * 5) + i]); //preto
   else
   glcdDataWrite(cs,~Font5x7[((c - 0x20) * 5) + i]); //branco
   }
}


Imagem

até que lembra (e dá pra adaptar) um osciloscopio digital didático meia boca. é pra uma giga de testes simples pra medir um pulso bem como mostrar sua aparência. Ninguém tá perguntando eu sei, mas essencialmente o mc lê só 16 valores analógicos o + rápido possível e plota na telinha com o algoritimo de bresenham. O título do seu tópico me fez lembrar deste treco que fiz...
abç e bfds...
ops ... se o desenho estiver muito grande pra sua tela... sorry. moderador pode deletar
ze2
Byte
 
Mensagens: 193
Registrado em: 09 Fev 2009 13:37

Re: PIC e GLCD - fazendo linhas

Mensagempor Alexandro » 14 Out 2013 08:53

Bom desculpe a demora, mas pelo que vi esse GLCD não precisa selecionar os processadores, o problema mesmo é o codigo de calculos da bilioteca CCSC. Eu esqueci de informar , a gpu : LC7981.
Acontece que eu nao conseguia desenha uma linha com mais de 128 pixels, pq a rotina disso era unsigned int8, ou seja só 0~127 e até -127.
Mas consegui resolver esse problema alterando as variaveis da rotina. O problema é q tem uma função chamada abs() justamente pra tirar o - quando se quer fazer um traço ao contrario( da direita pra esquerda ).
Se quiserem q eu poste a rotina modificada eu coloco aki.

Valeu !
Avatar do usuário
Alexandro
Byte
 
Mensagens: 436
Registrado em: 23 Out 2006 16:49
Localização: São José do Rio Preto - SP e Sao Paulo-SP


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

cron

x