Ajuda em matriz de LED

Software e Hardware para ATMEL

Moderadores: 51, guest2003, brasilma

Ajuda em matriz de LED

Mensagempor edsonavr » 22 Abr 2016 12:30

Boa tarde a todos.

Sou novo aqui no fórum e pretendo sempre que poder ajudar também, ja fiz muita programação de PIC, e já faz um tempo que estou usando os AVR, porem estou em dúvida pra finalizar uma parte de meu código que esta em .asm, sim eu sei que seria muito mais fácil e mais rápido usar linguagem de alto nível, mas é que sabe aquela sensação de ver o projeto pronto e funcionando e dizer "EU QUE FIZ", então sou fanatico por assembly, e também programo bem em C, GCC, e minha dúvida é a seguinte:

Preciso criar uma rotina pra ler o mapa de bytes dos carcteres para enviar na matriz, a dúvida é como carregar a sequencia de bytes, estou usando o LPM, até consigo fazer mas ai tenho que ficar chamando letra por letra, gostaria sa saber de voces mais experientes se podem me ajudar a fazer de alguma outra forma essa leitura na tabela de byte dos caracteres, tipo chama a função texto1 e ai dentro do testo um escrevo a string que quero e o programa vai buscar letra a letra seria algo assim que nao estou conseguindo fazer, se alguem poder me dar uma ajuda uma dica agradeço.

Abraço a todos
edsonavr
 
Mensagens: 3
Registrado em: 22 Abr 2016 12:23

Re: Ajuda em matriz de LED

Mensagempor andre_luis » 22 Abr 2016 13:01

Olha, independente da linguagem ser alto ou baixo nivel, mas tem de rabiscar um esboço do que pretende fazer, até porque graficamente fica mais fácil conversar sobre que parte do problema é que a coisa tá travada.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Ajuda em matriz de LED

Mensagempor edsonavr » 22 Abr 2016 14:13

andre_teprom escreveu:Olha, independente da linguagem ser alto ou baixo nivel, mas tem de rabiscar um esboço do que pretende fazer, até porque graficamente fica mais fácil conversar sobre que parte do problema é que a coisa tá travada.



Então amigo o codigo todo funciona faz a varredura das matriz tudo certo, só to com problema em usar tabela de caracteres , tipo tem que ir byte a byte
edsonavr
 
Mensagens: 3
Registrado em: 22 Abr 2016 12:23

Re: Ajuda em matriz de LED

Mensagempor Red Neck Guy » 22 Abr 2016 14:39

Eu faria algo do tipo:
Código: Selecionar todos
// só um exemplo, os bits não fazem sentido.
const char caracteres[][]={
['a'] = { 0xFF,0xAA,0xCD,0xFF},
['b'] = { 0xFF,0xAA,0xCD,0xFF},
['c'] = { 0xFF,0xAA,0xCD,0xFF},
['d'] = { 0xFF,0xAA,0xCD,0xFF},
['e'] = { 0xFF,0xAA,0xCD,0xFF},
['f'] = { 0xFF,0xAA,0xCD,0xFF},
[' '] = { 0x00,0x00,0x00,0x00}
};

char mensagemDisplay[16] = "Ola mundo";



Depois no refresh você pode fazer algo do tipo:

Código: Selecionar todos
  static unsigned char indice=0;

  setColuna(indice/5);
  PORT = caracteres[mensagemDisplay[indice/5]][indice%5];
  indice = (indice+1) % TOTAL_COLUNAS;
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: Ajuda em matriz de LED

Mensagempor edsonavr » 22 Abr 2016 15:48

Aquino escreveu:Eu faria algo do tipo:
Código: Selecionar todos
// só um exemplo, os bits não fazem sentido.
const char caracteres[][]={
['a'] = { 0xFF,0xAA,0xCD,0xFF},
['b'] = { 0xFF,0xAA,0xCD,0xFF},
['c'] = { 0xFF,0xAA,0xCD,0xFF},
['d'] = { 0xFF,0xAA,0xCD,0xFF},
['e'] = { 0xFF,0xAA,0xCD,0xFF},
['f'] = { 0xFF,0xAA,0xCD,0xFF},
[' '] = { 0x00,0x00,0x00,0x00}
};

char mensagemDisplay[16] = "Ola mundo";



Depois no refresh você pode fazer algo do tipo:

Código: Selecionar todos
  static unsigned char indice=0;

  setColuna(indice/5);
  PORT = caracteres[mensagemDisplay[indice/5]][indice%5];
  indice = (indice+1) % TOTAL_COLUNAS;




Obrigado pela ajuda amigo mas gostaria de fazer isso em assembly, teria alguma ideia?
edsonavr
 
Mensagens: 3
Registrado em: 22 Abr 2016 12:23

Re: Ajuda em matriz de LED

Mensagempor KrafT » 22 Abr 2016 22:31

edsonavr escreveu:Obrigado pela ajuda amigo mas gostaria de fazer isso em assembly, teria alguma ideia?


É só seguir o raciocínio do Aquino e implementar em assembly. Eu particularmente troco as divisões e módulos por pequenas tabelas, mas isso é do gosto de cada um.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: Ajuda em matriz de LED

Mensagempor Vonnilmam » 25 Dez 2016 12:18

Quer uma dica de quem sempre programou e ainda programo alguma coisa, em circuitos antigos, feitos em assembler.

Meu amigo, programa em C.

Esse tipo de projeto eu tentei fazer em assembler também, só de curiosidade, e ainda estou fazendo nas horas de folga, mas em assembler só iniciei o projeto e tive também esse problema para implementar a leitura das tabelas ASC...

Cheguei a conclusão que é muito mais fácil e interativo fazer isso em C.

A dica do Aquino, tá certinha, é por aí mesmo. Tem que criar uma tabela de acordo com a dimensão de visão no seu display, eu cheguei no melhor resultado foi com matriz de 8x8, para se basear no tamanho e flexibilidade de escrita de letras e simbolos, é muito mais bonito os caracteres, vai por mim...depois você poderá criar outros tamanhos dentro dessa celular de 8x8...

Para falar a verdade, foi meio complicado passar da mentalidade assembler para C, enrolei mais de 5 anos para por a mão de fato na massa. Quando tive que acoplar no meu projeto de trabalho, um display gráfico, foi aí que vi que em assembler é doideira...e meti a cara a aprender C, foi complicado no inicio, pois o raciocício aparentemente é um pouco diferente entre as duas linguágens, no caso da compreensão de programação. Mas depois que começa a decorar as instruções e mexer com elas, vai ver que é tudo igual.

Vai por mim, faz em C...dá menos trabalho e terá muuito mais flexibilidade.
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial


Voltar para AVR

Quem está online

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

cron

x