Ir ao conteúdo
  • Cadastre-se

Menu Rotativo


Posts recomendados

Olá pessoal do CDH, fiz uma pesquisa aqui no forum e não achei nada a respeito então venho pedir a ajuda do pessoal mais experiente..

 

Trata-se de um video que eu vi no youtube, onde ao invés de limpar a tela para chamar o proximo menu, ele simplesmente rola ou rotaciona o menu (antigo) inteiro para esquerda...

 

achei legal o efeito e como tenho algumas aplicações com menus, gostaria de saber como implementar esta função!!

 

aqui o video: 

 

Att.

 

Rodrigo

 

Edit: Programação em C no CCS e uC familia PIC

Link para o comentário
Compartilhar em outros sites

@MatheusLPS obrigado amigão, eu havia pesquisado como menu rotativo por isso não achei..

 

Mas é isso mesmo que eu queria deslocar para direita ou esquerda o que está escrito...

 

mas seguindo seu exemplo aqui...

#include <18f4550.h>#FUSES NOWDT                    //No Watch Dog Timer#FUSES HS                       //Crystal osc <= 4mhz#FUSES PUT                      //Power Up Timer#FUSES NOPROTECT                //Code not protected from reading#FUSES NODEBUG                  //No Debug mode for ICD#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O#FUSES NOCPD                    //No EE protection#use delay(clock=8000000)#define use_portb_lcd TRUE#include <lcd.C>void lcd_scroll_right(void){   lcd_send_byte(0, 0x1E);   delay_ms(400); // scroll delay}void lcd_scroll_left(void){   lcd_send_byte(0, 0x18);   delay_ms(400); // scroll delay} void main(){        lcd_init ();        while (true)   {            printf(lcd_putc,"\fteste");       delay_ms (500);      printf(lcd_putc,"\n18f4550");       delay_ms (500);            for(i = 0; i < 15 ; i++)      {         lcd_scroll_left();               }   }}

Dentro do bloco for no comando lcd_scroll_"left ou rioght" neste exemplo eu colocando right ele desloca para esquerda O_o.... se coloco left ele apaga tudo e não rotaciona...

 

o que seria???

 

Att.

 

Rodrigo C.

 

Edit: @MatheusLPS

 

no menu do video no momento que está saindo um menu o outro ja está entrando na mesma ação... neste exemplo ele só retira da tela o menu "antigo"  como farei pra ja entrar com o menu novo???

 

espero que entenda....

Link para o comentário
Compartilhar em outros sites

@rodrigocirilo

Essa questão de estar trocado a função eu sei o que é. Aposto que você está testando no proteus. Não sei porque mas ele entende ao contrário. Na prática fica certo.

E sim. Antes mesmo de ver o vídeo fiquei imaginando se o texto antigo sairia antes de entrar o novo ou não.

Terei que pensar um pouco como fazer esse efeito do jeito que está. Tem diversas formas.

Momento brainstorming.....

Falou

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Para entrar o texto novo,você deve escrever na área não visível da Gram primeiro.

Procure no datasheet do seu LCD qual são os endereços da Ram que não são visíveis e ficam na sequencia da área

Quando você rotaciona,na verdade esta deslocando os endereços da ram,se você testar vai ver que a segunda linha vai aparecer no lugar da primeira se ficar rotacionando.

Link para o comentário
Compartilhar em outros sites

@vtrx

A sua ideia é boa. O único problema que vejo é ficarmos dependendo do LCD usado. Se mudar o lcd, as posições podem alterar. Aí gasta tempo procurando esses locais de novo.

Me diz o que você acha da minha ideia:

Armazenamos as strings com os nomes dos menus em variáveis. Vai ocupar memória mas por enquanto vamos imaginar que temos sobrando.

Bom. Sabemos o tamanho do LCD. Vamos supor que seja 16 colunas visíveis.

Escrevemos o primeiro menu. Damos o comando de rotacional. Depois de digamos 7 rotacionadas, sabemos a quantidade de caracteres foi comida e podemos saber a quantidade de caracteres do outro menu deveria estar aparecendo.

Com isso e um pouquinho de manipulação de strings, conseguimos montar uma nova string que será impressa.

O meu medo é o ccs ser ler do nessa manipulação. Mas ele tem uma função chamada memcpy onde podemos fazer isso. Na verdade a string não é uma string. É apenas um vetor com as letras em cada posição. Com isso fica fácil retirarmos somente as letras que precisamos é montar uma string nova a cada rotação para um lado.

O negócio vai ser eu tentar essa ideia pois estou sem pc. Estou até hj sem fonte. Mandei para um cara tentar arrumar pós não estou nem um pouco afim de gastar 500 reais em uma nova fonte agora. Vou esperar 1 semana. Se não der para consertar a minha corsair TX750, terei que comprar outra mesmo.

E quanto isso. Sem programar...... que tédio. ....

Falou

Link para o comentário
Compartilhar em outros sites

Bom primeiramente obrigado pelas dicas...

 

@MatheusLPS  eu pensei "acho" na mesma coisa que você.... claro que com "outras palavras" ..... vou fazer um teste aqui e se conseguir eu posto....

 

Bom então na pratica funciona normalmente?? maravilha ja é um começo..

 

Att.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...